Skip to content

Commit 52accfb

Browse files
committed
fix(synthesis-task): 修复文件选择列表中全选按钮无法勾选所有文件的问题
1 parent 705009c commit 52accfb

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

frontend/src/components/business/DatasetFileTransfer.tsx

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,11 +245,47 @@ const DatasetFileTransfer: React.FC<DatasetFileTransferProps> = ({
245245
rowSelection={{
246246
type: "checkbox",
247247
selectedRowKeys: Object.keys(selectedFilesMap),
248-
onSelect: toggleSelectFile,
248+
249+
// 单选
250+
onSelect: (record: DatasetFile, selected: boolean) => {
251+
toggleSelectFile(record);
252+
},
253+
254+
// 全选
255+
onSelectAll: (selected, selectedRows: DatasetFile[]) => {
256+
if (selected) {
257+
// ✔ 全选 -> 将 files 列表全部加入 selectedFilesMap
258+
const newMap: Record<string, DatasetFile> = {};
259+
selectedRows.forEach((f) => {
260+
newMap[f.id] = f;
261+
});
262+
onSelectedFilesChange(newMap);
263+
} else {
264+
// ✘ 取消全选 -> 清空 map
265+
const newMap = { ...selectedFilesMap };
266+
Object.keys(newMap).forEach((id) => {
267+
if (files.find((f) => f.id === id)) {
268+
// 仅移除当前页对应文件
269+
delete newMap[id];
270+
}
271+
});
272+
onSelectedFilesChange(newMap);
273+
}
274+
},
275+
249276
getCheckboxProps: (record: DatasetFile) => ({
250277
name: record.fileName,
251278
}),
252279
}}
280+
281+
// rowSelection={{
282+
// type: "checkbox",
283+
// selectedRowKeys: Object.keys(selectedFilesMap),
284+
// onSelect: toggleSelectFile,
285+
// getCheckboxProps: (record: DatasetFile) => ({
286+
// name: record.fileName,
287+
// }),
288+
// }}
253289
/>
254290
</div>
255291
</div>

0 commit comments

Comments
 (0)