From bd20a385dd86cf32735578c4c140a0aebf758e45 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 15 五月 2025 17:15:07 +0800 Subject: [PATCH] fix: bug --- src/hooks/portraitTable.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 50 insertions(+), 0 deletions(-) diff --git a/src/hooks/portraitTable.ts b/src/hooks/portraitTable.ts new file mode 100644 index 0000000..844586a --- /dev/null +++ b/src/hooks/portraitTable.ts @@ -0,0 +1,50 @@ +import { ColumnsRenderProps } from '@bole-core/components'; +import { MaybeRef } from 'vue'; + +export type UsePortraitTableColumnsItem<TData extends object = object> = ColumnsRenderProps & { + label?: string; + key?: keyof TData; +}; + +export type UsePortraitTableOptions<TData extends object> = { + data: Ref<TData>; + columns?: UsePortraitTableColumnsItem<TData>[]; +}; + +export function usePortraitTable<TData extends object>(options: UsePortraitTableOptions<TData>) { + const portraitTableProps = computed( + () => + ({ + data: options.data.value, + columns: options.columns ?? [], + } as any) + ); + + return { + portraitTableProps, + }; +} + +type UsePortraitTableWithAttachmentOptions< + TData extends object, + TAnnexItem extends object = object +> = UsePortraitTableOptions<TData> & { + annexList: Ref<TAnnexItem[]>; + columnsRenderProps?: { [key in keyof TAnnexItem]?: ColumnsRenderProps }; +}; + +export function usePortraitTableWithAttachment< + TData extends object, + TAnnexItem extends object = object +>(options: UsePortraitTableWithAttachmentOptions<TData, TAnnexItem>) { + const { annexList, columnsRenderProps } = options; + const { portraitTableProps } = usePortraitTable(options); + + const portraitTableWithAttachmentProps = computed(() => ({ + annexList: annexList.value, + portraitTableProps: portraitTableProps.value, + columnsRenderProps, + })); + + return { portraitTableWithAttachmentProps }; +} -- Gitblit v1.9.1