From c2ee2b74bd587fdad8e9e276beb3c792f56f5b6c Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期三, 05 七月 2023 16:33:55 +0800
Subject: [PATCH] 业务类型和元数据相关的修正

---
 Source/UBCS-WEB/src/views/modeling/original.vue    |   40 +++++++++++--
 Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue |   32 ++++++----
 Source/UBCS-WEB/src/views/modeling/originalAdd.vue |   78 +++++++++++++++++---------
 3 files changed, 103 insertions(+), 47 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
index 1515c8f..7e4f639 100644
--- a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
+++ b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
@@ -1,5 +1,5 @@
 <template>
-    <el-dialog 
+    <el-dialog
     title="涓氬姟绫诲瀷"
     :visible.sync="showSubmitDialog"
     append-to-body
@@ -43,16 +43,16 @@
             </el-form-item>
         </div>
             <el-form-item label="鎻忚堪" label-width="100px" class="description">
-                <el-input v-model="btmType.description" 
-                :prefix-icon="icons.desc" 
+                <el-input v-model="btmType.description"
+                :prefix-icon="icons.desc"
                 class="descClass"
                 id="descId"
                 ></el-input>
             </el-form-item>
         </el-form>
-        <avue-crud :option="option" 
-        :data="btmType.attributes" 
-        :page.sync="page" 
+        <avue-crud :option="option"
+        :data="btmType.attributes"
+        :page.sync="page"
         ref="attrTable"
         @cell-mouse-enter="cellEditClick"
         @cell-mouse-leave="cellEditSave">
@@ -62,7 +62,7 @@
                 size="small"
                 @click="rowAdd()">灞炴�ч�夋嫨</el-button>
             </template>
-            
+
         </avue-crud>
         <div slot="footer" class="dialog-footer">
             <el-button type="primary" @click="submitBtmType">纭畾</el-button>
@@ -76,9 +76,9 @@
             @close="closeAttrDialog"
             width="80%"
         >
-            <avue-crud class="attrRef" 
-            :option="attrRef.option" 
-            :data="attrRef.data" 
+            <avue-crud class="attrRef"
+            :option="attrRef.option"
+            :data="attrRef.data"
             :page.sync="attrRef.page"
             ref="attrRef"
             @on-load="attrRefOnLoad"
@@ -98,7 +98,7 @@
             :visible.sync="revisionRef.visible"
             append-to-body
             width="80%">
-            
+
             <avue-crud class="revisionRef"
              :option="revisionRef.option"
              :data="revisionRef.data"
@@ -320,7 +320,7 @@
                 id: [
                     { required: true, message: '璇疯緭鍏ヤ笟鍔$被鍨嬬紪鍙�', trigger: 'blur' },
                     { pattern: /^[A-Za-z]+$/, message: '涓氬姟绫诲瀷缂栧彿鍙兘涓鸿嫳鏂�', trigger: 'blur' },
-                    { min: 2, max: 15, message: '闀垮害鍦�2鍒�15涓瓧绗�', trigger: 'blur' }
+                    { min: 2, max: 20, message: '闀垮害鍦�2鍒�20涓瓧绗�', trigger: 'blur' }
                 ],
                 domain: [
                     { required: true, message: '璇烽�夋嫨鎵�灞為鍩�', trigger: 'blur' }
@@ -387,7 +387,11 @@
                     attrDataType : item.typeKey,
                     defaultValue: item.defaultValue,
                     description: item.description,
-                    attributeLength: item.maxLength
+                    attributeLength: item.maxLength,
+                    referBtmTypeId: item.referTypeCode,
+                    referBtmTypeName: item.referToName,
+                    enumId: item.dictCode,
+                    // enumName: item,
                 });
                 this.attrRef.queryNotIn += (item.id + ",")
             });
@@ -420,7 +424,7 @@
                 this.$refs.attrTable.refreshTable();
             })
         },
-        // 
+        //
         viewChange(){
 
         },
