From fc31bda418c337ba9d3650186b8f1547ba9c5ad0 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期六, 25 五月 2024 22:39:58 +0800
Subject: [PATCH] 表格错行

---
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue |  617 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 416 insertions(+), 201 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index 82d6fe0..333132e 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -2,27 +2,37 @@
   <basic-container>
     <div class="main">
       <div class="top">
-        <div class="testbox" style="">
+        <div class="testbox">
           <div>
           </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="handleBtnClick(item)">{{
-                    item.name
-                  }}
-                </el-button>
-              <span v-if="tableHeadFindData.length > 0">
-              <el-select slot="prepend" v-model="keyWordFind" placeholder="璇烽�夋嫨" size="small">
+            <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="handleBtnClick(item)">{{
+                  item.name
+                }}
+              </el-button>
+              <span v-if="tableHeadFindData.length > 0 ">
+              <el-select slot="prepend" v-model="keyWordFind" placeholder="璇烽�夋嫨" size="small" @change="searchChange">
                 <el-option v-for="item in tableHeadFindData" :key="item.id" :label="item.label"
-                           :value="item.prop"></el-option>
+                           :value="item.query"></el-option>
               </el-select>
-              <el-input v-model="WupinFindValue" placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�"
-                        size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
+              <el-input v-if="!isTimeStatus" v-model="WupinFindValue"
+                        placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�" size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
                         @keyup.enter.native="tableFindInp"></el-input>
+              </span>
+              <span v-if="tableHeadFindData.length > 0  && isTimeStatus" class="block">
+                <el-date-picker
+                  v-model="dateValue"
+                  placeholder="閫夋嫨鏃ユ湡"
+                  size="small"
+                  style="margin-left: 5px"
+                  type="date"
+                  @change="dateChange">
+                </el-date-picker>
               </span>
               <span v-if="tableHeadFindData.length > 0" style="margin-left: 10px">
                <p style="font-size: 13px;display: inline-block;"> 鐘舵�侊細</p>
@@ -36,65 +46,62 @@
               </el-select></span>
             </div>
             <div class="custom-table">
-              <el-table class="cus-table" ref="dataTable" v-loading="isLoading" :data="tableData"
-                        :height="tableHeight"  border
-                        @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick"
-                        @select-all="handleSelectionAll" @selection-change="handleSelectionChange"
-                        @sort-change="sortChange">
+              <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" key="index" v-if=" lcstatusArray.length !== 0 && !item.hidden" label="鐢熷懡鍛ㄦ湡鍊�" prop="lcstatus"
-                                 :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
-                                 align="center">
-                  <template slot-scope="scope">
-                    <span>{{ scope.row.lcstatus_text }}</span>
-                  </template>
-                </el-table-column>
-                <!--               鍙傜収鏁版嵁-->
-                <el-table-column v-for="(item,index) in referArray" key="index" v-if="  Object.keys(item.referConfig).length > 0 && !item.hidden" :label="item.title" prop="jiliangdw"
-                                 :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
-                                 align="center">
-                  <template slot-scope="scope">
-                    <span>{{ scope.row.jiliangdwname }}</span>
-                  </template>
-                </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" key="index" v-if="CodeArray.length !== 0 && !item.hidden" :label="item.label" :prop="item.prop"
-                                  :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
-                                  align="center">
+                <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"
+                <el-table-column v-for="item in this.tableHeadFindData"
+                                 v-if="!item.hidden && item.prop !== 'id'"
                                  :key="item.id"
                                  :formatter="item.formatter"
-                                 :label="item.label" :prop="item.prop"
+                                 :label="item.label"
+                                 :prop="item.prop"
                                  :show-overflow-tooltip="true"
                                  :sortable="item.sortable"
                                  :width="item.width"
                                  align="center">
                 </el-table-column>
-
               </el-table>
             </div>
           </el-row>
           <!--          鐢宠-->
           <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid"
                               :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid"
-                              :visible.sync="applyvisible"
+                              :visible.sync="applyvisible" status="apply"
                               type="add"
                               @submit="applySumbit">
           </FormTemplateDialog>
           <!--          淇-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
