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":dialogVisible="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.mzph.cn/news/34082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目管理师基础之项目管理计划和项目文件

项目管理过程中&#xff0c;会使用并产生两大类文件&#xff1a;项目管理计划和项目文件。内容一般如下&#xff1a; 整个项目生命周期需要收集、分析和转化大量的数据。从各个过程收集项目数据&#xff0c;并在项目团队内共享。在各个过程中所收集的数据经过结合相关背景的分…

MySQL中同比和环比语句如何写?

营收表如下&#xff08;表名&#xff1a;a&#xff09;如下图&#xff1a; 营收表 year month money 2021 1 1000 2021 2 1200 2022 1 1300 2022 2 1500 需要算出2022年营收同比与环比&#xff1a; 同比&#xff1a;和去年同月相比&#xff08;1300-1000/1000*100%&#xff0…

Python +numpy数组膨胀(填充)方法总结

本文主要介绍数组的各种填充方法&#xff0c;包括数组按照原值复制扩大并填充&#xff0c;数组的扩大填充&#xff0c;数组边缘填充等。 1.数组的复制膨胀 形如二维数组: [[1 2] [3 4]] 膨胀为&#xff1a; [[1 1 1 2 2 2] [1 1 1 2 2 2] [1 1 1 2 2 2] [3 3 3 4 4 4]…

简单易用且高效的跨平台开发工具:Xojo 2023 for Mac

Xojo for Mac是Mac平台上一个跨平台的针对桌面、Web、移动和Raspberry Pi的快速应用程序开发软件。与其他多平台开发工具相比&#xff0c;Xojo for Mac为开发人员提供了显着的生产率提高。 Xojo for Mac具有拖放功能&#xff0c;使您能够快速创建用户界面设计&#xff0c;然后…

Android保存网页的方法

首先要使用js交互就需要懂原理&#xff1a; 感谢大佬&#xff1a;js中document节点获取页面元素的六种方式 1.querySelector()方法 描述&#xff1a;本方法用于根据给定的选择器选中页面元素 如果有多个元素满足条件&#xff0c;则返回第一个满足条件的元素节点 语法&#xff…

GRPC-连接池-GPT

gRPC Dart 管理优化 User grpc for dart 如何统一管理多个Client的创建和销毁&#xff0c;给我一个最优解 ChatGPT 对于在Dart中使用gRPC创建和销毁多个Client的统一管理&#xff0c;您可以使用一个单例模式的管理类来实现最优解。 首先&#xff0c;创建一个管理类&#xff0c…

EPPlus 读取和生成Excel

在项目中添加了EPPlus库的引用&#xff0c;你可以通过NuGet包管理器或手动将EPPlus库添加到项目中。同时&#xff0c;需要注意的是EPPlus库支持的是xlsx格式的Excel文件。 读取 使用EPPlus读取本地Excel文件的示例代码如下&#xff1a; using OfficeOpenXml;public void Rea…

算法随笔:图论问题之割点割边

割点 定义 割点的定义&#xff1a;如果一个点被删除之后会导致整个图不再是一个连通图&#xff0c;那么这个顶点就是这个图的割点。举例&#xff1a; 上图中的点2就是一个割点&#xff0c;如果它被删除&#xff0c;则整个图被分为两个连通分量&#xff0c;不再是一个连通图。…

【交换排序】冒泡排序 与 快速排序

交换排序基本思想&#xff1a; 所谓交换&#xff0c;就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置&#xff0c;交换排序的特点是&#xff1a;将键值较大的记录向序列的尾部移动&#xff0c;键值较小的记录向序列的前部移动。 目录 1.冒泡排序 2.快…

OptaPlanner笔记5

2.4 与spring boot集成 2.4.4 添加依赖 <dependency><groupId>org.optaplanner</groupId><artifactId>optaplanner-spring-boot-starter</artifactId> </dependency>2.4.8 创建求解器服务 import org.optaplanner.core.api.solver.Solv…

