From 21eeb2e067359789759904868438c70b18d4b066 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 26 十二月 2025 17:31:01 +0800
Subject: [PATCH] feat: init

---
 src/hooks/standardOrder.ts |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 112 insertions(+), 0 deletions(-)

diff --git a/src/hooks/standardOrder.ts b/src/hooks/standardOrder.ts
new file mode 100644
index 0000000..9d56f14
--- /dev/null
+++ b/src/hooks/standardOrder.ts
@@ -0,0 +1,112 @@
+import { format } from '@/utils';
+import { useTable } from '@bole-core/components';
+import { ModelValueType } from 'element-plus';
+import * as standardOrderServices from '@/services/api/standardOrder';
+import {
+  EnumStandardOrderAppointmentStatusText,
+  EnumStandardOrderPayStatusText,
+  EnumStandardOrderSettlementStatusText,
+} from '@/constants';
+import { useQuery } from '@tanstack/vue-query';
+
+type UseGetStandardOrdersOptions = {
+  isSettlement?: boolean;
+};
+
+export function useGetStandardOrders(options: UseGetStandardOrdersOptions) {
+  const { isSettlement = false } = options;
+  const {
+    getDataSource: getList,
+    proTableProps,
+    paginationState,
+    extraParamState,
+    reset,
+  } = useTable(
+    async ({ pageIndex, pageSize }, extraParamState) => {
+      try {
+        let params: API.GetStandardOrdersQuery = {
+          pageModel: {
+            rows: pageSize,
+            page: pageIndex,
+            orderInput: extraParamState.orderInput,
+          },
+          keywords: extraParamState.keywords,
+          appointmentStatus: isSettlement
+            ? EnumStandardOrderAppointmentStatus.Completed
+            : extraParamState.appointmentStatus,
+          payStatus: extraParamState.payStatus,
+          settlementStatus: extraParamState.settlementStatus,
+          createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+          createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+          payTimeBegin: format(extraParamState.payTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+          payTimeEnd: format(extraParamState.payTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+        };
+        let res = await standardOrderServices.getStandardOrders(params);
+        return res;
+      } catch (error) {}
+    },
+    {
+      defaultExtraParams: {
+        keywords: '',
+        appointmentStatus: '' as any as EnumStandardOrderAppointmentStatus,
+        payStatus: '' as any as EnumStandardOrderPayStatus,
+        settlementStatus: '' as any as EnumStandardOrderSettlementStatus,
+        createdTime: [] as unknown as ModelValueType,
+        payTime: [] as unknown as ModelValueType,
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+      },
+      columnsRenderProps: {
+        createdTime: { type: 'date' },
+        payCompletedTime: { type: 'date' },
+        payAmount: { type: 'money' },
+        receiveAmount: { type: 'money' },
+        serviceFee: { type: 'money' },
+        settlementAmount: { type: 'money' },
+        appointmentStatus: { type: 'enum', valueEnum: EnumStandardOrderAppointmentStatusText },
+        payStatus: { type: 'enum', valueEnum: EnumStandardOrderPayStatusText },
+        settlementStatus: { type: 'enum', valueEnum: EnumStandardOrderSettlementStatusText },
+      },
+    }
+  );
+
+  return {
+    getList,
+    proTableProps,
+    paginationState,
+    extraParamState,
+    reset,
+  };
+}
+
+type UseStandardOrderOptions = {
+  id: MaybeRef<string>;
+  scene?: EnumGetStandardOrdersQueryScene;
+  onSuccess?: (data: API.GetStandardOrderQueryResult) => any;
+};
+
+export function useStandardOrder({ id, scene, onSuccess }: UseStandardOrderOptions) {
+  const {
+    isLoading,
+    isError,
+    data: detail,
+    refetch,
+  } = useQuery({
+    queryKey: ['standardOrderServices/getStandardOrder', id, scene],
+    queryFn: async () => {
+      const params: API.APIgetStandardOrderParams = {
+        id: unref(id),
+        scene: scene,
+      };
+      return await standardOrderServices.getStandardOrder(params, {
+        showLoading: false,
+      });
+    },
+    placeholderData: () => ({} as API.GetStandardOrderQueryResult),
+    onSuccess(data) {
+      onSuccess?.(data);
+    },
+    enabled: computed(() => !!unref(id)),
+  });
+
+  return { detail, isLoading, isError, refetch };
+}

--
Gitblit v1.10.0