浏览代码

fix: s-table May lose pageSize bug, update demo list

Sendya 6 年之前
父节点
当前提交
96ec260fe0
共有 2 个文件被更改,包括 12 次插入9 次删除
  1. 9 6
      src/components/table/index.js
  2. 3 3
      src/views/list/table/List.vue

+ 9 - 6
src/components/table/index.js

@@ -104,7 +104,10 @@ export default {
      * @param Boolean bool
      */
     refresh (bool = false) {
-      this.loadData(bool ? { current: 1 } : {})
+      bool && (this.localPagination = Object.assign({}, {
+        current: 1, pageSize: this.pageSize
+      }))
+      this.loadData()
     },
     /**
      * 加载数据方法
@@ -114,11 +117,11 @@ export default {
      */
     loadData (pagination, filters, sorter) {
       this.localLoading = true
-      var result = this.data(Object.assign({
+      const parameter = Object.assign({
         pageNo: (pagination && pagination.current) ||
-          this.localPagination.current,
+            this.localPagination.current,
         pageSize: (pagination && pagination.pageSize) ||
-          this.localPagination.pageSize
+            this.localPagination.pageSize
       },
       (sorter && sorter.field && {
         sortField: sorter.field
@@ -128,7 +131,8 @@ export default {
       }) || {}, {
         ...filters
       }
-      ))
+      )
+      const result = this.data(parameter)
       // 对接自己的通用数据接口需要修改下方代码中的 r.pageNo, r.totalCount, r.data
       // eslint-disable-next-line
       if (result instanceof Promise || '[object Promise]' === result.toString()) {
@@ -140,7 +144,6 @@ export default {
             pageSize: (pagination && pagination.pageSize) ||
               this.localPagination.pageSize
           })
-
           // 为防止删除数据后导致页面当前页面数据长度为 0 ,自动翻页到上一页
           if (r.data.length === 0 && this.localPagination.current !== 1) {
             this.localPagination.current--

+ 3 - 3
src/views/list/table/List.vue

@@ -63,6 +63,7 @@
 
     <div class="table-operator">
       <a-button type="primary" icon="plus" @click="$router.push({ name: 'QueryListEdit' })">新建</a-button>
+      <a-button type="dashed" @click="tableOption(false)" v-if="optionAlertShow">关闭 alert</a-button>
       <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0">
         <a-menu slot="overlay">
           <a-menu-item key="1"><a-icon type="delete" />删除</a-menu-item>
@@ -75,12 +76,10 @@
       </a-dropdown>
     </div>
 
-    <div>
-      <a-button @click="tableOption(false)" v-if="optionAlertShow">关闭 alert</a-button>
-    </div>
     <s-table
       ref="table"
       size="default"
+      rowKey="key"
       :columns="columns"
       :data="loadData"
       :alert="options.alert"
@@ -172,6 +171,7 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
+        console.log('loadData.parameter', parameter)
         return getServiceList(Object.assign(parameter, this.queryParam))
           .then(res => {
             return res.result