【Vue】获取el-select修改前后的数据
获取el-select修改前后的数据
·
一、场景
使用下拉组件(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来捕获取消事件,并重置为旧值

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)