From 007e33dd8728b4557917a2ffa2e2449865602742 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期一, 04 十二月 2023 16:10:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue |  599 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 426 insertions(+), 173 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index 7324680..df6a0b6 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -5,19 +5,20 @@
         <div class="testbox" style="">
           <div>
           </div>
-          <el-row style="width: 100%;margin-bottom: 20px">
-            <div>
+          <el-row style="width: 100%;margin-bottom: 10px">
+            <div style="margin-bottom: 10px">
               <el-button v-for="(item, index) in masterVrBtnList"
                          v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)"
                          :key="index" plain size="small"
                          type="primary"
-                         @click="handelBtnClick(item)">{{
+                         @click="handleBtnClick(item)">{{
                   item.name
                 }}
               </el-button>
               <span v-if="tableHeadFindData.length > 0">
               <el-select slot="prepend" v-model="keyWordFind" placeholder="璇烽�夋嫨" size="small">
-                <el-option v-for="item in tableHeadFindData" :label="item.label" :value="item.prop"></el-option>
+                <el-option v-for="item in tableHeadFindData" :key="item.id" :label="item.label"
+                           :value="item.prop"></el-option>
               </el-select>
               <el-input v-model="WupinFindValue" placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�"
                         size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
@@ -34,34 +35,94 @@
                 <el-option label="瀹℃牳涓�" value="Auditing"></el-option>
               </el-select></span>
             </div>
-            <el-table ref="dataTable" v-loading="isLoading" :data="tableData"
-                      :height="tableHeight"
-                      @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick"
-                      @select-all="handleSelectionAll" @selection-change="handleSelectionChange"
-                      @sort-change="sortChange">
-              <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column>
-              <el-table-column v-if="tableData.length != 0" fixed label="搴忓彿" type="index" width="55">
-              </el-table-column>
-              <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :formatter="item.formatter"
-                               :label="item.label"
-                               :prop="item.prop" :show-overflow-tooltip="true"
-                               :sortable="item.sortable"
-                               :width="item.width"
-                               align="center">
-              </el-table-column>
-            </el-table>
+            <div class="custom-table">
+              <el-table ref="dataTable" v-loading="isLoading" :data="tableData"
+                        :header-cell-style="{background:'#FAFAFA',color:'#505050'}"
+                        :height="tableHeight" border
+                        class="cus-table" @select="handleSelection" @cell-click="handleCellClick"
+                        @row-click="handleRowClick" @select-all="handleSelectionAll"
+                        @selection-change="handleSelectionChange" @sort-change="sortChange">
+                <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column>
+                <el-table-column v-if="tableData.length != 0" fixed label="搴忓彿" type="index" width="55">
+                </el-table-column>
+                <!--              鐢熷懡鍛ㄦ湡-->
+                <el-table-column v-for="(item,index) in lcstatusArray"
+                                 v-if=" lcstatusArray.length !== 0 && !item.hidden"
+                                 key="index" :show-overflow-tooltip="true" :sortable="item.sortable"
+                                 :width="item.width" align="center" label="鐢熷懡鍛ㄦ湡鍊�"
+                                 prop="lcstatus">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.lcstatus_text }}</span>
+                  </template>
+                </el-table-column>
+                <!--              缂栧彿-->
+                <el-table-column v-for="(item, index) in CodeArray" v-if="CodeArray.length !== 0 && !item.hidden"
+                                 key="index" :label="item.label" :prop="item.prop"
+                                 :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
+                                 align="center">
+                  <template slot-scope="scope">
+                    <el-link type="primary" @click="CodeLinkHandler(scope.row)">
+                      {{ scope.row[item.prop] }}
+                    </el-link>
+                  </template>
+                </el-table-column>
+                <el-table-column v-for="item in this.tableHeadFindData"
+                                 v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus' && Object.keys(item.referConfig).length <= 0"
+                                 :key="item.id"
+                                 :formatter="item.formatter"
+                                 :label="item.label" :prop="item.prop"
+                                 :show-overflow-tooltip="true"
+                                 :sortable="item.sortable"
+                                 :width="item.width"
+                                 align="center">
+                </el-table-column>
+                <!--               鍙傜収鏁版嵁-->
+                <el-table-column v-for="(item,index) in referArray"
+                                 v-if="item.referConfig && Object.keys(item.referConfig).length > 0 && !item.hidden"
+                                 :key="index"
+                                 :label="item.title" :show-overflow-tooltip="true"
+                                 :sortable="item.sortable" :width="item.width" align="center"
+                                 prop="jiliangdw">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.jiliangdwname }}</span>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
           </el-row>
-          <!--          鏂板-->
+          <!--          鐢宠-->
+          <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid"
+                              :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid"
+                              :visible.sync="applyvisible" status="apply"
+                              type="add"
+                              @submit="applySumbit">
+          </FormTemplateDialog>
+          <!--          淇-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
-                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible"
+                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'"
+                              :visible.sync="amendvisible" status="amend"
+                              type="edit" @submit="amendSumbit"></FormTemplateDialog>
+          <!--          鏂板-->
+          <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid"
+                              :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid"
+                              :visible.sync="addvisible"
                               type="add"
                               @submit="AddSumbit">
           </FormTemplateDialog>
           <!--          淇敼-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
-                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'"
+                              :disabledProp="disabledProp" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'"
                               :visible.sync="editvisible"
+                              rowOid="rowOid"
                               type="edit" @submit="EditSumbit"></FormTemplateDialog>
+          <!--          鎵归噺缂栬緫-->
+          <!--          <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>-->
+          <!--          鏁版嵁璇︽儏-->
+          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+                              :rowOid="this.LinkObject.oid" :templateOid="templateOid"
+                              :title="'鏁版嵁璇︽儏'"
+                              :visible.sync="LinkVisible"
+                              type="detail"></FormTemplateDialog>
           <!--          宸插彂甯冩暟鎹慨鏀�-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
                               :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid"
@@ -88,22 +149,22 @@
                           :tableData="tableData"
                           :tableHeadData="tableHeadFindData" :templateOid="templateOid"
                           :visible.sync="dialogPush"></MasterTransfer>
+          <!--        瀵煎叆-->
+          <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend"
+                       :selectRow="selectRow" :tableHeadData="tableHeadFindData"
+                       :visible.sync="batchImportData.visible">
+          </BatchImport>
           <!--          鐩镐技椤�-->
           <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid"
                                :templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog>
           <div class="block" style="display: flex; justify-content: flex-end">
-            <el-pagination :current-page="page.currentPage" :page-size="page.pageSizes" :page-sizes="page.pageSizes"
+            <el-pagination :current-page="page.currentPage" :page-size="page.pageSize" :page-sizes="page.pageSizes"
                            :total="page.total" layout="total, sizes, prev, pager, next, jumper"
                            @size-change="handleSizeChange"
                            @current-change="handleCurrentChange">
             </el-pagination>
           </div>
         </div>
-      </div>
-      <div>
-        <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend"
-                     :visible.sync="batchImportData.visible">
-        </BatchImport>
       </div>
       <div class="bottom">
         <el-collapse v-model="visibleNames" @change="handleCollapse">
@@ -116,16 +177,29 @@
   </basic-container>
 </template>
 <script>
-import {MasterTable, TableData, FindData, addSaveCode, editSaveCode, deleteCode, upSaveCode} from "@/api/GetItem";
+import {
+  MasterTable,
+  TableData,
+  FindData,
+  addSaveCode,
+  editSaveCode,
+  deleteCode,
+  upSaveCode,
+  applyGroupCode,
+  receiveEditApply,
+  applySaveCode
+} from "@/api/GetItem";
 import {processTS, changeStatus} from "@/api/template/setPersonnel"
 import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
 import integrationTransfer from "@/views/integration/integrationTransfer";
 import SetPersonnel from "@/components/template/SetPersonnel";
 import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue";
 import BatchImport from '@/components/BatchImport'
+import MasterEditBulk from '@/components/Master/MasterEditBulk'
 import {validatenull} from "@/util/validate";
 import fileInHtml from "@/components/file/inHtml.vue";
 import {getUserInfo} from "@/api/system/user";
