Browse Source
fix(FormTable): fix table spread selection(#2565) (#2574)
Co-authored-by: luojingzhou <luojingzhou@kezaihui.com>
pull/2575/head
luojz
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
20 additions and
5 deletions
-
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, |
|
|
|
}; |
|
|
|
}, |
|
|
|
}); |
|
|
|
|