From 5499750aabe2251491a979a927e6126dd434d1df Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 30 十二月 2025 19:33:51 +0800
Subject: [PATCH] fix: bug

---
 packages/hooks/standardOrder.ts |  170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 166 insertions(+), 4 deletions(-)

diff --git a/packages/hooks/standardOrder.ts b/packages/hooks/standardOrder.ts
index b1a1e61..caf5ab1 100644
--- a/packages/hooks/standardOrder.ts
+++ b/packages/hooks/standardOrder.ts
@@ -1,24 +1,47 @@
 import { useQuery, useQueryClient } from '@tanstack/vue-query';
 import * as standardServiceServices from '@12333/services/apiV2/standardService';
-import { MaybeRef, unref } from 'vue';
+import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
+import { computed, MaybeRef, reactive, unref } from 'vue';
+import { groupBy } from 'lodash';
+import { useInfiniteLoading } from '@12333/hooks';
+import {
+  EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus,
+  EnumGetStandardOrdersQueryScene,
+  EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus,
+  EnumStandardOrderAppointmentStatus,
+  EnumStandardOrderPayStatus,
+} from '@12333/constants';
 
 type UseStandardServiceDetailOptions = {
   id: MaybeRef<string>;
+  onSuccess?: (data: API.GetStandardServiceQueryResult) => any;
 };
 
-export function useStandardServiceDetail({ id }: UseStandardServiceDetailOptions) {
+export function useStandardServiceDetail({ id, onSuccess }: UseStandardServiceDetailOptions) {
   const { data, refetch, isLoading, isError } = useQuery({
-    queryKey: ['standardServiceServices/getStandardService', id],
+    queryKey: ['standardServiceServices/getOpenStandardService', id],
     queryFn: async () => {
       let params: API.APIgetStandardServiceParams = {
         id: unref(id),
       };
 
-      return await standardServiceServices.getStandardService(params, {
+      return await standardServiceServices.getOpenStandardService(params, {
         showLoading: false,
       });
     },
     placeholderData: () => ({} as API.GetStandardServiceQueryResult),
+    onSuccess(data) {
+      onSuccess?.(data);
+    },
+  });
+
+  const minPrice = computed(() => {
+    // if (!data.value?.specs?.length) {
+    //   return 0;
+    // } else {
+    //   return Math.min(...data.value.specs.map((x) => x.price));
+    // }
+    return data.value?.minSpecPrice ?? 0;
   });
 
   return {
@@ -26,5 +49,144 @@
     refetch,
     isLoading,
     isError,
+    minPrice,
   };
 }
+
+type UseStandardServiceListOptions = {
+  params?: MaybeRef<API.GetOpenStandardServiceListQuery>;
+  onSuccess?: (data: API.GetStandardServicesQueryResultItem[]) => any;
+};
+
+export function useStandardServiceList(options: UseStandardServiceListOptions = {}) {
+  const { params = {}, onSuccess } = options;
+  const {
+    data: standardServiceList,
+    refetch,
+    isLoading,
+    isError,
+  } = useQuery({
+    queryKey: ['standardServiceServices/getOpenStandardServiceList', params],
+    queryFn: async () => {
+      return await standardServiceServices.getOpenStandardServiceList(unref(params), {
+        showLoading: false,
+      });
+    },
+    placeholderData: () => [] as API.GetStandardServicesQueryResultItem[],
+    onSuccess(data) {
+      onSuccess?.(data);
+    },
+  });
+
+  const standardServiceListForCategory = computed(() => {
+    return standardServiceList.value.map((x) => ({
+      ...x,
+      catName: x.name,
+    }));
+  });
+
+  const standardServiceListForCategoryMap = computed(() => {
+    const group = groupBy(standardServiceListForCategory.value, 'jobCode');
+    return group;
+  });
+
+  const queryClient = useQueryClient();
+
+  function ensureStandardServiceList() {
+    return queryClient.ensureQueryData<API.GetStandardServicesQueryResultItem[]>({
+      queryKey: ['standardServiceServices/getOpenStandardServiceList', params],
+    });
+  }
+
+  return {
+    standardServiceList,
+    ensureStandardServiceList,
+    standardServiceListForCategory,
+    standardServiceListForCategoryMap,
+  };
+}
+
+export function useGetStandardOrders() {
+  const queryState = reactive({
+    appointmentStatus: 0 as any as EnumStandardOrderAppointmentStatus,
+    payStatus: 0 as any as EnumStandardOrderPayStatus,
+    partAEnterpriseOrderStatus: 0 as any as EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus,
+    supplierEnterpriseOrderStatus:
+      0 as any as EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus,
+  });
+
+  const { infiniteLoadingProps } = useInfiniteLoading(
+    ({ pageParam }) => {
+      let params: API.GetStandardOrdersQuery = {
+        pageModel: {
+          rows: 20,
+          page: pageParam,
+        },
+      };
+
+      if (Number(queryState.appointmentStatus)) {
+        params.appointmentStatus = queryState.appointmentStatus;
+      }
+      if (Number(queryState.payStatus)) {
+        params.payStatus = queryState.payStatus;
+      }
+      if (Number(queryState.partAEnterpriseOrderStatus)) {
+        params.partAEnterpriseOrderStatus = queryState.partAEnterpriseOrderStatus;
+      }
+      if (Number(queryState.supplierEnterpriseOrderStatus)) {
+        params.supplierEnterpriseOrderStatus = queryState.supplierEnterpriseOrderStatus;
+      }
+
+      return standardOrderServices.getStandardOrders(params, {
+        showLoading: false,
+      });
+    },
+    {
+      queryKey: ['standardOrderServices/getStandardOrders', queryState],
+    }
+  );
+
+  return {
+    queryState,
+    infiniteLoadingProps,
+  };
+}
+
+type UseStandardOrderOptions = {
+  id: MaybeRef<string>;
+  scene?: EnumGetStandardOrdersQueryScene;
+  onSuccess?: (data: API.GetStandardOrderQueryResult) => any;
+  refetchInterval?: MaybeRef<number | false>;
+};
+
+export function useStandardOrder({
+  id,
+  scene,
+  onSuccess,
+  refetchInterval = false,
+}: 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);
+    },
+    refetchInterval: unref(refetchInterval),
+  });
+
+  return { detail, isLoading, isError, refetch };
+}

--
Gitblit v1.10.0