From 3e20408521d46b1086a5e77b914d04afb9630ab0 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 28 七月 2023 10:37:02 +0800
Subject: [PATCH] 主题库开启编辑分类注入bug

---
 Source/UBCS-WEB/src/components/Tree/attrCrud.vue |  291 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 173 insertions(+), 118 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/Tree/attrCrud.vue b/Source/UBCS-WEB/src/components/Tree/attrCrud.vue
index 24b66f7..8f655e7 100644
--- a/Source/UBCS-WEB/src/components/Tree/attrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -1,41 +1,52 @@
 <template>
   <div>
-    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag"class="app">
-
+    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag" class="app">
+      <el-button-group>
       <!--鏂板-->
-      <el-button v-if="attrEditVisible == false && attrFlagChiledren==false && (!checkStatus || crudLCStatus=='Editing')" size="small" type="primary" icon="el-icon-plus" @click="busineHandle">娣诲姞 {{ msg }}</el-button>
+      <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>
       <!--        鍏ㄥ睆缂栬緫-->
-      <el-button v-if=" attrEditVisible == false && attrFlagChiledren==false && (!checkStatus || crudLCStatus=='Editing')" size="small" @click="fullscreenHandle" icon="el-icon-full-screen">鍏ㄥ睆缂栬緫</el-button>
+      <el-button v-if=" attrEditVisible == false && attrFlagChiledren==false && editOpenFlag&&(!checkStatus || crudLCStatus=='Editing')" size="small" @click="fullscreenHandle" icon="el-icon-full-screen">鍏ㄥ睆缂栬緫</el-button>
       <!--        楠岃瘉瑙勫垯-->
-      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-info" size="small" @click="ruleAddHandler">楠岃瘉瑙勫垯</el-button>
+      <el-button v-if="(!checkStatus || crudLCStatus=='Editing' )&& editOpenFlag" icon="el-icon-info" size="small" @click="ruleAddHandler">楠岃瘉瑙勫垯</el-button>
       <!--        灞炴�у垎缁�-->
-      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-menu" size="small" @click="attrVisibleHandle">灞炴�у垎缁�</el-button>
-
-
+      <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-menu" size="small" @click="attrVisibleHandle">灞炴�у垎缁�</el-button>
+      </el-button-group>
+      <el-button-group>
+        <!--鏂板-->
       <!--        鍒嗙被娉ㄥ叆-->
-      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-magic-stick" size="small" @click="injectBtn">鍒嗙被娉ㄥ叆</el-button>
+      <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag"  icon="el-icon-magic-stick" size="small" @click="injectBtn">鍒嗙被娉ㄥ叆</el-button>
         <!--    缁勫悎瑙勫垯-->
-        <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="isShowHandler">缁勫悎瑙勫垯</el-button>
+        <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-film" size="small" @click="isShowHandler">缁勫悎瑙勫垯</el-button>
       <!--        鏋氫妇娉ㄥ叆-->
-      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="enmuVisHandle">鏋氫妇娉ㄥ叆</el-button>
+      <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-c-scale-to-original" size="small" @click="enmuVisHandle">鏋氫妇娉ㄥ叆</el-button>
       <!--    绾ц仈灞炴��-->
-      <el-button v-if="!checkStatus|| crudLCStatus=='Editing'" size="small" @click="CascadeHandle">绾ц仈灞炴��</el-button>
+      <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-coin" size="small" @click="CascadeHandle">绾ц仈灞炴��</el-button>
+      </el-button-group>
+      <el-button-group>
       <!--    棰勮鎺掑簭-->
         <el-button size="small" @click="orderHandle" icon="el-icon-arrow-down">棰勮鎺掑簭</el-button>
-
-
+        <!--鏂板-->
       <!--    淇濆瓨-->
-      <el-button v-if="!checkStatus|| crudLCStatus=='Editing'" size="small" @click="addsHandler" icon="el-icon-check">淇濆瓨</el-button>
+      <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" size="small" @click="addsHandler" icon="el-icon-check">淇濆瓨</el-button>
       <!--    鍒犻櫎-->
