diff --git a/src/components/Description/src/index.tsx b/src/components/Description/src/index.tsx index 23d340f80be..fb8ca0d02c0 100644 --- a/src/components/Description/src/index.tsx +++ b/src/components/Description/src/index.tsx @@ -1,6 +1,7 @@ import type { DescOptions, DescInstance, DescItem } from './types'; import { defineComponent, computed, ref, unref, CSSProperties } from 'vue'; +import { get } from 'lodash-es'; import { Descriptions } from 'ant-design-vue'; import { DescriptionsProps } from 'ant-design-vue/es/descriptions/index'; import { CollapseContainer, CollapseContainerOptions } from '/@/components/Container/index'; @@ -91,8 +92,11 @@ export default defineComponent({ return null; } - const getContent = () => - isFunction(render) ? render(data?.[field], data) : unref(data) && unref(data)[field]; + const getContent = () => { + const _data = unref(data); + const getField = get(_data, field); + return isFunction(render) ? render(getField, _data) : getField ?? ''; + }; const width = contentMinWidth; return ( diff --git a/src/components/Description/src/types.ts b/src/components/Description/src/types.ts index 5e03091b7bf..d7637abb324 100644 --- a/src/components/Description/src/types.ts +++ b/src/components/Description/src/types.ts @@ -17,7 +17,7 @@ export interface DescItem { // render render?: ( val: string, - data: Recordable + data: Record ) => VNode | undefined | JSX.Element | Element | string | number; }