-                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'"
-                              :visible.sync="amendvisible"
-                              type="edit" @submit="amendSumbit"></FormTemplateDialog>
+                              :disabledProp="disabledProp" :selectRow="selectRow" :templateOid="templateOid"
+                              :title="'鏁版嵁淇'" :visible.sync="amendvisible" status="amend"
+                              type="add" @submit="amendSumbit"></FormTemplateDialog>
           <!--          鏂板-->
           <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid"
                               :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid"
@@ -104,14 +111,15 @@
           </FormTemplateDialog>
           <!--          淇敼-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
-                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'"
+                              :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid"
+                              :title="'淇敼缂栫爜淇℃伅'"
                               :visible.sync="editvisible"
                               type="edit" @submit="EditSumbit"></FormTemplateDialog>
           <!--          鎵归噺缂栬緫-->
-<!--          <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>-->
+          <!--          <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>-->
           <!--          鏁版嵁璇︽儏-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
-                               :rowOid="this.LinkObject.oid" :templateOid="templateOid"
+                              :rowOid="this.LinkObject.oid" :templateOid="templateOid"
                               :title="'鏁版嵁璇︽儏'"
                               :visible.sync="LinkVisible"
                               type="detail"></FormTemplateDialog>
@@ -143,7 +151,8 @@
                           :visible.sync="dialogPush"></MasterTransfer>
           <!--        瀵煎叆-->
           <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend"
-                       :visible.sync="batchImportData.visible" :tableHeadData="tableHeadFindData" :selectRow="selectRow">
+                       :selectRow="selectRow" :tableHeadData="tableHeadFindData"
+                       :visible.sync="batchImportData.visible">
           </BatchImport>
           <!--          鐩镐技椤�-->
           <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid"
@@ -155,6 +164,22 @@
                            @current-change="handleCurrentChange">
             </el-pagination>
           </div>
+          <el-dialog v-loading="syncLoading" :visible.sync="syncDialogBox" append-to-body title="鎵嬪姩鍚屾" top="200px"
+                     width="30%" @close="syncClose">
+            <p style="display: inline-block">鏈�鍚庢洿鏂版椂闂达細</p>
+            <el-date-picker
+              v-model="SyncValue"
+              format="yyyy 骞� MM 鏈� dd 鏃� HH 鏃� mm 鍒� ss 绉�"
+              placeholder="閫夋嫨鏃ユ湡"
+              style="width: 300px"
+              type="date"
+              value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+            <div slot="footer" class="dialog-footer">
+              <el-button @click="syncClose">鍙� 娑�</el-button>
+              <el-button type="primary" @click="submitSync">纭� 瀹�</el-button>
+            </div>
+          </el-dialog>
         </div>
       </div>
       <div class="bottom">
@@ -177,7 +202,10 @@
   deleteCode,
   upSaveCode,
   applyGroupCode,
-  receiveEditApply
+  receiveEditApply,
+  applySaveCode,
+  exportGroupCodeExcel,
+  syncSearch
 } from "@/api/GetItem";
 import {processTS, changeStatus} from "@/api/template/setPersonnel"
 import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
@@ -190,6 +218,7 @@
 import fileInHtml from "@/components/file/inHtml.vue";
 import {getUserInfo} from "@/api/system/user";
 import func from "@/util/func";