-      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="CrudRemove" icon="el-icon-delete">鍒犻櫎</el-button>
+      <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" size="small" @click="CrudRemove" icon="el-icon-delete">鍒犻櫎</el-button>
       <!--    閲嶇疆-->
       <el-button size="small" @click="reset" icon="el-icon-refresh-right">閲嶇疆</el-button>
+      </el-button-group>
+      <el-button-group>
       <!--    鍚屾鍒板叾浠栨ā鏉�-->
       <el-button size="small"@click="syncHandle" icon="el-icon-share">鍚屾鍒板叾浠栨ā鏉�</el-button>
+      </el-button-group>
 
+      <el-button-group>
       <!--    缂栫爜鐢宠棰勮-->
-      <el-button size="small" @click="applicationHandle" style="">缂栫爜鐢宠棰勮</el-button>
-      <!--        楠岃瘉瑙勫垯-->
+      <el-button size="small" icon="el-icon-view" @click="applicationHandle" style="">缂栫爜鐢宠棰勮</el-button>
+
+      </el-button-group>
+      <!-- 鏄惁寮�鍚紪杈�     -->
+    <el-button-group>
+      <el-button size="small" plain  icon="el-icon-view"  v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag" @click="editOpen" >寮�鍚紪杈�</el-button>
+    </el-button-group>
     </div>
 <!--    寮圭獥-->
     <div>
@@ -115,23 +126,23 @@
           <div style="padding-top: 15px;padding-left: 35px">
             <el-form ref="injectForm" label-width="80px">
               <el-form-item label="娉ㄥ叆绫诲瀷">
-                <el-radio-group v-model="injectOption.type">
-                  <el-radio label="鍒嗙被鍚嶇О"></el-radio>
-                  <el-radio label="鍒嗙被浠e彿"></el-radio>
+                <el-radio-group v-model="injectOption.classifyInvokeAttr">
+                  <el-radio label="name">鍒嗙被鍚嶇О</el-radio>
+                  <el-radio label="id">鍒嗙被浠e彿</el-radio>
                 </el-radio-group>
               </el-form-item>
               <el-form-item label="灞傜骇璁剧疆">
-                <el-radio-group v-model="injectOption.set">
-                  <el-radio label="鏈�灏忓眰"></el-radio>
-                  <el-radio label="鎸囧畾灞�"></el-radio>
-                  <el-input-number v-if="this.injectOption.set == '鎸囧畾灞�'" v-model="injectOption.injectNum" :max="10" :min="0"
+                <el-radio-group v-model="injectOption.classifyInvokeLevel">
+                  <el-radio label="min">鏈�灏忓眰</el-radio>
+                  <el-radio label="max">鎸囧畾灞�</el-radio>
+                  <el-input-number v-if="this.injectOption.classifyInvokeLevel == 'max'" v-model="injectOption.classifyNumber" :max="10" :min="0"
                                    controls-position="right"></el-input-number>
                 </el-radio-group>
               </el-form-item>
               <el-form-item label="鍙慨鏀�">
-                <el-radio-group v-model="injectOption.change">
-                  <el-radio label="鏄�"></el-radio>
-                  <el-radio label="鍚�"></el-radio>
+                <el-radio-group v-model="injectOption.classifyInvokeEditFlag">
+                  <el-radio label="true">鏄�</el-radio>
+                  <el-radio label="false">鍚�</el-radio>
                 </el-radio-group>
               </el-form-item>
             </el-form>
@@ -246,6 +257,7 @@
               @selection-change="selectionChange"
               v-if="this.crudArrayFlag"
               ref="referAttrCrud"
+              v-loading="loading"
     >
       <el-table-column
         type="selection"
@@ -265,7 +277,7 @@
       >
         <template slot-scope="{ row }">
           <el-input v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text'  ||item.edit == 'refer' )" v-model="row[item.prop]"
-                    @blur="saveRows"></el-input>
+                    @blur="saveRows" ></el-input>
           <el-input-number size="small" controls-position="right" v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" v-model="row[item.prop]"
                            @blur="saveRows" :style="{width:(item.width-10)+'px'}"></el-input-number>
           <el-select v-model="row[item.prop]" filterable  allow-create  default-first-option slot="prepend" v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " @blur="selectChangeHandler(item.editConfig,index)">
