增删改查
在任何一款应用都是很常见的业务需求,特别是后台管理系统,对于增删
操作,前端大多都是设计成弹框
的形式,通过赋值到弹框中来实现对应的操作,简介了当,下面写一个可以复制粘贴的弹框模板以供使用。
设计思路
- 增删操作都使用
同一个弹框
,弹框是一个公共的组件,接收传值并显示
- 增操作,父组件传递
空值
给弹框组件
- 删操作,父组件传递
选中值
给弹框组件
- 增删接口操作都是在弹框中进行,按照
传递值
来判断调用哪个接口
- 接口调用成功,操作父组件去执行操作(刷新接口)
新建弹框组件
组件是一个el-dialog
弹框,它接收一个对象参数,主要通过对象参数中的visible
字段来控制显示和隐藏弹框,dataId
字段来判断调用哪个接口,若dataId
有值,则是修改接口,反之则是新增接口。最后通过reloadtable
方法触发父组件的业务逻辑。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <template> <div> <el-dialog :visible.sync="dialog.visible" :close-on-click-modal="false" :title="title" width="1200px" > ... </el-dialog> </div> </template> <script> export default { props: { dialog: { type: Object, required: true, default() { return { visible: false, dataId: null, } } } }, data(){ return { form: { configName: null, configId: null, } } }, computed: { title() { return this.dialog.dataId ? '修改' : '新增' } }, watch: { 'dialog.visible'(val) { if (!val) { return } this.resetForm('form') this.form.configName = this.dialog.configName this.form.configId = this.dialog.configId } }, methods: { submitForm() { if (this.dialog.dataId) { this.dialog.visible = false this.$emit('reloadtable') } else { } } } } </script>
|
父组件使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <Dialog :dialog="dialog" @reloadtable="handleQuery" />
data() { return { dialog: { visible: false, dataId: null, configName: null } } },
handleAdd() { this.dialog.visible = true this.dialog.dataId = null this.dialog.configName = null },
handleEdit() { this.dialog.visible = true this.dialog.dataId = this.selectItems[0].id this.dialog.configName = this.selectItems[0].configName }, handleQuery() { },
|