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 | import type { BasicColumn, BasicTableProps, CellFormat, GetColumnsParams } from '../types/table'; | 1 | import type { BasicColumn, BasicTableProps, CellFormat, GetColumnsParams } from '../types/table'; |
2 | import type { PaginationProps } from '../types/pagination'; | 2 | import type { PaginationProps } from '../types/pagination'; |
3 | import type { ComputedRef } from 'vue'; | 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 | import { renderEditCell } from '../components/editable'; | 5 | import { renderEditCell } from '../components/editable'; |
6 | import { usePermission } from '/@/hooks/web/usePermission'; | 6 | import { usePermission } from '/@/hooks/web/usePermission'; |
7 | import { useI18n } from '/@/hooks/web/useI18n'; | 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 | import { formatToDate } from '/@/utils/dateUtil'; | 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 | function handleItem(item: BasicColumn, ellipsis: boolean) { | 13 | function handleItem(item: BasicColumn, ellipsis: boolean) { |
14 | const { key, dataIndex, children } = item; | 14 | const { key, dataIndex, children } = item; |
@@ -287,11 +287,9 @@ function sortFixedColumn(columns: BasicColumn[]) { | @@ -287,11 +287,9 @@ function sortFixedColumn(columns: BasicColumn[]) { | ||
287 | } | 287 | } |
288 | defColumns.push(column); | 288 | defColumns.push(column); |
289 | } | 289 | } |
290 | - const resultColumns = [...fixedLeftColumns, ...defColumns, ...fixedRightColumns].filter( | 290 | + return [...fixedLeftColumns, ...defColumns, ...fixedRightColumns].filter( |
291 | (item) => !item.defaultHidden | 291 | (item) => !item.defaultHidden |
292 | ); | 292 | ); |
293 | - | ||
294 | - return resultColumns; | ||
295 | } | 293 | } |
296 | 294 | ||
297 | // format cell | 295 | // format cell |
@@ -317,8 +315,8 @@ export function formatCell(text: string, format: CellFormat, record: Recordable, | @@ -317,8 +315,8 @@ export function formatCell(text: string, format: CellFormat, record: Recordable, | ||
317 | return formatToDate(text, dateFormat); | 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 | return format.get(text); | 320 | return format.get(text); |
323 | } | 321 | } |
324 | } catch (error) { | 322 | } catch (error) { |
src/utils/is.ts
@@ -84,6 +84,10 @@ export function isElement(val: unknown): val is Element { | @@ -84,6 +84,10 @@ export function isElement(val: unknown): val is Element { | ||
84 | return isObject(val) && !!val.tagName; | 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 | export const isServer = typeof window === 'undefined'; | 91 | export const isServer = typeof window === 'undefined'; |
88 | 92 | ||
89 | export const isClient = !isServer; | 93 | export const isClient = !isServer; |