Kaynağa Gözat

fix:处理内外部文件信息查看列表分页失效问题

liujiayin 3 yıl önce
ebeveyn
işleme
4731d0eda4

+ 62 - 7
src/views/infosManage/externalFiles/externalFiles.vue

@@ -26,14 +26,16 @@
         <template v-else>
           <ibps-crud key="istree"
                      ref="crud"
-                     :data="tableData"
+                     :data="listData"
                      :toolbars="listConfig.toolbars"
                      :search-form="listConfig.searchForm"
                      :pk-key="pkKey"
                      :columns="listConfig.columns"
                      :loading="loading"
+                     :pagination="pagination"
                      @sort-change="handleSortChange"
-                     @action-event="handleAction">
+                     @action-event="handleAction"
+                     @pagination-change="handlePaginationChange">
             <template slot="wenjinachayue"
                       slot-scope="scope">
               <ibps-attachment :value="scope.row.wen_jian_id_"
@@ -81,7 +83,17 @@ export default {
         label: 'label'
       },
       pkKey: 'id', // 主键  如果主键不是pk需要传主键
-      tableData: [],
+      listData: [],
+      selectListData: [],
+      bianlistData: {
+        dataResult: [],
+        pageResult: {
+          limit: 0,
+          page: 0,
+          totalCount: 0,
+          totalPages: 0
+        }
+      },
       listTreeData: [],
       listConfig: {
         // 工具栏
@@ -110,7 +122,9 @@ export default {
         border: true,
         stripe: true
       },
-      pagination: {},
+      pagination: {
+        limit: 20, page: 1
+      },
       sorts: {},
       // testData: [{
       //     zi_duan_yi_: '1',
@@ -179,8 +193,26 @@ export default {
       ActionUtils.setSorts(this.sorts, sort)
       this.getDatas(this.getSearcFormData())
     },
+    // 处理分页事件
+    handlePaginationChange(page) {
+      ActionUtils.setPagination(this.pagination, page)
+      this.bianlistData.pageResult.limit = page.limit
+      this.bianlistData.pageResult.page = page.page
+      let filterDatas = []
+      if (this.selectListData.length >= (page.limit * page.page)) {
+        for (let index = (page.limit * page.page) - page.limit; index < (page.limit * page.page); index++) {
+          filterDatas.push(this.selectListData[index])
+        }
+        this.bianlistData.dataResult = JSON.parse(JSON.stringify(filterDatas))
+      } else {
+        for (let index = (page.limit * page.page) - page.limit; index < this.selectListData.length; index++) {
+          filterDatas.push(this.selectListData[index])
+        }
+        this.bianlistData.dataResult = JSON.parse(JSON.stringify(filterDatas))
+      }
+      ActionUtils.handleListData(this, this.bianlistData)
+    },
     getDatas(sorts) {
-      this.tableData = []
       let wheres = ''
       if (sorts.fileCode) {
         wheres = wheres + ` and wen_jian_bian_hao like '%${sorts.fileCode}%'`
@@ -199,11 +231,34 @@ export default {
       }
 
       let sql = `select *FROM t_wjgl WHERE wen_jian_zhuang_t = '已发放' AND yi_gai_zuo_fei_='否' ${wheres} `
+      let bianlistData = {
+        dataResult: [],
+        pageResult: {
+          limit: this.pagination.limit,
+          page: this.pagination.page,
+          totalCount: 0,
+          totalPages: 0
+        }
+      }
       curdPost('sql', sql).then(res => {
-        this.tableData = res.variables.data
+        let tableDatas = res.variables.data
+        this.selectListData = JSON.parse(JSON.stringify(tableDatas))
+        let filterDatas = []
+        this.bianlistData.pageResult.totalCount = tableDatas.length
+        this.bianlistData.pageResult.totalPages = Math.ceil(tableDatas.length / this.pagination.limit)
+        this.bianlistData.pageResult.limit = this.pagination.limit
+        this.bianlistData.pageResult.page = this.pagination.page
+        if (this.pagination.limit > tableDatas.length) {
+          filterDatas = JSON.parse(JSON.stringify(tableDatas))
+        } else {
+          for (let index = 0; index < 20; index++) {
+            filterDatas.push(tableDatas[index])
+          }
+        }
+        this.bianlistData.dataResult = filterDatas
+        ActionUtils.handleListData(this, this.bianlistData)
       }).catch(res => {
         this.loading = false
-        this.tableData = []
       })
     },
   },

+ 57 - 8
src/views/infosManage/internalFiles/internalFiles.vue

@@ -26,14 +26,16 @@
         <template v-else>
           <ibps-crud key="istree"
                      ref="crud"
-                     :data="tableData"
+                     :data="listData"
                      :toolbars="listConfig.toolbars"
                      :search-form="listConfig.searchForm"
                      :pk-key="pkKey"
                      :columns="listConfig.columns"
                      :loading="loading"
+                     :pagination="pagination"
                      @sort-change="handleSortChange"
-                     @action-event="handleAction">
+                     @action-event="handleAction"
+                     @pagination-change="handlePaginationChange">
             <template slot="wenjinachayue"
                       slot-scope="scope">
               <ibps-attachment :value="scope.row.wen_jian_id_"
@@ -101,7 +103,17 @@ export default {
       },
       pkKey: 'id', // 主键  如果主键不是pk需要传主键
       loading: false,
-      tableData: [],
+      listData: [],
+      selectListData: [],
+      bianlistData: {
+        dataResult: [],
+        pageResult: {
+          limit: 0,
+          page: 0,
+          totalCount: 0,
+          totalPages: 0
+        }
+      },
       listTreeData: [],
       listConfig: {
         // 工具栏
@@ -130,7 +142,9 @@ export default {
         border: true,
         stripe: true
       },
-      pagination: {},
+      pagination: {
+        limit: 20, page: 1
+      },
       sorts: {},
       // testData: [{
       //     zi_duan_yi_: '1',
@@ -154,7 +168,7 @@ export default {
       this.loading = true
     },
     getDatas(sorts) {
-      this.tableData = []
+      this.listData = []
       let sql = ''
       let wheres = ''
       if (sorts.fileCode) {
@@ -186,15 +200,31 @@ export default {
         }
         sql = `select *FROM t_wjgl WHERE wen_jian_zhuang_t = '已发放' AND yi_gai_zuo_fei_='否' ${wheres} `
       }
+
       curdPost('sql', sql).then(res => {
-        this.tableData = res.variables.data
+        let tableDatas = res.variables.data
+        this.selectListData = JSON.parse(JSON.stringify(tableDatas))
+        let filterDatas = []
+        this.bianlistData.pageResult.totalCount = tableDatas.length
+        this.bianlistData.pageResult.totalPages = Math.ceil(tableDatas.length / this.pagination.limit)
+        this.bianlistData.pageResult.limit = this.pagination.limit
+        this.bianlistData.pageResult.page = this.pagination.page
+        if (this.pagination.limit > tableDatas.length) {
+          filterDatas = JSON.parse(JSON.stringify(tableDatas))
+        } else {
+          for (let index = 0; index < 20; index++) {
+            filterDatas.push(tableDatas[index])
+          }
+        }
+        this.bianlistData.dataResult = filterDatas
+        ActionUtils.handleListData(this, this.bianlistData)
       }).catch(res => {
         this.loading = false
-        this.tableData = []
+        this.listData = []
       })
     },
     refreshData() {
-      this.tableData = []
+      this.listData = []
       this.getDatas(this.getSearcFormData())
     },
 
@@ -241,6 +271,25 @@ export default {
       ActionUtils.setSorts(this.sorts, sort)
       this.getDatas(this.getSearcFormData())
     },
+    // 处理分页事件
+    handlePaginationChange(page) {
+      ActionUtils.setPagination(this.pagination, page)
+      this.bianlistData.pageResult.limit = page.limit
+      this.bianlistData.pageResult.page = page.page
+      let filterDatas = []
+      if (this.selectListData.length >= (page.limit * page.page)) {
+        for (let index = (page.limit * page.page) - page.limit; index < (page.limit * page.page); index++) {
+          filterDatas.push(this.selectListData[index])
+        }
+        this.bianlistData.dataResult = JSON.parse(JSON.stringify(filterDatas))
+      } else {
+        for (let index = (page.limit * page.page) - page.limit; index < this.selectListData.length; index++) {
+          filterDatas.push(this.selectListData[index])
+        }
+        this.bianlistData.dataResult = JSON.parse(JSON.stringify(filterDatas))
+      }
+      ActionUtils.handleListData(this, this.bianlistData)
+    },
   },
   watch: {
     filterText(val) {