UNPKG

2.72 kBJavaScriptView Raw
1/**
2 * Module : kero dataTable data
3 * Author : liuyk(liuyk@yonyou.com)
4 * Date : 2016-07-30 14:34:01
5 */
6
7/**
8 *设置数据
9 *
10 */
11const setData = function (data,options) {
12 if(data.pageIndex || data.pageIndex === 0){
13 var newIndex = data.pageIndex;
14 }else{
15 var newIndex = this.pageIndex();
16 }
17 if(data.pageSize || data.pageSize === 0){
18 var newSize = data.pageSize;
19 }else{
20 var newSize = this.pageSize();
21 }
22 if(data.totalPages || data.totalPages === 0){
23 var newTotalPages = data.totalPages;
24 }else{
25 var newTotalPages = this.totalPages();
26 }
27 if(data.totalRow || data.totalRow === 0){
28 var newTotalRow = data.totalRow;
29 }else{
30 if(data.rows)
31 var newTotalRow = data.rows.length;
32 else
33 var newTotalRow = this.totalRow();
34 }
35 var select, focus,unSelect=options?options.unSelect:false;
36
37 this.pageIndex(newIndex);
38 this.pageSize(newSize);
39
40 this.pageCache = data.pageCache || this.pageCache
41 if (this.pageCache === true) {
42 this.updatePages(data.pages)
43 if (newIndex != this.pageIndex()) {
44 this.setCurrentPage(newIndex, true);
45 this.totalPages(newTotalPages)
46 this.totalRow(newTotalRow + this.newCount)
47 return;
48 }
49 else {
50 // 首先删除数据,然后将当前页数据插入
51 this.removeAllRows();
52 select = this.getPage(newIndex).selectedIndices
53 focus = this.getPage(newIndex).focus
54 var rows = this.setRows(this.getPage(newIndex).rows, options)
55 this.getPage(newIndex).rows = rows;
56 }
57 // 后台传入totalPages及totalRow才进行更新
58 if(data.totalPages){
59 this.totalPages(data.totalPages)
60 }
61 if(data.totalRow || data.totalRow === 0){
62 this.totalRow(data.totalRow + this.newCount)
63 }
64 } else {
65 select = data.select||(!unSelect?[0]:[]);
66 focus = data.focus !== undefined ? data.focus : data.current;
67 this.setRows(data.rows, options);
68 this.totalPages(newTotalPages)
69 this.totalRow(newTotalRow)
70 }
71
72
73
74 this.updateSelectedIndices()
75
76 if (select && select.length > 0 && this.rows().length > 0)
77 this.setRowsSelect(select)
78 if (focus !== undefined && this.getRow(focus))
79 this.setRowFocus(focus)
80};
81
82
83
84const setValue = function (fieldName, value, row, ctx) {
85 if (arguments.length === 1){
86 value = fieldName;
87 fieldName = '$data';
88 }
89
90 row = row ? row : this.getCurrentRow()
91 if (row)
92 row.setValue(fieldName, value, ctx)
93}
94
95
96export {
97 setData,
98 setValue
99}