当前位置: 首页 > news >正文

elementui 的 dialog 常用逻辑总结

菜鸟最近写后台管理系统,发现不管是弹窗、还是编辑、查看、添加等功能,真的代码都差不多,但是每次都要重新写里面的关闭逻辑等,菜鸟就感觉不如搞一个模版,后面只关注于逻辑,其他都直接来这里复制了!

在编辑、查看、添加等功能中,编辑中的逻辑是包含查看和添加的,所以菜鸟就总结一个编辑的!

文章目录

  • 出现情况
  • 父界面
  • 子界面

出现情况

<el-table:data="dicList"style="width: 100%"
><el-table-column type="index" width="65" label="序号"></el-table-column><el-table-columnprop="label"label="接口字段"></el-table-column><el-table-columnprop="value"label=""></el-table-column><el-table-columnprop="updateDate"label="更新时间"></el-table-column><el-table-column label="操作" align="left"><template slot-scope="scope"><el-tooltip effect="dark" content="查看" placement="top"><i class="el-icon-tickets" @click="seedetail(scope.row)"></i></el-tooltip><el-tooltip effect="dark" content="编辑" placement="top"><i class="el-icon-edit-outline" @click="openEditFun(scope.row)"></i></el-tooltip><el-popconfirmtitle="这是一段内容确定删除吗?"@confirm="deleteFun(scope.row)"><el-tooltip slot="reference" effect="dark" content="删除" placement="top"><i class="iconfont iconshanchu"></i></el-tooltip></el-popconfirm></template></el-table-column>
</el-table>

父界面

引入

import Edit from './dialog/edit.vue';

界面

<editv-if="editshow":dialogFormVisible="editshow":editdata="editdata"@closeEvent="hideEdit"
></edit>

变量 和 函数

export default {data() {return {dicList: null,// 编辑editshow: false,editdata: {},}},components: {Edit,},created: {// 请求 dicList},methods: {// 打开编辑openEditFun(scope) {// table 里面的scopethis.editshow = true;this.editdata = scope;},// 关闭编辑  第一种hideedit(msg) {  // 这里msg就是为了区分 直接点关闭 和 保存后的关闭 做区分 [查看弹窗可不要]if (msg == false) {this.editshow = false;} else if (msg == true) {// TODO:保存后,重新请求  --》 最好是成功直接修改前端数据,并提示成功请求逻辑this.editshow = false;}},// 关闭编辑  第二种hideedit(msg, data) {if (msg == false) {this.editshow = false;} else if (msg == true) {this.dicList = data;this.editshow = false;}},},
}

子界面

界面

<template><div class="dialogWrapper"><el-dialog:title="title":visible.sync="dialogVisible"width="710px"ref="dialogBox"class="dialogBox":before-close="handleClose"@close="closeDialog":destroy-on-close="true"><el-form ref="form" :model="form" :rules="rules"><el-form-item label="xxxx1" prop="aaaa"><el-input v-model="form.aaaa"></el-input></el-form-item><el-form-item label="xxxx2" prop="bbbb"><el-select v-model="form.bbbb" placeholder="请选择"><el-optionv-for="item in recogTypeArr":key="item.value":label="item.label":value="item.value"></el-option></el-select></el-form-item></el-form><div slot="footer"><el-button @click="handleClose">关闭</el-button><el-button @click="saveFun" type="primary">保存</el-button></div></el-dialog></div>
</template>

变量 和 函数

<script>
// 引入api
import {api,
} from "@/api/api.js";// 引入验证规则
import {validateNumInEight2,
} from "@/tools/Validate.js";export default {props: {dialogVisible: {type: Boolean,default: false},editdata: {type: Object,default: function () {return {}}}},data() {return {// 弹窗标题title: "算法编辑",// 绑定数据form: null,// 验证规则rules: {aaaa: [{ required: true, message: "xxxx1", trigger: "blur" },{ validator: validateNumInEight2, trigger: "blur" },],bbbb: [{ required: true, message: "xxxx2", trigger: "blur" },],},// 下拉框recogTypeArr: [{value: 'value1',label: 'label1'},{value: 'value2',label: 'label2'}],}},created() {this.form = _.cloneDeep(this.editdata); // 防止修改,改变父界面数据},methods: {// 关闭弹窗handleClose() {this.$emit("closeEvent", false);},closeDialog() {this.$refs.dialogBox.resetFields();},// 编辑保存saveFun() {// apiapi({}).then(res => {if (res.status == '200') {// 第一种this.$emit("closeEvent", true);// 第二种 --》 性能更好this.$emit("closeEvent", true, this.form);} else {this.$message({showClose: true,message: res.msg,type: 'error'});}}).catch(err => {console.log(err);})}}
}
</script>
http://www.lryc.cn/news/113049.html

相关文章:

  • ip网络广播系统网络音频解码终端公共广播SV-7101
  • 【Winform学习笔记(七)】Winform无边框窗体拖动功能
  • 【Nginx】静态资源部署、反向代理、负载均衡
  • 二、框架篇
  • [LitCTF 2023]Http pro max plus
  • 科技的成就(四十九)
  • 地理信息系统空间分析实验教程 第三版 第八章示例与练习 学校选址
  • opencv35-形态学操作-腐蚀cv2.erode()
  • 数据结构之栈和队列---c++
  • 《网约车运营数据分析实战》学习笔记
  • PostgreSQL常用函数
  • 决策树和随机森林对比
  • CS 144 Lab Seven -- putting it all together
  • opencv基础-29 Otsu 处理(图像分割)
  • gcc-buildroot-9.3.0 和 gcc-arm-10.3 的区别
  • IDEA Run SpringBoot程序步骤原理
  • 海康威视摄像头配置RTSP协议访问、onvif协议接入、二次开发SDK接入
  • Android中的Parcelable 接口
  • Docker-Compose编排与部署
  • Linux JDK 安装
  • JS中常用的数组拷贝技巧
  • SAP ABAP程序性能优化-养成良好的代码习惯
  • SQL SERVER ip地址改别名
  • 数据结构-1
  • Java自定义校验注解实现List、set集合字段唯一性校验
  • xiaoweirobot.chat
  • 【无公网IP】本地电脑搭建个人博客网站(并发布公网访问 )和web服务器
  • SpringCloud(29):Nacos简介
  • freeBSD - 笔记
  • 【Linux】网络基础——宏观认识计算机网络