From 083e907c2567ba53c892a45cf2605172715922ab Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 10 七月 2024 17:03:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue |  562 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 404 insertions(+), 158 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
index 1d329d1..bfa9643 100644
--- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -1,89 +1,114 @@
 <template>
   <div>
-    <div v-if="this.crudArrayFlag" class="app" style="display: flex;flex-wrap: wrap; display: inline-block">
+    <div v-if="this.crudArrayFlag" class="app"
+         style="display: flex;flex-wrap: wrap; display: inline-block;height: 80px">
       <el-button-group>
         <!--鏂板-->
-        <el-button
-          v-if="attrEditVisible == false && attrFlagChiledren==false && editOpenFlag &&  (!checkStatus || crudLCStatus=='Editing' )"
-          icon="el-icon-plus" plain size="small" type="primary" @click="busineHandle">娣诲姞 {{ msg }}
+        <span v-if="permissionList.busineStatus">
+           <el-button
+             v-if="attrEditVisible == false && attrFlagChiledren==false && editOpenFlag &&  (!checkStatus || crudLCStatus=='Editing' )"
+             icon="el-icon-plus" plain size="small" type="primary" @click="busineHandle">娣诲姞 {{ msg }}
         </el-button>
+        </span>
         <!--        鍏ㄥ睆缂栬緫-->
-        <el-button
-          v-if=" attrEditVisible == false && attrFlagChiledren==false && editOpenFlag&&(!checkStatus || crudLCStatus=='Editing')"
-          icon="el-icon-full-screen" size="small" @click="fullscreenHandle">鍏ㄥ睆缂栬緫
+        <span v-if="permissionList.fullscreenStatus">
+            <el-button
+              v-if=" attrEditVisible == false && attrFlagChiledren==false && editOpenFlag&&(!checkStatus || crudLCStatus=='Editing')"
+              icon="el-icon-full-screen" size="small" @click="fullscreenHandle">鍏ㄥ睆缂栬緫
         </el-button>
-        <!--        楠岃瘉瑙勫垯-->
+        </span>
+        <span v-if="permissionList.ruleStatus">
+           <!--        楠岃瘉瑙勫垯-->
         <el-button v-if="(!checkStatus || crudLCStatus=='Editing' )&& editOpenFlag" icon="el-icon-info" size="small"
                    @click="ruleAddHandler">楠岃瘉瑙勫垯
         </el-button>
-        <!--        灞炴�у垎缁�-->
+        </span>
+        <span v-if="permissionList.attrStatus">
+          <!--        灞炴�у垎缁�-->
         <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-menu" size="small"
                    @click="attrVisibleHandle">灞炴�у垎缁�
         </el-button>
+       </span>
       </el-button-group>
       <el-button-group>
-        <!--    淇濆瓨-->
-        <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-check" plain size="small"
+        <span v-if="permissionList.saveStatus">
+           <!--    淇濆瓨-->
+        <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-check" plain
+                   size="small"
                    type="success" @click.prevent="addsHandler">淇濆瓨
         </el-button>
+        </span>
         <!--    棰勮鎺掑簭-->
-        <el-button icon="el-icon-arrow-down" size="small" @click="orderHandle">棰勮鎺掑簭</el-button>
-        <!--    鍒犻櫎-->
+        <el-button v-if="permissionList.orderStatus" icon="el-icon-arrow-down" size="small" @click="orderHandle">棰勮鎺掑簭
+        </el-button>
+        <span v-if="permissionList.removeStatus">
+           <!--    鍒犻櫎-->
         <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-delete" size="small"
                    @click="CrudRemove">鍒犻櫎
         </el-button>
+        </span>
         <!--    閲嶇疆-->
-        <el-button icon="el-icon-refresh-right" size="small" @click="reset">閲嶇疆</el-button>
+        <el-button v-if="permissionList.resetStatus" icon="el-icon-refresh-right" size="small" @click="resetHandler">
+          閲嶇疆
+        </el-button>
       </el-button-group>
       <el-button-group>
-        <!--鏂板-->
-        <!--        鍒嗙被娉ㄥ叆-->
+       <span v-if="permissionList.injectStatus"><!--        鍒嗙被娉ㄥ叆-->
         <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-magic-stick"
                    size="small" @click="injectBtn">鍒嗙被娉ㄥ叆
