From 1f8e24520ed07be80f2190656fd35bf24a0cd14f Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 04 十一月 2024 18:23:01 +0800
Subject: [PATCH] 业务类型添加修改窗口

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue |  276 ++++++++++++-------------------------------------------
 1 files changed, 61 insertions(+), 215 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
index 4f60ac9..ff0774e 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
@@ -162,13 +162,11 @@
               <el-input v-model="form.name"></el-input>
             </el-form-item>
             <el-form-item label="缁ф壙鑷細">
-              <div style="display: flex;gap: 5px;align-items: center">
-                <el-input v-model="form.fName" :readOnly="true"></el-input>
-                <el-button :disabled="title === 'add'" plain size="small" style="margin-left: 5px;height: 30px"
-                           type="success"
-                           @click="inheritClickHandler">閫夋嫨
-                </el-button>
-              </div>
+              <avue-input-tree :disabled="title === 'add'"
+                               v-model="form.fName"
+                               placeholder="璇烽�夋嫨涓氬姟绫诲瀷"
+                               :props="{label: 'id', value: 'id',children: 'children'}"
+                               :dic="inheritTreeData"></avue-input-tree>
             </el-form-item>
             <el-form-item label="瀹炵幇绫伙細">
               <el-input v-model="form.implClass"></el-input>
@@ -186,19 +184,18 @@
               </el-select>
             </el-form-item>
             <el-form-item v-if="form.revLevel !== '0'" label="鐗堟湰鍙疯鍒欙細" label-width="110px" prop="revisionRuleId">
-              <div style="display: flex;gap: 5px;align-items: center">
-                <el-input v-model="form.revisionRuleId" :readOnly="true"></el-input>
-                <el-button :disabled="form.inputRevisionFlag" plain size="small" style="margin-left: 5px;height: 30px"
-                           type="success"
-                           @click="versionAddHandler">娣诲姞
-                </el-button>
-                <el-switch
-                  v-model="form.inputRevisionFlag"
-                  active-text="鎵嬪伐杈撳叆"
-                  style="width: 300px"
-                  @change="form.revisionRuleId = ''">
-                </el-switch>
-              </div>
+              <avue-select v-model="form.revisionRuleId"
+                           :disabled="form.inputRevisionFlag"
+                           placeholder="璇烽�夋嫨鐗堟湰鍙疯鍒�"
+                           :filterable="true"
+                           :props="{label: 'id', value: 'id'}"
+                           :dic="versionData"></avue-select>
+              <el-switch
+                v-model="form.inputRevisionFlag"
+                active-text="鎵嬪伐杈撳叆"
+                style="width: 300px"
+                @change="form.revisionRuleId = ''">
+              </el-switch>
             </el-form-item>
             <el-form-item v-if="form.revLevel !== '0'" label="鍒嗛殧绗︼細" label-width="110px" prop="delimiter">
               <el-select v-model="form.delimiter" clearable>
@@ -217,12 +214,11 @@
           </div>
           <div class="rightForm" style="width: 26%">
             <el-form-item label="鐢熷懡鍛ㄦ湡锛�" label-width="138px" prop="lifeCycleId">
-              <div style="display: flex;gap: 5px;align-items: center">
-                <el-input v-model="form.lifeCycleId" :readOnly="true"></el-input>
-                <el-button plain size="small" style="margin-left: 5px;height: 30px" type="success"
-                           @click="lifeAddHandler('input')">娣诲姞
-                </el-button>
-              </div>
+              <avue-select v-model="form.lifeCycleId"
+                           placeholder="璇烽�夋嫨鐢熷懡鍛ㄦ湡"
+                           :filterable="true"
+                           :props="{label: 'id', value: 'id'}"
+                           :dic="dialogLifeData"></avue-select>
             </el-form-item>
 
             <el-form-item label="澶囬�夌敓鍛藉懆鏈熷垪琛細" label-width="138px">
@@ -310,35 +306,6 @@
         </span>
     </el-dialog>
 
-    <!-- 鐗堟湰鍙疯鍒欓�夋嫨 -->
-    <el-dialog
-      v-dialogDrag
-      :visible.sync="dialogVersionVisible"
-      append-to-body="true"
-      class="avue-dialog"
-      title="鐗堟湰鍙疯鍒�"
-      width="60%"
-    >
-
-      <avue-crud
-        :key="dialogVersionKey"
-        ref="dialogAttrCrud"
-        :data="dialogVersionData"
-        :option="dialogVersionOption"
-        :table-loading="dialogVersionLoading"
-        @row-click="dialogVersionRowClick"
-        @search-change="versionHandleSearch"
-        @search-reset="versionHandleReset"
-      >
-      </avue-crud>
-
-      <span slot="footer" class="dialog-footer">
-         <el-button @click="dialogVersionVisible = false">鍙� 娑�</el-button>
-         <el-button type="primary" @click="dialogVersionAddClickHandler">纭� 瀹�</el-button>
-        </span>
-
-    </el-dialog>
-
     <!-- 鐢熷懡鍛ㄦ湡 -->
     <el-dialog
       v-dialogDrag
