Browse Source
fix: 修复demo中formTable几个空指针报错和selectedRowKeys丢失响应式的问题 (#2386)
Co-authored-by: 王一骅 <wangyihua@yazuishou.com>
pull/2391/head
WYH
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
9 additions and
7 deletions
-
src/components/Table/src/hooks/useCustomRow.ts
-
src/components/Table/src/hooks/useRowSelection.ts
-
src/views/demo/table/FormTable.vue
|
|
|
@ -40,7 +40,7 @@ export function useCustomRow( |
|
|
|
function handleClick() { |
|
|
|
const { rowSelection, rowKey, clickToRowSelect } = unref(propsRef); |
|
|
|
if (!rowSelection || !clickToRowSelect) return; |
|
|
|
const keys = getSelectRowKeys(); |
|
|
|
const keys = getSelectRowKeys() || []; |
|
|
|
const key = getKey(record, rowKey, unref(getAutoCreateKey)); |
|
|
|
if (!key) return; |
|
|
|
|
|
|
|
|
|
|
|
@ -66,13 +66,13 @@ export function useRowSelection( |
|
|
|
selectedRowKeysRef.value = rowKeys; |
|
|
|
const allSelectedRows = findNodeAll( |
|
|
|
toRaw(unref(tableData)).concat(toRaw(unref(selectedRowRef))), |
|
|
|
(item) => rowKeys.includes(item[unref(getRowKey) as string]), |
|
|
|
(item) => rowKeys?.includes(item[unref(getRowKey) as string]), |
|
|
|
{ |
|
|
|
children: propsRef.value.childrenColumnName ?? 'children', |
|
|
|
}, |
|
|
|
); |
|
|
|
const trueSelectedRows: any[] = []; |
|
|
|
rowKeys.forEach((key: string) => { |
|
|
|
rowKeys?.forEach((key: string) => { |
|
|
|
const found = allSelectedRows.find((item) => item[unref(getRowKey) as string] === key); |
|
|
|
found && trueSelectedRows.push(found); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -1,8 +1,5 @@ |
|
|
|
<template> |
|
|
|
<BasicTable |
|
|
|
@register="registerTable" |
|
|
|
:rowSelection="{ type: 'checkbox', selectedRowKeys: checkedKeys, onChange: onSelectChange }" |
|
|
|
> |
|
|
|
<BasicTable @register="registerTable"> |
|
|
|
<template #form-custom> custom-slot </template> |
|
|
|
<template #headerTop> |
|
|
|
<a-alert type="info" show-icon> |
|
|
|
@ -44,6 +41,11 @@ |
|
|
|
tableSetting: { fullScreen: true }, |
|
|
|
showIndexColumn: false, |
|
|
|
rowKey: 'id', |
|
|
|
rowSelection: { |
|
|
|
type: 'checkbox', |
|
|
|
selectedRowKeys: checkedKeys, |
|
|
|
onChange: onSelectChange, |
|
|
|
}, |
|
|
|
}); |
|
|
|
|
|
|
|
function getFormValues() { |
|
|
|
|