From cc3682641685022d2f0400b30408cf3cb5a0a93d Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 18 十二月 2023 17:31:04 +0800
Subject: [PATCH] 主数据管理:高级查询,状态查询,快速查询,当查询出多页时,点击分页的页码能够保留上一次的查询条件进行分页,点击分类树节点时则置空查询条件。

---
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue |  176 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 104 insertions(+), 72 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index 76fc6c0..420cd25 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -46,15 +46,15 @@
                 <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 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"
@@ -345,9 +345,10 @@
       },
       // 涓绘暟鎹寜閽�
       masterVrBtnList: [],
-      fileOptions:{},
+      fileOptions: {},
       result: '',
       elapsedTime: '',
+      conditionMap: [],
     };
   },
   computed: {
@@ -397,7 +398,7 @@
         this.tableData = newval;
         this.searchResults = newval
         this.doLayout();
-        this.fileOptions= {
+        this.fileOptions = {
           ownbizOid: "0",
           ownbizBtm: "0",
           fileDocClassify: '!=processAuditSuggest',
@@ -427,7 +428,8 @@
           }
 
           if (_index == 0) {
-            this.keyWordFind = record.queryField
+            this.keyWordFind = record.queryField;
+            //console.log(record)
           }
         })
         this.tableHeadFindDatas = newval;
@@ -467,6 +469,7 @@
     templateOid: {
       handler(newval, oldval) {
         this.fileOptions.ownbizOid = "0";
+        this.statusSelect = 'all'
       },
       deep: true,
     },
@@ -478,11 +481,15 @@
     },
   },
   methods: {
+    // 缃┖鏌ヨ鏉′欢
+    resetConditionMap() {
+      this.conditionMap = {};
+    },
+
     CodeLinkHandler(row) {
       this.LinkObject = row;
       this.LinkVisible = true;
       this.LinkList = Object.keys(row).map(property => property)
-
     },
     //鐘舵�佹悳绱�
     cellSelectHandler(row) {
@@ -494,6 +501,7 @@
     },
     cellStatusFind(lcstatus) {
       this.isLoading = true;
+      this.conditionMap["conditionMap[lcstatus]"] = lcstatus;
       TableData({
         templateOid: this.templateOid,
         codeClassifyOid: this.codeClassifyOid,
@@ -590,7 +598,7 @@
         func.downloadFileByBlobHandler(res);
         this.$message.success('涓嬭浇鎴愬姛锛岃鏌ョ湅锛�');
         this.isLoading = false;
-      }).catch(error=>{
+      }).catch(error => {
         this.$message.error(error);
       });
     },
@@ -853,6 +861,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;
@@ -914,7 +923,7 @@
         });
       });
     },
-    // 灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬�
+    //灏嗘鍦ㄧ紪杈戠殑琛岀殑鐘舵�佸彉涓� null 锛屽嵆閫�鍑虹紪杈戠姸鎬�
     saveRow() {
       this.editingRow = null;
     },
@@ -927,40 +936,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) {
@@ -993,38 +1008,50 @@
       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) {
@@ -1071,17 +1098,22 @@
     //杈撳叆鍥炶溅鎼滅储
     tableFindInp() {
       this.isLoading = true;
-      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;
+      try {
+        // 瀛樺偍鏌ヨ鏉′欢锛屼富瑕佹槸涓轰簡鐐瑰嚮椤电爜鏃跺甫涓婅繖涓潯浠�
+        this.conditionMap["conditionMap[" + this.keyWordFind + "]"] = '*' + this.WupinFindValue + '*';
+        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;
-      })
+      }
     }
 
   }

--
Gitblit v1.9.3