瀏覽代碼

fix: table refresh(bool) reset pageNo = 1

Sendya 6 年之前
父節點
當前提交
c0a2679035
共有 2 個文件被更改,包括 40 次插入30 次删除
  1. 39 29
      src/components/table/index.js
  2. 1 1
      src/views/list/TableList.vue

+ 39 - 29
src/components/table/index.js

@@ -2,7 +2,7 @@ import T from 'ant-design-vue/es/table/Table'
 import get from 'lodash.get'
 
 export default {
-  data() {
+  data () {
     return {
       needTotalList: [],
 
@@ -55,11 +55,12 @@ export default {
       default: false
     },
     showPagination: {
+      type: String,
       default: 'auto'
     }
   }),
   watch: {
-    'localPagination.current'(val) {
+    'localPagination.current' (val) {
       this.$router.push({
         name: this.$route.name,
         params: Object.assign({}, this.$route.params, {
@@ -67,23 +68,23 @@ export default {
         })
       })
     },
-    pageNum(val) {
+    pageNum (val) {
       Object.assign(this.localPagination, {
         current: val
       })
     },
-    pageSize(val) {
+    pageSize (val) {
       Object.assign(this.localPagination, {
         pageSize: val
       })
     },
-    showSizeChanger(val) {
+    showSizeChanger (val) {
       Object.assign(this.localPagination, {
         showSizeChanger: val
       })
     }
   },
-  created() {
+  created () {
     this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, {
       current: this.pageNum,
       pageSize: this.pageSize,
@@ -93,29 +94,38 @@ export default {
     this.loadData()
   },
   methods: {
-    refresh() {
-      this.loadData()
+    /**
+     * 表格重新加载方法
+     * 如果参数为 true, 则强制刷新到第一页
+     * @param Boolean bool 
+     */
+    refresh(bool = false) {
+      this.loadData(bool ? { current: 1 }: {})
     },
-    loadData(pagination, filters, sorter) {
+    /**
+     * 加载数据方法
+     * @param {Object} pagination 分页选项器
+     * @param {Object} filters 过滤条件
+     * @param {Object} sorter 排序条件
+     */
+    loadData (pagination, filters, sorter) {
 
       this.localLoading = true
-      var result = this.data(
-        Object.assign({
-            pageNo: (pagination && pagination.current) ||
-              this.localPagination.current,
-            pageSize: (pagination && pagination.pageSize) ||
-              this.localPagination.pageSize
-          },
-          (sorter && sorter.field && {
-            sortField: sorter.field
-          }) || {},
-          (sorter && sorter.order && {
-            sortOrder: sorter.order
-          }) || {}, {
-            ...filters
-          }
-        )
-      )
+      var result = this.data(Object.assign({
+        pageNo: (pagination && pagination.current) ||
+          this.localPagination.current,
+        pageSize: (pagination && pagination.pageSize) ||
+          this.localPagination.pageSize
+        },
+        (sorter && sorter.field && {
+          sortField: sorter.field
+        }) || {},
+        (sorter && sorter.order && {
+          sortOrder: sorter.order
+        }) || {}, {
+          ...filters
+        }
+      ))
 
       // 对接自己的通用数据接口需要修改下方代码中的 r.pageNo, r.totalCount, r.data
       if (result instanceof Promise) {
@@ -143,7 +153,7 @@ export default {
         })
       }
     },
-    initTotalList(columns) {
+    initTotalList (columns) {
       const totalList = []
       columns && columns instanceof Array && columns.forEach(column => {
         if (column.needTotal) {
@@ -160,7 +170,7 @@ export default {
      * @param selectedRowKeys
      * @param selectedRows
      */
-    updateSelect(selectedRowKeys, selectedRows) {
+    updateSelect (selectedRowKeys, selectedRows) {
       this.selectedRows = selectedRows
       const list = this.needTotalList
       this.needTotalList = list.map(item => {
@@ -223,7 +233,7 @@ export default {
     }
   },
 
-  render() {
+  render () {
     const props = {}
     const localKeys = Object.keys(this.$data)
     const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) || this.alert

+ 1 - 1
src/views/list/TableList.vue

@@ -49,7 +49,7 @@
           </template>
           <a-col :md="!advanced && 8 || 24" :sm="24">
             <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
-              <a-button type="primary" @click="$refs.table.refresh()">查询</a-button>
+              <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
               <a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
               <a @click="toggleAdvanced" style="margin-left: 8px">
                 {{ advanced ? '收起' : '展开' }}