-        </el-button>
-        <!--    缁勫悎瑙勫垯-->
+        </el-button></span>
+        <span v-if="permissionList.isShowStatus"> <!--    缁勫悎瑙勫垯-->
         <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-film" size="small"
                    @click="isShowHandler">缁勫悎瑙勫垯
-        </el-button>
-        <!--        鏋氫妇娉ㄥ叆-->
+        </el-button></span>
+        <span v-if="permissionList.enumStatus"> <!--        鏋氫妇娉ㄥ叆-->
         <el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-c-scale-to-original"
-                   size="small" @click="enmuVisHandle">鏋氫妇娉ㄥ叆
-        </el-button>
-        <!--    绾ц仈灞炴��-->
+                   size="small" @click="enumVisHandle">鏋氫妇娉ㄥ叆
+        </el-button></span>
+
+        <span v-if="permissionList.cascadStatus">
+               <!--    绾ц仈灞炴��-->
         <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-coin" size="small"
                    @click="CascadeHandle">绾ц仈灞炴��
         </el-button>
+        </span>
       </el-button-group>
 
       <el-button-group>
         <!--    鍚屾鍒板叾浠栨ā鏉�-->
-        <el-button icon="el-icon-share" size="small" @click="syncHandle">鍚屾鍒板叾浠栨ā鏉�</el-button>
+        <el-button v-if="permissionList.syncStatus" icon="el-icon-share" size="small" @click="syncHandle">鍚屾鍒板叾浠栨ā鏉�
+        </el-button>
       </el-button-group>
 
       <el-button-group>
         <!--    缂栫爜鐢宠棰勮-->
-        <el-button icon="el-icon-view" size="small" style="" @click="applicationHandle">缂栫爜鐢宠棰勮</el-button>
+        <el-button v-if="permissionList.applicationStatus" icon="el-icon-view" size="small" style=""
+                   @click="applicationHandle">缂栫爜鐢宠棰勮
+        </el-button>
 
       </el-button-group>
       <!-- 鏄惁寮�鍚紪杈�     -->
       <el-button-group>
-        <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false" icon="el-icon-view" plain
-                   size="small"
-                   @click="editOpen">寮�鍚紪杈�
+        <el-button
+          v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false"
+          icon="el-icon-view" plain
+          size="small"
+          @click="editOpen">寮�鍚紪杈�
         </el-button>
+        <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="selectvalue"
+                   placeholder="璇烽�夋嫨"
+                   size="small">
+          <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"
+                   active-value="true" style="margin:6px 0 0 10px" @change="batchSetFlag">
+        </el-switch>
       </el-button-group>
-      <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="selectvalue" placeholder="璇烽�夋嫨"
-                 size="small">
-        <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"
-                 active-value="true" style="margin:6px 0 0 10px" @change="batchSetFlag">
-      </el-switch>
     </div>
     <!--    寮圭獥-->
     <div>
@@ -252,8 +277,8 @@
       </el-dialog>
       <!--        鍏ㄥ睆缂栬緫-->
       <el-dialog :before-close="escEdit" :visible.sync="attrEditVisible" append-to-body fullscreen="true">
-        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :crudArrayFlag="this.crudArrayFlag"
-                  :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag"
+        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :btnAuthList="btnAuthList"
+                  :crudArrayFlag="this.crudArrayFlag" :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag"
                   @editCloseChildren="editClose"></attrCrud>
       </el-dialog>
       <!--      缁勫悎瑙勫垯-->
@@ -288,20 +313,36 @@
           <el-button size="small" type="primary" @click="addVisible=false">鍙栨秷</el-button>
         </div>
       </el-dialog>
-
       <!--      鍙傜収閰嶇疆-->
       <refer-config-dialog
         :display="referConfigVisble"
         :referConfigOption="referConfigOption"
         @setReferConfigValue="setReferConfigValue"
       ></refer-config-dialog>
+      <!--杩戜箟璇嶆煡璇㈣鍒�      -->
+      <el-dialog :visible.sync="synonymVisible" append-to-body title="杩戜箟璇嶆煡璇㈣鍒�">
+        <avue-crud v-loading="sysonymLoading" :data="synonymData" :option="synonymOption" @selection-change="sysChange">
+          <template slot="lcStatus" slot-scope="{row}">
+            <el-tag v-if="row.lcStatus === 'Released'" type="success">鍚敤</el-tag>
+            <el-tag v-else type="danger">鍋滅敤</el-tag>
+          </template>
+        </avue-crud>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="info" @click="sysClear">娓呯┖</el-button>
+          <el-button type="primary" @click="sysnonymSubmit">纭畾</el-button>
+          <el-button @click="sysnonymCancel">鍙栨秷</el-button>
+        </div>
+      </el-dialog>
 
     </div>