+import func from "@/util/func";
 
 export default {
   components: {
@@ -133,7 +207,8 @@
     SetPersonnel,
     ResembleQueryDialog,
     BatchImport,
-    fileInHtml
+    fileInHtml,
+    MasterEditBulk
   },
   name: "Crud.vue",
   props: {
@@ -153,6 +228,10 @@
     },
     tableDataArray: {
       type: Array,
+    },
+    TreeValue: {
+      type: String,
+      default: "",
     },
     total: {
       type: String,
@@ -177,10 +256,27 @@
     },
     Treedata: {
       type: Array
+    },
+    nodeClickList: {
+      type: Array,
+      default: []
     }
   },
   data() {
     return {
+      //鎵归噺缂栬緫瀵硅瘽妗�
+      bulkeditvisible: false,
+      LinkVisible: false,
+      LinkObject: {}, // 缂栫爜鏁版嵁
+      LinkList: [],
+      isCodeArrayPushed: false, // 缂栫爜鏁扮粍娣诲姞鏍囪瘑鍙橀噺
+      CodeArray: [],
+      //鐢熷懡鍛ㄦ湡鏁扮粍
+      lcstatusArray: [],
+      //鍙傜収鏁版嵁鏁扮粍
+      referArray: [],
+      islcstatusPushed: false,
+      isReferPushed: false,
       // 鐘舵�佹悳绱�
       statusSelect: "all",
       // 鍏抽敭瀛楁煡璇�
@@ -219,6 +315,8 @@
         label: "name",
       },
       tableHeadFindDatas: [],
+      applyvisible: false,
+      amendvisible: false,
       addvisible: false,
       editvisible: false,
       findvisible: false,
@@ -242,7 +340,7 @@
         datetime: "datetime",
       },
       tableData: [],
-      tableHeight: 'calc(100vh - 330px)',
+      tableHeight: 'calc(100vh - 350px)',
       DataVisible: false,
       tableHeadData: [],
       items: {},
@@ -263,9 +361,10 @@
         fileDocClassifyName: '',
         hasDownload: true,
         hasUpload: true,
-        height: 100
+        height: 110
       },
-      result: ''
+      result: '',
+      elapsedTime: '',
     };
   },
   computed: {
@@ -275,7 +374,7 @@
         oids.push(ele.oid);
       });
       return oids;
-    }
+    },
   },
   created() {
     // const index = this.$route.query.id.indexOf('@name=') + '@name='.length;
@@ -314,7 +413,7 @@
     tableHeadFindData: {
       handler(newval, oldval) {
         newval.forEach((record, _index) => {
-          if (record.field == 'id' && validatenull(record.templet)) {
+          if (record.queryField == 'id' && validatenull(record.templet)) {
             //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
             record.formatter = '';
           } else {
@@ -329,10 +428,37 @@
           }
 
           if (_index == 0) {
-            this.keyWordFind = record.field
+            this.keyWordFind = record.queryField
           }
         })
         this.tableHeadFindDatas = newval;
+        // console.log('new',newval)
+        if (!this.isCodeArrayPushed) {
+          if (newval.find(item => item.prop === 'id')) {
+            this.CodeArray.push(newval.find(item => item.prop === 'id'));
+          } else {
+            this.CodeArray.push([]);
+          }
+          // console.log('CodeArray', this.CodeArray);
+          this.isCodeArrayPushed = true;
+        }
+        if (!this.islcstatusPushed) {
+          if (newval.find(item => item.prop === 'lcstatus')) {
+            this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus'));
+          } else {
+            this.lcstatusArray.push([]);
+          }
+          // console.log('lcstatusArray', this.lcstatusArray);
+          this.islcstatusPushed = true;
+        }
+        if (!this.isReferPushed) {
+          if (newval.find(item => Object.keys(item.referConfig).length > 0)) {
+            this.referArray.push(newval.find(item => Object.keys(item.referConfig).length > 0));
+          } else {
+            this.referArray.push([])
+          }
+        }
+        this.isReferPushed = true;
         this.WupinFindValue = ''
       },
     },
@@ -349,14 +475,19 @@
     },
     tableHeadBtnData: {
       handler(newval) {
-        if (newval.length !== 0) {
-          this.masterVrBtnList = newval
-        }
+        this.masterVrBtnList = newval
       },
       deep: true
     },
   },
   methods: {
+    CodeLinkHandler(row) {
+      this.LinkObject = row;
+      this.LinkVisible = true;
+      this.LinkList = Object.keys(row).map(property => property)
+      // console.log(result);
+      // console.log(this.LinkObject)
+    },
     //鐘舵�佹悳绱�
     cellSelectHandler(row) {
       if (row === 'all') {
@@ -373,7 +504,6 @@
         limit: this.page.pageSize,
         'conditionMap[lcstatus]': lcstatus
       }).then(res => {
-        console.log(res)
         this.tableData = res.data.data
       })
     },
