element_ui根据编辑和查看打开不同的弹出层
功能描述:
有一个表格,有三个字段,分别为:操作,姓名,日期,在操作字段数据为:有二个种类型,一个是编辑,一个查看,点出编辑和查看打开弹出层,弹出层显示表格,姓名,时间,操作,单击编辑菜单弹出可以编辑,单击查看,只能可查看弹出层的表格
<template> <div> <el-table :data="tableData"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="date" label="日期"></el-table-column> <el-table-column label="操作"> <template slot-scope="scope"> <el-button @click="handleEdit(scope.row)">编辑</el-button> <el-button @click="handleView(scope.row)">查看</el-button> </template> </el-table-column> </el-table> <!-- 编辑弹出层 --> <el-dialog title="编辑" :visible.sync="editDialogVisible"> <el-form label-position="top"> <el-form-item label="姓名"> <el-input v-model="editForm.name"></el-input> </el-form-item> <el-form-item label="日期"> <el-date-picker v-model="editForm.date" type="date"></el-date-picker> </el-form-item> </el-form> <div slot="footer"> <el-button @click="editDialogVisible = false">取消</el-button> <el-button type="primary" @click="handleSave">保存</el-button> </div> </el-dialog> <!-- 查看弹出层 --> <el-dialog title="查看" :visible.sync="viewDialogVisible"> <el-table :data="[viewForm]"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="date" label="日期"></el-table-column> </el-table> <div slot="footer"> <el-button @click="viewDialogVisible = false">关闭</el-button> </div> </el-dialog> </div> </template> <script> export default { data() { return { tableData: [ { name: '张三', date: '2023-05-20' }, { name: '李四', date: '2023-05-21' }, { name: '王五', date: '2023-05-22' } ], editDialogVisible: false, viewDialogVisible: false, editForm: { name: '', date: '' }, viewForm: {} } }, methods: { handleEdit(row) { // 弹出编辑弹出层 this.editForm = Object.assign({}, row) this.editDialogVisible = true }, handleView(row) { // 弹出查看弹出层 this.viewForm = Object.assign({}, row) this.viewDialogVisible = true }, handleSave() { // 保存编辑结果 const index = this.tableData.findIndex(item => item.name === this.editForm.name) this.tableData.splice(index, 1, this.editForm) this.editDialogVisible = false } } } </script>
element_ui 有一个弹出层,主菜单为一个名为新增功能的菜单和一个表格,菜单点击表格新增一行,表格功能有五个字段,分别为:选择人员,角色列表,电话号码,审核列表,操作。 选择人员列表是一个表格中嵌套的下拉选择菜单表单,操作列表绑定一下事件,点击删除一行,复制
<template>
<div>
<!-- 新增功能菜单 -->
<el-menu mode="horizontal" @select="handleMenuSelect">
<el-submenu index="add">
<template slot="title">新增功能</template>
<el-menu-item index="addRow">新增一行</el-menu-item>
</el-submenu>
</el-menu>
<!-- 表格 -->
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="选择人员">
<template slot-scope="scope">
<el-select v-model="scope.row.name" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="role" label="角色列表"></el-table-column>
<el-table-column prop="phone" label="电话号码"></el-table-column>
<el-table-column prop="audit" label="审核列表"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="danger" icon="el-icon-delete" @click="handleDelete(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [],
options: [
{ value: '张三', label: '张三' },
{ value: '李四', label: '李四' },
{ value: '王五', label: '王五' },
],
};
},
methods: {
handleMenuSelect(index) {
if (index === 'addRow') {
this.tableData.push({
name: '',
role: '',
phone: '',
audit: '',
});
}
},
handleDelete(index) {
this.tableData.splice(index, 1);
},
},
};
</script>