瀏覽代碼

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

Co-authored-by: luojingzhou <luojingzhou@kezaihui.com>
luojz 2 年之前
父節點
當前提交
5335ae7578
共有 1 個文件被更改,包括 20 次插入5 次删除
  1. 20 5
      src/views/demo/table/FormTable.vue

+ 20 - 5
src/views/demo/table/FormTable.vue

@@ -44,7 +44,8 @@
         rowSelection: {
           type: 'checkbox',
           selectedRowKeys: checkedKeys,
-          onChange: onSelectChange,
+          onSelect: onSelect,
+          onSelectAll: onSelectAll,
         },
       });
 
@@ -52,16 +53,30 @@
         console.log(getForm().getFieldsValue());
       }
 
-      function onSelectChange(selectedRowKeys: (string | number)[]) {
-        console.log(selectedRowKeys);
-        checkedKeys.value = selectedRowKeys;
+      function onSelect(record, selected) {
+        if (selected) {
+          checkedKeys.value = [...checkedKeys.value, record.id];
+        } else {
+          checkedKeys.value = checkedKeys.value.filter((id) => id !== record.id);
+        }
+      }
+      function onSelectAll(selected, selectedRows, changeRows) {
+        const changeIds = changeRows.map((item) => item.id);
+        if (selected) {
+          checkedKeys.value = [...checkedKeys.value, ...changeIds];
+        } else {
+          checkedKeys.value = checkedKeys.value.filter((id) => {
+            return !changeIds.includes(id);
+          });
+        }
       }
 
       return {
         registerTable,
         getFormValues,
         checkedKeys,
-        onSelectChange,
+        onSelect,
+        onSelectAll,
       };
     },
   });