@@ -383,17 +513,17 @@
         this.tableHeight = 'calc(100vh - 630px)';
         this.$refs.dataTable.doLayout()
       } else {
-        this.tableHeight = 'calc(100vh - 330px)';
+        this.tableHeight = 'calc(100vh - 350px)';
         this.$refs.dataTable.doLayout()
       }
     },
     openVis(visible) {
       this[visible] = true
     },
-    handelBtnClick(event) {
+    handleBtnClick(event) {
       const {uniqueFlag} = event
       this.$nextTick(() => {
-        if (uniqueFlag === 'CODEADD') return this.addvisible = true
+        if (uniqueFlag === 'CODEADD') return this.addSaveHandler()
         if (uniqueFlag === 'CODEEDIT') return this.editHandler()
         if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply')
         if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport')
@@ -412,9 +542,132 @@
         if (uniqueFlag === 'CODERECYCLE') return this.Recovery()
         //鍒犻櫎
         if (uniqueFlag === 'CODEDELETE') return this.enumDeleteRow()
+        //鐢宠闆嗗洟鐮佹暟鎹�
+        if (uniqueFlag === 'applyGroupCode') return this.applyGroupCode()
+        //鏇存柊闆嗗洟鐮佹暟鎹�
+        if (uniqueFlag === 'receiveEditApply') return this.receiveEditApply()
         //  鐩镐技椤规煡璇�
         //  if(uniqueFlag === 'CODEEDIT') return this.similarHandler()
+        //  鏍囧噯鐢宠
+        if (uniqueFlag === 'CODEAPPLY') return this.codeApplyHandler()
+        //  鏍囧噯淇
+        if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler()
+        //鎵归噺缂栬緫
+        if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit")
       });
+    },
+    //鏍囧噯鐢宠
+    codeApplyHandler() {
+      this.$nextTick(() => {
+        this.applyvisible = true;
+      });
+    },
+    applySumbit(val) {
+      // console.log('val',val)
+      if (func.notEmpty(val.ts)) {
+        val.ts = func.formattedDateTime(val.ts);
+        //console.log(val.ts);
+      }
+      applySaveCode(val).then(res => {
+        this.$nextTick(() => {
+          this.applyvisible = false;
+          this.$message.success("淇濆瓨鎴愬姛");
+          this.onLoad()
+        })
+      })
+    },
+    amendSumbit(val) {
+      applySaveCode(val).then(res => {
+        this.$nextTick(() => {
+          this.amendvisible = false;
+          this.$message.success("淇濆瓨鎴愬姛");
+          this.onLoad()
+        })
+      })
+
+    },
+    //鏍囧噯淇
+    codeAMENDHandler() {
+      let foundItem = false;
+
+      this.tableHeadFindData.forEach(item => {
+        if (item.field === "oldcode" && Object.keys(item.referConfig).length >= 1) {
+          foundItem = true;
+        }
+      });
+
+      if (foundItem) {
+        this.amendvisible = true;
+        this.rowOid = this.selectRow[0].oid;
+      } else {
+        if (this.selectRow.length !== 1) {
+          this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+        } else {
+          this.amendvisible = true;
+          this.rowOid = this.selectRow[0].oid;
+        }
+      }
+    },
+    //鎵归噺缂栬緫
+    bulkEditHandler(type) {
+      // console.log(this.nodeClickList)
+      if (this.nodeClickList.children.length >= 1) {
+        this.$message.warning('褰撳墠閫夋嫨鐨勫垎绫讳笉鏄彾瀛愯妭鐐癸紝涓嶅厑璁告壒閲忕紪杈戯紒')
+        return;
+      }
+      if (this.selectRow.length <= 0) {
+        this.$message.warning('璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹紒')
+        return;
+      }
+      const Editing = this.selectRow.every(item => item.lcstatus === 'Editing');
+
+      if (Editing) {
+        this.batchImportData.visible = true
+        this.batchImportData.type = type
+        this.batchImportData.codeClassifyOid = this.codeClassifyOid
+      } else {
+        this.$message.warning('閫夋嫨鐨勬暟鎹腑鏈夌紪鐮佺姸鎬佷笉鏄�滅紪杈戜腑鈥濓紝涓嶅彲缂栬緫锛�');
+      }
+    },
+    addSaveHandler() {
+      this.$nextTick(() => {
+        this.addvisible = true;
+      });
+    },
+    //鐢宠闆嗗洟鐮佹暟鎹�
+    applyGroupCode() {
+      if (this.selectRow.length <= 0) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒')
+      } else {
+        // const requestData = this.selectRow.forEach(item => {
+        //   return { oids: item.oid, btmName: item.btmname };
+        // });
+
+        const oids = this.selectRow.map(item => item.oid).join(',');
+        applyGroupCode({oids, btmName: this.selectRow[0].btmname}).then(res => {
+          if (res.data.code == 200) {
+            this.$message.success('鐢宠鎴愬姛')
+          }
+          this.onLoad()
+        })
+      }
+    },
+    //鏇存柊闆嗗洟鐮佹暟鎹�
+    receiveEditApply() {
+      if (this.selectRow.length <= 0) {
+        this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒')
+      } else {
+        // const requestData = this.selectRow.forEach(item => {
+        //   return { oids: item.oid, btmName: item.btmname };
+        // });
+        const oids = this.selectRow.map(item => item.oid).join(',');
+        receiveEditApply({oids, btmName: this.selectRow[0].btmname}).then(res => {
+          if (res.data.code == 200) {
+            this.$message.success('鏇存柊鎴愬姛')
+            this.onLoad()
+          }
+        });
+      }
     },
     openD() {
       this.getListCodeByClassId();
@@ -430,75 +683,72 @@
         this.transferData = data;
       }
     },
-    handelTransferSave(val) {
-      console.log('鍙戝竷', val)
-    },
     rend() {
       this.tableData = this.tableHeadData;
     },
     // 鍙戝竷
     setHandler() {
       var options = {
-        processUse:'PUBLIC',
-        processUseText:'鐢宠',
-        allowStatus:'Editing',
-        allowStatusText:'宸茬紪杈�',
-        startStatus:'Auditing',
-        resetStatus:'Editing',
-        batchTitle:'鎵归噺鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�',
-        title:'鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�'
+        processUse: 'PUBLIC',
+        processUseText: '鐢宠',
+        allowStatus: 'Editing',
+        allowStatusText: '宸茬紪杈�',
+        startStatus: 'Auditing',
+        resetStatus: 'Editing',
+        batchTitle: '鎵归噺鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�',
+        title: '鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�'
       }
-      this.checkStatusAndSubmitProcess(options,'Released');
+      this.checkStatusAndSubmitProcess(options, 'Released');
     },
     //鍋滅敤
     Deactivate() {
       var options = {
-        processUse:'DISABLE',
-        processUseText:'鍋滅敤',
-        allowStatus:'Released',
-        allowStatusText:'宸插彂甯�',
-        resetStatus:'Released',
-        batchTitle:'鎵归噺鍋滅敤(鍐荤粨)鐨勭紪鐮佹暟鎹�',
-        title:'鍋滅敤(鍐荤粨)缂栫爜鏁版嵁',
-        confirmMsg:'鏄惁瑕佸仠鐢ㄨ繖浜涙暟鎹�'
+        processUse: 'DISABLE',
+        processUseText: '鍋滅敤',
+        allowStatus: 'Released',
+        allowStatusText: '宸插彂甯�',
+        resetStatus: 'Released',
+        batchTitle: '鎵归噺鍋滅敤(鍐荤粨)鐨勭紪鐮佹暟鎹�',
+        title: '鍋滅敤(鍐荤粨)缂栫爜鏁版嵁',
+        confirmMsg: '鏄惁瑕佸仠鐢ㄨ繖浜涙暟鎹�'
       }
-      this.checkStatusAndSubmitProcess(options,'Disabled');
+      this.checkStatusAndSubmitProcess(options, 'Disabled');
     },
     //鍚敤
     Enable() {
       var options = {
-        processUse:'ENABLE',
-        processUseText:'鍚敤',
-        allowStatus:'Disabled',
-        allowStatusText:'宸插仠鐢�',
-        resetStatus:'Disabled',
-        batchTitle:'鎵归噺鍚敤(瑙e喕)鐨勭紪鐮佹暟鎹�',
-        title:'鍚敤(瑙e喕)缂栫爜鏁版嵁',
-        confirmMsg:'鏄惁瑕佸惎鐢�(瑙e喕)杩欎簺鏁版嵁'
+        processUse: 'ENABLE',
+        processUseText: '鍚敤',
+        allowStatus: 'Disabled',
+        allowStatusText: '宸插仠鐢�',
+        resetStatus: 'Disabled',
+        batchTitle: '鎵归噺鍚敤(瑙e喕)鐨勭紪鐮佹暟鎹�',
+        title: '鍚敤(瑙e喕)缂栫爜鏁版嵁',
+        confirmMsg: '鏄惁瑕佸惎鐢�(瑙e喕)杩欎簺鏁版嵁'
       }
-      this.checkStatusAndSubmitProcess(options,'Released');
+      this.checkStatusAndSubmitProcess(options, 'Released');
     },
     //鍥炴敹
     Recovery() {
       var options = {
-        processUse:'ROLLBACK',
-        processUseText:'鍥炴敹',
-        allowStatus:'Released,Disabled',
-        allowStatusText:'宸插彂甯�,宸插仠鐢�',
-        batchTitle:'鎵归噺鍥炴敹鐨勭紪鐮佹暟鎹�',
-        title:'鍥炴敹缂栫爜鏁版嵁',
-        confirmMsg:'鏄惁瑕佸洖鏀惰繖浜涙暟鎹�',
+        processUse: 'ROLLBACK',
+        processUseText: '鍥炴敹',
+        allowStatus: 'Released,Disabled',
+        allowStatusText: '宸插彂甯�,宸插仠鐢�',
+        batchTitle: '鎵归噺鍥炴敹鐨勭紪鐮佹暟鎹�',
+        title: '鍥炴敹缂栫爜鏁版嵁',
+        confirmMsg: '鏄惁瑕佸洖鏀惰繖浜涙暟鎹�',
       }
-      this.checkStatusAndSubmitProcess(options,'TakeBack');
+      this.checkStatusAndSubmitProcess(options, 'TakeBack');
     },
