From 7b2c9ff4d353c7cbfcd9a54bc56ec2b68c8c4912 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 01 八月 2023 17:21:04 +0800
Subject: [PATCH] 主题库分类树点击空白区域取消选择状态以及属性分组更改

---
 Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue |  207 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 141 insertions(+), 66 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
index 5fdbfbf..7a950f4 100644
--- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -1,6 +1,7 @@
 <template>
   <div>
     <div style="display: flex;flex-wrap: wrap;" 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>
@@ -10,6 +11,16 @@
       <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') && editOpenFlag" icon="el-icon-menu" size="small" @click="attrVisibleHandle">灞炴�у垎缁�</el-button>
+      </el-button-group>
+      <el-button-group>
+        <!--    淇濆瓨-->
+        <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>
+        <!--    鍒犻櫎-->
+        <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>
         <!--鏂板-->
@@ -22,17 +33,7 @@
       <!--    绾ц仈灞炴��-->
       <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') && editOpenFlag" size="small" @click="addsHandler" icon="el-icon-check">淇濆瓨</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>
@@ -47,6 +48,16 @@
     <el-button-group>
       <el-button size="small" plain  icon="el-icon-view"  v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false" @click="editOpen" >寮�鍚紪杈�</el-button>
     </el-button-group>
+      <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag"  size="small" v-model="selectvalue" placeholder="璇烽�夋嫨">
+        <el-option
+          v-for="item in selectoptions"
+          :key="item.value"
+          :label="item.label"
+          :value="item.value">
+        </el-option>
+      </el-select>
+      <el-switch v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag"  v-model="switchvalue" @change="batchSetFlag" active-value="true" style="margin:6px 0 0 10px">
+      </el-switch>
     </div>
 <!--    寮圭獥-->
     <div>
@@ -155,11 +166,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>
@@ -206,8 +217,8 @@
         </el-container>
       </el-dialog>
       <!--        鍏ㄥ睆缂栬緫-->
-      <el-dialog :visible.sync="attrEditVisible" append-to-body fullscreen="true">
-        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :editOpenFlag="editOpenFlag" :crudArrayFlag="this.crudArrayFlag"></attrCrud>
+      <el-dialog :visible.sync="attrEditVisible" append-to-body fullscreen="true" :before-close="escEdit" >
+        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" @editCloseChildren="editClose" :editStyleFlag="editStyleFlag" :editOpenFlag="editOpenFlag" :crudArrayFlag="this.crudArrayFlag"></attrCrud>
       </el-dialog>
       <!--      缁勫悎瑙勫垯-->
       <formula-editor :systemVariableTableData="systemVariableTableData"
@@ -251,10 +262,11 @@
     </div>
     <el-table :data="ProData"
               style="width: 100%"
-              :height="this.editStyleFlag ? 450 : 900"
+              :height="this.editStyleFlag? 800 : 343"
               @cell-click="handleCellClicks"
               @select="selectHandle"
               @selection-change="selectionChange"
+              @row-click="rowClick"
               v-if="this.crudArrayFlag"
               ref="referAttrCrud"
               v-loading="loading"
@@ -276,8 +288,8 @@
                        v-if="item.edit !='referName'"
       >
         <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>
+          <el-input ref="inputRef" v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text'  ||item.edit == 'refer' )" v-model="row[item.prop]"
+                    @blur="saveRows" autofocus ></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)">
@@ -330,7 +342,12 @@
       type: Boolean,
       default: false
     },
+    //鎺у埗鏄惁寮�鍚紪杈�
     editOpenFlag:{
+      type: Boolean,
+      default: false
+    },
+    editStyleFlag:{
       type: Boolean,
       default: false
     },
