Commit 5335ae7578f9c06b05c4f96d66f08dfecaaf1cf6
Committed by
GitHub
1 parent
f32d2715
fix(FormTable): fix table spread selection(#2565) (#2574)
Co-authored-by: luojingzhou <luojingzhou@kezaihui.com>
Showing
1 changed file
with
20 additions
and
5 deletions
src/views/demo/table/FormTable.vue
... | ... | @@ -44,7 +44,8 @@ |
44 | 44 | rowSelection: { |
45 | 45 | type: 'checkbox', |
46 | 46 | selectedRowKeys: checkedKeys, |
47 | - onChange: onSelectChange, | |
47 | + onSelect: onSelect, | |
48 | + onSelectAll: onSelectAll, | |
48 | 49 | }, |
49 | 50 | }); |
50 | 51 | |
... | ... | @@ -52,16 +53,30 @@ |
52 | 53 | console.log(getForm().getFieldsValue()); |
53 | 54 | } |
54 | 55 | |
55 | - function onSelectChange(selectedRowKeys: (string | number)[]) { | |
56 | - console.log(selectedRowKeys); | |
57 | - checkedKeys.value = selectedRowKeys; | |
56 | + function onSelect(record, selected) { | |
57 | + if (selected) { | |
58 | + checkedKeys.value = [...checkedKeys.value, record.id]; | |
59 | + } else { | |
60 | + checkedKeys.value = checkedKeys.value.filter((id) => id !== record.id); | |
61 | + } | |
62 | + } | |
63 | + function onSelectAll(selected, selectedRows, changeRows) { | |
64 | + const changeIds = changeRows.map((item) => item.id); | |
65 | + if (selected) { | |
66 | + checkedKeys.value = [...checkedKeys.value, ...changeIds]; | |
67 | + } else { | |
68 | + checkedKeys.value = checkedKeys.value.filter((id) => { | |
69 | + return !changeIds.includes(id); | |
70 | + }); | |
71 | + } | |
58 | 72 | } |
59 | 73 | |
60 | 74 | return { |
61 | 75 | registerTable, |
62 | 76 | getFormValues, |
63 | 77 | checkedKeys, |
64 | - onSelectChange, | |
78 | + onSelect, | |
79 | + onSelectAll, | |
65 | 80 | }; |
66 | 81 | }, |
67 | 82 | }); | ... | ... |