+import moment from "moment/moment";
 
 export default {
   components: {
@@ -247,26 +276,33 @@
     Treedata: {
       type: Array
     },
-    nodeClickList:{
-      type:Array,
-      default:[]
+    nodeClickList: {
+      type: Array,
+      default: []
     }
   },
   data() {
     return {
+      //鎵嬪姩鍚屾model
+      SyncValue: '',
+      syncLoading: false,
+      syncDialogBox: false,
+      isTimeStatus: false,
+      isTimeName: '',
+      dateValue: "",
       //鎵归噺缂栬緫瀵硅瘽妗�
-      bulkeditvisible:false,
+      bulkeditvisible: false,
       LinkVisible: false,
       LinkObject: {}, // 缂栫爜鏁版嵁
       LinkList: [],
       isCodeArrayPushed: false, // 缂栫爜鏁扮粍娣诲姞鏍囪瘑鍙橀噺
       CodeArray: [],
       //鐢熷懡鍛ㄦ湡鏁扮粍
-      lcstatusArray:[],
+      lcstatusArray: [],
       //鍙傜収鏁版嵁鏁扮粍
-      referArray:[],
-      islcstatusPushed:false,
-      isReferPushed:false,
+      referArray: [],
+      islcstatusPushed: false,
+      isReferPushed: false,
       // 鐘舵�佹悳绱�
       statusSelect: "all",
       // 鍏抽敭瀛楁煡璇�
@@ -282,7 +318,6 @@
         btmtype: '',
         code: "",
         type: '',
-        // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC'
         processName: "",
         vars: {
           codeClassifyOid: "",
@@ -304,9 +339,8 @@
         key: "oid",
         label: "name",
       },
-      tableHeadFindDatas: [],
-      applyvisible:false,
-      amendvisible:false,
+      applyvisible: false,
+      amendvisible: false,
       addvisible: false,
       editvisible: false,
       findvisible: false,
@@ -344,17 +378,10 @@
       },
       // 涓绘暟鎹寜閽�
       masterVrBtnList: [],
-      fileOptions: {
-        ownbizOid: "0",
-        ownbizBtm: "0",
-        fileDocClassify: '!=processAuditSuggest',
-        fileDocClassifyName: '',
-        hasDownload: true,
-        hasUpload: true,
-        height: 110
-      },
+      fileOptions: {},
       result: '',
-      elapsedTime:'',
+      elapsedTime: '',
+      conditionMap: [],
     };
   },
   computed: {
@@ -367,8 +394,6 @@
     },
   },
   created() {
-    // const index = this.$route.query.id.indexOf('@name=') + '@name='.length;
-    // this.result = this.$route.query.id.substring(index);
     getUserInfo().then(res => {
       this.result = res.data.data.realName
     })
@@ -382,9 +407,16 @@
     this.doLayout()
   },
   watch: {
+    isLoading: {
+      handler(newval) {
+        // console.log(newval)
+      }
+    },
     tableHeadDataFateher: {
       handler(newval, oldval) {
-        this.options = newval.tableDefineVO.seniorQueryColumns
+        if (Object.keys(newval).length > 0) {
+          this.options = newval.tableDefineVO.seniorQueryColumns;
+        }
       }
     },
     codeClassifyOid: {
@@ -396,8 +428,23 @@
     tableDataArray: {
       handler(newval, oldval) {
         this.tableData = newval;
-        this.searchResults = newval
-        this.doLayout()
+        this.searchResults = newval;
+        this.doLayout();
+        if (newval.length > 0) {
+          this.fileOptions = {
+            ownbizOid: "0",
+            ownbizBtm: "0",
+            fileDocClassify: '!=processAuditSuggest',
+            fileDocClassifyName: '',
+            hasDownload: true,
+            hasUpload: true,
+            hasEdit: true,
+            hasDel: true,
+            height: 'auto'
+          }
+        } else {
+          this.fileOptions = {};
+        }
       },
     },
     tableHeadFindData: {
@@ -418,39 +465,40 @@
           }
 
           if (_index == 0) {
-            this.keyWordFind = record.queryField
+            this.keyWordFind = record.queryField;
           }
+          ;
+          // if(record.fieldType === "datetime"){
+          //       this.isTimeStatus = true;
+          //       console.log(this.isTimeStatus)
+          //       console.log(record)
+          // }
         })
-        this.tableHeadFindDatas = newval;
-        // console.log('new',newval)
-        if (!this.isCodeArrayPushed) {
+        if (newval) {
+          this.CodeArray = [];
           if (newval.find(item => item.prop === 'id')) {
             this.CodeArray.push(newval.find(item => item.prop === 'id'));
           } else {
-            this.CodeArray.push([]);
+            this.CodeArray = [];
           }
-          // console.log('CodeArray', this.CodeArray);
-          this.isCodeArrayPushed = true;
+
         }
-        if (!this.islcstatusPushed) {
+        if (newval) {
+          this.lcstatusArray = [];
           if (newval.find(item => item.prop === 'lcstatus')) {
             this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus'));
           } else {
-            this.lcstatusArray.push([]);
+            this.lcstatusArray = [];
           }
-          // console.log('lcstatusArray', this.lcstatusArray);
-          this.islcstatusPushed = true;
         }
-        if(!this.isReferPushed){
+        if (newval) {
+          this.referArray = [];
           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([])
+          } else {
+            this.referArray = [];
           }
         }
-        this.isReferPushed=true;
-        console.log('new',this.referArray)
-        console.log('ss',newval.find(item => Object.keys(item.referConfig).length > 0))
         this.WupinFindValue = ''
       },
     },
