UNPKG

kero

Version:

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

74 lines (67 loc) 2.21 kB
/** * Module : kero dataTable page removeRow * Author : liuyk(liuyk@yonyou.com) * Date : 2016-08-08 09:59:01 */ import { isNumber } from 'tinper-sparrow/src/util'; /** * 根据rowid删除行 * @param {string} rowid 需要删除行的rowid * @example * page.removeRowByRowId('rowid1') */ const removeRowByRowId = function(rowid) { for (var i = 0, count = this.rows.length; i < count; i++) { if (this.rows[i].rowId == rowid) { this.rows.splice(i, 1); count--; this.updateSelectedIndices(i, '-') this.updateFocusIndex(i, '-') } } } // 新增/删除行之后更新选中行的index const updateSelectedIndices = function(index, type, num) { if (!isNumber(num)) { num = 1 } var selectedIndices = this.selectedIndices.slice(); if (selectedIndices == null || selectedIndices.length == 0) return for (var i = 0, count = selectedIndices.length; i < count; i++) { if (type == '+') { if (selectedIndices[i] >= index) selectedIndices[i] = parseInt(selectedIndices[i]) + num } else if (type == '-') { if (selectedIndices[i] >= index && selectedIndices[i] <= index + num - 1) { selectedIndices.splice(i, 1) } else if (selectedIndices[i] > index + num - 1) selectedIndices[i] = selectedIndices[i] - num } } this.selectedIndices = selectedIndices } //新增/删除行之后更新焦点行 const updateFocusIndex = function(opIndex, opType, num) { if (!isNumber(num)) { num = 1 } if (opIndex <= this.focus && this.focus != -1) { if (opType === '+') { this.focus = this.focus + num } else if (opType === '-') { if (this.focus >= opIndex && this.focus <= opIndex + num - 1) { this.focus = this.focus - 1 } else if (this.focus > opIndex + num - 1) { this.focus = this.focus - num } } } } export const pageRemoveRowFunObj = { removeRowByRowId: removeRowByRowId, updateSelectedIndices: updateSelectedIndices, updateFocusIndex: updateFocusIndex }