1.需求:在el-select下拉选择的时候,当我们更换选项时需要弹出二次确认弹窗。
2.思路:利用el-select中change事件,通过watch监听数据变换,定义一个初始状态,当点击弹窗中确认时设置成功,点击取消时,将将监听到的旧值赋给点击的值。
3.代码:
<el-select v-model="tab_id" placeholder="请选择" @change="tabidChange">
<el-option v-for="item in tabList" :key="item.id" :label="item.title" :value="item.id"> </el-option>
</el-select>
watch: {
tab_id(val,oldval){
console.log(val,oldval,"监听");
this.oldval = oldval
}
},
tabidChange(val){
let tab_titel = this.tabList.find((res)=>{
return res.id == val
})
this.$confirm(`确认将「${tab_titel.title}」频道页面设置成得到首页?`, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.$message({
type: "success",
message: "设置成功!",
});
})
.catch(() => {
this.$message({
type: "error",
message: "已取消设置",
});
//将监听到的旧值赋给点击的值
this.tab_id = this.oldval;
});
},