@@ -277,7 +289,7 @@
             </el-option>
           </el-select>
           <el-switch
-            v-if="item.edit === 'switch'" v-model="row[item.prop]" active-value="true"
+            v-if="item.edit === 'switch'" v-model="row[item.prop]" active-value="true" :disabled="!editOpenFlag"
             inactive-value="false">
           </el-switch>
           <span v-else>{{ row[item.prop] }}</span>
@@ -318,6 +330,10 @@
       type: Boolean,
       default: false
     },
+    editOpenFlag:{
+      type: Boolean,
+      default: false
+    },
     crudLCStatus: {
       type: String,
       default: 'Editing'
@@ -354,10 +370,28 @@
       },
       deep:true,
       immediate:true
+    },
+    'injectOption.classifyInvokeAttr': function(newVal) {
+      console.log('newVal',newVal)
+      if (newVal === "name") {
+        this.injectOption.classifyInvokeAttrName='鍒嗙被鍚嶇О'
+      } else if (newVal === "id") {
+        this.injectOption.classifyInvokeAttrName='鍒嗙被浠e彿'
+      }
+      return '';
+    },
+    editOpenFlag:{
+      handler(newval,oldval){
+        console.log(newval)
+      },
+      deep:true,
+      immediate:true
     }
+
   },
   data() {
     return {
+      loading:false,
       referConfigText:"",
       referConfigVisble:false,
       referConfigOption:{
@@ -787,11 +821,12 @@
       addvisible: false,
       //鍒嗙被娉ㄥ叆option
       injectOption: {
-        type: "鍒嗙被鍚嶇О",
-        set: "鏈�灏忓眰",
-        change: "鏄�",
+        classifyInvokeAttrName:'鍒嗙被鍚嶇О',
+        classifyInvokeAttr: "name",
+        classifyInvokeEditFlag: "true",
+        classifyInvokeLevel:'min',
         //鍒嗙被娉ㄥ叆璁℃暟鍣�
-        injectNum: 0,
+        classifyNumber:0,
       },
       // 灞炴�ч獙璇佽緭鍏ユ
       RulesForm: {
@@ -1220,15 +1255,9 @@
           },
           {
             label: "鍒嗙被娉ㄥ叆",
-            prop: "classifyInvokeLevelName",
+            prop: "classifyInvokeText",
             cell: false,
             edit: 'refer'
-          },
-          {
-            label: "鍒嗙被娉ㄥ叆",
-            prop: "classifyInvokeLevel",
-            cell: false,
-            edit: 'referName',
           },
           {
             label: "鏋氫妇娉ㄥ叆",
@@ -1357,7 +1386,7 @@
         oids.push(ele.oid);
       });
       return oids.join(",");
-    }
+    },
   },
   mounted() {
   },
@@ -1435,7 +1464,12 @@
     CrudRend() {
       if (this.crudOid != '') {
         gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.crudOid}).then(res => {
-          this.ProData = res.data.data;
+          this.loading=true
+          setTimeout(() => {
+            this.ProData = res.data.data;
+            this.loading=false
+          }, 1000);
+
         }).catch(res => {
           this.$message.error(res)
         })