diff --git a/Source/UBCS-WEB/src/views/modeling/original.vue b/Source/UBCS-WEB/src/views/modeling/original.vue
index 805e99f..6588c67 100644
--- a/Source/UBCS-WEB/src/views/modeling/original.vue
+++ b/Source/UBCS-WEB/src/views/modeling/original.vue
@@ -122,14 +122,14 @@
                 <template slot="label">
                   鏋氫妇绫诲瀷
                 </template>
-                {{ itemForm.itemData.dictCode }}
+                {{ itemForm.itemData.dictValue }}
               </el-descriptions-item>
             </el-descriptions>
           </el-tab-pane>
         </el-tabs>
       </basic-container>
     </el-aside>
-    <originalAdd ref="originalAdd" @refreshTable="refreshChange"></originalAdd>
+    <originalAdd ref="originalAdd" @refreshTable="refreshChange" :attribute="editAttribute"></originalAdd>
   </el-container>
 </template>
 
@@ -141,6 +141,7 @@
   update, getPage, getApplyRange
 } from "@/api/omd/OmdAttribute";
 import Versionpackage from "./Versionpackage.vue";
+import {getDictionary} from "@/api/omd/enum";
 
 export default {
   name: "original",
@@ -157,7 +158,7 @@
       attribute: {
         nullable: true
       },
-      editAttibute: {},
+      editAttribute: {},
       applyRangeData: [],
       option: {
         height: "550px",
@@ -250,6 +251,8 @@
       itemForm: {
         itemData: {},
         activeName: "referTab",
+        enumInitFlag:false,
+        referInitFlag: false,
         form: {}
       },
       searchId: '',
@@ -268,10 +271,14 @@
     updateSave(row,index) {
       this.selectRow = index;
       var json = JSON.stringify(row);
-      this.editAttibute = JSON.parse(json);
-      this.editAttibute.nullable = row.nullable == 'true' ? true : false;
-      this.$refs.originalAdd.attribute = this.editAttibute;
+      this.editAttribute = JSON.parse(json);
+      this.editAttribute.nullable = row.nullable == 'true' ? true : false;
+      this.$refs.originalAdd.attribute = this.editAttribute;
       this.$refs.originalAdd.showSubmitDialog = true;
+      this.checkUsingReferDict(row);
+      this.$refs.originalAdd.activeName = this.itemForm.activeName;
+      this.$refs.originalAdd.enumInitFlag = this.itemForm.enumInitFlag;
+      this.$refs.originalAdd.referInitFlag = this.itemForm.referInitFlag;
       this.refreshChange()
     },
     deleteSave(row,index) {
@@ -296,6 +303,27 @@
       this.itemForm.itemData = row;
       this.selectRow = row.$index;
       this.attribute = row;
+      this.checkUsingReferDict(row);
+    },
+    checkUsingReferDict(row){
+      if (row.referToId !== null && row.referToId !== ""){
+        this.itemForm.activeName = 'referTab';
+        this.itemForm.referInitFlag = true;
+        this.itemForm.enumInitFlag = false;
+      }else if (row.usingDict === 'true'){
+        this.itemForm.activeName = 'enumTab';
+        this.itemForm.referInitFlag = false;
+        this.itemForm.enumInitFlag = true;
+        getDictionary({code: row.dictCode}).then(res => {
+          this.editAttribute.dictValue = res.data.data[0].label;
+          this.itemForm.itemData.dictValue = this.editAttribute.dictValue;
+          this.$refs.originalAdd.dictEnums = res.data.data;
+        })
+      }else {
+        this.itemForm.activeName = 'referTab';
+        this.itemForm.referInitFlag = true;
+        this.itemForm.enumInitFlag = false;
+      }
     },
     selectBtmType() {
       this.referType.display = true;
diff --git a/Source/UBCS-WEB/src/views/modeling/originalAdd.vue b/Source/UBCS-WEB/src/views/modeling/originalAdd.vue
index c6e0c48..f73ccfa 100644
--- a/Source/UBCS-WEB/src/views/modeling/originalAdd.vue
+++ b/Source/UBCS-WEB/src/views/modeling/originalAdd.vue
@@ -37,7 +37,6 @@
                 <el-form-item label="鎻忚堪" label-width="100px">
                     <el-input v-model="attribute.description" type="text"></el-input>
                 </el-form-item>
-
                 <el-tabs v-model="activeName" @tab-click="handleClick" stretch="true">
                     <el-tab-pane label="鍙傜収" name="referTab">
                         <el-form-item label="鍙傜収绫诲瀷" label-width="100px">
@@ -61,14 +60,16 @@
                             </el-input>
                         </el-form-item>
                         <el-form-item label="鏋氫妇椤�" label-width="100px">
-
+                            <el-tag v-for="eItem in dictEnums" :key="eItem.itemName" type="info">
+                              {{eItem.itemName}}
+                            </el-tag>
                         </el-form-item>
                     </el-tab-pane>
                 </el-tabs>
             </el-form>
             <div slot="footer" class="dialog-footer">
                 <el-button type="primary" @click="submitAttribute">纭畾</el-button>
-                <el-button @click="cancleSubmit">鍙栨秷</el-button>
+                <el-button @click="cancelSubmit">鍙栨秷</el-button>
             </div>
             <!-- 閫夋嫨鍙傜収鏃剁殑寮圭獥 -->
             <el-dialog title="鍙傜収鍒楄〃" :visible.sync="btmRefer.show" append-to-body @close="closeReferDialog" width="80%"
@@ -104,7 +105,7 @@
                 </el-container>
                 <div slot="footer" class="dialog-footer">
                     <el-button type="primary" @click="confirmBtm" size="small">纭畾</el-button>
-                    <el-button @click="cancleBtm" size="small">鍙栨秷</el-button>
+                    <el-button @click="cancelBtm" size="small">鍙栨秷</el-button>
                 </div>
             </el-dialog>
             <!-- 閫夋嫨鏋氫妇鏃剁殑寮圭獥 -->
@@ -119,7 +120,7 @@
                 </avue-crud>
                 <div slot="footer" class="dialog-footer">
                     <el-button type="primary" @click="confirmEnum" size="small">纭畾</el-button>
-                    <el-button @click="cancleEnum" size="small">鍙栨秷</el-button>
+                    <el-button @click="cancelEnum" size="small">鍙栨秷</el-button>
                 </div>
             </el-dialog>
         </el-dialog>
@@ -223,7 +224,7 @@
                     addBtn: false,
                     refreshBtn: false,
                     columnBtn: false,
-                    selection: true,
+                    // selection: true,
                     menu: false,
                     border: true,
                     reserveSelection: true,
@@ -267,7 +268,12 @@
                         value: 'oid',
                     }
                 }
-            }
+            },
+            dictEnums: [],
+            enumEditFlag: false,
+            enumInitFlag: false,
+            referInitFlag: false,
+            referEditFlag: false,
         }
     },
     created() {
@@ -286,9 +292,23 @@
             };
             this.referToFlag = true;
             this.$refs.form.resetFields();
