Commit 7a06b45808c9f6c37ae2159b6ea5ff7e4bf6973e

Authored by Aaron
1 parent 75ccd5cd
Exists in master and in 1 other branch legacy

Scheme实现静态数据分页,删除逻辑待优化

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 // 表单取消