UNPKG

kero

Version:

<img src="http://tinper.org/assets/images/kero.png" width="120" style="max-width:100%;"/>

111 lines (102 loc) 3.07 kB
/** * Module : kero dataTable getSelect * Author : liuyk(liuyk@yonyou.com) * Date : 2016-08-01 14:34:01 */ /** * 获取选中行索引,多选时,只返回第一个行索引 * @memberof DataTable * @return {number} 选中行索引 * @example * datatable.getSelectedIndex() */ const getSelectedIndex = function() { var selectedIndices = this.selectedIndices() if (selectedIndices == null || selectedIndices.length == 0) return -1 return selectedIndices[0] }; /** * 获取选中的所有行索引数组 * @memberof DataTable * @return {array} 所有行索引数组 * @example * datatable.getSelectedIndices() */ const getSelectedIndices = function() { var selectedIndices = this.selectedIndices() if (selectedIndices == null || selectedIndices.length == 0) return [] return selectedIndices }; // 兼容保留,不要用 const getSelectedIndexs = function() { return this.getSelectedIndices(); } /** * 获取选中行的数据信息 * @memberof DataTable * @param {boolean} [withEmptyRow=false] 未选中的数据是否使用空行代替,true表示以空行代替未选中行,false相反 * @return {array} 发生变化的数据信息 * @example * datatable.getSelectedDatas() * datatable.getSelectedDatas(true) */ const getSelectedDatas = function(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() */ const getSelectedRows = function() { 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 } const getAllPageSelectedRows = function() { 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 const getSelectFunObj = { getSelectedIndex: getSelectedIndex, getSelectedIndices: getSelectedIndices, getSelectedIndexs: getSelectedIndexs, getSelectedDatas: getSelectedDatas, getSelectedRows: getSelectedRows, getAllPageSelectedRows: getAllPageSelectedRows }