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