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