@@ -353,7 +320,6 @@
         ref="dialogAttrCrud"
         :data="dialogLifeData"
         :option="dialogLifeOption"
-        :table-loading="dialogLifeLoading"
         @row-click="dialogLifeRowClick"
         @search-change="lifeHandleSearch"
         @search-reset="lifeHandleReset"
@@ -364,31 +330,6 @@
          <el-button type="primary" @click="dialogLifeAddClickHandler">纭� 瀹�</el-button>
         </span>
 
-    </el-dialog>
-
-    <!-- 缁ф壙鑷� -->
-    <el-dialog
-      v-dialogDrag
-      :visible.sync="dialogInheritVisible"
-      append-to-body="true"
-      class="avue-dialog"
-      title="缁ф壙涓氬姟绫诲瀷"
-      width="30%"
-      @close="inheritClose"
-    >
-      <avue-tree ref="inheritTree" v-model="treeForm" :data="inheritTreeData" :option="inheritTreeOption"
-                 @node-click="inheritNodeClick">
-         <span slot-scope="{ node, data }" class="el-tree-node__label">
-           <span style="font-size: 15px">
-              <i class="el-icon-s-promotion"></i>
-                {{ (node || {}).label }}
-            </span>
-          </span>
-      </avue-tree>
-      <span slot="footer" class="dialog-footer">
-         <el-button type="primary" @click="inheritSaveClickHandler">纭� 瀹�</el-button>
-         <el-button @click="inheritClose">鍙� 娑�</el-button>
-        </span>
     </el-dialog>
 
     <!-- 瀵煎叆 -->
@@ -667,21 +608,7 @@
       fileUrl: 'api/linkTypeController/impData',
       createViewLoading: false, // 鍒涘缓瑙嗗浘
       versionAddFlag: false,
-      treeForm: {},
-      inheritNodeRow: {},
-      inheritTreeOption: {
-        height: 'auto',
-        defaultExpandAll: false,
-        menu: false,
-        addBtn: false,
-        props: {
-          label: 'id',
-          value: 'id',
-          children: 'children'
-        }
-      },
       inheritTreeData: [],
-      dialogInheritVisible: false,
       dialogLifeDefalutData: [], // 鏌ヨ閲嶇疆榛樿鏁版嵁
       lifeType: '',
       dialogLifeTable: [],
@@ -708,32 +635,7 @@
       },
       dialogLifeLoading: false,
       dialogLfeVisible: false,
-      dialogVersionDefalutData: [], // 鏌ヨ閲嶇疆榛樿鏁版嵁
-      dialogSwitchValue: false,
-      dialogVersionSaveRow: {},
-      dialogVersionVisible: false,
-      dialogVersionKey: Math.random(),
-      dialogVersionData: [],
-      dialogVersionOption: {
-        ...basicOption,
-        addBtn: false,
-        selection: false,
-        refreshBtn: false,
-        menu: false,
-        height: 450,
-        searchMenuSpan: 8,
-        highlightCurrentRow: true,
-        // calcHeight: 100,
-        column: [
-          {
-            label: '鐗堟湰鍙疯鍒�',
-            prop: 'id',
-            searchLabelWidth: 110,
-            search: true
-          }
-        ]
-      },
-      dialogVersionLoading: false,
+      versionData: [],//鐗堟湰瑙勫垯鏁版嵁
       dialogAttrSelectList: [],
       searchAttrParams: {},
       dialogAttrLoading: false,
@@ -923,6 +825,8 @@
   },
   created() {
     this.getTreeList();
+    this.getVersionList();
+    this.getLifeCycle();
   },
   mounted() {
   },
@@ -958,7 +862,19 @@
       this.attrData = row.attributes ? JSON.parse(row.attributes) : [];
       this.nodeRow = row;
     },
