Browse Source

fix(descriotion): fix type #228

vben 4 years ago
parent
commit
4909a4cb25

+ 6 - 2
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 (

+ 1 - 1
src/components/Description/src/types.ts

@@ -17,7 +17,7 @@ export interface DescItem {
   // render
   render?: (
     val: string,
-    data: Recordable
+    data: Record<string, any>
   ) => VNode | undefined | JSX.Element | Element | string | number;
 }