el-tree或者vue-treeselect 选择前提示是否确定修改。确认清空数据,取消还原数据且不触发清空逻辑

225 阅读1分钟

同事用的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);
    },