马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、场景
利用下拉组件(el-select)开发时,碰到一种场景,修改下拉选项时需要弹窗让用户二次确认,确定后才能更新新值,取消页面则需要复兴原数据。
二、解决方案
1. el-select 增加 ref属性,并修改@change方法
- <el-select v-model="ruleForm.sourceType"
- ref="ruleFormSourceType"
- @change="(currentValue) => handleChangeSourceType(currentValue, $refs['ruleFormSourceType'].value)"
- placeholder="转出对象类型">
- <el-option v-for="(item, index) of dictInfo.list['AAAAAA']"
- :key="index"
- v-if="item.dataCode != 20"
- :label="item.dataName"
- :value="item.dataCode"></el-option>
- </el-select>
复制代码 2. 增加对应的方法实现 handleChangeSourceType
- handleChangeSourceType(newVal, oldVal) {
- let _self = this;
- _self.$confirm("修改XXX将会清空XXX,是否继续?", {
- confirmButtonText: "继续",
- cancelButtonText: "取消",
- type: "warning",
- }).then(() => {
- _self.$set(_self.ruleForm, 'sourceId', '');
- _self.$set(_self.ruleForm, 'sourceName', '');
- _self.$set(_self.ruleForm, 'paymentTableData', []);
- }).catch(() => {
- _self.$set(_self.ruleForm, 'sourceType', oldVal);
- });
- },
复制代码 其中 newVal为修改后的新值,oldVal为原有旧值,利用 comfirm中的catch来捕获取消事件,并重置为旧值
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |