From 41021633bfee5b5c9c57cb888423f3392c530f98 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 25 三月 2024 18:31:08 +0800
Subject: [PATCH] 业务类型bug修改,集成接口,远程部署等功能修改。

---
 Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue |  332 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 199 insertions(+), 133 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
index 8f23f75..7cfaf5b 100644
--- a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
+++ b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
@@ -1,17 +1,18 @@
 <template>
   <el-dialog
-    title="涓氬姟绫诲瀷"
+    v-loading="loading"
     :visible.sync="showSubmitDialog"
     append-to-body
-    @close="closeSubmitDialog"
-    width="70%"
-    top="6vh"
     style="height: 115vh;"
+    title="涓氬姟绫诲瀷"
+    top="6vh"
+    width="70%"
+    @close="closeSubmitDialog"
   >
-    <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm"
-             :rules="rules" @resetFields="resetForm" status-icon="true">
-      <el-form-item label="鑻辨枃鍚嶇О" label-width="100px" required="true" prop="id">
-        <el-input v-model="btmType.id" :prefix-icon="icons.key"></el-input>
+    <el-form ref="form" :model="btmType" :rules="rules" class="btmTypeForm" inline label-suffix=":" show-message="true"
+             size="medium" status-icon="true" @resetFields="resetForm">
+      <el-form-item label="鑻辨枃鍚嶇О" label-width="100px" prop="id" required="true">
+        <el-input v-model="btmType.id" :disabled="false" :prefix-icon="icons.key"></el-input>
       </el-form-item>
       <el-form-item label="涓枃鍚嶇О" label-width="100px">
         <el-input v-model="btmType.name" :prefix-icon="icons.name"></el-input>
@@ -19,72 +20,78 @@
       <!-- <el-form-item label="鏁版嵁搴撹〃鍚�" label-width="100px">
         <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input>
       </el-form-item> -->
-      <el-form-item label="鎵�灞為鍩�" label-width="100px" prop="domain" class="domainSelect">
-        <el-select  placeholder="璇烽�夋嫨棰嗗煙" v-model="btmType.bizDomain" :prefix-icon="icons.domain">
+      <el-form-item class="domainSelect" label="鎵�灞為鍩�" label-width="100px" prop="domain">
+        <el-select v-model="btmType.bizDomain" :prefix-icon="icons.domain" placeholder="璇烽�夋嫨棰嗗煙" @change="domainChange">
           <el-option v-for="item in domainOption"
-                     :label="item.label" :value="item.value" :key="item.value">
+                     :key="item.value" :label="item.label" :value="item.value">
           </el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="鐗堟湰瑙勫垯" label-width="100px">
         <el-input v-model="btmType.revisionRuleName"
                   :prefix-icon="icons.revisionRule"
-                  class="revisionRule"
-                  @focus="openRevision"
-                  clearable
-                  @clear="clearRevision"
                   :suffix-icon="icons.referType"
-                  placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�">
+                  class="revisionRule"
+                  clearable
+                  placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�"
+                  @change="ruleChange"
+                  @clear="clearRevision"
+                  @focus="openRevision">
         </el-input>
       </el-form-item>
       <el-form-item label="鐢熷懡鍛ㄦ湡" label-width="100px">
         <el-input v-model="btmType.lifeCycleName"
                   :prefix-icon="icons.lifeCycle"
-                  class="lifeCycle"
-                  @focus="openLifeCycle"
-                  clearable
-                  @clear="clearLifeCycle"
                   :suffix-icon="icons.referType"
-                  placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�">
+                  class="lifeCycle"
+                  clearable
+                  placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�"
+                  @clear="clearLifeCycle"
+                  @focus="openLifeCycle">
         </el-input>
       </el-form-item>
-      <div>
-        <el-form-item label="寮�鍚鍥�" label-width="100px" class="viewFlag">
-          <el-switch v-model="btmType.viewFlag" active-color="#13ce66" @change="viewChange"></el-switch>
-        </el-form-item>
-        <el-form-item label="瑙嗗浘璇彞" label-width="100px" class="viewInput">
-          <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input>
-        </el-form-item>
-      </div>
-      <el-form-item label="鎻忚堪" label-width="100px" class="description">
-        <el-input v-model="btmType.description"
+      <!--      <div>-->
+      <!--        <el-form-item label="寮�鍚鍥�" label-width="100px" class="viewFlag">-->
+      <!--          <el-switch v-model="btmType.viewFlag" active-color="#13ce66" @change="viewChange"></el-switch>-->
+      <!--        </el-form-item>-->
+      <!--        <el-form-item label="瑙嗗浘璇彞" label-width="100px" class="viewInput">-->
+      <!--          <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input>-->
+      <!--        </el-form-item>-->
+      <!--      </div>-->
+      <el-form-item class="description" label="鎻忚堪" label-width="100px">
+        <el-input id="descId"
+                  v-model="btmType.description"
                   :prefix-icon="icons.desc"
                   class="descClass"
-                  id="descId"
         ></el-input>
       </el-form-item>
     </el-form>
-    <avue-crud :option="option"
+    <avue-crud ref="attrTable"
                :data="btmType.attributes"
-               :page.sync="page"
-               ref="attrTable">
-      <template slot-scope="scope" slot="menuLeft">
-        <el-button type="danger"
-                   icon="el-icon-plus"
+               :option="option"
+               :page.sync="page">
+      <template slot="menuLeft" slot-scope="scope">
+        <el-button icon="el-icon-plus"
                    size="small"
+                   type="danger"
                    @click="rowAdd()">灞炴�ч�夋嫨
         </el-button>
       </template>
       <template slot="attrDataTypeText" slot-scope="{row}">
-        <el-tag>{{ row.attrDataTypeText }}</el-tag>
+        <el-tag v-if=" row.attrDataTypeText">{{ row.attrDataTypeText }}</el-tag>
+      </template>
+      <template slot="isDefaultAttr" slot-scope="{row}">
+        <el-tag v-if="row.isDefaultAttr" type="success">鏄�</el-tag>
+        <el-tag v-else type="danger">鍚�</el-tag>
       </template>
       <template slot="menu" slot-scope="{row,index}">
-        <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="cellEditClick(row,index)">缂栬緫
+        <el-button v-if="!row.$cellEdit" icon="el-icon-edit" size="small" type="text" @click="cellEditClick(row,index)">
+          缂栬緫
         </el-button>
-        <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit"
+        <el-button v-if="!row.$cellEdit" icon="el-icon-delete" size="small" type="text"
                    @click="removeFormAttrTable(row,index)">绉婚櫎
         </el-button>
-        <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="cellEditSave(row,index)">
+        <el-button v-if="row.$cellEdit" icon="el-icon-check" size="small" type="text" @click="cellEditSave(row,index)">
           淇濆瓨
         </el-button>
       </template>
@@ -95,23 +102,23 @@
     </div>
 
     <!-- 灞炴�ф睜鐨勯�夋嫨 -->
-    <el-dialog title="灞炴�ф睜"
-               :visible="attrRef.visible"
+    <el-dialog :visible="attrRef.visible"
                append-to-body
-               @close="closeAttrDialog"
+               title="灞炴�ф睜"
                width="80%"
+               @close="closeAttrDialog"
     >
-      <avue-crud class="attrRef"
-                 :option="attrRef.option"
+      <avue-crud ref="attrRef"
+                 v-loading="attrRef.loading"
                  :data="attrRef.data"
+                 :option="attrRef.option"
                  :page.sync="attrRef.page"
-                 ref="attrRef"
+                 class="attrRef"
                  @on-load="attrRefOnLoad"
                  @search-change="attrRefSearch"
-                 @selection-change="selectionChange"
-                 v-loading="attrRef.loading">
+                 @selection-change="selectionChange">
         <template slot="typeValue" slot-scope="scope">
-          <el-tag>{{ scope.row.typeValue }}</el-tag>
+          <el-tag v-if="scope.row.typeValue">{{ scope.row.typeValue }}</el-tag>
         </template>
       </avue-crud>
       <div slot="footer" class="dialog-footer">
@@ -120,19 +127,19 @@
       </div>
     </el-dialog>
     <!-- 鐗堟湰瑙勫垯鐨勫弬鐓� -->
-    <el-dialog title="璇烽�夋嫨鐗堟湰瑙勫垯"
-               :visible.sync="revisionRef.visible"
+    <el-dialog :visible.sync="revisionRef.visible"
                append-to-body
+               title="璇烽�夋嫨鐗堟湰瑙勫垯"
                width="80%">
 
-      <avue-crud class="revisionRef"
-                 :option="revisionRef.option"
-                 :data="revisionRef.data"
-                 :page.sync="revisionRef.page"
-                 ref="revisionRef"
-                 @row-click="revisionClick"
+      <avue-crud ref="revisionRef"
                  v-loading="revisionRef.loading"
-                @search-change="searchRevisionRule"
+                 :data="revisionRef.data"
+                 :option="revisionRef.option"
+                 :page.sync="revisionRef.page"
+                 class="revisionRef"
+                 @row-click="revisionClick"
+                 @search-change="searchRevisionRule"
                  @search-reset="clearSearchRevisionRule">
         <template slot="radio"
                   slot-scope="{row}">
@@ -148,19 +155,19 @@
     </el-dialog>
 
     <!-- 鐢熷懡鍛ㄦ湡鐨勫弬鐓� -->
-    <el-dialog title="璇烽�夋嫨鐢熷懡鍛ㄦ湡"
-               :visible.sync="lifeCycleRef.visible"
+    <el-dialog :visible.sync="lifeCycleRef.visible"
                append-to-body
+               title="璇烽�夋嫨鐢熷懡鍛ㄦ湡"
                width="80%">
 
-      <avue-crud class="lifeCycleRef"
-                 :option="lifeCycleRef.option"
-                 :data="lifeCycleRef.data"
-                 :page.sync="lifeCycleRef.page"
-                 ref="lifeCycleRef"
-                 @row-click="lifeCycleClick"
+      <avue-crud ref="lifeCycleRef"
                  v-loading="lifeCycleRef.loading"
-                @search-change="searchLifeCycle"
+                 :data="lifeCycleRef.data"
+                 :option="lifeCycleRef.option"
+                 :page.sync="lifeCycleRef.page"
+                 class="lifeCycleRef"
+                 @row-click="lifeCycleClick"
+                 @search-change="searchLifeCycle"
                  @search-reset="clearSearchLifeCycle">
         <template slot="radio"
                   slot-scope="{row}">
@@ -182,7 +189,7 @@
 
 <script>
 
-import {add, update} from '@/api/omd/btmType';
+import {add, update, defaultRequestHandler} from '@/api/omd/btmType';
 import {queryPage} from '@/api/omd/OmdAttribute';
 import {getPage} from '@/api/omd/revisionRule';
 import {getList} from '@/api/modeling/cycle';
@@ -191,27 +198,24 @@
   name: 'BusinessAdd',
   props: {
     btmType: {
-      type: Object
+      type: Object,
+      default: {}
     },
     domainOption: {
       type: Array
     },
     icons: {
       type: Array
-    }
+    },
+    type: {
+      type: String,
+    },
   },
-  watch: {
-    btmType: {
-      handler(newval, oldval) {
-        console.log('鐩戝惉', newval, oldval)
-      },
-      deep: true,
-      immediate: true
-    }
-  },
+  watch: {},
   data() {
     return {
       form: {},
+      loading: false,
       showSubmitDialog: false,
       option: {
         height: "330px",
@@ -225,6 +229,7 @@
         editBtn: false,
         delBtn: false,
         columnBtn: false,
+        refreshBtn: false,
         menuWidth: 150,
         addBtn: false,
         highlightCurrentRow: true,
@@ -232,13 +237,14 @@
           {
             label: '鑻辨枃鍚嶇О',
             prop: 'id',
-            align: 'center'
+            align: 'center',
+            disabled: true
           }, {
             label: '涓枃鍚嶇О',
             prop: 'name',
             align: 'center',
             cell: true
-          },{
+          }, {
             label: "绫诲瀷",
             prop: "attrDataTypeText",
             align: 'center',
@@ -255,6 +261,13 @@
             prop: "description",
             align: 'center',
             cell: true
+          },
+          {
+            label: '榛樿瀛楁',
+            prop: 'isDefaultAttr',
+            align: 'center',
+            cell: true,
+            slot: true
           }
         ]
       },
@@ -284,6 +297,7 @@
               prop: 'id',
               align: 'left',
               search: true,
+              disabled: true,
               width: 230
             }, {
               label: '涓枃鍚嶇О',
@@ -356,6 +370,7 @@
             {
               label: '鑻辨枃鍚嶇О',
               prop: 'id',
+              disabled: true,
               search: true
             },
             {
@@ -420,6 +435,7 @@
             {
               label: '鑻辨枃鍚嶇О',
               prop: 'id',
+              disabled: true,
               search: true
             },
             {
@@ -468,20 +484,73 @@
           {required: true, message: '璇烽�夋嫨鎵�灞為鍩�', trigger: 'blur'}
         ]
       },
+      domainData: [],
+      ruleData: [],
+      lifeData: [],
+      domainFirstSelection: true,
+      ruleFirstSelection: true,
+      lifeCycleSelection: true,
     }
   },
   created() {
 
   },
   methods: {
+    getDefaultData(requestType, dataName, selectionName) {
+      if (this[selectionName]) {
+        defaultRequestHandler(requestType).then(res => {
+          this[dataName] = res.data.data;
+          res.data.data.forEach(item => {
+            let data = {
+              id: item.id,
+              name: item.name,
+              attrDataType: item.attrDataType,
+              attrDataTypeText: item.attrDataTypeText,
+              defaultValue: item.defaultValue,
+              description: item.description,
+              attributeLength: item.attributeLength,
+              referBtmTypeId: item.referTypeCode,
+              referBtmTypeName: item.referToName,
+              enumId: item.dictCode,
+              isDefaultAttr: item.isDefaultAttr
+            }
+            if (!this.btmType.attributes) {
+              this.btmType.attributes = [];
+            }
+            this.btmType.attributes.push(data);
+          })
+          this.attrRefOnLoad()
+          this[selectionName] = false;
+        });
+      }
+    },
+    //鎵�灞為鍩焎hange
+    domainChange() {
+      this.getDefaultData('defaultAttr', 'domainData', 'domainFirstSelection');
+    },
+    //鐗堟湰瑙勫垯change
+    ruleHandler() {
+      this.getDefaultData('reVersionRule', 'ruleData', 'ruleFirstSelection');
+    },
+    //鐢熷懡鍛ㄦ湡change
+    lifeCycleHandler() {
+      this.getDefaultData('lifeCycle', 'lifeData', 'lifeCycleSelection');
+    },
+    //榛樿鍊艰姹�
+    defaultValueRequest() {
+
+    },
     // 鍏抽棴缁勪欢寮圭獥
     closeSubmitDialog() {
       this.showSubmitDialog = false;
-      this.btmType.attributes = [];
-      this.btmType = {};
-      this.attrRef.selectData = [];
-      this.attrRef.queryNotIn = null;
-      this.resetForm();
+      //鎵�灞為鍩熺姸鎬侀噸鏂拌祴鍊�
+      this.domainFirstSelection = true;
+      //鐗堟湰瑙勫垯鐘舵�侀噸鏂拌祴鍊�
+      this.ruleFirstSelection = true;
+      //鐢熷懡鍛ㄦ湡鐘舵�侀噸鏂拌祴鍊�
+      this.lifeCycleSelection = true;
+      //閲嶇疆鏍¢獙瑙勫垯
+      this.$refs.form.resetFields();
     },
     // 鍏抽棴灞炴�ф睜鏌ヨ寮圭獥
     closeAttrDialog() {
@@ -505,12 +574,7 @@
         const data = res.data.data;
         this.attrRef.page.total = data.total;
         this.attrRef.data = data.records;
-      });
-      setTimeout(() => {
         this.attrRef.loading = false;
-      }, 600)
-      this.$nextTick(() => {
-        this.$refs.attrRef.refreshTable();
       });
     },
     // 灞炴�ф睜妫�绱�
@@ -554,6 +618,8 @@
         this.attrRef.queryNotIn += (item.id + ",")
       });
       this.attrRef.data = [];
+      this.$refs.attrRef.selectClear();
+      this.attrRef.selectData = [];
       this.closeAttrDialog();
     },
     // 鍙栨秷灞炴�ф睜鍕鹃��
@@ -563,27 +629,28 @@
     },
     // 娣诲姞涓氬姟绫诲瀷
     submitBtmType() {
-      console.log(this.btmType);
-      if (!this.btmType.attributes){
-         this.$message.warning("杩樻病鏈変负涓氬姟绫诲瀷閫夋嫨灞炴��");
-         return;
-      }else{
+      // console.log(this.btmType);
+      if (!this.btmType.attributes) {
+        this.$message.warning("杩樻病鏈変负涓氬姟绫诲瀷閫夋嫨灞炴��");
+        return;
+      } else {
         let nullFlag = false;
-         this.btmType.attributes.forEach(item => {
-            if (!item.name){
-               this.$message.warning("绗�" + (item.$index+1) + "琛岀殑涓枃鍚嶇О涓嶈兘涓虹┖");
-               nullFlag = true;
-               return;
-            }
-         })
-        if (nullFlag){
+        this.btmType.attributes.forEach(item => {
+          if (!item.name) {
+            this.$message.warning("绗�" + (item.$index + 1) + "琛岀殑涓枃鍚嶇О涓嶈兘涓虹┖");
+            nullFlag = true;
+            return;
+          }
+        })
+        if (nullFlag) {
           return;
         }
-
       }
+      this.btmType.attributes = this.btmType.attributes.filter(item => !item.isDefaultAttr);
       add(this.btmType, true).then(res => {
+        // console.log(res)
         // 娣诲姞瀹屾垚锛屽洖璋冪埗缁勪欢鐨勫埛鏂�
-        this.$message.success('淇濆瓨鎴愬姛');
+        this.$message.success(res.data.msg);
         this.cancleSubmitBtmType();
         this.$emit('refreshTable');
       })
@@ -610,8 +677,7 @@
       cell.$cellEdit = true;
     },
     // 鍒楄〃缂栬緫淇濆瓨
-    cellEditSave(row,index) {
-      // console.log("1111111111111111111111")
+    cellEditSave(row, index) {
       this.btmType.attributes[index].name = row.name
       this.btmType.attributes[index].defaultValue = row.defaultValue;
       this.btmType.attributes[index].description = row.description;
@@ -620,22 +686,21 @@
       this.$refs.attrTable.refreshTable();
     },
     // 鎵撳紑鐗堟湰瑙勫垯鍙傜収
-     openRevision() {
+    openRevision() {
       this.revisionRef.visible = true;
       this.revisionRuleOnLoad();
     },
     // 鐗堟湰鍙傜収鍒楄〃鐨勯粯璁ゆ煡璇㈡柟娉�
-    revisionRuleOnLoad(){
+    revisionRuleOnLoad() {
       this.revisionRef.loading = true;
       getPage().then(res => {
         this.revisionRef.data = res.data.data.records;
-      });
-      setTimeout(() => {
         this.revisionRef.loading = false;
-      }, 600)
-      this.$nextTick(() => {
-        this.$refs.revisionRef.refreshTable();
       });
+
+      // this.$nextTick(() => {
+      //   this.$refs.revisionRef.refreshTable();
+      // });
     },
     // 鎵撳紑鐗堟湰瑙勫垯鍙傜収
     openLifeCycle() {
@@ -643,14 +708,12 @@
       this.lifeCycleOnLoad();
     },
     // 鐢熷懡鍛ㄦ湡鍒楄〃鐨勯粯璁ゆ煡璇㈡柟娉�
-    lifeCycleOnLoad(){
+    lifeCycleOnLoad() {
       this.lifeCycleRef.loading = true;
       getList().then(res => {
         this.lifeCycleRef.data = res.data.data.records;
-      });
-      setTimeout(() => {
         this.lifeCycleRef.loading = false;
-      }, 600)
+      });
       this.$nextTick(() => {
         this.$refs.lifeCycleRef.refreshTable();
       });
@@ -669,7 +732,9 @@
       this.btmType.revisionRuleId = this.revisionRef.selectData.id;
       this.btmType.revisionRuleName = this.revisionRef.selectData.name;
       this.btmType.inputRevisionFlag = false;
+      this.ruleHandler()
       this.cancelRevision();
+
     },
     // 纭閫変腑鐢熷懡鍛ㄦ湡
     confirmLifeCycle() {
@@ -677,6 +742,7 @@
       this.btmType.lifeCycleId = this.lifeCycleRef.selectData.id;
       this.btmType.lifeCycleName = this.lifeCycleRef.selectData.name;
       this.cancelLifeCycle();
+      this.lifeCycleHandler()
     },
     // 鍙栨秷閫変腑鐗堟湰瑙勫垯
     cancelRevision() {
@@ -729,16 +795,16 @@
      * @param params 鎼滅储妗嗚緭鍏ュ��  {id: '',name: ''} 鐩存帴鑾峰彇灏辫
      * @param done 鎵ц瀹屾垚鍚庣殑鍥炶皟
      */
-    searchRevisionRule(params,done){
+    searchRevisionRule(params, done) {
       let condition = {};
-      if (params.id){
-          condition['id_like'] = params.id;
+      if (params.id) {
+        condition['id_like'] = params.id;
       }
-      if (params.name){
-          condition['name_like'] = params.name;
+      if (params.name) {
+        condition['name_like'] = params.name;
       }
       this.revisionRef.loading = true;
-      getPage(this.revisionRef.page.currentPage,this.revisionRef.page.pageSize,condition).then(res => {
+      getPage(this.revisionRef.page.currentPage, this.revisionRef.page.pageSize, condition).then(res => {
         this.revisionRef.data = res.data.data.records;
       });
       setTimeout(() => {
@@ -754,16 +820,16 @@
      * @param params 鎼滅储妗嗚緭鍏ュ��
      * @param done 鎵ц瀹屾垚鍚庣殑鍥炶皟
      */
-    searchLifeCycle(params,done){
+    searchLifeCycle(params, done) {
       let condition = {};
-      if (params.id){
+      if (params.id) {
         condition['id_like'] = params.id;
       }
-      if (params.name){
+      if (params.name) {
         condition['name_like'] = params.name;
       }
       this.lifeCycleRef.loading = true;
-      getList(this.lifeCycleRef.page.currentPage,this.lifeCycleRef.page.pageSize,condition).then(res => {
+      getList(this.lifeCycleRef.page.currentPage, this.lifeCycleRef.page.pageSize, condition).then(res => {
         this.lifeCycleRef.data = res.data.data.records;
       });
       setTimeout(() => {
@@ -775,11 +841,11 @@
       });
     },
     // 鍙栨秷鐗堟湰瑙勫垯鎼滅储
-    clearSearchRevisionRule(item){
+    clearSearchRevisionRule(item) {
       this.revisionRuleOnLoad();
     },
     // 鍙栨秷鐢熷懡鍛ㄦ湡鎼滅储
-    clearSearchLifeCycle(item){
+    clearSearchLifeCycle(item) {
       this.lifeCycleOnLoad();
       console.log(item);
     }

--
Gitblit v1.9.3