+
     <el-table v-if="this.crudArrayFlag"
               ref="referAttrCrud"
               v-loading="loading"
               :data="ProData"
-              :height="this.editStyleFlag? 800 : 343"
+              :header-cell-style="{background:'#FAFAFA',color:'#505050'}"
+              :height="this.tableHeight"
+              border
               style="width: 100%"
               @select="selectHandle"
               @cell-click="handleCellClicks"
@@ -309,13 +350,13 @@
               @row-click="rowClick"
     >
       <el-table-column
-        fixed
+        :fixed="!editStyleFlag ? 'left' : undefined"
         type="selection" width="55">
       </el-table-column>
       <!--<el-table-column fixed label="搴忓彿" type="index" width="55"></el-table-column>-->
       <el-table-column v-for="(item,index) in this.option.column" v-if="item.edit !='referName'"
                        :key="item.id"
-                       :fixed="item.fixed"
+                       :fixed="!editStyleFlag ? item.fixed : undefined"
                        :formatter="formAttr"
                        :label="item.label"
                        :prop="item.prop"
@@ -325,16 +366,23 @@
                        align="center"
       >
         <template slot-scope="{ row }">
-          <el-input v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text'  ||item.edit == 'refer' ) && this.AddCellFlag"
-                    ref="inputRef"
-                    v-model="row[item.prop]"
-                    autofocus @blur="saveRows"></el-input>
-          <el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" v-model="row[item.prop]"
+          <el-input
+            v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text'  ||item.edit == 'refer' )"
+            v-show="!AddCellFlag"
+            :ref="'input' + row.oid"
+            v-model="row[item.prop]"
+            @blur="saveRows(row)"
+          ></el-input>
+          <el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'"
+                           v-show="!AddCellFlag"
+                           v-model="row[item.prop]"
                            :style="{width:(item.width-10)+'px'}"
                            controls-position="right"
                            size="small" @blur="saveRows"></el-input-number>
-          <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " slot="prepend" v-model="row[item.prop]" allow-create default-first-option
-                     filterable
+          <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " v-show="!AddCellFlag"
+                     slot="prepend"
+                     v-model="row[item.prop]" :clearable="true" allow-create
+                     default-first-option filterable
                      @blur="selectChangeHandler(item.editConfig,index)">
             <el-option
               v-for="optionItem in item.data"
@@ -368,9 +416,18 @@
 </template>
 
 <script>
-import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto, listByFlag} from '@/api/template/templateAttr'
+import {
+  AttrByBtm,
+  gridCodeClassifyTemplateAttr,
+  batchAddSave,
+  copyto,
+  listByFlag,
+  codeSynonym
+} from '@/api/template/templateAttr'
 import {getList} from "@/api/refer/table";
 import func from "@/util/func";
+import {getCurrentInstance} from "vue";
+import {mapGetters} from "vuex";
 
 export default {
   name: "attrCrud .vue",
@@ -417,6 +474,9 @@
       type: Boolean,
       default: false
     },