@@ -355,9 +372,16 @@
     crudArrayFlag:{
       type: Boolean,
       default: false
-    }
+    },
   },
   watch:{
+    crudOid:{
+      handler(newval,oldval){
+        if(newval){
+          this.editOpenFlag=false
+        }
+      }
+    },
     crudArray:{
       handler(newval,oldval){
         if(newval != undefined){
@@ -390,7 +414,6 @@
       }
     },
     'injectOption.classifyInvokeAttr': function(newVal) {
-      console.log('newVal',newVal)
       if (newVal === "name") {
         this.injectOption.classifyInvokeAttrName='鍒嗙被鍚嶇О'
       } else if (newVal === "id") {
@@ -400,7 +423,7 @@
     },
     editOpenFlag:{
       handler(newval,oldval){
-        console.log(newval)
+        console.log('editOpenFlag',newval)
       },
       deep:true,
       immediate:true
@@ -410,7 +433,7 @@
   data() {
     return {
       //鍏ㄥ睆缂栬緫楂樺害鐘舵��
-      edittStyleFlag:false,
+      editStyleFlag:false,
       loading:false,
       referConfigText:"",
       referConfigVisble:false,
@@ -508,7 +531,7 @@
           desc: "褰撳墠鐢ㄦ埛鐨勫鍚�"
         },
         {
-          formula: "#CURRENTUSER.SECRETGRADE#",
+          formula: "#CURRENTUSER.SECRETARIAT#",
           desc: "褰撳墠鐢ㄦ埛瀵嗙骇"
         },
         {
@@ -1389,7 +1412,50 @@
       codeDataFlag:false,
     //  缁勫悎瑙勫崟鍏冩牸缂栬緫鍥炲~
       componentRuleText:"",
-
+      //妯℃澘灞炴�т笅鎷夎缃畇witch
+      selectoptions: [{
+        value: 'keyAttrFlag',
+        label: '鍏抽敭灞炴��'
+      }, {
+        value: 'queryAttrFlag',
+        label: '鏌ヨ灞炴��'
+      }, {
+        value: 'seniorQueryAttrFlag',
+        label: '楂樼骇鏌ヨ灞炴��'
+      }, {
+        value: 'sameRepeatAttrFlag',
+        label: '鐩镐技鏌ラ噸灞炴��'
+      }, {
+        value: 'barcodeFlag',
+        label: '涓�缁寸爜'
+      }, {
+        value: 'qrcodeFlag',
+        label: '浜岀淮鐮�'
+      }, {
+        value: 'requireFlag',
+        label: '蹇呰緭'
+      }, {
+        value: 'formDisplayFlag',
+        label: '琛ㄥ崟鏄剧ず'
+      }, {
+        value: 'tableDisplayFlag',
+        label: '鍒楄〃鏄剧ず'
+      }, {
+        value: 'readonlyFlag',
+        label: '鍙'
+      }, {
+        value: 'sortAttrFlag',
+        label: '鍒楄〃鎺掑簭'
+      }, {
+        value: 'textareaFlag',
+        label: '澶氳鏂囨湰'
+      }, {
+        value: 'imageFlag',
+        label: '棰勮鍥�'
+      }],
+      //妯℃澘灞炴�т笅鎷夐�変腑鍊�
+      selectvalue: 'keyAttrFlag',
+      switchvalue:'false'
     }
   },
   computed:{
@@ -1418,9 +1484,6 @@
     })
   },
   methods: {
-    formAttr(row, column) {
-      console.log(row,column)
-    },
     //鏂板鎼滅储
     AddFindHandler(){
       if(this.SelectValue == 'id'){
@@ -1441,7 +1504,6 @@
     },
     //鍙傜収閰嶇疆瀛愮粍浠�
     echoReferConfig(val){
-      console.log('val--',val)
       this.referObject=val
       this.$set(this.CurrentCell,'referConfig',JSON.stringify(val))
 
@@ -1462,12 +1524,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
       })
@@ -1476,17 +1536,20 @@
       }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() {
       if (this.crudOid != '') {
-        gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.crudOid}).then(res => {
+        gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.crudOid,limit:-1}).then(res => {
           this.loading=true
           setTimeout(() => {
             this.ProData = res.data.data;
@@ -1540,12 +1603,10 @@
         }
       })
       this.addVisible = false;
-
     },
     //涓氬姟绫诲瀷閫夋嫨
     businessSelect(selection, row) {
       this.busineSelectList = selection;
-      console.log(selection)
     },
     // 浠庝笟鍔$被鍨嬩腑閫夋嫨鏁版嵁寮圭獥
     busineHandle() {
@@ -1604,23 +1665,31 @@
     selectHandle(selection, row) {
       this.attrOid = row.oid;
       this.attrRow = row;
-      console.log(row)
     },
     //琛ㄦ牸閫夋嫨
     selectionChange(list) {
       this.attrSelectList = list;
-      console.log(list)
+    },
+    rowClick(row){
+      this.$refs.referAttrCrud.clearSelection();
+      this.attrSelectList = [row];
+      this.$refs.referAttrCrud.setCurrentRow(row);
+      this.$refs.referAttrCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+
+      this.attrOid = row.oid;
+      this.attrRow = row;
     },
     //淇濆瓨
-    addsHandler() {
+    addsHandler(event) {
       batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => {
         this.$message.success('淇濆瓨鎴愬姛')
-        this.editOpenFlag=false
+        this.editOpenFlag=false;
+        // 璋冪敤鐖剁粍浠朵慨鏀规寜閽姸鎬�
+        this.$emit('editCloseChildren')
       }).catch(()=>{
         this.$message.warning('淇濆瓨澶辫触锛岃鏌ョ湅鎺у埗鍙拌緭鍑猴紒')
       })
     },
-
     //琛ㄦ牸琛岀紪杈�
     handleCellClicks(row, column) {
        if(this.editOpenFlag){
@@ -1631,17 +1700,27 @@
          if(column.property == 'referConfig' ){
            this.referConfigVisble= true;
            this.referConfigOption = {
-             referConfig: this.referConfigText || '',
+             referConfig: this.CurrentCell.referConfig || '',
            }
            if(this.CurrentCell.referConfig == ''){
              this.referConfigOption = {
                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;
@@ -1656,9 +1735,9 @@
          }else if(column.property == 'parentCode'){
            gridCodeClassifyTemplateAttr({
              'conditionMap[classifyTemplateOid]': this.Formlist[0].oid,
-             'conditionMap[oid_notequal]': this.CurrentCell.oid
+             'conditionMap[oid_notequal]': this.CurrentCell.oid,
+             limit:-1
            }).then(res => {
-             console.log(res)
              this.CascadeData = res.data.data;
            })
            this.CascadeVisible=true;
@@ -1667,6 +1746,9 @@
            this.rulesVisible=true;
          }else if(column.property == 'attributeGroup'){
            this.attrVisible = true;
+           if(this.CurrentCell.attributeGroup !== ''){
+                this.attrModel=this.CurrentCell.attributeGroup
+           }
          }
        }
     },
@@ -1779,7 +1861,6 @@
     },
     //楠岃瘉瑙勫垯妫�鏌�
     rulesExamine() {
-      console.log(this.RulesForm.expressionText)
       const regex = new RegExp(this.rulesData.ruleRowBds);
       if(regex.test(this.RulesForm.TestContent)){
         this.$message.success('鏍¢獙鎴愬姛')
@@ -1804,23 +1885,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];
@@ -1833,7 +1897,7 @@
           this.$set(this.attrSelectList[0],'classifyInvokeText',data)
         }
         this.injectHandleReset()
-      }
+
       if(this.injectOption.classifyInvokeLevel !== 'min'){
         this.injectOption.classifyInvokeLevel=this.injectOption.classifyNumber;
       }else  {
@@ -1852,7 +1916,8 @@
     },
     // 鍒嗙被娉ㄥ叆鍙栨秷
     injectRemove() {
-      this.injectVisible = false
+      this.injectVisible = false;
+      this.injectHandleReset()
     },
     //灞炴�фā鏉胯〃鏍煎崟鍏冩牸鐐瑰嚮浜嬩欢
     //琛ㄦ牸鎿嶄綔鏍忓垹闄�
@@ -1901,8 +1966,7 @@
       if (this.crudArray.length < 1) {
         this.$message.warning('璇烽�夋嫨涓�涓ā鏉�')
       } else {
-        this.editStyleFlag=!this.editStyleFlag;
-        // this.editOpenFlag=true;
+        this.editStyleFlag=true;
         this.attrEditVisible = true;
         this.attrFlag = true;
       }
@@ -1912,6 +1976,7 @@
     escEdit() {
       this.attrFlagChiledren = false;
       this.attrEditVisible = false;
+      this.editStyleFlag=false;
     },
     //缁勫悎瑙勫垯纭畾
     updataFormlaContent(val) {
@@ -1938,6 +2003,16 @@
     //寮�鍚紪杈�
     editOpen(){
       this.editOpenFlag=true;
+    },
+    //瀹氫箟涓�涓叧闂紪杈戠殑鏂规硶渚涘瓙缁勪欢浣跨敤
+    editClose(){
+      this.editOpenFlag=false;
+    },
+    //鎵归噺璁剧疆switch
+    batchSetFlag(value){
+      this.attrSelectList.forEach(item=>{
+        item[this.selectvalue]=value;
+      })
     }
   }
 }

--
Gitblit v1.9.3