From d35fc7ac166d584ccc55c3892152eeac69b6917f Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 30 十二月 2025 13:18:06 +0800
Subject: [PATCH] fix: bug
---
packages/hooks/standardOrder.ts | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 161 insertions(+), 3 deletions(-)
diff --git a/packages/hooks/standardOrder.ts b/packages/hooks/standardOrder.ts
index 585b716..caf5ab1 100644
--- a/packages/hooks/standardOrder.ts
+++ b/packages/hooks/standardOrder.ts
@@ -1,6 +1,16 @@
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>;
@@ -9,13 +19,13 @@
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,
});
},
@@ -25,10 +35,158 @@
},
});
+ 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 {
detail: data,
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