-    checkStatusAndSubmitProcess(options,targetLcstatus){
+    checkStatusAndSubmitProcess(options, targetLcstatus) {
       // 缂栬緫涓�-鍙兘鍙戝竷锛屼笉鑳藉洖鏀�
       // 瀹℃牳涓�-浠�涔堥兘涓嶈兘鍋�
       // 宸插彂甯�-鍋滅敤銆佸洖鏀�
       // 鍋滅敤-鍙兘鍚敤銆佸洖鏀�
       if (this.selectRow.length <= 0) {
         this.$message.warning("璇烽�夋嫨鏁版嵁");
-      } else if (this.selectRow.length >1000) {
+      } else if (this.selectRow.length > 1000) {
         this.$message.warning("姣忔鎻愪氦鍒版祦绋嬬殑鏁伴噺璇蜂笉瑕佽秴杩�1000鏉�");
       } else {
         //瀹℃壒鐨勬暟鎹殑鐘舵�佸繀椤荤浉鍚�
@@ -512,27 +762,27 @@
           this.$message.warning("閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�");
           return false;
         }
-        if(options.processUseText=='鐢宠' && !validatenull(this.selectRow[0].copyfromversion)){
-          options.processUseText='淇敼'
-          options.processUse='EDIT'
+        if (options.processUseText == '鐢宠' && !validatenull(this.selectRow[0].copyfromversion)) {
+          options.processUseText = '淇敼'
+          options.processUse = 'EDIT'
         }
-        let checkStatus = this.selectRow.every(item =>  options.allowStatus.indexOf(item.lcstatus)!=-1);
-        if(!checkStatus){
-          this.$message.warning('鍙湁鐘舵�佹槸銆�'+options.allowStatusText+'銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�');
-          return  false;
+        let checkStatus = this.selectRow.every(item => options.allowStatus.indexOf(item.lcstatus) != -1);
+        if (!checkStatus) {
+          this.$message.warning('鍙湁鐘舵�佹槸銆�' + options.allowStatusText + '銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�');
+          return false;
         }
         processTS({templateId: this.templateOid, buttonTypeKey: options.processUse}).then(res => {
           if (res.data.data.records && res.data.data.records.length != 0) {
-            this.parameter.ids=this.oids;
-            this.parameter.processName = this.result + '-'+options.processUseText+'[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']';
+            this.parameter.ids = this.oids;
+            this.parameter.processName = this.result + '-' + options.processUseText + '[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']';
             this.parameter.type = options.processUse;
             this.parameter.code = this.templateOid
-            this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype;
-            this.parameter.vars= {
+            this.parameter.btmtype = this.selectRow[0].btmname || this.selectRow[0].btmtype;
+            this.parameter.vars = {
               codeClassifyOid: this.codeClassifyOid,
               templateOid: this.templateOid
             };
-            this.title = this.selectRow.length>1?options.batchTitle:options.title;
+            this.title = this.selectRow.length > 1 ? options.batchTitle : options.title;
             this.visibleDeactivate = true;
           } else {
             this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
@@ -540,7 +790,11 @@
               cancelButtonText: '鍙栨秷',
               type: 'warning'
             }).then(() => {
-              changeStatus({oid: this.oids.join(','), btmname: this.selectRow[0].btmname, lcStatus: targetLcstatus}).then(res => {
+              changeStatus({
+                oid: this.oids.join(','),
+                btmname: this.selectRow[0].btmname,
+                lcStatus: targetLcstatus
+              }).then(res => {
                 if (res.data.code == 200) {
                   this.$message.success(options.processUseText + '鎴愬姛')
                   this.onLoad()
@@ -556,21 +810,36 @@
         });
       }
     },
-    handleSizeChange(val) {
-      this.isLoading = true;
-      setTimeout(() => {
-        this.page.pageSize = val;
-        this.$emit("pageSize", val);
-        this.CrudRend();
-      }, 3000);
+    async CrudRend() {
+      this.elapsedTime = 0;
+      const startTime = performance.now();
+      const res = await TableData({
+        templateOid: this.templateOid,
+        codeClassifyOid: this.codeClassifyOid,
+        page: this.page.currentPage,
+        limit: this.page.pageSize,
+      });
+      const endTime = performance.now();
+      this.elapsedTime = Math.floor(endTime - startTime) * 1;
+      this.page.total = res.data.total;
+      this.data = res.data.data;
+      this.tableData = res.data.data;
     },
-    handleCurrentChange(val) {
+
+    async handleSizeChange(val) {
+      this.page.pageSize = val;
+      this.$emit("pageSize", val);
       this.isLoading = true;
-      setTimeout(() => {
-        this.page.currentPage = val;
-        this.$emit("currentPage", val);
-        this.CrudRend();
-      }, 3000);
+      await this.CrudRend();
+      this.isLoading = false;
+    },
+
+    async handleCurrentChange(val) {
+      this.page.currentPage = val;
+      this.$emit("currentPage", val);
+      this.isLoading = true;
+      await this.CrudRend();
+      this.isLoading = false;
     },
     // 鐩戝惉鍗曞厓鏍肩偣鍑讳簨浠跺苟瀛樺偍姝e湪缂栬緫鐨勮
     handleCellClick(row, column) {
@@ -595,7 +864,6 @@
           list.push(item.oid)
         })
         deleteCode({codeClassifyOid: this.codeClassifyOid, oidList: list}).then(res => {
-          console.log(res)
           if (res.data.code === 200) {
             this.$message({
               type: 'success',
@@ -623,45 +891,9 @@
         }
       })
     },
-    //琛ㄦ牸澶存覆鏌�
-    CrudHeaderRend() {
-      if (this.codeClassifyOid != "") {
-        MasterTable({
-          codeClassifyOid: this.codeClassifyOid
-        }).then((res) => {
-          this.options = res.data.tableDefineVO.seniorQueryColumns;
-          this.List = res.data.tableDefineVO.cols[0];
-          this.List.forEach((item) => {
-            let columnItem = {
-              label: item.title,
-              prop: item.field,
-              type: this.columnType[item.type],
-              sortable: item.sort,
-              width: item.minWidth,
-            };
-            this.option.column.push(columnItem);
-            this.option.column = this.tableHeadData;
-            this.templateOid = res.data.tableDefineVO.oid;
-            this.$emit("templateOid", this.templateOid);
-          });
-        });
-      }
-    },
-    //琛ㄦ牸鏁版嵁
-    CrudRend() {
-      TableData({
-        templateOid: this.templateOid,
-        codeClassifyOid: this.codeClassifyOid,
-        page: this.page.currentPage,
-        limit: this.page.pageSize,
-      }).then((res) => {
-        this.page.total = res.data.total;
-        this.data = res.data.data;
-        this.tableData = res.data.data;
-      });
-    },
     // 鎺掑簭
     sortChange(val) {
+      // console.log(val)
       this.isLoading = true;
       let order = "";
       if (val.order == "ascending") {
@@ -712,15 +944,13 @@
     },
     //缂栬緫
     editHandler() {
-      if (this.selectRow.length <= 0) {
+      if (this.selectRow.length !== 1) {
         this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-      } else if (this.selectRow.length > 1) {
-        this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�");
-      } else if (this.selectRow[0].lcstatus != "Editing") {
-        this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥�,涓嶅彲缂栬緫");
+      } else if (this.selectRow[0].lcstatus !== "Editing") {
+        this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥濓紝涓嶅彲缂栬緫");
       } else {
         this.editvisible = true;
-        this.rowOid = this.selectRow[0]['oid']
+        this.rowOid = this.selectRow[0].oid;
       }
     },
     //楂樼骇鏌ヨ鎸夐挳
@@ -763,31 +993,37 @@
     },
     //澧炲姞淇濆瓨
     AddSumbit(val) {
-      this.addvisible = false;
+      // console.log('val',val)
+      if (func.notEmpty(val.ts)) {
+        val.ts = func.formattedDateTime(val.ts);
+        //console.log(val.ts);
+      }
       addSaveCode(val).then(res => {
         this.$nextTick(() => {
+          this.addvisible = false;
+          this.$message.success("淇濆瓨鎴愬姛");
           this.onLoad()
         })
       })
     },
     //淇敼鍥炶皟
     EditSumbit(val) {
-      this.editvisible = false;
       editSaveCode(val).then(res => {
         this.$nextTick(() => {
+          this.editvisible = false;
+          this.$message.success("淇濆瓨鎴愬姛");
           this.onLoad()
         })
       })
     },
     //鏁版嵁鏇存敼鍥炶皟
     updataSumbit(val) {
-      this.DataVisible = false;
       val.copyFromVersion = this.rowOid;
       val.oid = '';
-      console.log(val)
       upSaveCode(val).then(res => {
-        console.log(res)
         this.$nextTick(() => {
+          this.DataVisible = false;
+          this.$message.success("淇濆瓨鎴愬姛");
           this.onLoad()
         })
       })
@@ -810,7 +1046,8 @@
         limit: this.page.pageSize,
         ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*'
       }).then(res => {
-        this.tableData = res.data.data
+        this.tableData = res.data.data;
+        // this.page.total = res.data.data.total;
       })
     }
 
@@ -819,18 +1056,35 @@
 </script>
 
 <style lang="scss" scoped>
-.testbox {
-  .el-table--scrollable-x .el-table__body-wrapper {
-    overflow: auto !important;
-  }
-
-  .el-table__fixed-right-patch {
-    background-color: #f5f7fa !important;
-  }
+//鍥哄畾鍒楅珮搴�
+/deep/ .el-table__fixed {
+  height: calc(100vh - 370px) !important;
 }
 
-/deep/ .el-button {
+// 婊氬姩鏉℃牱寮忎慨鏀�
+// 婊氬姩鏉$殑瀹藉害
+/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;
+}
+
+
+.el-button {
   margin: 0 10px 10px 0;
+}
+
+/deep/ .dialog-footer .el-button {
+  margin: 0 10px 0 0;
 }
 
 .main {
@@ -846,11 +1100,10 @@
 }
 
 .bottom {
-  margin-top: 20px;
-  overflow-y: scroll;
+  margin-top: 10px;
 }
 
-.el-collapse-item__content {
-  padding-bottom: 0;
+.el-table__body-wrapper {
+  height: calc(100% - 44px) !important;
 }
 </style>

--
Gitblit v1.9.3