Commit 1214b7c32c425750a4d0202a9b235eb9e45a6f47
1 parent
c8204042
fix(table): `cellFormat` support `Map`
close: #1031
Showing
2 changed files
with
11 additions
and
9 deletions
src/components/Table/src/hooks/useColumns.ts
1 | 1 | import type { BasicColumn, BasicTableProps, CellFormat, GetColumnsParams } from '../types/table'; |
2 | 2 | import type { PaginationProps } from '../types/pagination'; |
3 | 3 | import type { ComputedRef } from 'vue'; |
4 | -import { unref, Ref, computed, watch, ref, toRaw } from 'vue'; | |
4 | +import { computed, Ref, ref, toRaw, unref, watch } from 'vue'; | |
5 | 5 | import { renderEditCell } from '../components/editable'; |
6 | 6 | import { usePermission } from '/@/hooks/web/usePermission'; |
7 | 7 | import { useI18n } from '/@/hooks/web/useI18n'; |
8 | -import { isBoolean, isArray, isString, isObject, isFunction } from '/@/utils/is'; | |
9 | -import { isEqual, cloneDeep } from 'lodash-es'; | |
8 | +import { isArray, isBoolean, isFunction, isMap, isString } from '/@/utils/is'; | |
9 | +import { cloneDeep, isEqual } from 'lodash-es'; | |
10 | 10 | import { formatToDate } from '/@/utils/dateUtil'; |
11 | -import { DEFAULT_ALIGN, PAGE_SIZE, INDEX_COLUMN_FLAG, ACTION_COLUMN_FLAG } from '../const'; | |
11 | +import { ACTION_COLUMN_FLAG, DEFAULT_ALIGN, INDEX_COLUMN_FLAG, PAGE_SIZE } from '../const'; | |
12 | 12 | |
13 | 13 | function handleItem(item: BasicColumn, ellipsis: boolean) { |
14 | 14 | const { key, dataIndex, children } = item; |
... | ... | @@ -287,11 +287,9 @@ function sortFixedColumn(columns: BasicColumn[]) { |
287 | 287 | } |
288 | 288 | defColumns.push(column); |
289 | 289 | } |
290 | - const resultColumns = [...fixedLeftColumns, ...defColumns, ...fixedRightColumns].filter( | |
290 | + return [...fixedLeftColumns, ...defColumns, ...fixedRightColumns].filter( | |
291 | 291 | (item) => !item.defaultHidden |
292 | 292 | ); |
293 | - | |
294 | - return resultColumns; | |
295 | 293 | } |
296 | 294 | |
297 | 295 | // format cell |
... | ... | @@ -317,8 +315,8 @@ export function formatCell(text: string, format: CellFormat, record: Recordable, |
317 | 315 | return formatToDate(text, dateFormat); |
318 | 316 | } |
319 | 317 | |
320 | - // enum | |
321 | - if (isObject(format) && Reflect.has(format, 'size')) { | |
318 | + // Map | |
319 | + if (isMap(format)) { | |
322 | 320 | return format.get(text); |
323 | 321 | } |
324 | 322 | } catch (error) { | ... | ... |
src/utils/is.ts
... | ... | @@ -84,6 +84,10 @@ export function isElement(val: unknown): val is Element { |
84 | 84 | return isObject(val) && !!val.tagName; |
85 | 85 | } |
86 | 86 | |
87 | +export function isMap(val: unknown): val is Map { | |
88 | + return is(val, 'Map'); | |
89 | +} | |
90 | + | |
87 | 91 | export const isServer = typeof window === 'undefined'; |
88 | 92 | |
89 | 93 | export const isClient = !isServer; | ... | ... |