+    btnAuthList: {
+      type: Array
+    }
   },
   watch: {
     crudOid: {
@@ -427,8 +487,8 @@
       }
     },
     crudArrayFlag: {
-      handler(newval, olaval) {
-        console.log('crudArrayFlag', newval)
+      handler(newval, oldval) {
+        // console.log('crudArrayFlag', newval)
       }
     },
     crudArray: {
@@ -472,7 +532,7 @@
     },
     editOpenFlag: {
       handler(newval, oldval) {
-        console.log('editOpenFlag', newval)
+        // console.log('editOpenFlag', newval)
       },
       deep: true,
       immediate: true
@@ -481,8 +541,52 @@
   },
   data() {
     return {
+      sysSelectData: [],
+      sysonymLoading: false,
+      synonymOption: {
+        addBtn: false,
+        editBtn: false,
+        delBtn: false,
+        refreshBtn: false,
+        columnBtn: false,
+        menu: false,
+        selection: true,
+        column: [
+          {
+            label: '缂栫爜',
+            prop: 'id',
+            align: 'center'
+          },
+          {
+            label: '鍚嶇О',
+            prop: 'name',
+            align: 'center'
+          },
+          {
+            label: '婧愬��',
+            prop: 'sourceValue',
+            align: 'center'
+          },
+          {
+            label: '鍚屼箟璇�',
+            prop: 'synonymValue',
+            align: 'center'
+          },
+          {
+            label: '鍚仠鐘舵��',
+            prop: 'lcStatus',
+            align: 'center',
+            slot: true
+          },
+        ]
+      },
+      synonymData: [],
+      //杩戜箟璇嶆煡璇㈣鍒�
+      synonymVisible: false,
+      //琛ㄦ牸楂樺害
+      dynamicHeight: '',
       // 淇濆瓨鍗曞厓鏍肩姸鎬�
-      AddCellFlag:false,
+      AddCellFlag: false,
       //鍏ㄥ睆缂栬緫楂樺害鐘舵��
       editStyleFlag: false,
       loading: false,
@@ -629,6 +733,7 @@
         addBtn: false,
         header: false,
         align: 'center',
+        columnBtn: false,
         menuAlign: 'center',
         column: [{
           label: '',
@@ -771,7 +876,7 @@
           },
           {
             label: "鍙",
-            prop: "readonlyFlag",
+            prop: "readOnlyFlag",
           },
           {
             label: "鍒楄〃鎺掑簭",
@@ -843,6 +948,7 @@
           {
             label: "鍙傜収閰嶇疆",
             prop: "referConfig",
+            width: 105
           },
           {
             label: "绾ц仈鏌ヨ灞炴��",
@@ -887,7 +993,7 @@
           {
             label: "鍙栧�艰寖鍥�",
             prop: "valueArea",
-          },
+          }
         ]
       },
       // 瀛樺偍琛ㄦ牸鏁版嵁
@@ -1069,6 +1175,10 @@
         indexClassName: "搴忓彿",
         indexLabelClassName: '搴忓彿',
         index: true,
+        indexFixed: false,
+        selectionFixed: false,
+        columnBtn: false,
+        refreshBtn: false,
         border: true,
         addBtn: false,
         menu: false,
@@ -1077,11 +1187,13 @@
         column: [
           {
             label: "灞炴�ц嫳鏂囧悕绉�",
-            prop: "id"
+            prop: "id",
+            width: 130,
           },
           {
             label: "灞炴�т腑鏂囧悕绉�",
-            prop: "name"
+            prop: "name",
+            width: 100,
           },
           {
             label: "闀垮害",
@@ -1122,7 +1234,7 @@
             prop: "precisionLength"
           },
           {
-            label: "灏忕簿鍒诲害",
+            label: "灏忔暟鍒诲害",
             prop: "scaleLength"
           },
           {
@@ -1162,6 +1274,7 @@
       List: [],
       option: {
         index: false,
+        columnBtn: false,
         border: true,
         editBtn: false,
         selection: true,
@@ -1241,6 +1354,12 @@
             edit: "switch"
           },
           {
+            label: '杩戜箟璇嶆煡璇㈣鍒�',
+            prop: 'sysonymRuleOidsText',
+            cell: false,
+            edit: 'refer'
+          },
+          {
             label: "鐩镐技鏌ラ噸灞炴��",
             prop: "sameRepeatAttrFlag",
             width: 110,
@@ -1267,7 +1386,7 @@
           },
           {
             label: "鍙",
-            prop: "readonlyFlag",
+            prop: "readOnlyFlag",
             cell: false,
             edit: "switch"
           },
@@ -1279,7 +1398,7 @@
           },
           {
             label: "澶氳鏂囨湰",
-            prop: "textareaFlag",
+            prop: "textAreaFlag",
             cell: false,
             edit: "switch"
           },
@@ -1494,13 +1613,13 @@
         value: 'tableDisplayFlag',
         label: '鍒楄〃鏄剧ず'
       }, {
-        value: 'readonlyFlag',
+        value: 'readOnlyFlag',
         label: '鍙'
       }, {
         value: 'sortAttrFlag',
         label: '鍒楄〃鎺掑簭'
       }, {
-        value: 'textareaFlag',
+        value: 'textAreaFlag',
         label: '澶氳鏂囨湰'
       }, {
         value: 'imageFlag',
@@ -1512,6 +1631,25 @@
     }
   },
   computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        busineStatus: this.vaildData(this.btnAuthList.attr_add, false),
+        fullscreenStatus: this.vaildData(this.btnAuthList.attr_view_edit, false),
+        ruleStatus: this.vaildData(this.btnAuthList.attr_rule, false),
+        attrStatus: this.vaildData(this.btnAuthList.attr_group, false),
+        saveStatus: this.vaildData(this.btnAuthList.attr_save, false),
+        resetStatus: this.vaildData(this.btnAuthList.attr_reset, false),
+        injectStatus: this.vaildData(this.btnAuthList.attr_inject, false),
+        isShowStatus: this.vaildData(this.btnAuthList.attr_formrule, false),
+        enumStatus: this.vaildData(this.btnAuthList.attr_enum, false),
+        cascadStatus: this.vaildData(this.btnAuthList.attr_parentcode, false),
+        syncStatus: this.vaildData(this.btnAuthList.attr_sync, false),
+        applicationStatus: this.vaildData(this.btnAuthList.attr_application, false),
+        orderStatus: this.vaildData(this.btnAuthList.attr_sort, false),
+        removeStatus: this.vaildData(this.btnAuthList.attr_delete, false),
+      }
+    },
     attrOids() {
       let oids = [];
       this.attrSelectList.forEach(ele => {
@@ -1526,6 +1664,13 @@
       });
       return oids.join(",");
     },
