Commit 7a06b45808c9f6c37ae2159b6ea5ff7e4bf6973e
1 parent
75ccd5cd
Exists in
master
and in
1 other branch
Scheme实现静态数据分页,删除逻辑待优化
Showing
2 changed files
with
17 additions
and
7 deletions
Show diff stats
examples/views/docs/component/scheme.md
| @@ -20,6 +20,8 @@ export default { | @@ -20,6 +20,8 @@ export default { | ||
| 20 | tableData: [ | 20 | tableData: [ |
| 21 | { name: '产品A', code: 'P0001', type: 'NORMAL', sort: 0, status: '0' }, | 21 | { name: '产品A', code: 'P0001', type: 'NORMAL', sort: 0, status: '0' }, |
| 22 | { name: '产品B', code: 'P0002', type: 'BROKEN', sort: 1, status: '1' }, | 22 | { name: '产品B', code: 'P0002', type: 'BROKEN', sort: 1, status: '1' }, |
| 23 | + { name: '产品C', code: 'P0003', type: 'NORMAL', sort: 0, status: '0' }, | ||
| 24 | + { name: '产品D', code: 'P0004', type: 'BROKEN', sort: 1, status: '1' }, | ||
| 23 | ], | 25 | ], |
| 24 | schemeList: [ | 26 | schemeList: [ |
| 25 | { type: 'el-input', key: 'name', label: '名称', rules: [{ required: true, message: '请输入名称' }] }, | 27 | { type: 'el-input', key: 'name', label: '名称', rules: [{ required: true, message: '请输入名称' }] }, |
packages/scheme/index.vue
| @@ -167,6 +167,7 @@ import { generateListSpace } from './parser'; | @@ -167,6 +167,7 @@ import { generateListSpace } from './parser'; | ||
| 167 | import { stringify } from './utils'; | 167 | import { stringify } from './utils'; |
| 168 | 168 | ||
| 169 | let _$http = null; | 169 | let _$http = null; |
| 170 | +let TABLE_DATA_STATIC = []; | ||
| 170 | 171 | ||
| 171 | export default { | 172 | export default { |
| 172 | name: 'Scheme', | 173 | name: 'Scheme', |
| @@ -291,7 +292,7 @@ export default { | @@ -291,7 +292,7 @@ export default { | ||
| 291 | mounted() { | 292 | mounted() { |
| 292 | this.tableData = this.value; | 293 | this.tableData = this.value; |
| 293 | this.totalCount = this.value.length; | 294 | this.totalCount = this.value.length; |
| 294 | - this.tableDataOrigin = this.value; | 295 | + TABLE_DATA_STATIC = this.value; |
| 295 | // 设置自动加载数据 | 296 | // 设置自动加载数据 |
| 296 | if (this.option.auto !== false) { | 297 | if (this.option.auto !== false) { |
| 297 | this.handleSearch(); | 298 | this.handleSearch(); |
| @@ -398,7 +399,7 @@ export default { | @@ -398,7 +399,7 @@ export default { | ||
| 398 | break; | 399 | break; |
| 399 | } | 400 | } |
| 400 | } | 401 | } |
| 401 | - this.tableData = searchModelCount > 0 ? this.tableDataOrigin.filter(data => { | 402 | + const resultData = searchModelCount > 0 ? TABLE_DATA_STATIC.filter(data => { |
| 402 | let result = false; | 403 | let result = false; |
| 403 | for (let modelKey in this.searchModel) { | 404 | for (let modelKey in this.searchModel) { |
| 404 | let modelValue = this.searchModel[modelKey]; | 405 | let modelValue = this.searchModel[modelKey]; |
| @@ -408,7 +409,11 @@ export default { | @@ -408,7 +409,11 @@ export default { | ||
| 408 | } | 409 | } |
| 409 | } | 410 | } |
| 410 | return result; | 411 | return result; |
| 411 | - }) : this.tableDataOrigin; | 412 | + }) : TABLE_DATA_STATIC; |
| 413 | + const begin = (this.currentPage - 1) * this.pageSize; | ||
| 414 | + const end = this.currentPage * this.pageSize; | ||
| 415 | + this.tableData = resultData.slice(begin, end); | ||
| 416 | + this.totalCount = resultData.length; | ||
| 412 | this.tableLoading = false; | 417 | this.tableLoading = false; |
| 413 | }); | 418 | }); |
| 414 | } | 419 | } |
| @@ -561,8 +566,9 @@ export default { | @@ -561,8 +566,9 @@ export default { | ||
| 561 | this.dialogLoading = false; | 566 | this.dialogLoading = false; |
| 562 | }); | 567 | }); |
| 563 | } else { | 568 | } else { |
| 564 | - this.tableDataOrigin.splice(selection[0].$index, 1); | 569 | + TABLE_DATA_STATIC.splice(selection[0].$index, 1); |
| 565 | this.hideDialog(); | 570 | this.hideDialog(); |
| 571 | + this.handleSearch(); | ||
| 566 | } | 572 | } |
| 567 | }, | 573 | }, |
| 568 | // 重置表单值 | 574 | // 重置表单值 |
| @@ -641,9 +647,10 @@ export default { | @@ -641,9 +647,10 @@ export default { | ||
| 641 | this.dialogLoading = false; | 647 | this.dialogLoading = false; |
| 642 | }); | 648 | }); |
| 643 | } else { | 649 | } else { |
| 644 | - this.tableDataOrigin.push(param); | ||
| 645 | - this.totalCount = this.tableDataOrigin.length; | 650 | + TABLE_DATA_STATIC.push(param); |
| 651 | + this.totalCount = TABLE_DATA_STATIC.length; | ||
| 646 | this.hideDialog(); | 652 | this.hideDialog(); |
| 653 | + this.handleSearch(); | ||
| 647 | } | 654 | } |
| 648 | }, | 655 | }, |
| 649 | // 编辑提交逻辑 | 656 | // 编辑提交逻辑 |
| @@ -677,8 +684,9 @@ export default { | @@ -677,8 +684,9 @@ export default { | ||
| 677 | this.dialogLoading = false; | 684 | this.dialogLoading = false; |
| 678 | }); | 685 | }); |
| 679 | } else { | 686 | } else { |
| 680 | - this.$set(this.tableDataOrigin, this.tableCurrentRow.$index, param); | 687 | + this.$set(TABLE_DATA_STATIC, this.tableCurrentRow.$index, param); |
| 681 | this.hideDialog(); | 688 | this.hideDialog(); |
| 689 | + this.handleSearch(); | ||
| 682 | } | 690 | } |
| 683 | }, | 691 | }, |
| 684 | // 表单取消 | 692 | // 表单取消 |