【Element】el-switch开关 点击弹窗确认框时状态先改变----点击弹窗取消框失效
一、背景
需求:在列表中添加定期出账的开关按钮,点击开关时,原来的状态不改变,弹出弹窗;点击弹窗取消按钮:状态不改变,点击弹窗确定按钮:状态改变,并调取列表数据刷新页面
二、具体实现
使用element el-switch开关,具体用法可查看官方指引
官网指引:Element - The world's most popular Vue UI framework
<template slot-scope="scope"><el-switch@change="openSwitch($event, scope.row)"v-model="scope.row.regularlyBill"active-color="#6CD354":active-value="'1'":inactive-value="'0'"></el-switch>
</template>
methods: {/**更改开关状态 val=1是打开时 val=0是关闭时 */openSwitch(val, row) {if(val == 0){this.$Remind({title:'关闭之后,自动出账将失效,但仍可进行手工操作出账,确定要关闭吗?'}).then(()=>{this.isLoading = true;this.changeResultBill(row) //调取接口更改开关状态})}else{this.$Remind({title:'确定要开启自动定期出账吗?'}).then(()=>{this.isLoading = true;this.changeResultBill(row) //调取接口更改开关状态})}},//修改开关状态changeResultBill(row){let params = {id:row.id,regularlyBill:row.regularlyBill}this.$http.post(this.$url.lifebill.updateRegularlyBill,params).then(res=>{this.isLoading = false;if(res.code == 0){this.$message.success(res.msg)this.getDateTemplatePage(); //调取列表接口刷新页面}})},
}
备注:
①this.$Remind是自定义封装的弹窗,弹窗组件在element上也有,具体选择按需求为主
②v-model:是数据绑定值,实现数据双向绑定;active-color:switch 打开时的背景色;active-value:switch 打开时的值;inactive-value:switch 关闭时的值
三、效果展示


四、踩坑记录
4.1、问题描述
问题1:点击打开或关闭按钮,弹窗还未点击确定,开关的状态已经先改变了
问题2:点击弹窗取消按钮,开关状态也是变化后的状态,开关状态应不改变
4.2、原因分析并解决
原因:v-model 实现数据双向绑定,点击开关时状态就实时发生变化
解决:将v-model改成:value="",再赋值即可。调取更改开关状态的接口时也传递状态值
4.3、更改后的代码
<template slot-scope="scope">
<!-- 更改前 v-model="scope.row.regularlyBill" --><el-switch@change="openSwitch($event, scope.row)"v-model="scope.row.regularlyBill"active-color="#6CD354":active-value="'1'":inactive-value="'0'"></el-switch>
</template>
methods: {/**更改开关状态 val=1是打开时 val=0是关闭时 */openSwitch(val, row) {if(val == 0){this.$Remind({title:'关闭之后,自动出账将失效,但仍可进行手工操作出账,确定要关闭吗?'}).then(()=>{this.isLoading = true;//this.changeResultBill(row) //更改前--调取接口更改开关状态this.changeResultBill(val,row) //更改后--调取接口更改开关状态,并传入开关状态的值}).catch(()=>{this.$message.error("取消了关闭操作"); //增加了取消按钮的弹窗提示})}else{this.$Remind({title:'确定要开启自动定期出账吗?'}).then(()=>{this.isLoading = true;//this.changeResultBill(row) //更改前--调取接口更改开关状态this.changeResultBill(val,row) //更改后--调取接口更改开关状态,并传入开关状态的值}).catch(()=>{this.$message.error("取消了开启操作"); //增加了取消按钮的弹窗提示})}},//修改开关状态changeResultBill(val,row){let params = {id:row.id,//regularlyBill:row.regularlyBill //更改前regularlyBill:val //更改后}this.$http.post(this.$url.lifebill.updateRegularlyBill,params).then(res=>{this.isLoading = false;if(res.code == 0){this.$message.success(res.msg)this.getDateTemplatePage(); //调取列表接口刷新页面}})},
}
4.4、bug修复后的效果

最终:
点击开关状态不变,弹出弹窗;点击弹窗取消按钮:开关状态不变,并给与取消提示;点击弹窗确定按钮:状态改变,并调取列表数据刷新页面
最后:👏👏 😀😀😀 👍👍
相关文章:
【Element】el-switch开关 点击弹窗确认框时状态先改变----点击弹窗取消框失效
一、背景 需求:在列表中添加定期出账的开关按钮,点击开关时,原来的状态不改变,弹出弹窗;点击弹窗取消按钮:状态不改变,点击弹窗确定按钮:状态改变,并调取列表数据刷新页…...
Java 中最常用的设计模式之一,工厂模式模式的写法,
文章目录 工厂模式1、简单工厂模式2、工厂模式3、抽象工厂4、总结 工厂模式 工厂模式是 Java 中最常用的设计模式之一,工厂模式模式的写法有好几种,这里主要介绍三种:简单工厂模式、工厂模式、抽象工厂模式 1、简单工厂模式 这里以制造cof…...
HTML的学习
知己知彼百战不殆 打算学习一下javascript 所以先从基础的html语言开始 其实就是头部 和身体 头部控制整个 html的语言 title等 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width…...
JS设计模式 — 行为委托
回顾一下原型,发现[[Prototype]]机制就是指对象中的一个内部链接引用另一个对象,这个机制的本质就是对象之间的关联关系 1、面相委托的设计 Task {setID: function(ID) { this.id ID; },outputID: function() { console.log( this.id ); } }; // 让 …...
Microsoft Expression Web - 网页布局
在本章中,我们将介绍网页的基本布局。在创建我们的网页布局之前,我们需要考虑我们的内容,然后设计我们希望如何呈现该内容,因为它是在我们的网站上可见的内容。 由我们如何呈现我们的内容,以便我们的观众找到我们的网…...
Java SpringBoot Controller常见写法
文章目录 环境Controller调用脚本运行结果总结 环境 系统: windows 11 工具: java, idea, git bash Controller 接口常见有以下几种方式 其中: Tobj 调用脚本 我的是windows 系统,使用 git bash 窗口运行, 用 cmd 或者 power shell 会有问题 curl …...
【驱动】SPI驱动分析(五)-模拟SPI驱动
简介 模拟SPI驱动是一种软件实现的SPI总线驱动。在没有硬件SPI控制器的系统中,通过软件模拟实现SPI总线的功能。它允许在不修改硬件的情况下,通过GPIO(通用输入/输出)引脚模拟SPI总线的通信,从而与SPI设备进行数据交换…...
人工智能_机器学习056_拉格朗日乘子法原理推导_公式由来详解_原理详解---人工智能工作笔记0096
https://blog.csdn.net/Soft_Po/article/details/118332454 这里有老师的一篇文章介绍拉格朗日乘子法的原理推导 结合老师的这篇文章我们来看一下详细的推导过程 可以看到上一节我们说,一个有条件的,函数,可以转换为一个,无条件的函数, 根据拉格朗日乘子法,可以创建出一个等…...
记RocketMQ本地开发环境搭建始末
前言 最近工作中涉及到了RocketMQ的应用,为方便开发决定本地搭建一套RocketMQ的使用环境。 果然实践是个好东西... VMware虚拟环境搭建 这个网上有很多教程,只会比我写的详细有条理,这里就不在赘述了。 虚拟机搭建好之后每次重启电脑都无…...
2023年全国职业院校技能大赛“ 信息安全管理与评估” 测试题2
一.单选题 1、下列不属于口令安全威胁的是?( ) A、 弱口令 B、 明文传输 C、 MD5 加密 D、 多账户共用一个密码 2、在学校或单位如果发现自己的计算机感染了病毒,应首先采取什么措施 ( )。 A、断开网络 B、告知领导 C、杀毒 D、重…...
flutter开发实战-readmore长文本展开和收缩控件
flutter开发实战-readmore长文本展开和收缩控件 当长文本展开和收缩控件,我们需要使用readmore来处理长文本展开和收缩,方便阅读 一、引入readmore 在工程的pubspec.yaml中引入插件 readmore: ^2.1.0ReadMoreText的属性如下 const ReadMoreText(this.…...
如何使用简单的分支策略来保护您的 Git 项目
良好的分支策略可以使项目源代码获得一致且安全的数据,所有协作者可以在更短的生命周期内共享和访问这些数据。 您必须以灵活的方式设计项目模型,以便对所有成员角色和权限进行良好的管理。 我要谈论的并没有什么令人惊讶的新鲜事。您可能已经知道一些…...
vue3的 nextTick()的使用
引言: 当你修改了响应式状态时,DOM 会被自动更新。但是需要注意的是,DOM 更新不是同步的。Vue 会在“next tick”更新周期中缓冲所有状态的修改,以确保不管你进行了多少次状态修改,每个组件都只会被更新一次。 要等待…...
Redis Lua沙盒绕过 命令执行(CVE-2022-0543)漏洞复现
Redis Lua沙盒绕过 命令执行(CVE-2022-0543)漏洞复现 Redis如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。–那么这也就是redis未授权访问了 Redis的默认端口是6379 可以用空间测绘搜索ÿ…...
react中useState、useRef、变量之间的区别
函数组件有函数作用域,每次render时,声明的方法会生成新的引用,声明的普通变量会重新声明并赋值初始值,而useRef和useState会保留状态。 useState、useRef、变量的区别 1. useState 组件更新不会改变之前的状态,可以保…...
企业软件的分类|app小程序网站定制开发
企业软件的分类|app小程序网站定制开发 企业软件是指为满足企业管理和运营需求而设计和开发的一类软件,它通常用于支持企业的各项业务活动和流程。根据其功能和应用领域的不同,可以将企业软件分为以下几类。 1. 企业资源计划(ERP)…...
Flink(八)【窗口】
前言 终于忙完了四门专业课的期末,确实挺累啊。今天开始继续学习 Flink ,接着上次的内容。 今日摘录: 他觉得一个人奋斗更轻松自在。跟没有干劲的人在一起厮混,只会徒增压力。 -《解忧杂货店》 1、窗口 之前我们已经了解了…...
云轴科技ZStack信创云平台助力国泰君安期货实现信创改造
信创是数字中国建设的重要组成部分,也是数字经济发展的关键推动力量。作为云基础软件企业,云轴科技ZStack 产品矩阵全面覆盖数据中心云基础设施,ZStack信创云首批通过可信云《一云多芯IaaS平台能力要求》先进级,是其中唯一兼容四种…...
C语言猜数字小游戏
本文将介绍如何使用C语言写一个猜数字的小游戏 具体代码如下: #include<stdio.h> #include<stdlib.h> #include<time.h>// 显示游戏菜单 void menu() {printf("**** 猜数字游戏! ****\n");printf("**** 按1开始游戏 ****\…...
自定义BeanPostProcessor之XssBeanPostProcessor
什么是BeanPostProcessor BeanPostProcessor是Spring框架中的一个重要的扩展点,它允许开发者在Bean初始化前后对Bean进行自定义处理。Spring中有很多内置的BeanPostProcessor,如AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcess…...
基于计算机视觉与物联网的智能虫害监测系统设计与实践
1. 项目概述:从“人眼巡查”到“智能感知”的虫害管理革命在农业种植、仓储物流乃至城市绿化管理中,虫害监测一直是一项耗时耗力且高度依赖经验的工作。传统的做法是依靠人工定期巡查,不仅效率低下,覆盖面有限,而且对巡…...
糖尿病风险预测系统:机器学习算法对比与区块链边缘计算架构实践
1. 项目概述与核心价值在慢性病管理领域,尤其是糖尿病防控,早期预警和精准风险评估是降低发病率和医疗负担的关键。传统的风险评估多依赖于医生经验和简单的问卷,难以处理多维度、非线性的复杂风险因素关联。近年来,以机器学习为代…...
昇腾CANN opbase与算子生态协作:从单一算子到完整计算图
前言 单个算子的性能再高,如果无法和其他算子高效协作,最终端到端的模型推理或训练性能也不会好。一个典型的深度学习模型包含几十到几百个算子,它们之间的数据流、内存分配、执行顺序都需要精心编排。opbase作为所有算子仓库的公共基础&…...
EmotiVoice终极指南:5分钟上手2000种音色的免费语音合成神器
EmotiVoice终极指南:5分钟上手2000种音色的免费语音合成神器 【免费下载链接】EmotiVoice EmotiVoice 😊: a Multi-Voice and Prompt-Controlled TTS Engine 项目地址: https://gitcode.com/gh_mirrors/em/EmotiVoice 想要让AI帮你说话吗…...
Google I/O 2026之外,声网搞定弱网通话难题
作为每日穿梭地铁的通勤上班族,我对日常使用的 AI 工具,始终只有一个核心诉求,那就是弱网场景下运行稳定,不会轻易出现故障。此前观看 2026 谷歌开发者大会时,我便心生期许,盼望日常通勤途中,也…...
从ENVI到MATLAB:高光谱图像处理工作流迁移指南(以真假彩色显示为例)
从ENVI到MATLAB:高光谱图像处理工作流迁移指南(以真假彩色显示为例) 对于长期使用ENVI进行遥感影像分析的研究者而言,MATLAB的编程环境提供了截然不同的工作流体验。本文将聚焦高光谱图像可视化这一基础但关键的操作,系…...
2026年ERP+分销一体化还是独立部署?两种架构的优劣对比与选型建议
分销ERP的选型是一个典型的“三年决策”——今天选了什么,未来三年就要和它绑定。选小了,业务一扩张系统就撑不住;选大了,为用不上的功能付了高昂成本。更棘手的困境是“换系统”——已经跑了好几年的业务数据和流程,迁…...
MyBatis-Plus持久层框架应用技术研究
在Web应用系统开发过程中,数据持久层承担着数据库交互、数据读写、数据统计、条件查询的核心作用,持久层框架的性能与便捷性直接决定项目开发效率与系统运行稳定性。传统MyBatis框架虽能够实现数据库增删改查操作,但存在代码冗余、重复代码多…...
技术人的黄金十年:软件测试从业者25到35岁每一年该怎么规划?
对于每一位进入软件行业的技术人而言,25岁到35岁这十年几乎决定了整个职业生涯的上限,而软件测试作为产品质量的最后一道防线,这个岗位的能力积累、职业路径选择,更需要在这黄金十年里做好清晰的规划。不同于开发岗的技术迭代焦虑…...
相控阵天线设计避坑指南:为什么低副瓣方案里,Chebyshev加权比单纯调相位更靠谱?
相控阵天线设计避坑指南:为什么低副瓣方案里,Chebyshev加权比单纯调相位更靠谱? 在相控阵天线设计中,低副瓣性能往往是工程师们追求的关键指标之一。副瓣过高不仅会浪费辐射能量,还可能造成信号干扰、目标识别困难等一…...