Django笔记之数据库函数之日期函数

日期函数主要介绍两个大类&#xff0c;Extract() 和 Trunc() Extract() 函数作用是提取日期&#xff0c;比如我们可以提取一个日期字段的年份&#xff0c;月份&#xff0c;日等数据 Trunc() 的作用则是截取&#xff0c;比如 2022-06-18 12:12:12&#xff0c;我们可以根据需求…

CSS:弹性盒子模型详解(用法 + 例子 + 效果)

目录 弹性盒子模型flex-direction 排列方式 主轴方向换行排序控制子元素缩放比例缩放是如何实现的&#xff1f; 控制子元素的对其方式justify-content 横向 对齐方式align-items 纵向 对齐方式 align-content 多行 对齐方式 弹性盒子模型 flex-direction 排列方式 主轴方向 f…

CI+JUnit5并发单测机制创新实践

目录 一. 现状问题 二. 分析原因 三. 采取措施 四. 实践步骤 五. 效能提升 资料获取方法 一. 现状问题 针对现如今高并发场景的业务系统&#xff0c;“并发问题” 终归是必不可少的一类&#xff08;占比接近10%&#xff09;&#xff0c;每次出现问题和事故后&#xff0c…

CNN经典网络模型之GoogleNet论文解读

目录 1. GoogleNet 1.1 Inception模块 1.1.1 1x1卷积 1.2 辅助分类器结构 1.3 GoogleNet网络结构图 1. GoogleNet GoogleNet&#xff0c;也被称为Inception-v1&#xff0c;是由Google团队在2014年提出的一种深度卷积神经网络架构&#xff0c;专门用于图像分类和特征提取任…

vConsole手机调试模式uniapp和原生h5

手机打开调试模式的方法 尽量放在页面头部&#xff0c;底部有可能不行 原生 <script src"https://cdn.bootcss.com/vConsole/3.3.0/vconsole.min.js"></script> <script>// init vConsolevar vConsole new VConsole();console.log(Hello world)…

ElasticSearch安装与启动

ElasticSearch安装与启动 【服务端安装】 1.1、下载ES压缩包 目前ElasticSearch最新的版本是7.6.2&#xff08;截止2020.4.1&#xff09;&#xff0c;我们选择6.8.1版本&#xff0c;建议使用JDK1.8及以上。 ElasticSearch分为Linux和Window版本&#xff0c;基于我们主要学习…

Linux服务器映射到本地磁盘

内容来自网友博客。 把linux服务器上的文件夹映射到本地作为一个磁盘来访问&#xff0c;步骤如下 一. samba的安装: sudo apt-get install samba // (sudo get temp root auth) sudo apt-get install smbfs //旧版本 sudo apt-get install cifs-utils //新版本 上…

【reactNative混合安卓开发~使用问题持续更】

reactNative混合安卓开发 reactNative开发移动端reactNative界面开发前端init.bat文件部分组件第三方组件解析1、定义theme主题shopify/restyle&#xff1b;菜单导航react-navigation/drawer、react-navigation/native&#xff1b; RN问题记录1、使用theme.js写的公共组件报错&…

【博客699】docker daemon预置iptables剖析

docker daemon预置iptables剖析 没有安装docker的机器&#xff1a;iptables为空&#xff0c;且每个链路的默认policy均为ACCEPT [root~]# iptables-save[root ~]# iptables -t raw -nvL Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt …

k8s node 误删除了如何自动创建 csr重新加入集群

worker node 节点当部署晚 kubelet、kube-proxy就会加入集群&#xff0c;如何加入呢&#xff0c; [rootkube-node01 ssl]# mv kubelet-client-2023-08-13-01-19-00.pem kubelet-client-current.pem kubelet.crt kubelet.key /tmp/kubelet [rootkube-node01 ssl]# systemctl da…