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 | 20 | tableData: [ |
| 21 | 21 | { name: '产品A', code: 'P0001', type: 'NORMAL', sort: 0, status: '0' }, |
| 22 | 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 | 26 | schemeList: [ |
| 25 | 27 | { type: 'el-input', key: 'name', label: '名称', rules: [{ required: true, message: '请输入名称' }] }, | ... | ... |
packages/scheme/index.vue
| ... | ... | @@ -167,6 +167,7 @@ import { generateListSpace } from './parser'; |
| 167 | 167 | import { stringify } from './utils'; |
| 168 | 168 | |
| 169 | 169 | let _$http = null; |
| 170 | +let TABLE_DATA_STATIC = []; | |
| 170 | 171 | |
| 171 | 172 | export default { |
| 172 | 173 | name: 'Scheme', |
| ... | ... | @@ -291,7 +292,7 @@ export default { |
| 291 | 292 | mounted() { |
| 292 | 293 | this.tableData = this.value; |
| 293 | 294 | this.totalCount = this.value.length; |
| 294 | - this.tableDataOrigin = this.value; | |
| 295 | + TABLE_DATA_STATIC = this.value; | |
| 295 | 296 | // 设置自动加载数据 |
| 296 | 297 | if (this.option.auto !== false) { |
| 297 | 298 | this.handleSearch(); |
| ... | ... | @@ -398,7 +399,7 @@ export default { |
| 398 | 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 | 403 | let result = false; |
| 403 | 404 | for (let modelKey in this.searchModel) { |
| 404 | 405 | let modelValue = this.searchModel[modelKey]; |
| ... | ... | @@ -408,7 +409,11 @@ export default { |
| 408 | 409 | } |
| 409 | 410 | } |
| 410 | 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 | 417 | this.tableLoading = false; |
| 413 | 418 | }); |
| 414 | 419 | } |
| ... | ... | @@ -561,8 +566,9 @@ export default { |
| 561 | 566 | this.dialogLoading = false; |
| 562 | 567 | }); |
| 563 | 568 | } else { |
| 564 | - this.tableDataOrigin.splice(selection[0].$index, 1); | |
| 569 | + TABLE_DATA_STATIC.splice(selection[0].$index, 1); | |
| 565 | 570 | this.hideDialog(); |
| 571 | + this.handleSearch(); | |
| 566 | 572 | } |
| 567 | 573 | }, |
| 568 | 574 | // 重置表单值 |
| ... | ... | @@ -641,9 +647,10 @@ export default { |
| 641 | 647 | this.dialogLoading = false; |
| 642 | 648 | }); |
| 643 | 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 | 652 | this.hideDialog(); |
| 653 | + this.handleSearch(); | |
| 647 | 654 | } |
| 648 | 655 | }, |
| 649 | 656 | // 编辑提交逻辑 |
| ... | ... | @@ -677,8 +684,9 @@ export default { |
| 677 | 684 | this.dialogLoading = false; |
| 678 | 685 | }); |
| 679 | 686 | } else { |
| 680 | - this.$set(this.tableDataOrigin, this.tableCurrentRow.$index, param); | |
| 687 | + this.$set(TABLE_DATA_STATIC, this.tableCurrentRow.$index, param); | |
| 681 | 688 | this.hideDialog(); |
| 689 | + this.handleSearch(); | |
| 682 | 690 | } |
| 683 | 691 | }, |
| 684 | 692 | // 表单取消 | ... | ... |