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,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 });