@@ -462,23 +510,27 @@
     templateOid: {
       handler(newval, oldval) {
         this.fileOptions.ownbizOid = "0";
+        this.statusSelect = 'all'
       },
       deep: true,
     },
     tableHeadBtnData: {
       handler(newval) {
-          this.masterVrBtnList = newval
+        this.masterVrBtnList = newval
       },
       deep: true
     },
   },
   methods: {
+    // 缃┖鏌ヨ鏉′欢
+    resetConditionMap() {
+      this.conditionMap = {};
+    },
+
     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) {
@@ -489,6 +541,8 @@
       }
     },
     cellStatusFind(lcstatus) {
+      this.isLoading = true;
+      this.conditionMap["conditionMap[lcstatus]"] = lcstatus;
       TableData({
         templateOid: this.templateOid,
         codeClassifyOid: this.codeClassifyOid,
@@ -496,7 +550,10 @@
         limit: this.page.pageSize,
         'conditionMap[lcstatus]': lcstatus
       }).then(res => {
-        this.tableData = res.data.data
+        // console.log(res)
+        this.tableData = res.data.data;
+        this.page.total = res.data.total;
+        this.isLoading = false;
       })
     },
     //灞曞紑闄勪欢
@@ -546,53 +603,155 @@
         if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler()
         //鎵归噺缂栬緫
         if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit")
+        //闆嗗洟鐮佸鍑�
+        if (uniqueFlag === 'excelGroupCode') return this.excelGroupCode()
+        //闆嗗洟鐮佸鍏�
+        if (uniqueFlag === 'importGroupCode') return this.importGroupCode("groupCode")
+        //鎵嬪姩鍚屾
+        if (uniqueFlag === 'manualSyncing') return this.manualSyncing("groupCode")
+      });
+    },
+    //鎵嬪姩鍚屾
+    manualSyncing() {
+      this.syncDialogBox = true;
+    },
+    //鎵嬪姩鍚屾鍏抽棴
+    syncClose() {
+      this.syncDialogBox = false;
+    },
+    //鎵嬪姩鍚屾纭畾
+    async submitSync() {
+      if (this.SyncValue) {
+        this.syncLoading = true;
+        const response = await syncSearch({endDate: this.SyncValue})
+        console.log('response',response)
+        if (response.data.code === 200) {
+          this.$message.success('鍚屾鎴愬姛锛�')
+          this.syncLoading = false;
+          this.syncDialogBox = false;
+          this.SyncValue = "";
+        } else {
+          this.syncLoading = false;
+          this.syncDialogBox = false;
+          this.SyncValue = "";
+        }
+      } else {
+        this.$message.warning('璇烽�夋嫨鏈�鍚庢洿鏂版椂闂达紒')
+      }
+    },
+    //闆嗗洟鐮佸鍏�
+    importGroupCode(type) {
+      this.batchImportData.visible = true
+      this.batchImportData.type = type
+      this.batchImportData.codeClassifyOid = this.codeClassifyOid
+    },
+    //闆嗗洟鐮佸鍑�
+    excelGroupCode() {
+      this.isLoading = true;
+      exportGroupCodeExcel({
+        codeClassifyOid: this.codeClassifyOid,
+      }).then(res => {
+        // let reader = new FileReader();
+        // reader.readAsText(res.data);
+        // reader.onload = () => {
+        //   try {
+        //     let resData = JSON.parse(reader.result);  // 瑙f瀽瀵硅薄鎴愬姛
+        //     if (!resData.success) {
+        //       this.$message.error(resData.msg);
+        //       this.isLoading = false;
+        //     }
+        //   } catch (err) {
+        //     // 瑙f瀽鎴愬璞″け璐ワ紝璇存槑鏄甯哥殑鏂囦欢娴�
+        //     func.downloadFileByBlobHandler(res);
+        //     this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�');
+        //     this.isLoading = false;
+        //   }
+        // };
+        func.downloadFileByBlobHandler(res);
+        this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�');
+        this.isLoading = false;
+      }).catch(error => {
+        this.$message.error(error);
       });
     },
     //鏍囧噯鐢宠
