fix(synthesis-task): 修复文件选择列表中全选按钮无法勾选所有文件的问题

This commit is contained in:
o0Shark0o
2025-12-10 15:05:14 +08:00
parent 705009cab6
commit 52accfb44c

View File

@@ -245,11 +245,47 @@ const DatasetFileTransfer: React.FC<DatasetFileTransferProps> = ({
rowSelection={{ rowSelection={{
type: "checkbox", type: "checkbox",
selectedRowKeys: Object.keys(selectedFilesMap), selectedRowKeys: Object.keys(selectedFilesMap),
onSelect: toggleSelectFile,
// 单选
onSelect: (record: DatasetFile, selected: boolean) => {
toggleSelectFile(record);
},
// 全选
onSelectAll: (selected, selectedRows: DatasetFile[]) => {
if (selected) {
// ✔ 全选 -> 将 files 列表全部加入 selectedFilesMap
const newMap: Record<string, DatasetFile> = {};
selectedRows.forEach((f) => {
newMap[f.id] = f;
});
onSelectedFilesChange(newMap);
} else {
// ✘ 取消全选 -> 清空 map
const newMap = { ...selectedFilesMap };
Object.keys(newMap).forEach((id) => {
if (files.find((f) => f.id === id)) {
// 仅移除当前页对应文件
delete newMap[id];
}
});
onSelectedFilesChange(newMap);
}
},
getCheckboxProps: (record: DatasetFile) => ({ getCheckboxProps: (record: DatasetFile) => ({
name: record.fileName, name: record.fileName,
}), }),
}} }}
// rowSelection={{
// type: "checkbox",
// selectedRowKeys: Object.keys(selectedFilesMap),
// onSelect: toggleSelectFile,
// getCheckboxProps: (record: DatasetFile) => ({
// name: record.fileName,
// }),
// }}
/> />
</div> </div>
</div> </div>