表格单选回显
import { nextTick, ref } from 'vue'
export const useTableSingle = (onlyValue: any) => {
const tableRef = ref()
const tableData = ref<any>([])
const selectedData = ref<any>(null)
const onSelect = (row: any, item: any) => {
tableRef.value!.clearSelection()
tableRef.value!.toggleRowSelection(item, undefined, false)
selectedData.value = item
}
const setTableData = (data: any[]) => {
tableData.value = data
nextTick(() => {
if (selectedData.value && tableData.value.length > 0) {
const index = tableData.value.findIndex((item: any) => item[onlyValue] === selectedData.value[onlyValue])
if (index !== -1) {
tableRef.value!.toggleRowSelection(tableData.value[index], true)
}
}
})
}
const getSelectedData = () => {
return selectedData.value
}
const clearSelection = () => {
selectedData.value = null
tableRef.value!.clearSelection()
}
return {
tableRef,
onSelect,
tableData,
setTableData,
getSelectedData,
clearSelection
}
}