-    codeApplyHandler(){
+    codeApplyHandler() {
       this.$nextTick(() => {
         this.applyvisible = true;
       });
     },
-    applySumbit(){
-
+    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(){
+    amendSumbit(val) {
+      applySaveCode(val).then(res => {
+        this.$nextTick(() => {
+          this.amendvisible = false;
+          this.$message.success("淇濆瓨鎴愬姛");
+          this.onLoad()
+        })
+      })
 
     },
     //鏍囧噯淇
-    codeAMENDHandler(){
-      if (this.selectRow.length !== 1) {
-        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-      } else if (this.selectRow[0].lcstatus !== "Editing") {
-        this.$message.warning("缂栫爜鐘舵�佷笉鏄�滅紪杈戜腑鈥濓紝涓嶅彲缂栬緫");
+    codeAMENDHandler() {
+      let foundItem = false;
+      this.tableHeadFindData.forEach(item => {
+        if (item.field === "oldcode" && Object.keys(item.referConfig).length >= 1) {
+          foundItem = true;
+        }
+      });
+      if (foundItem) {
+        if (this.selectRow.length >= 1) {
+          this.$confirm('宸叉湁鍙傜収鏄惁鍙栨秷鍕鹃�夌户缁墽琛岋紵', '鎻愮ず', {
+            confirmButtonText: '纭畾',
+            cancelButtonText: '鍙栨秷',
+            type: 'warning'
+          }).then(() => {
+            this.selectRow = [];
+            //鍙栨秷鍕鹃�夌姸鎬�
+            this.$refs.dataTable.clearSelection();
+            this.amendvisible = true;
+          }).catch(() => {
+            this.$message({
+              type: 'info',
+              message: '宸插彇娑堝綋鍓嶆搷浣�'
+            });
+          });
+        } else {
+          this.amendvisible = true;
+        }
       } else {
-        this.amendvisible = true;
-        this.rowOid = this.selectRow[0].oid;
+        if (this.selectRow.length <= 0) {
+          this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�");
+        } else {
+          this.amendvisible = true;
+
+        }
       }
     },
     //鎵归噺缂栬緫
-    bulkEditHandler(type){
-      console.log(this.nodeClickList)
-      if(this.nodeClickList.children.length >= 1){
+    bulkEditHandler(type) {
+      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('閫夋嫨鐨勬暟鎹腑鏈夌紪鐮佺姸鎬佷笉鏄�滅紪杈戜腑鈥濓紝涓嶅彲缂栬緫锛�');
-      }
+      this.batchImportData.visible = true
+      this.batchImportData.type = type
+      this.batchImportData.codeClassifyOid = this.codeClassifyOid
     },
-    addSaveHandler(){
+    addSaveHandler() {
       this.$nextTick(() => {
         this.addvisible = true;
       });
@@ -602,10 +761,6 @@
       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) {
@@ -620,9 +775,6 @@
       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) {
@@ -781,6 +933,7 @@
         codeClassifyOid: this.codeClassifyOid,
         page: this.page.currentPage,
         limit: this.page.pageSize,
+        ...this.conditionMap, /**甯︿笂鍒嗛〉鏌ヨ鏉′欢 */
       });
       const endTime = performance.now();
       this.elapsedTime = Math.floor(endTime - startTime) * 1;
@@ -842,7 +995,7 @@
         });
       });
     },
-    // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬�
+    //灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬�
     saveRow() {
       this.editingRow = null;
     },
@@ -855,40 +1008,46 @@
       })
     },
     // 鎺掑簭