+            this.dictEnums = [];
         },
         submitAttribute() {
             const that = this;
+            if (that.referInitFlag && that.referEditFlag){
+                this.$delete(this.attribute,'dictCode');
+                this.$delete(this.attribute,'dictKey');
+                this.$delete(this.attribute,'dictValue');
+                this.$delete(this.attribute,'usingDict');
+            }
+            if (that.enumInitFlag && that.enumEditFlag){
+                this.$delete(this.attribute,'referTypeCode');
+                this.$delete(this.attribute,'referTypeKey');
+                this.$delete(this.attribute,'referTypeValue');
+                this.$delete(this.attribute,'referToId');
+                this.$delete(this.attribute,'referToName');
+            }
             this.$refs.form.validate(function (pass, field) {
                 if (pass) {
                     add(that.attribute).then(res => {
@@ -302,21 +322,23 @@
                 }
             })
         },
-        cancleSubmit() {
+        cancelSubmit() {
             this.closeSubmitDialog();
         },
         closeEnumDialog() {
-            this.cancleEnum();
+            this.cancelEnum();
         },
         closeReferDialog() {
-            this.cancleBtm();
+            this.cancelBtm();
         },
         confirmBtm() {
             this.attribute.referToId = this.btmRefer.selectItem.oid;
             this.attribute.referToName = this.btmRefer.selectItem.name;
             this.btmRefer.show = false;
+            this.referEditFlag =  true;
+            this.enumEditFlag = false;
         },
-        cancleBtm() {
+        cancelBtm() {
             this.btmRefer.selectItem = {};
             this.btmRefer.show = false;
             this.btmRefer.selectRow = '';
@@ -326,8 +348,13 @@
             this.attribute.dictCode = this.enumRefer.selectItem.name;
             this.attribute.dictValue = this.enumRefer.selectItem.label;
             this.enumRefer.show = false;
+            getDictionary({code :this.enumRefer.selectItem.name}).then(res => {
+                this.dictEnums = res.data.data;
+            });
+            this.referEditFlag =  false;
+            this.enumEditFlag = true;
         },
-        cancleEnum() {
+        cancelEnum() {
             this.enumRefer.selectItem = {};
             this.enumRefer.show = false;
             this.enumRefer.selectRow = '';
@@ -345,13 +372,12 @@
                 this.domain.data = res.data.data;
             })
             this.btmRefer.show = true;
-
         },
         // 鍙傜収绫诲瀷鏍戠殑鐐瑰嚮浜嬩欢
         nodeClick(data) {
             // 鍖哄垎涓氬姟绫诲瀷鐨勬煡璇㈠拰閾炬帴绫诲瀷鐨勬煡璇�
             if (this.attribute.referTypeKey == 'btmType') {
-                btmPage(this.btmRefer.btmPage.currentPage, this.btmRefer.btmPage.pageSize, { domain: data.id }).then(res => {
+                btmPage(this.btmRefer.btmPage.currentPage, this.btmRefer.btmPage.pageSize, { bizDomain: data.id }).then(res => {
                     this.btmRefer.data = res.data.data.records;
                     this.btmRefer.btmPage.total = res.data.data.total;
                 })
@@ -431,18 +457,16 @@
             this.btmRefer.selectItem = {};
             this.btmRefer.selectRow = '';
         },
-        // handleClick(tab){
-        //     // 鍥犱负鍙兘鍙傜収鍜屾灇涓句簩閫変竴銆傛墍浠ュ湪鍒囨崲鐨勬椂鍊欐妸灞炴�х粰娓呯┖銆�
-        //     this.$delete(this.attribute,'referTypeCode');
-        //     this.$delete(this.attribute,'referTypeKey');
-        //     this.$delete(this.attribute,'referTypeValue');
-        //     this.$delete(this.attribute,'referToId');
-        //     this.$delete(this.attribute,'referToName');
-        //     this.$delete(this.attribute,'dictCode');
-        //     this.$delete(this.attribute,'dictKey');
-        //     this.$delete(this.attribute,'dictValue');
-        //     this.$delete(this.attribute,'usingDict');
-        // }
+        handleClick(tab){
+            // 鍥犱负鍙兘鍙傜収鍜屾灇涓句簩閫変竴銆傛墍浠ュ湪鍒囨崲鐨勬椂鍊欐妸灞炴�х粰娓呯┖銆�
+            if (tab.name === 'enumTab'){
+              this.enumInitFlag = true;
+              this.referInitFlag = false;
+            }else {
+              this.enumInitFlag = false;
+              this.referInitFlag = true;
+            }
+        }
     }
 }
 </script>
@@ -462,4 +486,4 @@
 
 .attributeForm>.el-form-item>.el-form-item__content>.el-select>.el-input>.el-input__inner {
     width: 200px;
-}</style>
\ No newline at end of file
+}</style>

--
Gitblit v1.9.3