From ae7248eb618da8235068bc6a3ea2abbad44f4f07 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 03 八月 2023 18:10:44 +0800
Subject: [PATCH] 主题库模板属性 流程 阶段样式优化

---
 Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue |  191 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 122 insertions(+), 69 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
index 3f35190..b18084c 100644
--- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -1,7 +1,6 @@
 <template>
   <div>
-    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag" class="app">
-
+    <div style="display: flex;flex-wrap: wrap; display: inline-block" v-if="this.crudArrayFlag" class="app" >
       <el-button-group>
       <!--鏂板-->
       <el-button v-if="attrEditVisible == false && attrFlagChiledren==false && editOpenFlag &&  (!checkStatus || crudLCStatus=='Editing' )" size="small" type="primary" icon="el-icon-plus" plain @click="busineHandle">娣诲姞 {{ msg }}</el-button>
@@ -14,7 +13,7 @@
       </el-button-group>
       <el-button-group>
         <!--    淇濆瓨-->
-        <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" size="small" type="success" plain @click="addsHandler" icon="el-icon-check">淇濆瓨</el-button>
+        <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" size="small" type="success" plain @click.prevent="addsHandler" icon="el-icon-check">淇濆瓨</el-button>
         <!--    棰勮鎺掑簭-->
         <el-button size="small" @click="orderHandle" icon="el-icon-arrow-down">棰勮鎺掑簭</el-button>
         <!--    鍒犻櫎-->
@@ -89,6 +88,12 @@
       <el-dialog :visible.sync="enumVisible" append-to-body title="鏋氫妇娉ㄥ叆" :before-close="this.enumBeforeClose">
         <!-- 娓叉煋琛ㄦ牸鍙婃寜閽� -->
         <!-- 娓叉煋琛ㄦ牸鍙婃寜閽� -->
+        <el-alert
+          title="璇锋柊澧炲悗鐐瑰嚮鍗曞厓鏍艰緭鍏ユ灇涓炬暟鎹�"
+          type="success"
+          style="margin-bottom: 10px;display: inline-block"
+          :closable="false">
+        </el-alert>
         <div>
           <el-button icon="el-icon-plus" type="primary" @click="addRow">鏂板</el-button>
           <el-table :data="tableData" style="width: 100%" @cell-click="handleCellClick"
@@ -166,11 +171,11 @@
         </div>
       </el-dialog>
       <!--        灞炴�у垎缁�-->
-      <el-dialog :visible.sync="attrVisible" append-to-body style="width: 800px; left:30vw;top: 10vh ;"
+      <el-dialog :visible.sync="attrVisible" append-to-body :before-close="attrClose" style="width: 800px; left:30vw;top: 10vh ;"
                  title="杈撳叆鍒嗙粍鐨勫悕绉�">
         <el-form ref="form" label-width="70px">
           <el-form-item label="灞炴�у垎缁�">
-            <el-input v-model="attrModel"></el-input>
+            <el-input v-model="attrModel" autofocus></el-input>
           </el-form-item>
           <div style="display: flex;justify-content: flex-end">
             <el-button size="small" type="primary" @click="attrHandle">鎻愪氦</el-button>
@@ -218,7 +223,7 @@
       </el-dialog>
       <!--        鍏ㄥ睆缂栬緫-->
       <el-dialog :visible.sync="attrEditVisible" append-to-body fullscreen="true" :before-close="escEdit" >
-        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :editStyleFlag="editStyleFlag" :editOpenFlag="editOpenFlag" :crudArrayFlag="this.crudArrayFlag"></attrCrud>
+        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" @editCloseChildren="editClose" :editStyleFlag="editStyleFlag" :editOpenFlag="editOpenFlag" :crudArrayFlag="this.crudArrayFlag"></attrCrud>
       </el-dialog>
       <!--      缁勫悎瑙勫垯-->
       <formula-editor :systemVariableTableData="systemVariableTableData"
@@ -327,6 +332,7 @@
 <script>
 import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto,listByFlag} from '@/api/template/templateAttr'
 import {getList} from "@/api/refer/table";
