Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
| | |
| | | <template> |
| | | <ProTabs |
| | | v-model="queryState.status" |
| | | v-model="queryState.appointmentStatus" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | |
| | | <ProTabPane :title="`å
¨é¨`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
确认`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire" |
| | | :pane-key="EnumStandardOrderAppointmentStatus.WaitSure" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
æå¡`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract" |
| | | :pane-key="EnumStandardOrderAppointmentStatus.WaitServe" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已宿`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse" |
| | | :pane-key="EnumStandardOrderAppointmentStatus.Completed" |
| | | ></ProTabPane> |
| | | <ProTabPane :title="`已忶`" :pane-key="40"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已忶`" |
| | | :pane-key="EnumStandardOrderAppointmentStatus.Cancelled" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.status" |
| | | :key="queryState.appointmentStatus" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ReserveServiceCard |
| | | :name="item.name" |
| | | :serviceName="item.serviceName" |
| | | :begin-time="item.beginTime" |
| | | :serviceFee="item.serviceFee" |
| | | :end-time="item.endTime" |
| | | :billing-method="item.billingMethod" |
| | | :benefits="item.benefits" |
| | | :service-fee="item.serviceFee" |
| | | :settlement-cycle="item.settlementCycle" |
| | | :address-name="item.addressName" |
| | | :supplierEnterpriseName="item.supplierEnterpriseName" |
| | | :address-detail="item.addressDetail" |
| | | :appointmentStatus="item.appointmentStatus" |
| | | @click="goDetail(item)" |
| | | > |
| | | <template #serviceCustome> |
| | | {{ `æå¡äººåï¼${item.serverNames}` }} |
| | | </template> |
| | | </ReserveServiceCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import { useGetStandardOrders } from '@12333/hooks'; |
| | | import { EnumStandardOrderAppointmentStatus } from '@12333/constants'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | status: 0 as any as GetPersonalApplyTaskInfosQueryStatus, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetTaskInfosQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | }; |
| | | |
| | | return taskServices.getOpenTaskInfos(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getOpenTaskInfos', queryState], |
| | | } |
| | | ); |
| | | const { queryState, infiniteLoadingProps } = useGetStandardOrders(); |
| | | |
| | | function goDetail(item: any) { |
| | | Taro.navigateTo({ |
| | |
| | | <template> |
| | | <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> --> |
| | | <ContentScrollView hasPaddingTop> |
| | | <MineServiceDetailView /> |
| | | <MineServiceDetailView :addressDetail="detail?.addressDetail" /> |
| | | </ContentScrollView> |
| | | <PageFooter> |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goCancel" |
| | |
| | | <script setup lang="ts"> |
| | | import { MineServiceDetailView } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { RouterPath } from '@/constants'; |
| | | import { useStandardOrder } from '@12333/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | |
| | | const { detail } = useStandardOrder({ |
| | | id: id, |
| | | }); |
| | | |
| | | function goCancel() {} |
| | | |
| | | function goConfirm() {} |
| | |
| | | <template> |
| | | <ProTabs |
| | | v-model="queryState.status" |
| | | v-model="queryState.payStatus" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`å
¨é¨`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å·²æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已宿`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse" |
| | | ></ProTabPane> |
| | | <ProTabPane :title="`å¾
æ¯ä»`" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane> |
| | | <ProTabPane :title="`å·²æ¯ä»`" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane> |
| | | <ProTabPane :title="`已宿`" :pane-key="EnumStandardOrderPayStatus.Cancelled"></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.status" |
| | | :key="queryState.payStatus" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ReserveServiceCard |
| | | :name="item.name" |
| | | :serviceName="item.serviceName" |
| | | :begin-time="item.beginTime" |
| | | :serviceFee="item.serviceFee" |
| | | :end-time="item.endTime" |
| | | :billing-method="item.billingMethod" |
| | | :benefits="item.benefits" |
| | | :service-fee="item.serviceFee" |
| | | :settlement-cycle="item.settlementCycle" |
| | | :address-name="item.addressName" |
| | | :supplierEnterpriseName="item.supplierEnterpriseName" |
| | | :address-detail="item.addressDetail" |
| | | :appointmentStatus="item.appointmentStatus" |
| | | @click="goOrderDetail(item)" |
| | | > |
| | | <template #serviceCustome> |
| | | {{ `æå¡äººåï¼${item.serverNames}` }} |
| | | </template> |
| | | </ReserveServiceCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components'; |
| | | import { useUserStore } from '@/stores/modules/user'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import { useGetStandardOrders } from '@12333/hooks'; |
| | | import { EnumStandardOrderPayStatus } from '@12333/constants'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | status: 0 as any as GetPersonalApplyTaskInfosQueryStatus, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetTaskInfosQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | }; |
| | | |
| | | return taskServices.getOpenTaskInfos(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getOpenTaskInfos', queryState], |
| | | } |
| | | ); |
| | | const { queryState, infiniteLoadingProps } = useGetStandardOrders(); |
| | | |
| | | function goOrderDetail(item: any) { |
| | | Taro.navigateTo({ |
| | |
| | | <MineServiceDetailView /> |
| | | </ContentScrollView> |
| | | <PageFooter class="order-settle-bar"> |
| | | <div class="order-settle-price-wrapper"> |
| | | <div class="order-settle-price-label">æ¯ä»ï¼</div> |
| | | <nut-price :price="155" size="large" /> |
| | | </div> |
| | | <PageFooterBtn type="primary" class="business-card-btn">ç«å³ä¸å</PageFooterBtn> |
| | | <PageFooterBtn class="business-card-btn" @click="cancelStandardOrderAppointment" |
| | | >åæ¶é¢çº¦</PageFooterBtn |
| | | > |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="handleSubmit" |
| | | >确认é¢çº¦</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | | <!-- </LoadingLayout> --> |
| | | </template> |
| | |
| | | <script setup lang="ts"> |
| | | import { MineServiceDetailView } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { useCheckReceiveTaskUserSubmit } from '@12333/hooks'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import { Message } from '@12333/utils'; |
| | | import { goBack } from '@/utils'; |
| | | import { useStandardOrder } from '@12333/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | |
| | | const { detail } = useStandardOrder({ |
| | | id: id, |
| | | }); |
| | | |
| | | async function cancelStandardOrderAppointment() { |
| | | try { |
| | | await Message.confirm({ message: '确认è¦åæ¶é¢çº¦åï¼' }); |
| | | let params: API.CancelStandardOrderAppointmentCommand = { |
| | | id: id, |
| | | }; |
| | | let res = await standardOrderServices.cancelStandardOrderAppointment(params); |
| | | if (res) { |
| | | Message.success('æä½æå'); |
| | | goBack(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | async function handleSubmit() { |
| | | try { |
| | | let params: API.SureStandardOrderAppointmentCommand = { |
| | | id: id, |
| | | }; |
| | | let res = await standardOrderServices.sureStandardOrderAppointment(params); |
| | | if (res) { |
| | | Message.success('æä½æå'); |
| | | goBack(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | <template> |
| | | <div class="reserve-service-card-wrapper" :class="{ 'un-read': unRead }"> |
| | | <div class="reserve-service-card-title-wrapper"> |
| | | <div class="reserve-service-card-title">{{ name }}</div> |
| | | <div class="reserve-service-card-title">{{ serviceName }}</div> |
| | | <slot name="title-right"> |
| | | <TaskPrice |
| | | v-if="releaseStatus !== EnumTaskReleaseStatus.Stopped" |
| | | :value="toThousand(serviceFee ?? 0)" |
| | | :unit="BillingMethodEnumUnit[billingMethod]" |
| | | :billingMethod="billingMethod" |
| | | /> |
| | | <TaskPrice :value="toThousand(serviceFee ?? 0)" unit="å
" /> |
| | | </slot> |
| | | </div> |
| | | <div class="reserve-service-card-item-list"> |
| | | <div class="reserve-service-card-item"> |
| | | æå¡æ¶é´ï¼{{ dayjs(beginTime).format('YYYYå¹´MMæDæ¥') }} 13:00-15:00 |
| | | æå¡æ¶é´ï¼{{ |
| | | `${dayjs(beginTime).format('YYYYå¹´MMæDæ¥ HH:mm:ss')} - ${dayjs(endTime).format( |
| | | 'YYYYå¹´MMæDæ¥ HH:mm:ss' |
| | | )}` |
| | | }} |
| | | </div> |
| | | <div class="reserve-service-card-item">æå¡å°åï¼{{ addressName }}</div> |
| | | <div class="reserve-service-card-item">æå¡å°åï¼{{ addressDetail }}</div> |
| | | </div> |
| | | |
| | | <div class="reserve-service-card-footer"> |
| | | <div class="reserve-service-card-left"> |
| | | <div class="reserve-service-card-footer-address">æå¡æºæï¼ææ¯æºæåç§°</div> |
| | | <div class="reserve-service-card-footer-address"> |
| | | <slot name="serviceCustome"> æå¡æºæï¼{{ supplierEnterpriseName }} </slot> |
| | | </div> |
| | | </div> |
| | | <div class="reserve-service-card-status">å¾
确认</div> |
| | | <div class="reserve-service-card-status"> |
| | | <slot name="status"> |
| | | {{ EnumStandardOrderAppointmentStatusText[appointmentStatus] }} |
| | | </slot> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { |
| | | EnumBillingMethod, |
| | | EnumSettlementCycle, |
| | | EnumTaskCheckReceiveStatus, |
| | | EnumTaskRecommendStatus, |
| | | EnumTaskReleaseStatus, |
| | | EnumTaskSettlementStatus, |
| | | EnumTaskStatus, |
| | | EnumUserGender, |
| | | BillingMethodEnumUnit, |
| | | EnumTaskUserHireStatus, |
| | | EnumStandardOrderAppointmentStatus, |
| | | EnumEnterpriseCooperationServiceFeeCollectType, |
| | | EnumStandardOrderSettlementStatus, |
| | | EnumStandardOrderPayStatus, |
| | | EnumStandardOrderAppointmentStatusText, |
| | | } from '@12333/constants'; |
| | | import dayjs from 'dayjs'; |
| | | import { toThousand } from '@12333/utils'; |
| | |
| | | type Props = { |
| | | /** Id */ |
| | | id?: string; |
| | | /** ä»»å¡åç§° */ |
| | | name: string; |
| | | /** ä»»å¡åå· */ |
| | | /** 订åå· */ |
| | | code?: string; |
| | | billingMethod?: EnumBillingMethod; |
| | | /** æå¡å */ |
| | | serviceName?: string; |
| | | /** æå¡åå· */ |
| | | serviceCode?: string; |
| | | /** æå¡å¾ç */ |
| | | serviceFile?: string; |
| | | /** çå¸åº+详ç»å°å+é¨çå· */ |
| | | addressDetail?: string; |
| | | /** æå¡èµ·å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** æå¡æªæ¢æ¶é´ */ |
| | | endTime?: string; |
| | | /** ä¸åç¨æ·Id */ |
| | | createdUserId?: string; |
| | | /** ä¸åç¨æ· */ |
| | | createdUserName?: string; |
| | | /** èç³»çµè¯ */ |
| | | createdUserContactPhoneNumber?: string; |
| | | /** ä¸åæ¶é´ */ |
| | | createdTime?: string; |
| | | appointmentStatus?: EnumStandardOrderAppointmentStatus; |
| | | /** ç²æ¹ä¼ä¸Id */ |
| | | partyAEnterpriseId?: string; |
| | | /** ç²æ¹ä¼ä¸ */ |
| | | partyAEnterpriseName?: string; |
| | | /** ä¾åºåId */ |
| | | supplierEnterpriseId?: string; |
| | | /** ä¾åºå */ |
| | | supplierEnterpriseName?: string; |
| | | /** æå¡äººå */ |
| | | serverNames?: string; |
| | | /** æå¡äººåèç³»çµè¯ */ |
| | | serverContactPhoneNumbers?: string; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | /** æ¯ä»å®ææ¶é´ */ |
| | | payCompletedTime?: string; |
| | | /** å®ä»éé¢ */ |
| | | payAmount?: number; |
| | | /** 宿¶éé¢ */ |
| | | receiveAmount?: number; |
| | | serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType; |
| | | /** æå¡è´¹ */ |
| | | serviceFee?: number; |
| | | settlementCycle?: EnumSettlementCycle; |
| | | /** ç¦å© */ |
| | | benefits?: API.GetTaskInfoQueryResultBenefit[]; |
| | | genderLimit?: EnumUserGender; |
| | | /** èµæ ¼è¯ä¹¦ç±»å */ |
| | | credentialLimits?: API.GetTaskInfoQueryResultCredentialLimit[]; |
| | | /** ä»»å¡å°ç¹æå±ç份ç¼å· */ |
| | | provinceCode?: string; |
| | | /** ä»»å¡å°ç¹æå±ç份 */ |
| | | provinceContent?: string; |
| | | /** ä»»å¡å°ç¹æå±åå¸ç¼å· */ |
| | | cityCode?: string; |
| | | /** ä»»å¡å°ç¹æå±åå¸ */ |
| | | cityContent?: string; |
| | | /** ä»»å¡å°ç¹åç§° */ |
| | | addressName?: string; |
| | | /** ä»»å¡å°ç¹è¯¦ç»å°å */ |
| | | addressDetail?: string; |
| | | /** ç»åº¦ */ |
| | | longitude?: number; |
| | | /** 纬度 */ |
| | | latitude?: number; |
| | | /** æ¥åäººæ° */ |
| | | userCount?: number; |
| | | status?: EnumTaskStatus; |
| | | /** ä»»å¡å¼å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** ä»»å¡ç»ææ¶é´ */ |
| | | endTime?: string; |
| | | releaseStatus?: EnumTaskReleaseStatus; |
| | | checkReceiveStatus?: EnumTaskCheckReceiveStatus; |
| | | settlementStatus?: EnumTaskSettlementStatus; |
| | | recommendStatus?: EnumTaskRecommendStatus; |
| | | /** å建æ¶é´ */ |
| | | createdTime?: string; |
| | | hireStatus?: EnumTaskUserHireStatus; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | /** ç»ç®åå· */ |
| | | settlementCode?: string; |
| | | /** ç»ç®æ¶é´ */ |
| | | settlementTime?: string; |
| | | /** ç»ç®éé¢ */ |
| | | settlementAmount?: number; |
| | | |
| | | unRead?: boolean; |
| | | showActions?: boolean; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | |
| | | <template> |
| | | <div class="task-price"> |
| | | <div class="task-price-decimal" v-if="billingMethod !== EnumBillingMethod.Face"> |
| | | <div |
| | | class="task-price-decimal" |
| | | v-if="!!billingMethod || billingMethod !== EnumBillingMethod.Face" |
| | | > |
| | | {{ value }} |
| | | </div> |
| | | <div class="task-price-unit">{{ unit }}</div> |
| | |
| | | export * from './apiEnum'; |
| | | export * from './enterpriseEmployee'; |
| | | export * from './enterpriseWallet'; |
| | | export * from './standardOrder'; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumStandardOrderAppointmentStatus, |
| | | EnumStandardOrderPayStatus, |
| | | EnumStandardOrderSettlementStatus, |
| | | EnumStandardServiceReleaseStatus, |
| | | } from './apiEnum'; |
| | | |
| | | export const EnumStandardServiceReleaseStatusText = { |
| | | [EnumStandardServiceReleaseStatus.InProcess]: 'åå¸ä¸', |
| | | [EnumStandardServiceReleaseStatus.Stopped]: '已忢', |
| | | }; |
| | | |
| | | export const EnumStandardOrderAppointmentStatusText = { |
| | | [EnumStandardOrderAppointmentStatus.WaitSure]: 'å¾
确认', |
| | | [EnumStandardOrderAppointmentStatus.WaitServe]: 'å¾
æå¡', |
| | | [EnumStandardOrderAppointmentStatus.Completed]: '已宿', |
| | | [EnumStandardOrderAppointmentStatus.Cancelled]: '已忶', |
| | | }; |
| | | |
| | | export const EnumStandardOrderPayStatusText = { |
| | | [EnumStandardOrderPayStatus.Wait]: 'å¾
æ¯ä»', |
| | | [EnumStandardOrderPayStatus.Completed]: 'å·²æ¯ä»', |
| | | [EnumStandardOrderPayStatus.Cancelled]: '已忶', |
| | | }; |
| | | |
| | | export const EnumStandardOrderSettlementStatusText = { |
| | | [EnumStandardOrderSettlementStatus.Wait]: 'å¾
ç»ç®', |
| | | [EnumStandardOrderSettlementStatus.Completed]: '已宿', |
| | | }; |
| | | |
| | | export const EnumGetStandardOrdersQuerySceneText = { |
| | | [EnumGetStandardOrdersQueryScene.Appointment]: 'é¢çº¦è®¢å', |
| | | [EnumGetStandardOrdersQueryScene.Pay]: 'æ¯ä»è®¢å', |
| | | [EnumGetStandardOrdersQueryScene.Settlement]: 'ç»ç®è®¢å', |
| | | }; |
| | |
| | | import { useQuery, useQueryClient } from '@tanstack/vue-query'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { computed, 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 { EnumStandardOrderAppointmentStatus, EnumStandardOrderPayStatus } from '@12333/constants'; |
| | | |
| | | type UseStandardServiceDetailOptions = { |
| | | id: MaybeRef<string>; |
| | |
| | | standardServiceListForCategoryMap, |
| | | }; |
| | | } |
| | | |
| | | export function useGetStandardOrders() { |
| | | const queryState = reactive({ |
| | | appointmentStatus: 0 as any as EnumStandardOrderAppointmentStatus, |
| | | payStatus: 0 as any as EnumStandardOrderPayStatus, |
| | | }); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetStandardOrdersQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | }, |
| | | }; |
| | | |
| | | if (queryState.appointmentStatus) { |
| | | params.appointmentStatus = queryState.appointmentStatus; |
| | | } |
| | | if (queryState.payStatus) { |
| | | params.payStatus = queryState.payStatus; |
| | | } |
| | | |
| | | return standardOrderServices.getStandardOrders(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['standardOrderServices/getStandardOrders', queryState], |
| | | } |
| | | ); |
| | | |
| | | return { |
| | | queryState, |
| | | infiniteLoadingProps, |
| | | }; |
| | | } |
| | | |
| | | type UseStandardOrderOptions = { |
| | | id: MaybeRef<string>; |
| | | onSuccess?: (data: API.GetStandardOrderQueryResult) => any; |
| | | }; |
| | | |
| | | export function useStandardOrder({ id, onSuccess }: UseStandardOrderOptions) { |
| | | const { |
| | | isLoading, |
| | | isError, |
| | | data: detail, |
| | | refetch, |
| | | } = useQuery({ |
| | | queryKey: ['standardOrderServices/getStandardOrder', id], |
| | | queryFn: async () => { |
| | | const params: API.APIgetStandardOrderParams = { |
| | | id: unref(id), |
| | | }; |
| | | return await standardOrderServices.getStandardOrder(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | placeholderData: () => ({} as API.GetStandardOrderQueryResult), |
| | | onSuccess(data) { |
| | | onSuccess?.(data); |
| | | }, |
| | | }); |
| | | |
| | | return { detail, isLoading, isError, refetch }; |
| | | } |