kero
Version:
<img src="http://tinper.org/assets/images/kero.png" width="120" style="max-width:100%;"/>
103 lines (96 loc) • 3.12 kB
JavaScript
/**
* Module : kero dataTable getSelect
* Author : liuyk(liuyk@yonyou.com)
* Date : 2016-08-01 14:34:01
*/
/**
* 获取选中行索引,多选时,只返回第一个行索引
* @memberof DataTable
* @return {number} 选中行索引
* @example
* datatable.getSelectedIndex()
*/
var getSelectedIndex = function getSelectedIndex() {
var selectedIndices = this.selectedIndices();
if (selectedIndices == null || selectedIndices.length == 0) return -1;
return selectedIndices[0];
};
/**
* 获取选中的所有行索引数组
* @memberof DataTable
* @return {array} 所有行索引数组
* @example
* datatable.getSelectedIndices()
*/
var getSelectedIndices = function getSelectedIndices() {
var selectedIndices = this.selectedIndices();
if (selectedIndices == null || selectedIndices.length == 0) return [];
return selectedIndices;
};
// 兼容保留,不要用
var getSelectedIndexs = function getSelectedIndexs() {
return this.getSelectedIndices();
};
/**
* 获取选中行的数据信息
* @memberof DataTable
* @param {boolean} [withEmptyRow=false] 未选中的数据是否使用空行代替,true表示以空行代替未选中行,false相反
* @return {array} 发生变化的数据信息
* @example
* datatable.getSelectedDatas()
* datatable.getSelectedDatas(true)
*/
var getSelectedDatas = function getSelectedDatas(withEmptyRow) {
var selectedIndices = this.selectedIndices();
var datas = [];
var sIndices = [];
for (var i = 0, count = selectedIndices.length; i < count; i++) {
sIndices.push(selectedIndices[i]);
}
var rows = this.rows();
for (var i = 0, count = rows.length; i < count; i++) {
if (sIndices.indexOf(i) != -1) datas.push(rows[i].getData());else if (withEmptyRow == true) datas.push(rows[i].getEmptyData());
}
return datas;
};
/**
* 获取选中的Row对象
* @memberof DataTable
* @return {array} 选中的Row对象
* @example
* datatable.getSelectedRows()
*/
var getSelectedRows = function getSelectedRows() {
var selectedIndices = this.selectedIndices();
var selectRows = [];
var rows = this.rows.peek();
var sIndices = [];
for (var i = 0, count = selectedIndices.length; i < count; i++) {
sIndices.push(selectedIndices[i]);
}
for (var i = 0, count = rows.length; i < count; i++) {
if (sIndices.indexOf(i) != -1) selectRows.push(rows[i]);
}
return selectRows;
};
var getAllPageSelectedRows = function getAllPageSelectedRows() {
var rows = [];
if (this.pageCache) {
var pages = this.getPages();
for (var i = 0; i < pages.length; i++) {
var page = pages[i];
if (page) {
rows = rows.concat(page.getSelectRows());
}
}
}
return rows;
};
export var getSelectFunObj = {
getSelectedIndex: getSelectedIndex,
getSelectedIndices: getSelectedIndices,
getSelectedIndexs: getSelectedIndexs,
getSelectedDatas: getSelectedDatas,
getSelectedRows: getSelectedRows,
getAllPageSelectedRows: getAllPageSelectedRows
};