-
+    //鑾峰彇鐗堟湰瑙勫垯鏁版嵁
+    getVersionList(){
+      getVersionRuleAllList().then(res => {
+        this.versionData = res.data.data;
+      });
+    },
+    //鑾峰彇鐢熷懡鍛ㄦ湡鏁版嵁
+    getLifeCycle(){
+      gridLifeCycle().then(res => {
+        this.dialogLifeData = res.data.data;
+        this.dialogLifeDefalutData = res.data.data;
+      });
+    },
     // 鍒涘缓鎸夐挳
     addClickHandler() {
       if (func.isEmptyObject(this.nodeRow)) {
@@ -967,31 +883,8 @@
       }
       this.title = 'add';
       this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id;
-      console.log(this.nodeRow);
       this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 瀛楃涓瞗alse杞崲涓哄竷灏斿��
       this.visible = true;
-    },
-
-    // 鍏抽棴缁ф壙瀵硅瘽妗�
-    inheritClose() {
-      this.dialogInheritVisible = false;
-      this.$refs.inheritTree.setCurrentKey(null); // 鍙栨秷褰撳墠閫変腑鐨勮妭鐐�
-    },
-
-    // 缁ф壙鎸夐挳
-    inheritClickHandler() {
-      this.dialogInheritVisible = true;
-    },
-
-    // 缁ф壙鏍戣鐐瑰嚮
-    inheritNodeClick(row) {
-      this.inheritNodeRow = row;
-    },
-
-    // 缁ф壙鏍戜繚瀛�
-    inheritSaveClickHandler() {
-      this.form.fName = this.inheritNodeRow.id;
-      this.dialogInheritVisible = false;
     },
 
     // 瀵硅瘽妗� 灞炴�ф睜鍒楄〃澧炲姞鎸夐挳
@@ -1111,81 +1004,12 @@
       this.dialogAttrData.splice(index, 1);
     },
 
-    // 鐗堟湰瑙勫垯绠$悊娣诲姞
-    versionAddHandler() {
-      this.dialogVersionVisible = true;
-      this.dialogVersionKey = Math.random(); // 鎵撳紑鏃跺埛鏂拌〃鏍奸伩鍏嶈〃鏍奸敊琛�
-      this.dialogVersionLoading = true;
-      getVersionRuleAllList().then(res => {
-        const data = res.data.data.map(item => {
-          return {
-            id: item.id
-          }
-        });
-        this.dialogVersionData = data;
-        this.dialogVersionDefalutData = data;
-        this.dialogVersionLoading = false;
-      }).catch(err => {
-        this.$message.error(err)
-      });
-    },
-
-    // 鐗堟湰瑙勫垯琛岀偣鍑�
-    dialogVersionRowClick(row) {
-      this.dialogVersionSaveRow = row;
-    },
-
-    // 鐗堟湰瑙勫垯鎼滅储
-    versionHandleSearch(params, done) {
-      const {id} = params;
-
-      if (!params.id) {
-        this.dialogVersionData = this.dialogVersionDefalutData;
-        return done();
-      }
-      ;
-
-      this.dialogVersionData = this.dialogVersionDefalutData.filter(item => {
-        return item.id && item.id.includes(id);
-      });
-
-      done();
-
-    },
-
-    // 鐗堟湰绠$悊缃┖
-    versionHandleReset() {
-      this.dialogVersionData = this.dialogVersionDefalutData;
-    },
-
-    // 鐗堟湰鍙疯鍒欎繚瀛�
-    dialogVersionAddClickHandler() {
-      if (func.isEmptyObject(this.dialogVersionSaveRow)) {
-        this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�');
-        return;
-      }
-      this.form.revisionRuleId = this.dialogVersionSaveRow.id;
-      this.dialogVersionVisible = false;
-    },
-
     // 鐢熷懡鍛ㄦ湡鏂板
     lifeAddHandler(val) {
       this.dialogLfeVisible = true;
       this.dialogLifeKey = Math.random(); // 鎵撳紑鏃跺埛鏂拌〃鏍奸伩鍏嶈〃鏍奸敊琛�
       this.dialogLifeLoading = true;
       this.lifeType = val;
-      gridLifeCycle().then(res => {
-        const data = res.data.data.map(item => {
-          return {
-            id: item.id
-          }
-        });
-        this.dialogLifeData = data;
-        this.dialogLifeDefalutData = data;
-        this.dialogLifeLoading = false
-      }).catch(err => {
-        this.$message.error(err)
-      });
     },
 
     // 鐢熷懡鍛ㄦ湡琛岀偣鍑�
@@ -1350,9 +1174,31 @@
         ? this.nodeRow.lifeCycleIds.split(',').map(item => ({id: item.trim()}))
         : [];
       this.dialogAttrData = this.nodeRow.attributes ? JSON.parse(this.nodeRow.attributes) : [];
+      function  processChildren(item,fName) {
+        if (item.children && item.children.length > 0) {
+          item.children = item.children.map(child => {
+            processChildren(child,fName); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐�
+            if(fName==child.id){
+              child.disabled=true;
+            }else {
+              child.disabled=false;
+            }
+            return child;
+          });
+        }
+      };
+      const inheritTreeData=this.inheritTreeData.map(item => {
+        processChildren(item,this.form.id); // 澶勭悊姣忎釜鑺傜偣
+        if(this.form.id==item.id){
+          item.disabled=true;
+        }else {
+          item.disabled=false;
+        }
+        return item;
+      });
+      this.inheritTreeData=inheritTreeData
       this.title = 'edit';
       this.visible = true;
-      console.log(this.form);
     },
 
     // 鍒犻櫎鎸夐挳

--
Gitblit v1.9.3