同事用的vue-treeselect,el-tree同理(如果用的若依等类似组件,需要把路由缓存关闭,不然切换有BUG)。
<treeselect v-model="formData.db" :options="dbTree" placeholder="请选择生成表数据源" @select="dataSourceChange" />
<el-dialog
title="提示"
:visible.sync="editFlagDia"
:close-on-click-modal="false"
:close-on-press-escape="false"
:show-close="false"
width="30%">
<span>确定后会清空现有配置!</span>
<span slot="footer" class="dialog-footer">
<el-button @click="closeEditFlag()">取 消</el-button>
<el-button type="primary" @click="dataSourceChange(saveNode);editFlagDia = false;editFlag = true">确 定</el-button>
</span>
</el-dialog>
return:
editFlag: false,
editFlagDia: false,
oldTreeVal:"",
saveNode:{}
watch:
'formData.db'(newVal,oldVal){
if(oldVal){
this.editFlag = false
this.editFlagDia = true
this.oldTreeVal = oldVal
} else{
this.editFlag = true
}
}
methods:
closeEditFlag(){
this.formData.db = this.oldTreeVal;
this.editFlag = false;
this.$nextTick(()=>{
this.editFlagDia = false
})
},
dataSourceChange(node) {
this.saveNode = node
setTimeout(() => {
if(!this.editFlag){
return
}
console.log('清空数据!');
}, 100);
},