-    sortChange(val) {
-      // console.log(val)
-      this.isLoading = true;
-      let order = "";
-      if (val.order == "ascending") {
-        order = "asc";
-      } else {
-        order = "desc";
+    async sortChange(val) {
+      try {
+        this.isLoading = true;
+        const order = val.order == 'ascending' ? 'asc' : 'desc';
+        const {data} = await TableData({
+          templateOid: this.templateOid,
+          codeClassifyOid: this.codeClassifyOid,
+          order: order,
+          sort: val.prop,
+          page: this.page.currentPage,
+          limit: this.page.pageSize,
+          ...this.conditionMap
+        });
+        this.data = data.data;
+      } finally {
+        this.isLoading = false;
       }
-      TableData({
-        templateOid: this.templateOid,
-        codeClassifyOid: this.codeClassifyOid,
-        order: order,
-        sort: val.prop,
-        page: this.page.currentPage,
-        limit: this.page.pageSize,
-      }).then((res) => {
-        setTimeout(() => {
-          this.data = res.data.data;
-          this.isLoading = false;
-        }, 100);
-      });
     },
     //鍒嗛〉鍒锋柊
     async onLoad(val) {
-      await TableData({
-        templateOid: this.templateOid,
-        codeClassifyOid: this.codeClassifyOid,
-        page: this.page.currentPage,
-        limit: this.page.pageSize,
-      }).then((res) => {
+      this.isLoading = true;
+      try {
+        let conditionMap = {};
+        if (this.statusSelect !== 'all') {
+          conditionMap.lcstatus = this.statusSelect;
+        }
+        const res = await TableData({
+          templateOid: this.templateOid,
+          codeClassifyOid: this.codeClassifyOid,
+          page: this.page.currentPage,
+          limit: this.page.pageSize,
+          conditionMap
+        });
         this.tableData = res.data.data;
-        this.doLayout()
-      });
+        this.doLayout();
+      } catch (error) {
+        this.$message.error(error)
+      } finally {
+        this.isLoading = false;
+      }
     },
     //澶氶��
     handleSelectionChange(list) {
@@ -921,43 +1080,54 @@
       this.findvisible = true;
     },
     // 楂樼骇鏌ヨ
-    echoContion(val) {
-      FindData({
-        templateOid: this.templateOid,
-        codeClassifyOid: this.codeClassifyOid,
-        ...val,
-      }).then((res) => {
+    async echoContion(val) {
+      this.conditionMap = val;
+      try {
+        const res = await FindData({
+          templateOid: this.templateOid,
+          codeClassifyOid: this.codeClassifyOid,
+          ...val,
+          page: this.page.currentPage = 1, /** 姣忔鐐瑰嚮楂樼骇鏌ヨ閮藉簲璇ヤ粠绗竴椤靛紑濮�*/
+          limit: this.page.pageSize
+        });
         this.tableData = res.data.data;
         this.page.total = res.data.total
-      });
+      } catch (error) {
+
+      }
     },
     //鐩镐技椤规煡璇�
     similarHandler() {
       if (this.selectRow.length <= 0) {
         this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-      } else if (this.selectRow.length > 1) {
-        this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�");
-      } else {
-        this.similarVisible = true;
+        return;
       }
+      if (this.selectRow.length > 1) {
+        this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�");
+        return;
+      }
+      this.similarVisible = true;
     },
     //鏁版嵁鏇存敼
     DataChange() {
       if (this.selectRow.length <= 0) {
         this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-      } else if (this.selectRow.length > 1) {
-        this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�");
-      } else if (this.selectRow[0].lcstatus != "Released") {
-        this.$message.warning("鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼");
-      } else {
-        this.DataVisible = true;
-        this.rowOid = this.selectRow[0]['oid']
+        return
       }
+      if (this.selectRow.length > 1) {
+        this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�");
+        return;
+      }
+      if (this.selectRow[0].lcstatus != "Released") {
+        this.$message.warning("鍙湁鐘舵�佷负宸插彂甯冪殑鏁版嵁鎵嶈兘杩涜鏁版嵁鏇存敼");
+        return;
+      }
+      this.DataVisible = true;
+      this.rowOid = this.selectRow[0]['oid']
     },
     //澧炲姞淇濆瓨
     AddSumbit(val) {
-      // console.log('val',val)
-      if(func.notEmpty(val.ts)) {
+      if (func.notEmpty(val.ts)) {
         val.ts = func.formattedDateTime(val.ts);
         //console.log(val.ts);
       }
@@ -996,22 +1166,58 @@
       this.batchImportData.type = type
       this.batchImportData.codeClassifyOid = this.codeClassifyOid
     },
+    searchChange(val) {
+      this.isTimeName = val;
+      this.isTimeStatus = this.tableHeadFindData.some(item => {
+        if (item.fieldType === "datetime" && item.prop === val) {
+          return true;
+        }
+        return false;
+      });
+      // console.log(this.isTimeStatus)
+    },
+    dateChange(val) {
+      if (val) {
+        const momentDate = moment(this.dateValue);
+        const dateString = momentDate.format("yyyy-MM-DD");
+        this.isLoading = true;
+        try {
+          TableData({
+            templateOid: this.templateOid,
+            codeClassifyOid: this.codeClassifyOid,
+            page: this.page.currentPage,
+            limit: this.page.pageSize,
+            ['conditionMap[' + this.keyWordFind + ']']: dateString
+          }).then(res => {
+            this.tableData = res.data.data;
+            this.page.total = res.data.total;
+          })
+        } finally {
+          this.isLoading = false;
+        }
+      }
+    },
     //杈撳叆鍥炶溅鎼滅储
     tableFindInp() {
-      /*if (this.WupinFindValue.trim() === '') {
-        this.$message.warning('杈撳叆鍊间笉鑳戒负绌�')
-        return;
-      }*/
-      TableData({
-        templateOid: this.templateOid,
-        codeClassifyOid: this.codeClassifyOid,
-        page: this.page.currentPage,
-        limit: this.page.pageSize,
-        ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*'
-      }).then(res => {
-        this.tableData = res.data.data;
-        // this.page.total = res.data.data.total;
-      })
+      this.isLoading = true;
+      try {
+        this.conditionMap = {};
+        // 瀛樺偍鏌ヨ鏉′欢锛屼富瑕佹槸涓轰簡鐐瑰嚮椤电爜鏃跺甫涓婅繖涓潯浠�
+        this.conditionMap["conditionMap[" + this.keyWordFind + "]"] = '*' + this.WupinFindValue + '*';
+        console.log(this.conditionMap)
+        TableData({
+          templateOid: this.templateOid,
+          codeClassifyOid: this.codeClassifyOid,
+          page: this.page.currentPage,
+          limit: this.page.pageSize,
+          ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*'
+        }).then(res => {
+          this.tableData = res.data.data;
+          this.page.total = res.data.total;
+        })
+      } finally {
+        this.isLoading = false;
+      }
     }
 
   }
@@ -1019,10 +1225,18 @@
 </script>
 
 <style lang="scss" scoped>
+
+/deep/ .el-table__fixed-body-wrapper {
+  .el-table__body {
+    padding-bottom: 15px;
+  }
+}
+
 //鍥哄畾鍒楅珮搴�
 /deep/ .el-table__fixed {
-  height: calc(100vh - 370px)!important;
+  height: calc(100vh - 365px) !important;
 }
+
 // 婊氬姩鏉℃牱寮忎慨鏀�
 // 婊氬姩鏉$殑瀹藉害
 /deep/ .el-table__body-wrapper::-webkit-scrollbar {
@@ -1032,6 +1246,7 @@
   width: 10px;
 
 }
+
 // 婊氬姩鏉$殑婊戝潡
 /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
   background-color: #ececec;
@@ -1051,20 +1266,20 @@
 .main {
   display: flex;
   flex-direction: column;
-  height: calc(100vh - 150px);
+  height: calc(100vh - 145px);
   min-height: 400px;
 }
 
 .top {
   overflow-y: scroll;
-  min-height: 55%;
+  min-height: 40%;
 }
 
 .bottom {
   margin-top: 10px;
 }
 
- .el-table__body-wrapper{
+.el-table__body-wrapper {
   height: calc(100% - 44px) !important;
 }
 </style>

--
Gitblit v1.9.3