Commit 5335ae7578f9c06b05c4f96d66f08dfecaaf1cf6

Authored by luojz
Committed by GitHub
1 parent f32d2715

fix(FormTable): fix table spread selection(#2565) (#2574)

Co-authored-by: luojingzhou <luojingzhou@kezaihui.com>
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 });
... ...