From c4d9e7a20dac267c5496ad3586c5053be279a17a Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 26 四月 2024 20:09:59 +0800
Subject: [PATCH] 添加action,表单组件

---
 Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue |   81 ++++++++++++++++++++++++----------------
 1 files changed, 49 insertions(+), 32 deletions(-)

diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
index a7f9024..a51cb18 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
@@ -1,6 +1,7 @@
 <template>
   <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid">
     <dynamic-button v-if="componentVO.buttons && componentVO.buttons.length>0" :componentVO="componentVO"
+                    :key="areasName+'buttons-'+componentVO.oid"
                     :butttonList="componentVO.buttons" :dataStore="checkDatas"
                     :sourceData="sourceData" type="tree" style="margin-bottom: 5px;"></dynamic-button>
     <el-input
@@ -20,6 +21,7 @@
       node-key="oid"
       @check="checkNode"
       @current-change="changeNode"
+      @node-click="clickNode"
       ref="tree">
     </el-tree>
   </div>
@@ -119,13 +121,14 @@
       isMuti:false,
       data:[],
       checkDatas:[],
+      currentClickNode:null,
       params:{},
       sourceDataMapParams:{}
     }
   },
   created() {
     this.getParams();
-    if(!this.lazy){
+    if (!this.lazy) {
       this.initData();
     }
   },
@@ -141,12 +144,13 @@
     },
     sourceDataMap: function () {
       const sourceDataMap = {};
-      if (Object.keys(this.sourceData).length>0) {
-        if(this.sourceData.oid ) {
+      if (Object.keys(this.sourceData).length > 0) {
+        if (this.sourceData.oid) {
           if (this.sourceData.oid.indexOf('@vcitreesep@') > -1) {
             this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1];
           }
-          sourceDataMap.sourceBtmName = this.sourceBtmType;;
+          sourceDataMap.sourceBtmName = this.sourceBtmType;
+          ;
           sourceDataMap.sourceOid = this.sourceData.oid;
         }
         for (let i in this.sourceData) {
@@ -157,7 +161,7 @@
         }
       }
 
-      if (Object.keys(this.paramVOS).length>0) {
+      if (Object.keys(this.paramVOS).length > 0) {
         for (let i in this.paramVOS) {
           let item = this.paramVOS[i]
           if (item && item.constructor === Object) return;
@@ -169,36 +173,35 @@
     },
     getParams: function () {
       let parentFieldName = "";
-      if(this.componentVO.treeDefineVO.showLinkAbs){
+      if (this.componentVO.treeDefineVO.showLinkAbs) {
         parentFieldName = this.componentVO.treeDefineVO.showLinkAbs.split(",")[0];
       }
-      const treeParams={
-        queryAllLevel:!this.lazy,
-        loadType:this.componentVO.treeDefineVO.loadType,
-        multipleSelect:this.isMuti,
+      const treeParams = {
+        queryAllLevel: !this.lazy,
+        loadType: this.componentVO.treeDefineVO.loadType,
+        multipleSelect: this.isMuti,
         isMuti: this.isMuti,
         isQueryAllColumn: true,
         btmname: this.componentVO.treeDefineVO.btmType,
-        componentOid:this.componentVO.oid,
-        uiDefineId:this.uiContext,
-        valueField:this.componentVO.treeDefineVO.valueField || 'oid',
-        parentFieldName:parentFieldName,
-        textField:this.componentVO.treeDefineVO.treeNodeExpression,
+        componentOid: this.componentVO.oid,
+        uiDefineId: this.uiContext,
+        valueField: this.componentVO.treeDefineVO.valueField || 'oid',
+        parentFieldName: parentFieldName,
+        textField: this.componentVO.treeDefineVO.treeNodeExpression,
         queryTemplate: this.sourceData.querytemplate,
-        linkTypeFlag: validatenull(this.sourceData.queryType)?(validatenull(this.sourceData.linkType)?false:true):(this.sourceData.queryType==0?false:true),
-        rootExpress:this.componentVO.treeDefineVO.rootExpress
+        linkTypeFlag: validatenull(this.sourceData.queryType) ? (validatenull(this.sourceData.linkType) ? false : true) : (this.sourceData.queryType == 0 ? false : true),
+        rootExpress: this.componentVO.treeDefineVO.rootExpress || ''
       }
       const sourceDataMapList = this.sourceDataMapParams;
 
-      this.params = Object.assign({},treeParams, sourceDataMapList);
+      this.params = Object.assign({}, treeParams, sourceDataMapList);
     },
     initData() {
       if (Object.keys(this.sourceData).length > 0 && this.isShow) {
-        getTree(null,null,Object.assign({
+        getTree(null, null, Object.assign({
           queryRoot: true
         }, this.params)).then(res => {
           this.data = res.data.treeData;
-          this.checkDatas = [];
         }).catch(error => {
           this.$message.error(error);
         })
@@ -207,32 +210,46 @@
     loadNode(node, resolve) {
       //閫愮骇鍔犺浇
       let parentOid = (node.level === 0) ? 0 : node.data.oid;
-      if (parentOid!=0 && parentOid.indexOf('@vcitreesep@') > -1) {
-        parentOid= parentOid.split('@vcitreesep@')[1];
+      if (parentOid != 0 && parentOid.indexOf('@vcitreesep@') > -1) {
+        parentOid = parentOid.split('@vcitreesep@')[1];
       }
       const parentBtmName = (node.level === 0) ? '' : node.data.attributes.btmname;
-      let params=this.params;
-      if(parentOid===0){
-        //params.queryRoot=true;
+      const params=this.params;
+      if(node.level === 0){
+        params.queryRoot= true;
+      }else {
+        delete params.queryRoot;
       }
-      getTree(parentOid,parentBtmName,this.params).then(res => {
+      getTree(parentOid, parentBtmName, params).then(res => {
         resolve(res.data.treeData)
       }).catch(error => {
         this.$message.error(error);
       })
     },
-    checkNode(checkedNode, checkedData){
+    checkNode(checkedNode, checkedData) {
       if (this.isMuti) {
-        this.checkDatas=checkedData.checkedNodes;
+        this.checkDatas = checkedData.checkedNodes;
       }
     },
-    changeNode(data,node) {
+    changeNode(data, node) {
       if (!this.isMuti) {
-        this.checkDatas=[data];
+        this.checkDatas = [data];
       }
     },
-    handleRefresh(){
-      this.initData();
+    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();
+        }
+      }
+      this.checkDatas = [];
     }
   },
 }

--
Gitblit v1.9.3