|
|
|
@ -149,18 +149,8 @@ export function useDataSource( |
|
|
|
rowKey: string | number, |
|
|
|
record: Recordable |
|
|
|
): Recordable | undefined { |
|
|
|
if (!dataSourceRef.value || dataSourceRef.value.length == 0) return; |
|
|
|
const rowKeyName = unref(getRowKey); |
|
|
|
if (!rowKeyName) { |
|
|
|
return; |
|
|
|
} |
|
|
|
const row = dataSourceRef.value.find((r) => { |
|
|
|
if (typeof rowKeyName === 'function') { |
|
|
|
return (rowKeyName(r) as string) === rowKey; |
|
|
|
} else { |
|
|
|
return Reflect.has(r, rowKeyName) && r[rowKeyName] === rowKey; |
|
|
|
} |
|
|
|
}); |
|
|
|
const row = findTableDataRecord(rowKey); |
|
|
|
|
|
|
|
if (row) { |
|
|
|
for (const field in row) { |
|
|
|
if (Reflect.has(record, field)) row[field] = record[field]; |
|
|
|
@ -169,6 +159,43 @@ export function useDataSource( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function findTableDataRecord(rowKey: string | number) { |
|
|
|
if (!dataSourceRef.value || dataSourceRef.value.length == 0) return; |
|
|
|
|
|
|
|
const rowKeyName = unref(getRowKey); |
|
|
|
if (!rowKeyName) return; |
|
|
|
|
|
|
|
const { childrenColumnName = 'children' } = unref(propsRef); |
|
|
|
|
|
|
|
const findRow = (array: any[]) => { |
|
|
|
let ret; |
|
|
|
array.some(function iter(r) { |
|
|
|
if (typeof rowKeyName === 'function') { |
|
|
|
if ((rowKeyName(r) as string) === rowKey) { |
|
|
|
ret = r; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (Reflect.has(r, rowKeyName) && r[rowKeyName] === rowKey) { |
|
|
|
ret = r; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
return r[childrenColumnName] && r[childrenColumnName].some(iter); |
|
|
|
}); |
|
|
|
return ret; |
|
|
|
}; |
|
|
|
|
|
|
|
// const row = dataSourceRef.value.find(r => {
|
|
|
|
// if (typeof rowKeyName === 'function') {
|
|
|
|
// return (rowKeyName(r) as string) === rowKey
|
|
|
|
// } else {
|
|
|
|
// return Reflect.has(r, rowKeyName) && r[rowKeyName] === rowKey
|
|
|
|
// }
|
|
|
|
// })
|
|
|
|
return findRow(dataSourceRef.value); |
|
|
|
} |
|
|
|
|
|
|
|
async function fetch(opt?: FetchParams) { |
|
|
|
const { api, searchInfo, fetchSetting, beforeFetch, afterFetch, useSearchForm, pagination } = |
|
|
|
unref(propsRef); |
|
|
|
@ -280,6 +307,7 @@ export function useDataSource( |
|
|
|
reload, |
|
|
|
updateTableData, |
|
|
|
updateTableDataRecord, |
|
|
|
findTableDataRecord, |
|
|
|
handleTableChange, |
|
|
|
}; |
|
|
|
} |
|
|
|
|