mirror of https://gitee.com/xiaonuobase/snowy
【更新】STable组件加入整行选择
parent
b0b3786bd9
commit
4d01ed6214
|
@ -63,6 +63,14 @@
|
|||
type: Object,
|
||||
default: null
|
||||
},
|
||||
lineSelection: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
customRow: {
|
||||
type: Function,
|
||||
default: undefined
|
||||
},
|
||||
showPagination: {
|
||||
type: [String, Boolean],
|
||||
default: 'auto'
|
||||
|
@ -470,6 +478,48 @@
|
|||
return props[k]
|
||||
}
|
||||
}
|
||||
if (k === 'customRow') {
|
||||
if (this.lineSelection && this.rowSelection) {
|
||||
// 如果需要 整行选择,则重新绑定 customRow 事件
|
||||
props[k] = (record, index) => {
|
||||
return {
|
||||
...(typeof this.customRow !== 'undefined' && this.customRow(record, index)),
|
||||
onClick: (event) => {
|
||||
// 若存在原onClick则执行
|
||||
typeof this[k] !== 'undefined' &&
|
||||
typeof this[k](record, index).onClick !== 'undefined' &&
|
||||
this[k](record, index).onClick(event)
|
||||
// 记录为disabled则直接返回,默认为不可选
|
||||
const rowDisabled =
|
||||
typeof this.rowSelection.getCheckboxProps !== 'undefined' &&
|
||||
this.rowSelection.getCheckboxProps(record).disabled
|
||||
if (rowDisabled) return
|
||||
// 过滤自定义按钮的非空白区域
|
||||
const classList = event.target?.classList
|
||||
if (!classList.contains('ant-table-cell')) return
|
||||
const key = (typeof this.rowKey === 'function' && this.rowKey(record)) || this.rowKey || index
|
||||
let selectedRows = this.rowSelection.selectedRows
|
||||
let selectedRowKeys = this.rowSelection.selectedRowKeys
|
||||
const rowType = this.rowSelection?.type || 'checkbox'
|
||||
|
||||
if (rowType === 'radio' || this.rowSelection.selectedRowKeys === undefined) {
|
||||
selectedRowKeys = [key]
|
||||
selectedRows = [record]
|
||||
} else if (!this.rowSelection.selectedRowKeys?.includes(key)) {
|
||||
selectedRowKeys.push(key)
|
||||
selectedRows.push(record)
|
||||
} else {
|
||||
const index = this.rowSelection.selectedRowKeys?.findIndex((itemKey) => itemKey === key)
|
||||
selectedRows.splice(index, 1)
|
||||
selectedRowKeys.splice(index, 1)
|
||||
}
|
||||
this.updateSelect(selectedRowKeys, selectedRows)
|
||||
}
|
||||
}
|
||||
}
|
||||
return props[k]
|
||||
}
|
||||
}
|
||||
this[k] && (props[k] = this[k])
|
||||
// 此处配置表格大小与要显示的列
|
||||
props = {
|
||||
|
|
Loading…
Reference in New Issue