|
@@ -160,21 +160,39 @@ export function useDataSource(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function deleteTableDataRecord(record: Recordable | Recordable[]): Recordable | undefined {
|
|
|
+ function deleteTableDataRecord(rowKey: string | number | string[] | number[]) {
|
|
|
if (!dataSourceRef.value || dataSourceRef.value.length == 0) return;
|
|
|
- const records = !Array.isArray(record) ? [record] : record;
|
|
|
- const recordIndex = records
|
|
|
- .map((item) => dataSourceRef.value.findIndex((s) => s.key === item.key)) // 取序号
|
|
|
- .filter((item) => item !== undefined)
|
|
|
- .sort((a, b) => b - a); // 从大到小排序
|
|
|
- for (const index of recordIndex) {
|
|
|
- unref(dataSourceRef).splice(index, 1);
|
|
|
- unref(propsRef).dataSource?.splice(index, 1);
|
|
|
+ const rowKeyName = unref(getRowKey);
|
|
|
+ if (!rowKeyName) return;
|
|
|
+ const rowKeys = !Array.isArray(rowKey) ? [rowKey] : rowKey;
|
|
|
+ for (const key of rowKeys) {
|
|
|
+ let index: number | undefined = dataSourceRef.value.findIndex((row) => {
|
|
|
+ let targetKeyName: string;
|
|
|
+ if (typeof rowKeyName === 'function') {
|
|
|
+ targetKeyName = rowKeyName(row);
|
|
|
+ } else {
|
|
|
+ targetKeyName = rowKeyName as string;
|
|
|
+ }
|
|
|
+ return row[targetKeyName] === key;
|
|
|
+ });
|
|
|
+ if (index >= 0) {
|
|
|
+ dataSourceRef.value.splice(index, 1);
|
|
|
+ }
|
|
|
+ index = unref(propsRef).dataSource?.findIndex((row) => {
|
|
|
+ let targetKeyName: string;
|
|
|
+ if (typeof rowKeyName === 'function') {
|
|
|
+ targetKeyName = rowKeyName(row);
|
|
|
+ } else {
|
|
|
+ targetKeyName = rowKeyName as string;
|
|
|
+ }
|
|
|
+ return row[targetKeyName] === key;
|
|
|
+ });
|
|
|
+ if (typeof index !== 'undefined' && index !== -1)
|
|
|
+ unref(propsRef).dataSource?.splice(index, 1);
|
|
|
}
|
|
|
setPagination({
|
|
|
total: unref(propsRef).dataSource?.length,
|
|
|
});
|
|
|
- return unref(propsRef).dataSource;
|
|
|
}
|
|
|
|
|
|
function insertTableDataRecord(record: Recordable, index: number): Recordable | undefined {
|