Commit 3d55b0d45bfbaf4069e031a5d195ad7179ed6249
Committed by
GitHub
1 parent
573a4430
fix: 修复Table当dataIndex为数组时,列设置中勾选列是否展示时使column结构异常的问题 (#1626)
Showing
1 changed file
with
6 additions
and
6 deletions
src/components/Table/src/hooks/useColumns.ts
@@ -197,7 +197,7 @@ export function useColumns( | @@ -197,7 +197,7 @@ export function useColumns( | ||
197 | * set columns | 197 | * set columns |
198 | * @param columnList key|column | 198 | * @param columnList key|column |
199 | */ | 199 | */ |
200 | - function setColumns(columnList: Partial<BasicColumn>[] | string[]) { | 200 | + function setColumns(columnList: Partial<BasicColumn>[] | (string | string[])[]) { |
201 | const columns = cloneDeep(columnList); | 201 | const columns = cloneDeep(columnList); |
202 | if (!isArray(columns)) return; | 202 | if (!isArray(columns)) return; |
203 | 203 | ||
@@ -210,23 +210,23 @@ export function useColumns( | @@ -210,23 +210,23 @@ export function useColumns( | ||
210 | 210 | ||
211 | const cacheKeys = cacheColumns.map((item) => item.dataIndex); | 211 | const cacheKeys = cacheColumns.map((item) => item.dataIndex); |
212 | 212 | ||
213 | - if (!isString(firstColumn)) { | 213 | + if (!isString(firstColumn) && !isArray(firstColumn)) { |
214 | columnsRef.value = columns as BasicColumn[]; | 214 | columnsRef.value = columns as BasicColumn[]; |
215 | } else { | 215 | } else { |
216 | - const columnKeys = columns as string[]; | 216 | + const columnKeys = (columns as (string | string[])[]).map(m => m.toString()); |
217 | const newColumns: BasicColumn[] = []; | 217 | const newColumns: BasicColumn[] = []; |
218 | cacheColumns.forEach((item) => { | 218 | cacheColumns.forEach((item) => { |
219 | newColumns.push({ | 219 | newColumns.push({ |
220 | ...item, | 220 | ...item, |
221 | - defaultHidden: !columnKeys.includes(item.dataIndex! || (item.key as string)), | 221 | + defaultHidden: !columnKeys.includes(item.dataIndex?.toString() || (item.key as string)) |
222 | }); | 222 | }); |
223 | }); | 223 | }); |
224 | // Sort according to another array | 224 | // Sort according to another array |
225 | if (!isEqual(cacheKeys, columns)) { | 225 | if (!isEqual(cacheKeys, columns)) { |
226 | newColumns.sort((prev, next) => { | 226 | newColumns.sort((prev, next) => { |
227 | return ( | 227 | return ( |
228 | - columnKeys.indexOf(prev.dataIndex as string) - | ||
229 | - columnKeys.indexOf(next.dataIndex as string) | 228 | + columnKeys.indexOf(prev.dataIndex?.toString() as string) - |
229 | + columnKeys.indexOf(next.dataIndex?.toString() as string) | ||
230 | ); | 230 | ); |
231 | }); | 231 | }); |
232 | } | 232 | } |