@@ -1563,50 +1597,52 @@
 
     //琛ㄦ牸琛岀紪杈�
     handleCellClicks(row, column) {
-        this.editingRows = row;
-        this.editShows = column.property;
-        this.rowOid = row.oid;
-      this.CurrentCell=row;
-      if(column.property == 'referConfig' ){
-        this.referConfigVisble= true;
-        this.referConfigOption = {
-          referConfig: this.referConfigText || '',
-        }
-        if(this.CurrentCell.referConfig == ''){
-          this.referConfigOption = {
-            referConfig:'',
-          }
-        }
-        console.log('--',this.referConfigOption)
-        // this.$refs.referConfigFormDialog.onloadAttrData();
-      }else if(column.property == 'classifyInvokeLevelName'){
-        this.injectVisible=true;
-      }else if(column.property == 'componentRule'){
-        if(this.CurrentCell){
-          this.CurrentCell.componentRule=this.componentRuleText;
-        }
-        this.isShowformulaEdit = true;
-      }else if(column.property == 'enumString'){
-        this.enumVisible=true;
-        if(this.attrSelectList[0].enumString != ""){
-          this.tableData=JSON.parse(this.attrSelectList[0].enumString)
-          return
-        }
-      }else if(column.property == 'parentCode'){
-        gridCodeClassifyTemplateAttr({
-          'conditionMap[classifyTemplateOid]': this.Formlist[0].oid,
-          'conditionMap[oid_notequal]': this.CurrentCell.oid
-        }).then(res => {
-          console.log(res)
-          this.CascadeData = res.data.data;
-        })
-        this.CascadeVisible=true;
-      }else if(column.property == 'verifyRule'){
-        this.RulesForm.expressionTextt=this.CurrentCell.verifyRule;
-        this.rulesVisible=true;
-        console.log(this.CurrentCell.verifyRule)
-        console.log(this.RulesForm.expressionText)
-      }
+       if(this.editOpenFlag){
+         this.editingRows = row;
+         this.editShows = column.property;
+         this.rowOid = row.oid;
+         this.CurrentCell=row;
+         if(column.property == 'referConfig' ){
+           this.referConfigVisble= true;
+           this.referConfigOption = {
+             referConfig: this.referConfigText || '',
+           }
+           if(this.CurrentCell.referConfig == ''){
+             this.referConfigOption = {
+               referConfig:'',
+             }
+           }
+           console.log('--',this.referConfigOption)
+           // this.$refs.referConfigFormDialog.onloadAttrData();
+         }else if(column.property == 'classifyInvokeText'){
+           this.injectVisible=true;
+         }else if(column.property == 'componentRule'){
+           if(this.CurrentCell){
+             this.CurrentCell.componentRule=this.componentRuleText;
+           }
+           this.isShowformulaEdit = true;
+         }else if(column.property == 'enumString'){
+           this.enumVisible=true;
+           if(this.attrSelectList[0].enumString != ""){
+             this.tableData=JSON.parse(this.attrSelectList[0].enumString)
+             return
+           }
+         }else if(column.property == 'parentCode'){
+           gridCodeClassifyTemplateAttr({
+             'conditionMap[classifyTemplateOid]': this.Formlist[0].oid,
+             'conditionMap[oid_notequal]': this.CurrentCell.oid
+           }).then(res => {
+             console.log(res)
+             this.CascadeData = res.data.data;
+           })
+           this.CascadeVisible=true;
+         }else if(column.property == 'verifyRule'){
+           this.RulesForm.expressionTextt=this.CurrentCell.verifyRule;
+           this.rulesVisible=true;
+           console.log(this.CurrentCell.verifyRule)
+           console.log(this.RulesForm.expressionText)
+         }
+       }
     },
     saveRows() {
       this.editingRows = null;
@@ -1731,34 +1767,58 @@
         this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉挎暟鎹�')
       } else if (this.attrSelectList.length === 1) {
         this.injectVisible = true;
-
       }
     },
     //鍒嗙被娉ㄥ叆淇濆瓨
     injectAddHandle() {
+      // 瀹氫箟灞曠ず绫诲瀷
       let data = {
-        "娉ㄥ叆绫诲瀷": this.injectOption.type,
-        "娉ㄥ叆绫诲瀷鍚嶇О": this.injectOption.set,
-        "灞傜骇璁剧疆": this.injectOption.injectNum,
-        "鏄惁鍙慨鏀�": this.injectOption.change
+        "娉ㄥ叆绫诲瀷": this.injectOption.classifyInvokeAttr,
+        "娉ㄥ叆绫诲瀷鍚嶇О": this.injectOption.classifyInvokeAttrName,
+        "灞傜骇璁剧疆": this.injectOption.classifyInvokeLevel=='max'?this.injectOption.classifyNumber :'min',
+        "鏄惁鍙慨鏀�": this.injectOption.classifyInvokeEditFlag
       }
+      //鍗曞厓鏍肩紪杈戣祴鍊间竴閬�
+      // noinspection JSCheckFunctionSignatures
       if(this.CurrentCell){
-        this.$set(this.CurrentCell, "classifyInvokeLevelName", data);
-        this.$set(this.CurrentCell, "classifyInvokeLevel", JSON.stringify(this.injectOption));
+        //濡傛灉鏄寚瀹氬眰璧嬪�间负鏁板瓧
+        if(this.CurrentCell.classifyInvokeLevel!== 'min'){
+          this.CurrentCell.classifyInvokeLevel=this.injectOption.classifyNumber
+        }
+        //鍏朵綑姝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 {
-        this.$set(this.attrSelectList[0], 'classifyInvokeLevelName', data);
-        this.$set(this.attrSelectList[0], 'classifyInvokeLevel', JSON.stringify(this.injectOption));
+        //鍕鹃�夋搷浣�
+        for (const key in this.injectOption) {
+          this.attrSelectList[0][key] = this.injectOption[key];
+          //濡傛灉鏄寚瀹氬眰璧嬪�间负鏁板瓧
+          if(this.injectOption.classifyInvokeLevel !== 'min'){
+            this.attrSelectList[0].classifyInvokeLevel=this.injectOption.classifyNumber
+          }
+          this.$set(this.attrSelectList[0],'classifyInvokeText',data)
+        }
         this.injectHandleReset()
       }
-      this.injectVisible = false
+      if(this.injectOption.classifyInvokeLevel !== 'min'){
+        this.injectOption.classifyInvokeLevel=this.injectOption.classifyNumber;
+      }else  {
+        this.injectOption.classifyNumber=0;
+      }
+      this.injectVisible = false;
+
     },
     //鍒嗙被娉ㄥ叆娓呯┖
     injectHandleReset() {
-      this.injectOption.type = "鍒嗙被鍚嶇О";
-      this.injectOption.set = "鏈�灏忓眰";
-      this.injectOption.change = "鏄�";
-      this.injectOption.injectNum = "0";
+      this.injectOption.classifyInvokeAttrName = "鍒嗙被鍚嶇О";
+      this.injectOption.classifyInvokeAttr = "name";
+      this.injectOption.classifyInvokeLevel = "min";
+      this.injectOption.classifyInvokeEditFlag = "true";
+      this.injectOption.classifyNumber = "0";
     },
     // 鍒嗙被娉ㄥ叆鍙栨秷
     injectRemove() {
@@ -1778,12 +1838,7 @@
     },
     //琛ㄦ牸閲嶇疆
     reset() {
-      // this.CrudRend(
-      this.referConfigVisble=true;
-      this.referConfigOption = {
-        referConfig: 'confing',
-      }
-      console.log(this.referConfigOption)
+      this.CrudRend()
     },
     //鍚屾鍒板叾浠栨ā鏉�
     syncHandle() {
@@ -1847,16 +1902,12 @@
     // 鎺掑簭
     sortChange(val) {
       console.log(val)
-      // switch (val.order) {
-      //   // case "ascending":
-      //   //   this.data = this.data.sort((a,b) => { return b['name'].localeCompare(a['name']) })
-      //   //   this.data = this.data.sort((a,b) => { return b['id'].localeCompare(a['id']) })
-      //   //   break;
-      //   // case "descending":
-      //   //   this.data = this.data.sort((a,b) => { return a['name'].localeCompare(b['name']) })
-      //   //   this.data = this.data.sort((a,b) => { return a['id'].localeCompare(b['id']) })
-      //   //   break;
-      // }
+    },
+    editOpen(){
+      this.editOpenFlag=true;
+      console.log('涓嶇瓑浜�',this.checkStatus)
+      console.log('绛変簬',this.editOpenFlag)
+      console.log('绛変簬',this.crudLCStatus)
     }
   }
 }
@@ -1865,7 +1916,11 @@
 <style scoped lang="scss" >
 .app {
    /deep/ .el-button {
-   margin: 0 10px 10px 0;
+   //margin: 0 10px 10px 0;
    }
 }
+.el-button-group {
+  margin-right: 10px;
+  margin-bottom: 10px;
+}
 </style>

--
Gitblit v1.9.3