+import func from "@/util/func";
 
 export default {
   name: "attrCrud .vue",
@@ -414,7 +420,6 @@
       }
     },
     'injectOption.classifyInvokeAttr': function(newVal) {
-      console.log('newVal',newVal)
       if (newVal === "name") {
         this.injectOption.classifyInvokeAttrName='鍒嗙被鍚嶇О'
       } else if (newVal === "id") {
@@ -1485,9 +1490,6 @@
     })
   },
   methods: {
-    formAttr(row, column) {
-      console.log(row,column)
-    },
     //鏂板鎼滅储
     AddFindHandler(){
       if(this.SelectValue == 'id'){
@@ -1508,7 +1510,6 @@
     },
     //鍙傜収閰嶇疆瀛愮粍浠�
     echoReferConfig(val){
-      console.log('val--',val)
       this.referObject=val
       this.$set(this.CurrentCell,'referConfig',JSON.stringify(val))
 
@@ -1529,12 +1530,10 @@
         this.$message.warning('璇烽�夋嫨妯℃澘灞炴��')
       } else  {
         this.attrVisible = true;
-       console.log(this.attrSelectList)
       }
     },
     //灞炴�у垎缁勬彁浜�
     attrHandle() {
-      console.log(this.attrSelectList)
       this.attrSelectList.forEach(item=>{
         item.attributeGroup=this.attrModel
       })
@@ -1543,12 +1542,15 @@
       }else {
         this.$set(this.attrSelectList[0], 'attributeGroup', this.attrModel)
       }
-      this.attrModel = "";
-      this.attrVisible = false;
+      this.attrClose()
     },
     //灞炴�у垎缁勬竻绌�
     attrRemove() {
       this.attrModel = ""
+    },
+    attrClose(){
+      this.attrModel = "";
+      this.attrVisible=false
     },
     //琛ㄦ牸鏁版嵁
     CrudRend() {
@@ -1611,7 +1613,6 @@
     //涓氬姟绫诲瀷閫夋嫨
     businessSelect(selection, row) {
       this.busineSelectList = selection;
-      console.log(selection)
     },
     // 浠庝笟鍔$被鍨嬩腑閫夋嫨鏁版嵁寮圭獥
     busineHandle() {
@@ -1670,7 +1671,6 @@
     selectHandle(selection, row) {
       this.attrOid = row.oid;
       this.attrRow = row;
-      console.log(row)
     },
     //琛ㄦ牸閫夋嫨
     selectionChange(list) {
@@ -1686,15 +1686,65 @@
       this.attrRow = row;
     },
     //淇濆瓨
-    addsHandler() {
-      batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => {
-        this.$message.success('淇濆瓨鎴愬姛')
-        this.editOpenFlag=false
-      }).catch(()=>{
-        this.$message.warning('淇濆瓨澶辫触锛岃鏌ョ湅鎺у埗鍙拌緭鍑猴紒')
+    addsHandler(event) {
+      this.$refs.referAttrCrud.sort("orderNum");
+      var ischeck = true;
+      console.log(this.ProData)
+      this.ProData.forEach((item,index)=>{
+        if((item.requireFlag && item.requireFlag.toString()=='true') && (item.readOnlyFlag && item.readOnlyFlag.toString()=='true')){
+          this.$message.warning(item.name+"("+item.id+")蹇呰緭鐨勫睘鎬т笉鑳芥槸鍙");
+          console.log(item)
+          ischeck=false;
+          return;
+        }
+        var num=0;
+        if(item.componentRule){
+          //缁勫悎瑙勫垯
+          num++
+        }
+        if(item.enumString || item.enumId){
+          //鏋氫妇
+          num++
+        }
+        if(item.referConfig || item.referBtmId){
+          //鍙傜収
+          num++
+        }
+        if(item.codeDateFormat){
+          //鏃堕棿鏍煎紡
+          num++
+        }
+        if(item.classifyInvokeLevel){
+          //鍒嗙被娉ㄥ叆
+          num++
+        }
+        if(num>1 && ischeck){
+          this.$message({
+            showClose: true,
+            message: item.name+"("+item.id+") 灞炴�у彧鑳芥槸缁勫悎瑙勫垯锛屾灇涓撅紝鍙傜収锛屾椂闂存牸寮忥紝鍒嗙被娉ㄥ叆涓殑涓�绉�",
+            type: 'warning'
+          });
+          ischeck=false;
+          return;
+        }
       })
+      if(!ischeck){
+        return ;
+      }
+      // 鏂板嚱鏁扮敤浜庢墽琛宐atchAddSave鏂规硶
+      const executeBatchAddSave = () => {
+        batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => {
+          this.$message.success('淇濆瓨鎴愬姛')
+          this.editOpenFlag=false;
+          // 璋冪敤鐖剁粍浠朵慨鏀规寜閽姸鎬�
+          this.$emit('editCloseChildren')
+        }).catch(()=>{
+          this.$message.warning('淇濆瓨澶辫触锛岃鏌ョ湅鎺у埗鍙拌緭鍑猴紒')
+        });
+      }
+      // 鎵�鏈塱f鏉′欢鍜岄�昏緫閫氳繃鍚庤皟鐢╡xecuteBatchAddSave鍑芥暟
+      executeBatchAddSave();
     },
-
     //琛ㄦ牸琛岀紪杈�
     handleCellClicks(row, column) {
        if(this.editOpenFlag){
@@ -1712,10 +1762,20 @@
                referConfig:'',
              }
            }
-           console.log('--',this.referConfigOption)
            // this.$refs.referConfigFormDialog.onloadAttrData();
          }else if(column.property == 'classifyInvokeText'){
            this.injectVisible=true;
+           if (this.CurrentCell.classifyInvokeAttr != '') {
+             this.injectOption = {
+               classifyInvokeAttr: this.CurrentCell.classifyInvokeAttr,
+               classifyInvokeAttrName: this.CurrentCell.classifyInvokeAttrName,
+               classifyInvokeEditFlag: this.CurrentCell.classifyInvokeEditFlag,
+               classifyInvokeLevel: this.CurrentCell.classifyInvokeLevel == 'min' ? 'min' : 'max',
+               classifyNumber: this.CurrentCell.classifyInvokeLevel == 'min' ? '' : this.CurrentCell.classifyInvokeLevel
+             };
+           } else {
+             this.injectHandleReset();
+           }
          }else if(column.property == 'componentRule'){
            if(this.CurrentCell){
              this.CurrentCell.componentRule=this.componentRuleText;
@@ -1733,7 +1793,6 @@
              'conditionMap[oid_notequal]': this.CurrentCell.oid,
              limit:-1
            }).then(res => {
-             console.log(res)
              this.CascadeData = res.data.data;
            })
            this.CascadeVisible=true;
@@ -1742,6 +1801,9 @@
            this.rulesVisible=true;
          }else if(column.property == 'attributeGroup'){
            this.attrVisible = true;
+           if(this.CurrentCell.attributeGroup !== ''){
+                this.attrModel=this.CurrentCell.attributeGroup
+           }
          }
        }
     },
@@ -1793,29 +1855,33 @@
     },
     //鏋氫妇娉ㄥ叆淇濆瓨
     enumAddHandle() {
-      let hasError = false; // 娣诲姞涓�涓彉閲�
-      this.tableData.forEach((item, index) => {
-        if (item.key === '') {
-          this.$message.warning(`绗�${index + 1}琛岀殑閫夐」鍊间笉鑳戒负绌篳);
-          hasError = true;
-          return;
-        } else if (item.value === '') {
-          this.$message.warning(`绗�${index + 1}琛岀殑閫夐」涓枃鏍囩涓嶈兘涓虹┖`);
-          hasError = true;
-          return;
-        }
-      });
-        // 淇濆瓨鎵ц閫昏緫
-      if (!hasError) {
-        if (this.CurrentCell) {
-          this.$set(this.CurrentCell, 'enumString', JSON.stringify(this.tableData));
-          this.enumVisible = false;
-        } else {
-          this.$set(this.attrSelectList[0], 'enumString', JSON.stringify(this.tableData));
-          this.tableData=[];
-          this.enumVisible = false;
-        }
-      }
+     if(this.tableData.length>=1){
+       let hasError = false; // 娣诲姞涓�涓彉閲�
+       this.tableData.forEach((item, index) => {
+         if (item.key === '') {
+           this.$message.warning(`绗�${index + 1}琛岀殑閫夐」鍊间笉鑳戒负绌篳);
+           hasError = true;
+           return;
+         } else if (item.value === '') {
+           this.$message.warning(`绗�${index + 1}琛岀殑閫夐」涓枃鏍囩涓嶈兘涓虹┖`);
+           hasError = true;
+           return;
+         }
+       });
+       // 淇濆瓨鎵ц閫昏緫
+       if (!hasError) {
+         if (this.CurrentCell) {
+           this.$set(this.CurrentCell, 'enumString', JSON.stringify(this.tableData));
+           this.enumVisible = false;
+         } else {
+           this.$set(this.attrSelectList[0], 'enumString', JSON.stringify(this.tableData));
+           this.tableData=[];
+           this.enumVisible = false;
+         }
+       }
+     }else {
+       this.$message.warning('璇锋坊鍔犳灇涓炬敞鍏ユ暟鎹紒')
+     }
     },
     // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null锛屽嵆閫�鍑虹紪杈戠姸鎬�
     saveRow() {
@@ -1854,7 +1920,6 @@
     },
     //楠岃瘉瑙勫垯妫�鏌�
     rulesExamine() {
-      console.log(this.RulesForm.expressionText)
       const regex = new RegExp(this.rulesData.ruleRowBds);
       if(regex.test(this.RulesForm.TestContent)){
         this.$message.success('鏍¢獙鎴愬姛')
@@ -1879,23 +1944,6 @@
         "灞傜骇璁剧疆": this.injectOption.classifyInvokeLevel=='max'?this.injectOption.classifyNumber :'min',
         "鏄惁鍙慨鏀�": this.injectOption.classifyInvokeEditFlag
       }
-      //鍗曞厓鏍肩紪杈戣祴鍊间竴閬�
-      // noinspection JSCheckFunctionSignatures
-      if(this.CurrentCell){
-        //濡傛灉鏄寚瀹氬眰璧嬪�间负鏁板瓧
-        if(this.injectOption.classifyInvokeLevel!== 'min'){
-          this.CurrentCell.classifyInvokeLevel=this.injectOption.classifyNumber
-        }else {
-          this.CurrentCell.classifyInvokeLevel='min'
-        }
-        //鍏朵綑姝e父璧嬪��
-        this.CurrentCell.classifyInvokeAttr=this.injectOption.classifyInvokeAttr,
-        this.CurrentCell.classifyInvokeAttrName=this.injectOption.classifyInvokeAttrName,
-        this.CurrentCell.classifyInvokeEditFlag=this.injectOption.classifyInvokeEditFlag,
-        // this.$set(this.CurrentCell, 'classifyInvokeText', data)
-          this.CurrentCell.classifyInvokeText = data;
-        this.injectHandleReset()
-      }else {
         //鍕鹃�夋搷浣�
         for (const key in this.injectOption) {
           this.attrSelectList[0][key] = this.injectOption[key];
@@ -1908,7 +1956,7 @@
           this.$set(this.attrSelectList[0],'classifyInvokeText',data)
         }
         this.injectHandleReset()
-      }
+
       if(this.injectOption.classifyInvokeLevel !== 'min'){
         this.injectOption.classifyInvokeLevel=this.injectOption.classifyNumber;
       }else  {
@@ -1927,7 +1975,8 @@
     },
     // 鍒嗙被娉ㄥ叆鍙栨秷
     injectRemove() {
-      this.injectVisible = false
+      this.injectVisible = false;
+      this.injectHandleReset()
     },
     //灞炴�фā鏉胯〃鏍煎崟鍏冩牸鐐瑰嚮浜嬩欢
     //琛ㄦ牸鎿嶄綔鏍忓垹闄�
@@ -2014,6 +2063,10 @@
     editOpen(){
       this.editOpenFlag=true;
     },
+    //瀹氫箟涓�涓叧闂紪杈戠殑鏂规硶渚涘瓙缁勪欢浣跨敤
+    editClose(){
+      this.editOpenFlag=false;
+    },
     //鎵归噺璁剧疆switch
     batchSetFlag(value){
       this.attrSelectList.forEach(item=>{

--
Gitblit v1.9.3