UNPKG

2.71 kBJavaScriptView Raw
1/**
2 * Module : kero dataTable getSelect
3 * Author : liuyk(liuyk@yonyou.com)
4 * Date : 2016-08-01 14:34:01
5 */
6
7/**
8 * 获取选中行索引,多选时,只返回第一个行索引
9 * @memberof DataTable
10 * @return {number} 选中行索引
11 * @example
12 * datatable.getSelectedIndex()
13 */
14var getSelectedIndex = function getSelectedIndex() {
15 var selectedIndices = this.selectedIndices();
16 if (selectedIndices == null || selectedIndices.length == 0) return -1;
17 return selectedIndices[0];
18};
19
20/**
21 * 获取选中的所有行索引数组
22 * @memberof DataTable
23 * @return {array} 所有行索引数组
24 * @example
25 * datatable.getSelectedIndices()
26 */
27var getSelectedIndices = function getSelectedIndices() {
28 var selectedIndices = this.selectedIndices();
29 if (selectedIndices == null || selectedIndices.length == 0) return [];
30 return selectedIndices;
31};
32
33// 兼容保留,不要用
34var getSelectedIndexs = function getSelectedIndexs() {
35 return this.getSelectedIndices();
36};
37
38/**
39 * 获取选中行的数据信息
40 * @memberof DataTable
41 * @param {boolean} [withEmptyRow=false] 未选中的数据是否使用空行代替,true表示以空行代替未选中行,false相反
42 * @return {array} 发生变化的数据信息
43 * @example
44 * datatable.getSelectedDatas()
45 * datatable.getSelectedDatas(true)
46 */
47var getSelectedDatas = function getSelectedDatas(withEmptyRow) {
48 var selectedIndices = this.selectedIndices();
49 var datas = [];
50 var sIndices = [];
51 for (var i = 0, count = selectedIndices.length; i < count; i++) {
52 sIndices.push(selectedIndices[i]);
53 }
54 var rows = this.rows();
55 for (var i = 0, count = rows.length; i < count; i++) {
56 if (sIndices.indexOf(i) != -1) datas.push(rows[i].getData());else if (withEmptyRow == true) datas.push(rows[i].getEmptyData());
57 }
58 return datas;
59};
60
61/**
62 * 获取选中的Row对象
63 * @memberof DataTable
64 * @return {array} 选中的Row对象
65 * @example
66 * datatable.getSelectedRows()
67 */
68var getSelectedRows = function getSelectedRows() {
69 var selectedIndices = this.selectedIndices();
70 var selectRows = [];
71 var rows = this.rows.peek();
72 var sIndices = [];
73 for (var i = 0, count = selectedIndices.length; i < count; i++) {
74 sIndices.push(selectedIndices[i]);
75 }
76 for (var i = 0, count = rows.length; i < count; i++) {
77 if (sIndices.indexOf(i) != -1) selectRows.push(rows[i]);
78 }
79 return selectRows;
80};
81
82export var getSelectFunObj = {
83 getSelectedIndex: getSelectedIndex,
84 getSelectedIndices: getSelectedIndices,
85 getSelectedIndexs: getSelectedIndexs,
86 getSelectedDatas: getSelectedDatas,
87 getSelectedRows: getSelectedRows
88};
\No newline at end of file