Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
handleSelectRow ({ row }, value) {
let { selection, afterFullData, treeConfig, treeOpts, treeIndeterminates, checkboxOpts } = this
let { checkField: property, checkStrictly, checkMethod } = checkboxOpts
if (property) {
if (treeConfig && !checkStrictly) {
if (value === -1) {
treeIndeterminates.push(row)
XEUtils.set(row, property, false)
} else {
// 更新子节点状态
XEUtils.eachTree([row], (item, $rowIndex) => {
if (row === item || (!checkMethod || checkMethod({ row: item, $rowIndex }))) {
XEUtils.set(item, property, value)
this.handleSelectReserveRow(row, value)
}
}, treeOpts)
XEUtils.remove(treeIndeterminates, item => item === row)
}
// 如果存在父节点,更新父节点状态
let matchObj = XEUtils.findTree(afterFullData, item => item === row, treeOpts)
if (matchObj && matchObj.parent) {
let parentStatus
let vItems = checkMethod ? matchObj.items.filter((item, $rowIndex) => checkMethod({ row: item, $rowIndex })) : matchObj.items
let indeterminatesItem = XEUtils.find(matchObj.items, item => treeIndeterminates.indexOf(item) > -1)
// 如果存在父节点,更新父节点状态
let matchObj = XEUtils.findTree(afterFullData, item => item === row, treeOpts)
if (matchObj && matchObj.parent) {
let parentStatus
let vItems = checkMethod ? matchObj.items.filter((item, $rowIndex) => checkMethod({ row: item, $rowIndex })) : matchObj.items
let indeterminatesItem = XEUtils.find(matchObj.items, item => treeIndeterminates.indexOf(item) > -1)
if (indeterminatesItem) {
parentStatus = -1
} else {
let selectItems = matchObj.items.filter(item => XEUtils.get(item, property))
parentStatus = selectItems.filter(item => vItems.indexOf(item) > -1).length === vItems.length ? true : (selectItems.length || value === -1 ? -1 : false)
}
return this.handleSelectRow({ row: matchObj.parent }, parentStatus)
}
} else {
XEUtils.set(row, property, value)
this.handleSelectReserveRow(row, value)
}
} else {
if (treeConfig && !checkStrictly) {
if (value === -1) {
treeIndeterminates.push(row)
XEUtils.remove(selection, item => item === row)
} else {
// 更新子节点状态
XEUtils.eachTree([row], (item, $rowIndex) => {
if (row === item || (!checkMethod || checkMethod({ row: item, $rowIndex }))) {
if (value) {
selection.push(item)
} else {
XEUtils.remove(selection, select => select === item)
}
[type] (evnt) {
XEUtils.set(data, property, evnt.target.value)
if (events && events[type]) {
events[type](Object.assign({ context }, params), evnt)
}
}
}
callback(value: any) {
XEUtils.set(row, column.property, value)
}
},
rows.forEach(row => XEUtils.set(row, field, null))
} else {
let setValFn = (row, rowIndex) => {
if (!checkMethod || checkMethod({ row, [indexKey]: rowIndex, $rowIndex: rowIndex })) {
XEUtils.set(row, property, value)
}
}
let clearValFn = (row, rowIndex) => {
let handleCache = (row, index) => {
let rowid = UtilTools.getRowid(this, row)
if (!rowid) {
rowid = getRowUniqueId()
XEUtils.set(row, rowkey, rowid)
}
if (isLazy && row[treeOpts.hasChild] && XEUtils.isUndefined(row[treeOpts.children])) {
row[treeOpts.children] = null
}
let rest = { row, rowid, index }
if (source) {
fullDataRowIdData[rowid] = rest
fullDataRowMap.set(row, rest)
}
fullAllDataRowIdData[rowid] = rest
fullAllDataRowMap.set(row, rest)
}
if (source) {
reloadRow (row, record, field) {
let { keepSource, tableSourceData, tableData } = this
if (keepSource) {
let rowIndex = this.getRowIndex(row)
let oRow = tableSourceData[rowIndex]
if (oRow && row) {
if (field) {
XEUtils.set(oRow, field, XEUtils.get(record || row, field))
} else {
if (record) {
tableSourceData[rowIndex] = record
XEUtils.clear(row, undefined)
Object.assign(row, this.defineField(Object.assign({}, record)))
this.updateCache(true)
} else {
XEUtils.destructuring(oRow, XEUtils.clone(row, true))
}
}
}
this.tableData = tableData.slice(0)
} else {
UtilTools.warn('vxe.error.reqProp', ['keep-source'])
}
return this.$nextTick()
callback(cellValue: any) {
XEUtils.set(row, column.property, cellValue)
}
},
XEUtils.eachTree([row], (item, $rowIndex) => {
if (row === item || (!checkMethod || checkMethod({ row: item, $rowIndex }))) {
XEUtils.set(item, property, value)
this.handleSelectReserveRow(row, value)
}
}, treeOpts)
XEUtils.remove(treeIndeterminates, item => item === row)