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,7 +44,8 @@ | ||
44 | rowSelection: { | 44 | rowSelection: { |
45 | type: 'checkbox', | 45 | type: 'checkbox', |
46 | selectedRowKeys: checkedKeys, | 46 | selectedRowKeys: checkedKeys, |
47 | - onChange: onSelectChange, | 47 | + onSelect: onSelect, |
48 | + onSelectAll: onSelectAll, | ||
48 | }, | 49 | }, |
49 | }); | 50 | }); |
50 | 51 | ||
@@ -52,16 +53,30 @@ | @@ -52,16 +53,30 @@ | ||
52 | console.log(getForm().getFieldsValue()); | 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 | return { | 74 | return { |
61 | registerTable, | 75 | registerTable, |
62 | getFormValues, | 76 | getFormValues, |
63 | checkedKeys, | 77 | checkedKeys, |
64 | - onSelectChange, | 78 | + onSelect, |
79 | + onSelectAll, | ||
65 | }; | 80 | }; |
66 | }, | 81 | }, |
67 | }); | 82 | }); |