+    tableHeight() {
+      if (this.editStyleFlag) {
+        return '800px'
+      } else {
+        return 'calc(100vh - 602px)'
+      }
+    }
   },
   mounted() {
   },
@@ -1537,6 +1682,35 @@
     })
   },
   methods: {
+    //杩戜箟璇嶆煡璇㈣鍒欏彇娑�
+    sysnonymCancel() {
+      this.synonymVisible = false;
+    },
+    //杩戜箟璇嶆煡璇㈣鍒欑‘瀹�
+    sysnonymSubmit() {
+      if (this.sysSelectData.length <= 0) {
+        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹紒')
+      } else {
+        const newArray = this.sysSelectData.map(obj => obj.oid);
+        const newString = newArray.join(',');
+        const newArrayName = this.sysSelectData.map(obj => obj.name);
+        const newStringName = newArrayName.join(',')
+        this.$set(this.CurrentCell, 'sysonymRuleOids', newString)
+        //text
+        this.$set(this.CurrentCell, 'sysonymRuleOidsText', newStringName)
+        this.$set(this.CurrentCell, 'sysonymRuleOidsData', this.sysSelectData)
+        this.AddCellFlag = true;
+        this.synonymVisible = false;
+      }
+    },
+    sysClear(){
+      this.CurrentCell.sysonymRuleOidsText = "";
+      this.CurrentCell.sysonymRuleOidsData = "";
+      this.AddCellFlag = true;
+    },
+    sysChange(row) {
+      this.sysSelectData = row;
+    },
     //鏂板鎼滅储
     AddFindHandler() {
       if (this.SelectValue == 'id') {
@@ -1564,9 +1738,6 @@
     //鍙緭鍙�変笅鎷�
     selectChangeHandler(editConfig, index) {
       let that = this;
-      /*if(that.option.column[index].data && that.option.column[index].data.length>=0){
-        return;
-      }*/
       listByFlag(editConfig.extraParams).then(res => {
         that.option.column[index].data = res.data.data;
       })
@@ -1585,7 +1756,7 @@
         item.attributeGroup = this.attrModel
       })
       if (this.CurrentCell) {
-        this.$set(this.CurrentCell, 'attributeGroup', this.attrModel)
+        this.$set(this.CurrentCell, 'attributeGroup', this.attrModel);
       } else {
         this.$set(this.attrSelectList[0], 'attributeGroup', this.attrModel)
       }
@@ -1652,7 +1823,10 @@
             attrTableWidth: 120,
             ts: ""
           })
-          this.ProData.push(JSON.parse(JSON.stringify(this.busineAddList)))
+          // 灏嗚嫳鏂囩紪鍙疯浆鎹负灏忓啓
+          let {id, ...res} = this.busineAddList;
+          this.busineAddList = {id: id.toLowerCase(), ...res};
+          this.ProData.push(JSON.parse(JSON.stringify(this.busineAddList)));
         }
       })
       this.addVisible = false;
@@ -1742,11 +1916,9 @@
     addsHandler(event) {
       this.$refs.referAttrCrud.sort("orderNum");
       var ischeck = true;
-      console.log('ProData',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;
         }
@@ -1754,29 +1926,23 @@
         if (item.componentRule) {
           //缁勫悎瑙勫垯
           num++
-          console.log('componentRule', num)
         }
         if (item.enumString || item.enumId) {
           //鏋氫妇
           num++
-          console.log('enumString', num)
         }
         if (item.referConfig || item.referBtmId) {
           //鍙傜収
           num++
-          console.log('referConfig', num)
         }
         if (item.codeDateFormat) {
           //鏃堕棿鏍煎紡
           num++
-          console.log('codeDateFormat', num)
         }
         //濡傛灉绌哄悗鍙拌繑鍥瀗one
         if (item.classifyInvokeLevel && item.classifyInvokeLevel != 'none') {
           //鍒嗙被娉ㄥ叆
           num++
-          console.log('classifyInvokeLevel', num)
-          console.log(item.classifyInvokeLevel)
         }
         if (num > 1 && ischeck) {
           this.$message({
@@ -1794,10 +1960,11 @@
       // 鏂板嚱鏁扮敤浜庢墽琛宐atchAddSave鏂规硶
       const executeBatchAddSave = () => {
         batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => {
-          this.$message.success('淇濆瓨鎴愬姛')
           this.editOpenFlag = false;
+          this.$message.success('淇濆瓨鎴愬姛')
           // 璋冪敤鐖剁粍浠朵慨鏀规寜閽姸鎬�
           this.$emit('editCloseChildren')
+          this.AddCellFlag = true;
         }).catch(() => {
           this.$message.warning('淇濆瓨澶辫触锛岃鏌ョ湅鎺у埗鍙拌緭鍑猴紒')
         });
@@ -1808,67 +1975,98 @@
     //琛ㄦ牸琛岀紪杈�
     handleCellClicks(row, column) {
       if (this.editOpenFlag) {
+        this.AddCellFlag = false;
         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.CurrentCell.referConfig || '',
+        this.$nextTick(() => {
+          const inputs = this.$refs['input' + row.oid];
+          const input = inputs && inputs.length > 0 ? inputs[0].$el : null;
+          if (input) {
+            input.focus();
           }
-          if (this.CurrentCell.referConfig == '') {
+        });
+        const columnActions = {
+          referConfig: () => {
+            this.referConfigVisble = true;
             this.referConfigOption = {
-              referConfig: '',
+              referConfig: this.CurrentCell.referConfig || '',
             }
+            if (this.CurrentCell.referConfig == '') {
+              this.referConfigOption = {
+                referConfig: '',
+              }
+            }
+          },
+          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
+              };
+            }
+          },
+          componentRule: () => {
+            this.isShowformulaEdit = true;
+          },
+          enumString: () => {
+            this.enumVisible = true;
+            this.tableData = [];
+            if (this.CurrentCell.enumString != "") {
+              this.tableData = JSON.parse(this.CurrentCell.enumString)
+              return;
+            }
+          },
+          parentCode: () => {
+            gridCodeClassifyTemplateAttr({
+              'conditionMap[classifyTemplateOid]': this.Formlist[0].oid,
+              'conditionMap[oid_notequal]': this.CurrentCell.oid,
+              limit: -1
+            }).then(res => {
+              this.CascadeData = res.data.data;
+            })
+            this.CascadeVisible = true;
+          },
+          verifyRule: () => {
+            this.RulesForm.expressionTextt = this.CurrentCell.verifyRule;
+            this.rulesVisible = true;
+          },
+          attributeGroup: () => {
+            this.attrVisible = true;
+            if (this.CurrentCell.attributeGroup !== '') {
+              this.attrModel = this.CurrentCell.attributeGroup
+            }
+          },
+          sysonymRuleOidsText: () => {
+            this.sysonymLoading = true
+            codeSynonym('1', '-1', 'Released').then(res => {
+              this.synonymData = res.data.data.records;
+              this.sysonymLoading = false;
+            }).catch(() => {
+              this.$message.error('璇锋鏌ユ帶鍒跺彴閿欒淇℃伅锛�')
+            })
+
+            this.synonymVisible = true;
           }
-          // 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;
-          }
-          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,
-            limit: -1
-          }).then(res => {
-            this.CascadeData = res.data.data;
-          })
-          this.CascadeVisible = true;
-        } else if (column.property == 'verifyRule') {
-          this.RulesForm.expressionTextt = this.CurrentCell.verifyRule;
-          this.rulesVisible = true;
-        } else if (column.property == 'attributeGroup') {
-          this.attrVisible = true;
-          if (this.CurrentCell.attributeGroup !== '') {
-            this.attrModel = this.CurrentCell.attributeGroup
-          }
+        };
+
+        if (column.property in columnActions) {
+          columnActions[column.property]();
         }
       }
     },
     saveRows() {
       this.editingRows = null;
+      this.editShows = null;
+      // const inputElement = document.querySelector(`#inputRef${this.CurrentCell.oid}`);
+      // if (inputElement) {
+      //   inputElement.blur();
+      // }
     },
     // 鏋氫妇娉ㄥ叆娣诲姞涓�琛岀┖鏁版嵁
     addRow() {
@@ -1887,7 +2085,7 @@
       this.tableData.splice(row.$index, 1)
     },
     //鏋氫妇娉ㄥ叆鎸夐挳
