Commit 5aa12649 authored by drigle's avatar drigle

fix: improve table checkbox selection state

parent 60808377
......@@ -155,7 +155,7 @@ export default function DisclosureListPage() {
};
const columns = useMemo(() => [
{ key: 'select', label: '选择', render: (record) => <Checkbox aria-label={`选择${record.title}`} isSelected={selectedIds.includes(getRecordId(record))} onChange={(selected) => setSelectedIds((ids) => selected ? [...ids, getRecordId(record)] : ids.filter((id) => id !== getRecordId(record)))}><Checkbox.Content><Checkbox.Control><Checkbox.Indicator><Check size={12} /></Checkbox.Indicator></Checkbox.Control></Checkbox.Content></Checkbox> },
{ key: 'select', label: '选择', render: (record) => <Checkbox aria-label={`选择${record.title}`} isSelected={selectedIds.includes(getRecordId(record))} onChange={(selected) => setSelectedIds((ids) => selected ? [...ids, getRecordId(record)] : ids.filter((id) => id !== getRecordId(record)))}><Checkbox.Content><Checkbox.Control className="border border-border bg-white"><Checkbox.Indicator>{({ isSelected }) => isSelected ? <Check size={12} /> : null}</Checkbox.Indicator></Checkbox.Control></Checkbox.Content></Checkbox> },
{ key: 'disclosure_name', label: '公告名称', render: (record) => <Button className="max-w-72 justify-start truncate px-0 text-left" size="sm" variant="ghost" onPress={() => navigate(`/fund_disclosure/${getRecordId(record)}`)}>{getFieldValue(record, 'disclosure_name') || record.title}</Button> },
{ key: 'files', label: '文件', render: (record) => <TableActionGroup><TableActionButton icon={Eye} label="查看PDF" onPress={() => setAttachmentRecord(record)} /><TableActionButton icon={FileText} label="查看XBRL数据" onPress={() => openReportData(record)} /></TableActionGroup> },
{ key: 'disclosure_type', label: '公告类型', render: (record) => getFieldValue(record, 'disclosure_type') || '-' },
......
......@@ -44,7 +44,7 @@ export default function FundProductPage() {
setBusy(true); try { await removeProducts(target); notifySuccess(`已删除 ${target.length} 条基金产品`); setRemoveOpen(false); setRemoveTarget(null); setSelectedIds([]); setReloadKey((value) => value + 1); } catch (error) { notifyError(error, '删除基金产品失败'); } finally { setBusy(false); }
};
const columns = useMemo(() => [
{ key: 'select', label: '选择', render: (record) => <Checkbox aria-label={`选择${record.title}`} isSelected={selectedIds.includes(getRecordId(record))} onChange={(selected) => setSelectedIds((ids) => selected ? [...ids, getRecordId(record)] : ids.filter((id) => id !== getRecordId(record)))}><Checkbox.Content><Checkbox.Control><Checkbox.Indicator><Check size={12} /></Checkbox.Indicator></Checkbox.Control></Checkbox.Content></Checkbox> },
{ key: 'select', label: '选择', render: (record) => <Checkbox aria-label={`选择${record.title}`} isSelected={selectedIds.includes(getRecordId(record))} onChange={(selected) => setSelectedIds((ids) => selected ? [...ids, getRecordId(record)] : ids.filter((id) => id !== getRecordId(record)))}><Checkbox.Content><Checkbox.Control className="border border-border bg-white"><Checkbox.Indicator>{({ isSelected }) => isSelected ? <Check size={12} /> : null}</Checkbox.Indicator></Checkbox.Control></Checkbox.Content></Checkbox> },
{ key: 'title', label: '基金名称', render: (record) => <Button className="justify-start px-0" size="sm" variant="ghost" onPress={() => setSelectedProduct(record)}>{record.title}</Button> },
{ key: 'fund_code', label: '基金代码', render: (record) => record.metadata?.fund_code || '-' },
{ key: 'fund_short_name', label: '基金简称', render: (record) => record.metadata?.fund_short_name || '-' },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment