wangting
2024-05-06 506b5b59e3899d8dd40a61cc8b9a575bbde3caaa
Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
@@ -106,6 +106,18 @@
        }
      }
    },
    data:{
      handler(newval) {
        if(newval) {
          this.$emit("setData", {
            area: this.areasName,
            type:this.componentVO.uiComponentType,
            btmType:this.componentVO.treeDefineVO.btmType,
            data:newval
          });
        }
      }
    },
    sourceData:{
      handler(newval) {
        //源数据有变化时变更当前区域数据
@@ -219,39 +231,57 @@
        parentOid = parentOid.split('@vcitreesep@')[1];
      }
      const parentBtmName = (node.level === 0) ? '' : node.data.attributes.btmname;
      const params=this.params;
      if(node.level === 0){
        params.queryRoot= true;
      }else {
      const params = this.params;
      if (node.level === 0) {
        params.queryRoot = true;
      } else {
        delete params.queryRoot;
      }
      getTree(parentOid, parentBtmName, params).then(res => {
        resolve(res.data.treeData)
        this.$nextTick(()=>{
          if (this.isRefresh) {
            this.$refs.tree.setCurrentKey(this.currentClickNode.data.oid);
            this.isRefresh=false;
          }
        })
      }).catch(error => {
        this.$message.error(error);
      })
    },
    checkNode(checkedNode, checkedData) {
      if (this.isMuti) {
        this.checkDatas = checkedData.checkedNodes;
        let checkDatas = [];
        checkedData.checkedNodes.forEach(item=>{
          checkDatas.push(item.attributes)
        })
        this.checkDatas=checkDatas;
      }
    },
    changeNode(data, node) {
      if (!this.isMuti) {
        this.checkDatas = [data];
        this.checkDatas = [data.attributes];
      }
    },
    clickNode(data, node) {
      this.currentClickNode = node;
    },
    handleRefresh() {
      if (!this.lazy) {
        this.initData();
      } else {
        if (this.currentClickNode) {
          let node = this.currentClickNode.parent;
          node.loaded = false;
          node.expand();
    handleRefresh(type,data) {
      //type:add\edit\delete
      if(type=="delete"){
        this.$refs.tree.remove(this.currentClickNode);
        this.currentClickNode=null;
      }else{
        if (!this.lazy) {
          this.initData();
        } else {
          if (this.currentClickNode) {
            let node = this.currentClickNode.parent;
            node.loaded = false;
            node.expand();
            this.isRefresh=true;
          }
        }
      }
      this.checkDatas = [];