-    enmuVisHandle() {
+    enumVisHandle() {
       if (this.attrSelectList.length > 1) {
         this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬�')
       } else if (this.attrSelectList < 1) {
@@ -1972,6 +2170,7 @@
     rulesHandle() {
       if (this.CurrentCell) {
         this.$set(this.CurrentCell, 'verifyRule', this.RulesForm.expressionText)
+        this.AddCellFlag = !this.AddCellFlag;
       } else {
         this.attrSelectList.forEach((item) => {
           this.$set(item, 'verifyRule', this.RulesForm.expressionText)
@@ -1985,54 +2184,67 @@
       const regex = new RegExp(this.rulesData.ruleRowBds);
       if (regex.test(this.RulesForm.TestContent)) {
         this.$message.success('鏍¢獙鎴愬姛')
+      } else {
+        this.$message.error('鏍¢獙澶辫触')
       }
     },
     //鐐瑰嚮鍒嗙被娉ㄥ叆鎸夐挳
     injectBtn() {
       if (this.attrSelectList.length > 1) {
         this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉挎暟鎹�')
-      } else if (this.attrSelectList.length < 1) {
+        return;
+      }
+      if (this.attrSelectList.length < 1) {
         this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉挎暟鎹�')
-      } else if (this.attrSelectList.length === 1) {
+        return;
+        ;
+      }
+      if (this.attrSelectList.length === 1) {
         this.injectVisible = true;
+        return;
       }
     },
     //鍒嗙被娉ㄥ叆淇濆瓨
     injectAddHandle() {
-      // 瀹氫箟灞曠ず绫诲瀷
-      let data = {
-        "娉ㄥ叆绫诲瀷": this.injectOption.classifyInvokeAttr,
-        "娉ㄥ叆绫诲瀷鍚嶇О": this.injectOption.classifyInvokeAttrName,
-        "灞傜骇璁剧疆": this.injectOption.classifyInvokeLevel == 'max' ? this.injectOption.classifyNumber : 'min',
-        "鏄惁鍙慨鏀�": this.injectOption.classifyInvokeEditFlag
-      }
-      //鍕鹃�夋搷浣�
+      const {
+        classifyInvokeAttr,
+        classifyInvokeAttrName,
+        classifyInvokeLevel,
+        classifyInvokeEditFlag,
+        classifyNumber
+      } = this.injectOption;
+
+      const data = {
+        "娉ㄥ叆绫诲瀷": classifyInvokeAttr,
+        "娉ㄥ叆绫诲瀷鍚嶇О": classifyInvokeAttrName,
+        "灞傜骇璁剧疆": classifyInvokeLevel === 'max' ? classifyNumber : 'min',
+        "鏄惁鍙慨鏀�": classifyInvokeEditFlag
+      };
       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
+        if (classifyInvokeLevel !== 'min') {
+          this.attrSelectList[0].classifyInvokeLevel = classifyNumber;
         } else {
-          this.attrSelectList[0].classifyInvokeLevel = 'min'
+          this.attrSelectList[0].classifyInvokeLevel = 'min';
         }
-        this.$set(this.attrSelectList[0], 'classifyInvokeText', data)
+        this.$set(this.attrSelectList[0], 'classifyInvokeText', data);
       }
-      // this.injectHandleReset()
-      if (this.injectOption.classifyInvokeLevel !== 'min') {
-        this.injectOption.classifyInvokeLevel = this.injectOption.classifyNumber;
+      if (classifyInvokeLevel !== 'min') {
+        this.injectOption.classifyInvokeLevel = classifyNumber;
       } else {
         this.injectOption.classifyNumber = 0;
       }
+      // console.log(this.ProData)
       this.injectVisible = false;
-
     },
     //鍒嗙被娉ㄥ叆娓呯┖
     injectHandleReset() {
-      this.$set(this.CurrentCell, 'classifyInvokeText', '')
-      this.$set(this.CurrentCell, 'classifyInvokeAttr:', '')
-      this.$set(this.CurrentCell, 'classitwInvokeAttrName', '')
-      this.$set(this.CurrentCell, 'classifyInvokeEditFlag', 'false')
-      this.$set(this.CurrentCell, 'classifyInvokeLevel', 'none')
+      this.CurrentCell.classifyInvokeText = null;
+      this.CurrentCell.classifyInvokeAttr = '';
+      this.CurrentCell.classifyInvokeAttrName = '';
+      this.CurrentCell.classifyInvokeEditFlag = '';
+      this.CurrentCell.classifyInvokeLevel = null;
+      // console.log(this.ProData)
       this.injectVisible = false;
     },
     // 鍒嗙被娉ㄥ叆鍙栨秷
@@ -2053,7 +2265,7 @@
       })
     },
     //琛ㄦ牸閲嶇疆
-    reset() {
+    resetHandler() {
       this.CrudRend()
     },
     //鍚屾鍒板叾浠栨ā鏉�
@@ -2090,6 +2302,7 @@
         this.editStyleFlag = true;
         this.attrEditVisible = true;
         this.attrFlag = true;
+        this.AddCellFlag = true;
       }
 
     },
@@ -2103,7 +2316,7 @@
     updataFormlaContent(val) {
       if (this.CurrentCell) {
         this.$set(this.CurrentCell, 'componentRule', val.replace(/"/g, ''))
-        this.componentRuleText= this.CurrentCell.componentRule
+        this.componentRuleText = this.CurrentCell.componentRule
       } else {
         this.$set(this.attrRow, 'componentRule', val.replace(/"/g, ''))
       }
@@ -2118,13 +2331,14 @@
         this.$set(this.attrRow, 'referConfig', JSON.stringify(content))
       }
     },
-    // 鎺掑簭
+    // 鎺掑簭 this.AddCellFlag=false;
     sortChange(val) {
-      console.log(val)
+      // console.log(val)
     },
     //寮�鍚紪杈�
     editOpen() {
       this.editOpenFlag = true;
+      this.AddCellFlag = false;
     },
     //瀹氫箟涓�涓叧闂紪杈戠殑鏂规硶渚涘瓙缁勪欢浣跨敤
     editClose() {
@@ -2141,6 +2355,38 @@
 </script>
 
 <style lang="scss" scoped>
+
+/deep/ .el-table__fixed-body-wrapper {
+  .el-table__body {
+    padding-bottom: 15px;
+  }
+}
+
+//鍥哄畾鍒楅珮搴�
+/deep/ .el-table__fixed {
+  height: calc(100vh - 618px) !important;
+}
+
+///deep/ .el-table__fixed[v-if='editStyleFlag'] {
+//  height: calc(100vh - 152px)!important; // 缂栬緫鐘舵�佷笅鐨勯珮搴�
+//}
+// 婊氬姩鏉℃牱寮忎慨鏀�
+// 婊氬姩鏉$殑瀹藉害
+/deep/ .el-table__body-wrapper::-webkit-scrollbar {
+  height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓
+  background: white;
+  border: white;
+  width: 10px;
+
+}
+
+// 婊氬姩鏉$殑婊戝潡
+/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
+  background-color: #ececec;
+  border-radius: 20px;
+  border: #ececec;
+}
+
 .app {
   /deep/ .el-button {
     //margin: 0 10px 10px 0;

--
Gitblit v1.9.3