| | |
| | | <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 |
| | | :contactName="detail?.name" |
| | | :contactPhoneNumber="detail?.contactPhoneNumber" |
| | | :addressDetail="detail?.addressDetail" |
| | | :serviceName="detail?.serviceName" |
| | | :price="detail?.specPrice" |
| | | :specName="detail?.specName" |
| | | :specNumber="detail?.specNumber" |
| | | :imgUrl="detail?.serviceFile" |
| | | statusText="é¢çº¦ç¶æ" |
| | | :beginTime="detail?.beginTime" |
| | | :endTime="detail?.endTime" |
| | | :supplierEnterpriseName="detail?.supplierEnterpriseName" |
| | | :remark="detail?.remark" |
| | | > |
| | | <template #status> |
| | | {{ EnumStandardOrderAppointmentStatusText[detail?.appointmentStatus] }} |
| | | </template> |
| | | </MineServiceDetailView> |
| | | </ContentScrollView> |
| | | <PageFooter> |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goCancel" |
| | | <PageFooter |
| | | v-if=" |
| | | detail?.appointmentStatus === EnumStandardOrderAppointmentStatus.WaitSure && |
| | | detail?.payStatus !== EnumStandardOrderPayStatus.Completed |
| | | " |
| | | > |
| | | <PageFooterBtn class="business-card-btn" @click="cancelStandardOrderAppointment" |
| | | >åæ¶é¢çº¦</PageFooterBtn |
| | | > |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm" |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="handleSubmit" |
| | | >确认é¢çº¦</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | |
| | | <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 { |
| | | EnumStandardOrderPayStatus, |
| | | EnumStandardOrderAppointmentStatus, |
| | | EnumStandardOrderAppointmentStatusText, |
| | | } from '@12333/constants'; |
| | | import { useStandardOrder } from '@12333/hooks'; |
| | | import { Message } from '@12333/utils'; |
| | | import { goBack } from '@/utils'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | |
| | | function goCancel() {} |
| | | const { detail } = useStandardOrder({ |
| | | id: id, |
| | | }); |
| | | |
| | | function goConfirm() {} |
| | | 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> |
| | | <ProTabs |
| | | v-model="queryState.status" |
| | | v-model="queryState.supplierEnterpriseOrderStatus" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | |
| | | > |
| | | <ProTabPane :title="`å
¨é¨`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å·²æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract" |
| | | :title="`å¾
æ¶æ¬¾`" |
| | | :pane-key="EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Wait" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已宿`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse" |
| | | :pane-key="EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Completed" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.status" |
| | | :key="queryState.supplierEnterpriseOrderStatus" |
| | | > |
| | | <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" |
| | | @click="goOrderDetail(item)" |
| | | > |
| | | <template #status> |
| | | {{ |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText[ |
| | | item.supplierEnterpriseOrderStatus |
| | | ] |
| | | }} |
| | | </template> |
| | | <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 { |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus, |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText, |
| | | } 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({ |
| | |
| | | <template> |
| | | <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> --> |
| | | <ContentScrollView hasPaddingTop> |
| | | <MineServiceDetailView /> |
| | | <MineServiceDetailView |
| | | :contactName="detail?.name" |
| | | :contactPhoneNumber="detail?.contactPhoneNumber" |
| | | :addressDetail="detail?.addressDetail" |
| | | :serviceName="detail?.serviceName" |
| | | :price="detail?.specPrice" |
| | | :specName="detail?.specName" |
| | | :specNumber="detail?.specNumber" |
| | | :imgUrl="detail?.serviceFile" |
| | | statusText="订åç¶æ" |
| | | :beginTime="detail?.beginTime" |
| | | :endTime="detail?.endTime" |
| | | :supplierEnterpriseName="detail?.supplierEnterpriseName" |
| | | :remark="detail?.remark" |
| | | > |
| | | <template #status> |
| | | {{ |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText[ |
| | | detail?.supplierEnterpriseOrderStatus |
| | | ] |
| | | }} |
| | | </template> |
| | | </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> |
| | | </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 { EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText } from '@12333/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, |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | class="user-info-unCertified-btn" |
| | | @click.stop="goAuthentication" |
| | | v-if=" |
| | | userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal || |
| | | userDetail?.realStatus === EnumPersonalUserRealStatus.Fail |
| | | (userDetail?.realStatus === EnumPersonalUserRealStatus.UnReal || |
| | | userDetail?.realStatus === EnumPersonalUserRealStatus.Fail) && |
| | | !hideTemplate |
| | | " |
| | | > |
| | | ç«å³è®¤è¯ |
| | |
| | | const systemStore = useSystemStore(); |
| | | const { goLoginFn } = useGoLogin(); |
| | | const bgHeight = computed(() => 133 + systemStore.navHeight); |
| | | const hideTemplate = computed(() => systemStore.isWeappCheck); |
| | | |
| | | useQuery({ |
| | | queryKey: ['updateUserInfo'], |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import { defineStore } from 'pinia'; |
| | | import { store } from '@/stores'; |
| | | import * as settingsServices from '@12333/services/apiV2/settings'; |
| | | |
| | | export interface Options { |
| | | path: string; |
| | |
| | | redirectPath: string; |
| | | isTabSwitch: boolean; |
| | | isFirstEnter: boolean; |
| | | isWeappCheck: boolean; |
| | | } |
| | | |
| | | export const useSystemStore = defineStore({ |
| | |
| | | menuButtonTop: 0, |
| | | |
| | | isFirstEnter: true, |
| | | |
| | | isWeappCheck: true, |
| | | }), |
| | | |
| | | actions: { |
| | | async getAppConfig() { |
| | | try { |
| | | let res = await settingsServices.getWxmpSettings({}); |
| | | this.isWeappCheck = res.wxmpAuditInProcess; |
| | | } catch (error) {} |
| | | }, |
| | | |
| | | init(options: Options) { |
| | | this.options = options; // æ¾ä¸ä¸é¡µé¢ç¸å
³çæ°æ®ä¾å¦sceneç 页é¢é«åº¦ä¹ç±»çä¸åï¼ |
| | | }, |
| | |
| | | </div> --> |
| | | <List> |
| | | <ListItem title="æ¶å
¥æç»" @click="goIncomeDetail"> </ListItem> |
| | | <ListItem title="é¶è¡å¡" @click="goBankBind"> |
| | | <template #extra> |
| | | <div class="bind-bank-card"> |
| | | {{ isBindBank ? 'å·²ç»å®' : 'æªç»å®ãç«å³ç»å®' }} |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="æ¯ä»å®" @click="goBankAlipay"> |
| | | <template #extra> |
| | | <div class="bind-bank-card"> |
| | | {{ isBindAlipay ? 'å·²ç»å®' : 'æªç»å®ãç«å³ç»å®' }} |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | | <template v-if="!hideTemplate"> |
| | | <ListItem title="é¶è¡å¡" @click="goBankBind"> |
| | | <template #extra> |
| | | <div class="bind-bank-card"> |
| | | {{ isBindBank ? 'å·²ç»å®' : 'æªç»å®ãç«å³ç»å®' }} |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="æ¯ä»å®" @click="goBankAlipay"> |
| | | <template #extra> |
| | | <div class="bind-bank-card"> |
| | | {{ isBindAlipay ? 'å·²ç»å®' : 'æªç»å®ãç«å³ç»å®' }} |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | | </template> |
| | | |
| | | <ListItem title="微信"> |
| | | <template #extra> |
| | | <div class="bind-bank-card"> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { useSystemStore } from '@/stores/modules/system'; |
| | | import { List, ListItem, WithdrawMoneyCard } from '@12333/components'; |
| | | import { EnumUserBankCardAccess } from '@12333/constants'; |
| | | import Taro from '@tarojs/taro'; |
| | |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const systemStore = useSystemStore(); |
| | | |
| | | const { userDetail, isBindBank, isBindAlipay, isBindWechat } = useUser(); |
| | | |
| | | const hideTemplate = computed(() => systemStore.isWeappCheck); |
| | | |
| | | function goIncomeDetail() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.incomeDetail}`, |
| | |
| | | "miniprogram": { |
| | | "list": [ |
| | | { |
| | | "name": "éæ©å°å", |
| | | "pathName": "subpackages/mine/addressManange/addressManange", |
| | | "query": "type=select", |
| | | "name": "订å详æ
", |
| | | "pathName": "subpackages/mine/mineOrderDetail/mineOrderDetail", |
| | | "query": "id=d16809d3-e6b9-4b5f-2e87-08de443f2678", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | }, |
| | | { |
| | | "name": "åæ¶åå ", |
| | | "pathName": "subpackages/mine/mineReserveServiceCancel/mineReserveServiceCancel", |
| | | "query": "id=d16809d3-e6b9-4b5f-2e87-08de443f2678", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æçé¢çº¦è¯¦æ
", |
| | | "pathName": "subpackages/mine/mineReserveServiceDetail/mineReserveServiceDetail", |
| | | "query": "id=d16809d3-e6b9-4b5f-2e87-08de443f2678", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "é¢çº¦è¯¦æ
", |
| | | "pathName": "subpackages/mine/mineReserveServiceDetail/mineReserveServiceDetail", |
| | | "query": "id=ca8c17a1-6c44-446e-2e88-08de443f2678", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "é¢çº¦ä¸å", |
| | | "pathName": "subpackages/sercice/addStandardOrder/addStandardOrder", |
| | | "query": "specNumber=1&specId=72ec3beb-90dc-473b-d214-08de429af188&id=53208c5d-a823-40d3-e79e-08de429af17b", |
| | | "query": "specNumber=1&specId=ccdc16fb-d842-4e66-bdf5-08de43546a8c&id=e4df3802-1e9b-4b21-4ef6-08de43551f52", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "éæ©æå¡äººå", |
| | | "pathName": "subpackages/sercice/chooseEnterpriseEmployee/chooseEnterpriseEmployee", |
| | | "query": "id=cc8c3ad3-522a-4b5e-c1ca-08de41c6b930", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "éæ©æå¡æºæ", |
| | | "pathName": "subpackages/sercice/chooseSupplier/chooseSupplier", |
| | | "query": "id=e4df3802-1e9b-4b21-4ef6-08de43551f52", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æå¡è¯¦æ
", |
| | | "pathName": "subpackages/sercice/serciceDetail/serciceDetail", |
| | | "query": "id=e4df3802-1e9b-4b21-4ef6-08de43551f52", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "éæ©å°å", |
| | | "pathName": "subpackages/mine/addressManange/addressManange", |
| | | "query": "type=select", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æå¡è¯¦æ
", |
| | | "pathName": "subpackages/sercice/serciceDetail/serciceDetail", |
| | | "query": "id=53208c5d-a823-40d3-e79e-08de429af17b", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "æå¡ç¡®è®¤", |
| | | "pathName": "subpackages/mine/mineReserveServiceConfirm/mineReserveServiceConfirm", |
| | | "query": "id=undefined", |
| | |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "åæ¶åå ", |
| | | "pathName": "subpackages/mine/mineReserveServiceCancel/mineReserveServiceCancel", |
| | | "query": "id=undefined", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "é¢çº¦è¯¦æ
", |
| | | "pathName": "subpackages/mine/mineReserveServiceDetail/mineReserveServiceDetail", |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "订å详æ
", |
| | | "pathName": "subpackages/mine/mineOrderDetail/mineOrderDetail", |
| | | "query": "id=123", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "å°å管ç", |
| | | "pathName": "subpackages/mine/addressManange/addressManange", |
| | | "query": "", |
| | |
| | | }, |
| | | { |
| | | root: 'subpackages/sercice', |
| | | pages: ['serciceDetail/serciceDetail', 'addStandardOrder/addStandardOrder'], |
| | | pages: [ |
| | | 'serciceDetail/serciceDetail', |
| | | 'addStandardOrder/addStandardOrder', |
| | | 'chooseSupplier/chooseSupplier', |
| | | 'chooseEnterpriseEmployee/chooseEnterpriseEmployee', |
| | | ], |
| | | }, |
| | | { |
| | | root: 'subpackages/user', |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <ChooseSupplierCard :avatar="avatar" :name="name"> |
| | | <template #name-right> |
| | | <div class="flexJob-card-top-info-gender"> |
| | | <img |
| | | v-if="gender === EnumUserGender.Male" |
| | | :src="IconMale" |
| | | class="flexJob-card-top-info-gender-icon" |
| | | /> |
| | | <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" /> |
| | | </div> |
| | | <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }"> |
| | | {{ isReal ? 'å·²å®å' : 'æªå®å' }} |
| | | </div> |
| | | </template> |
| | | <template #infoDetail> |
| | | {{ infoDetail }} |
| | | </template> |
| | | <template #desc> |
| | | {{ workExperience }} |
| | | </template> |
| | | <template #actions> |
| | | <slot name="actions"> </slot> |
| | | </template> |
| | | </ChooseSupplierCard> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { EnumUserGender } from '@12333/constants'; |
| | | import ChooseSupplierCard from './ChooseSupplierCard.vue'; |
| | | import IconMale from '@/assets/mine/icon-male.png'; |
| | | import IconFemale from '@/assets/mine/icon-female.png'; |
| | | |
| | | defineOptions({ |
| | | name: 'ChooseServerCard', |
| | | }); |
| | | |
| | | type Props = { |
| | | avatar?: string; |
| | | name?: string; |
| | | gender?: EnumUserGender; |
| | | age?: number; |
| | | isReal?: boolean; |
| | | personalIdentityContent?: string; |
| | | educationalBackgroundContent?: string; |
| | | taskCount?: number; |
| | | workExperience?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const infoDetail = computed(() => |
| | | [ |
| | | props.age > 0 ? `${props.age}å²` : '', |
| | | props.personalIdentityContent, |
| | | props.educationalBackgroundContent, |
| | | props.taskCount > 0 ? `ä¸å²${props.taskCount ?? 0}次` : '', |
| | | ] |
| | | .filter(Boolean) |
| | | .join('|') |
| | | ); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/styles/common.scss'; |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="choose-supplier-card-wrapper"> |
| | | <div class="choose-supplier-card-top-wrapper"> |
| | | <Avatar :src="setOSSLink(avatar)" :size="60" class="choose-supplier-card-top-avatar" /> |
| | | <div class="choose-supplier-card-top-info"> |
| | | <div class="flexJob-card-top-info-item"> |
| | | <div class="flexJob-card-top-info-item-w"> |
| | | <div class="flexJob-card-top-info-name">{{ name }}</div> |
| | | <slot name="name-right"></slot> |
| | | </div> |
| | | </div> |
| | | <div class="flexJob-card-top-info-detail"> |
| | | <slot name="infoDetail"> æå¡äººå {{ serverCount }} | æå¡äººæ¬¡ {{ serviceCount }} </slot> |
| | | </div> |
| | | <div class="flexJob-card-top-info-detail-desc"> |
| | | <slot name="desc">{{ mainBusiness }}</slot> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="choose-supplier-card-footer"> |
| | | <div class="flexJob-card-footer-left-wrapper"></div> |
| | | <div class="flexJob-card-footer-right"> |
| | | <slot name="actions"> </slot> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { setOSSLink } from '@12333/utils'; |
| | | import { Avatar } from '@12333/components'; |
| | | |
| | | defineOptions({ |
| | | name: 'ChooseSupplierCard', |
| | | }); |
| | | |
| | | type Props = { |
| | | avatar?: string; |
| | | name?: string; |
| | | mainBusiness?: string; |
| | | serverCount?: number; |
| | | serviceCount?: number; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import '@/styles/common.scss'; |
| | | |
| | | .choose-supplier-card-wrapper { |
| | | padding: 32px 24px 20px; |
| | | margin-bottom: 24px; |
| | | background-color: #fff; |
| | | border-radius: 12px; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .choose-supplier-card-top-wrapper { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .choose-supplier-card-top-avatar { |
| | | margin-right: 30px; |
| | | } |
| | | } |
| | | |
| | | .choose-supplier-card-footer { |
| | | display: flex; |
| | | align-items: center; |
| | | border-top: #d9d9d9 1px solid; |
| | | padding-top: 24px; |
| | | margin-top: 18px; |
| | | |
| | | .flexJob-card-footer-left-wrapper { |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | |
| | | .flexJob-card-footer-right { |
| | | --nut-button-default-font-size: 24px; |
| | | --nut-button-default-height: 52px; |
| | | --nut-button-default-line-height: 49px; |
| | | |
| | | .nut-button { |
| | | min-width: 144rpx; |
| | | |
| | | &.nut-button--plain { |
| | | border-width: 1px; |
| | | } |
| | | |
| | | &.nut-button { |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .choose-supplier-card-top-info { |
| | | display: flex; |
| | | flex-direction: column; |
| | | flex: 1; |
| | | min-width: 0; |
| | | |
| | | .flexJob-card-top-info-item-w { |
| | | display: flex; |
| | | align-items: center; |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | |
| | | .flexJob-card-top-info-item { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .flexJob-card-top-info-item-right { |
| | | font-size: 28px; |
| | | line-height: 34px; |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | } |
| | | |
| | | .flexJob-card-top-info-name { |
| | | font-size: 34px; |
| | | line-height: 34px; |
| | | font-weight: bold; |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | @include ellipsis; |
| | | } |
| | | |
| | | .flexJob-card-top-info-gender { |
| | | display: inline-flex; |
| | | align-items: center; |
| | | height: 34px; |
| | | margin: 0 10px; |
| | | flex-shrink: 0; |
| | | |
| | | .flexJob-card-top-info-gender-icon { |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | } |
| | | |
| | | .flexJob-card-top-info-auth { |
| | | font-size: 28px; |
| | | line-height: 34px; |
| | | flex-shrink: 0; |
| | | |
| | | &.is-real-name { |
| | | color: #2a9e1b; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .flexJob-card-top-info-detail { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | line-height: 28px; |
| | | margin-top: 12px; |
| | | color: boleGetCssVar('text-color', 'regular'); |
| | | @include ellipsis; |
| | | } |
| | | |
| | | .flexJob-card-top-info-detail-desc { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | line-height: 28px; |
| | | margin-top: 12px; |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | @include ellipsis; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <ChooseInput :modelValue="supplierEnterpriseName" @click="handleOpen()"></ChooseInput> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { RouterPath } from '@/constants'; |
| | | import { SelectEnterpriseEmployeeEvent } from '@/subpackages/sercice/utils'; |
| | | import { ChooseInput } from '@12333/components'; |
| | | import { Message } from '@12333/utils'; |
| | | import Taro from '@tarojs/taro'; |
| | | import dayjs from 'dayjs'; |
| | | |
| | | defineOptions({ |
| | | name: 'ChooseInputWithSuppliers', |
| | | }); |
| | | |
| | | type Props = { |
| | | serviceId: string; |
| | | beginTime?: string; |
| | | endTime?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | |
| | | const supplierEnterpriseId = defineModel<string>('supplierEnterpriseId'); |
| | | const enterpriseEmployeeId = defineModel<string>('enterpriseEmployeeId'); |
| | | const enterpriseEmployeeName = defineModel<string>('enterpriseEmployeeName'); |
| | | const supplierEnterpriseName = defineModel<string>('supplierEnterpriseName'); |
| | | |
| | | const emit = defineEmits<{ |
| | | (e: 'update:modelValue', val: string | number): void; |
| | | (e: 'change'): void; |
| | | }>(); |
| | | encodeURIComponent; |
| | | function handleOpen() { |
| | | if (!props.beginTime || !props.endTime) { |
| | | Message.warning('请å
éæ©æå¡æ¶é´'); |
| | | return; |
| | | } |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.chooseSupplier}?id=${props.serviceId}&beginTime=${dayjs( |
| | | props.beginTime |
| | | ).format('YYYY-MM-DDTHH:mm')}&endTime=${dayjs(props.endTime).format('YYYY-MM-DDTHH:mm')}`, |
| | | events: { |
| | | onSelectEnterpriseEmployee: function (data: SelectEnterpriseEmployeeEvent) { |
| | | console.log('EditRichContent onChange', data); |
| | | supplierEnterpriseId.value = data.supplierEnterpriseId; |
| | | enterpriseEmployeeId.value = data.enterpriseEmployeeId; |
| | | enterpriseEmployeeName.value = data.enterpriseEmployeeName; |
| | | supplierEnterpriseName.value = data.supplierEnterpriseName; |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | </script> |
| | |
| | | |
| | | serciceDetail = '/subpackages/sercice/serciceDetail/serciceDetail', |
| | | addStandardOrder = '/subpackages/sercice/addStandardOrder/addStandardOrder', |
| | | chooseSupplier = '/subpackages/sercice/chooseSupplier/chooseSupplier', |
| | | chooseEnterpriseEmployee = '/subpackages/sercice/chooseEnterpriseEmployee/chooseEnterpriseEmployee', |
| | | |
| | | extraPage = '/subpackages/extraPage/extraPage/extraPage', |
| | | } |
| | |
| | | <List class="mine-list-wrapper mine-order-list"> |
| | | <div class="mine-order-list-title"> |
| | | <div class="mine-order-list-title-text">æçé¢çº¦</div> |
| | | <div class="mine-order-list-title-arrow-wrapper" @click="goMineReserveService"> |
| | | <div class="mine-order-list-title-arrow-wrapper" @click="goMineReserveService()"> |
| | | <div class="mine-order-list-title-sub-text">å
¨é¨é¢çº¦</div> |
| | | <img :src="IconArrow" class="mine-order-list-title-icon" /> |
| | | </div> |
| | |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | @click="goMineReserveService(EnumStandardOrderAppointmentStatus.WaitSure)" |
| | | > |
| | | <img :src="IconOrderSign" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">å¾
确认</div> |
| | |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | @click="goMineReserveService(EnumStandardOrderAppointmentStatus.WaitServe)" |
| | | > |
| | | <img :src="IconOrderHire" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">å¾
æå¡</div> |
| | |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | @click="goMineReserveService(EnumStandardOrderAppointmentStatus.Completed)" |
| | | > |
| | | <img :src="IconOrderHire" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已宿</div> |
| | |
| | | class="mine-order-list-item" |
| | | top="8" |
| | | :dot="false" |
| | | @click="goMineReserveService" |
| | | @click="goMineReserveService(EnumStandardOrderAppointmentStatus.Cancelled)" |
| | | > |
| | | <img :src="IconOrderCancel" class="mine-order-list-icon" /> |
| | | <div class="mine-order-list-text">已忶</div> |
| | |
| | | import { useSystemStore } from '@/stores/modules/system'; |
| | | import PageLayoutWithBg from '@/components/Layout/PageLayoutWithBg.vue'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import { EnumStandardOrderAppointmentStatus } from '@12333/constants'; |
| | | |
| | | const { userDetail, updateUserInfo, displayName } = useUser(); |
| | | const isLogin = useIsLogin(); |
| | |
| | | goPage(RouterPath.mineCollectTask); |
| | | } |
| | | |
| | | function goMineReserveService() { |
| | | goPage(RouterPath.mineReserveService); |
| | | function goMineReserveService(status: EnumStandardOrderAppointmentStatus = 0 as any) { |
| | | goPage(`${RouterPath.mineReserveService}?status=${status}`); |
| | | } |
| | | |
| | | function goMineOrderManage() { |
| | |
| | | padding-top: 16px; |
| | | } |
| | | |
| | | .common-infinite-scroll-list-no-padding { |
| | | @include listScrollViewWithNoPadding; |
| | | padding-top: 16px; |
| | | } |
| | | |
| | | .id-imgUrl-wrapper { |
| | | display: flex; |
| | | gap: 40px; |
| | |
| | | <template> |
| | | <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> --> |
| | | <ContentScrollView hasPaddingTop> |
| | | <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> |
| | | </PageFooter> |
| | | <!-- </LoadingLayout> --> |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <InfiniteLoading |
| | | commonMode |
| | | :refetch="refetch" |
| | | :isLoading="isLoading" |
| | | :isError="isError" |
| | | :showMoreText="false" |
| | | scrollViewClassName="common-page-infinite-scroll-list" |
| | | > |
| | | <MineServiceDetailView |
| | | :contactName="detail?.name" |
| | | :contactPhoneNumber="detail?.contactPhoneNumber" |
| | | :addressDetail="detail?.addressDetail" |
| | | :serviceName="detail?.serviceName" |
| | | :price="detail?.specPrice" |
| | | :specName="detail?.specName" |
| | | :specNumber="detail?.specNumber" |
| | | :imgUrl="detail?.serviceFile" |
| | | statusText="订åç¶æ" |
| | | :beginTime="detail?.beginTime" |
| | | :endTime="detail?.endTime" |
| | | :supplierEnterpriseName="detail?.supplierEnterpriseName" |
| | | :remark="detail?.remark" |
| | | :serverContactPhoneNumbers="detail?.serverContactPhoneNumbers" |
| | | > |
| | | <template #status> |
| | | {{ |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText[ |
| | | detail?.partAEnterpriseOrderStatus |
| | | ] |
| | | }} |
| | | </template> |
| | | </MineServiceDetailView> |
| | | </InfiniteLoading> |
| | | <PageFooter |
| | | class="order-settle-bar" |
| | | v-if=" |
| | | detail?.partAEnterpriseOrderStatus === |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Wait |
| | | " |
| | | > |
| | | <div class="order-settle-price-wrapper"> |
| | | <div class="order-settle-price-label">æ¯ä»ï¼</div> |
| | | <nut-price :price="detail.payAmount" size="large" /> |
| | | </div> |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="payStandardOrder" |
| | | >ç«å³ä¸å</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 { useStandardOrder } from '@12333/hooks'; |
| | | import { |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText, |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus, |
| | | } from '@12333/constants'; |
| | | import { Message } from '@12333/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | |
| | | const { detail, isLoading, isError, refetch } = useStandardOrder({ |
| | | id, |
| | | scene: EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder, |
| | | refetchInterval: 3000, |
| | | }); |
| | | |
| | | Taro.useDidShow(() => { |
| | | refetch(); |
| | | }); |
| | | |
| | | async function payStandardOrder() { |
| | | try { |
| | | let params: API.PayStandardOrderCommand = { |
| | | id: id, |
| | | }; |
| | | let res = await standardOrderServices.payStandardOrder(params); |
| | | if (res) { |
| | | await Taro.requestPayment({ |
| | | timeStamp: res.timestamp, |
| | | nonceStr: res.nonceStr, |
| | | package: res.package, |
| | | signType: res.signType as any, |
| | | paySign: res.paySign, |
| | | }); |
| | | Message.success('æ¯ä»æå'); |
| | | refetch(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | <template> |
| | | <ProTabs |
| | | v-model="queryState.status" |
| | | v-model="queryState.partAEnterpriseOrderStatus" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | |
| | | <ProTabPane :title="`å
¨é¨`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å¾
æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire" |
| | | :pane-key="EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Wait" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`å·²æ¯ä»`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract" |
| | | :pane-key="EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Pay" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已宿`" |
| | | :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse" |
| | | :pane-key="EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Completed" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.status" |
| | | :key="queryState.partAEnterpriseOrderStatus" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ReserveServiceCard |
| | | :name="item.name" |
| | | :serviceName="item.serviceName" |
| | | :begin-time="item.beginTime" |
| | | :end-time="item.endTime" |
| | | :billing-method="item.billingMethod" |
| | | :benefits="item.benefits" |
| | | :service-fee="item.serviceFee" |
| | | :settlement-cycle="item.settlementCycle" |
| | | :address-name="item.addressName" |
| | | :addressDetail="item.addressDetail" |
| | | :supplierEnterpriseName="item.supplierEnterpriseName" |
| | | :payAmount="item.payAmount" |
| | | @click="goMineOrderDetail(item)" |
| | | > |
| | | <template #status> |
| | | {{ |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText[ |
| | | item.partAEnterpriseOrderStatus |
| | | ] |
| | | }} |
| | | </template> |
| | | </ReserveServiceCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | |
| | | 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 { |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus, |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumPagedListOrder, |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText, |
| | | } from '@12333/constants'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | |
| | | }); |
| | | |
| | | const queryState = reactive({ |
| | | status: 0 as any as GetPersonalApplyTaskInfosQueryStatus, |
| | | partAEnterpriseOrderStatus: 0 as any as EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus, |
| | | scene: EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetTaskInfosQuery = { |
| | | let params: API.GetStandardOrdersQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | scene: queryState.scene, |
| | | }; |
| | | |
| | | return taskServices.getOpenTaskInfos(params, { |
| | | if (!!Number(queryState.partAEnterpriseOrderStatus)) { |
| | | params.partAEnterpriseOrderStatus = queryState.partAEnterpriseOrderStatus; |
| | | } |
| | | |
| | | return standardOrderServices.getStandardOrders(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getOpenTaskInfos', queryState], |
| | | queryKey: ['standardOrderServices/getStandardOrders', queryState], |
| | | } |
| | | ); |
| | | |
| | |
| | | <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" |
| | | :end-time="item.endTime" |
| | | :billing-method="item.billingMethod" |
| | | :benefits="item.benefits" |
| | | :service-fee="item.serviceFee" |
| | | :settlement-cycle="item.settlementCycle" |
| | | :address-name="item.addressName" |
| | | :addressDetail="item.addressDetail" |
| | | :appointmentStatus="item.appointmentStatus" |
| | | :supplierEnterpriseName="item.supplierEnterpriseName" |
| | | :payAmount="item.payAmount" |
| | | @click="goSerciceDetail(item)" |
| | | > |
| | | </ReserveServiceCard> |
| | |
| | | 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 { |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumPagedListOrder, |
| | | EnumStandardOrderAppointmentStatus, |
| | | } from '@12333/constants'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const status = route.params?.status as any as EnumStandardOrderAppointmentStatus; |
| | | |
| | | const queryState = reactive({ |
| | | status: 0 as any as GetPersonalApplyTaskInfosQueryStatus, |
| | | scene: EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder, |
| | | appointmentStatus: status ? Number(status) : 0, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | // onMounted(() => { |
| | | // standardOrderServices.checkPayStandardOrder({ |
| | | // id: 'ca8c17a1-6c44-446e-2e88-08de443f2678', |
| | | // }); |
| | | // }); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetTaskInfosQuery = { |
| | | let params: API.GetStandardOrdersQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | scene: queryState.scene, |
| | | }; |
| | | |
| | | return taskServices.getOpenTaskInfos(params, { |
| | | if (!!Number(queryState.appointmentStatus)) { |
| | | params.appointmentStatus = queryState.appointmentStatus; |
| | | } |
| | | |
| | | return standardOrderServices.getStandardOrders(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['taskServices/getOpenTaskInfos', queryState], |
| | | queryKey: ['standardOrderServices/getStandardOrders', queryState], |
| | | } |
| | | ); |
| | | |
| | | function goSerciceDetail(item: any) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.serciceDetail}?id=${item.id}`, |
| | | url: `${RouterPath.mineReserveServiceDetail}?id=${item.id}`, |
| | | }); |
| | | } |
| | | </script> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; |
| | | import { Message } from '@12333/utils'; |
| | | import { goBack } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | |
| | | async function confirm() { |
| | | try { |
| | | let params: API.CancelStandardOrderAppointmentCommand = { |
| | | id: id, |
| | | appointmentCancelReason: form.reason, |
| | | }; |
| | | let res = await standardOrderServices.cancelStandardOrderAppointment(params); |
| | | if (res) { |
| | | Message.success('æä½æå', { |
| | | onClosed() { |
| | | goBack(); |
| | | }, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> --> |
| | | <ContentScrollView hasPaddingTop> |
| | | <MineServiceDetailView /> |
| | | </ContentScrollView> |
| | | <PageFooter> |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goCancel" |
| | | >åæ¶æå¡</PageFooterBtn |
| | | <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> |
| | | <InfiniteLoading |
| | | commonMode |
| | | :refetch="refetch" |
| | | :isLoading="isLoading" |
| | | :isError="isError" |
| | | :showMoreText="false" |
| | | scrollViewClassName="common-page-infinite-scroll-list" |
| | | > |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm" |
| | | >æå¡ç¡®è®¤</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | | <!-- </LoadingLayout> --> |
| | | <MineServiceDetailView |
| | | :contactName="detail?.name" |
| | | :contactPhoneNumber="detail?.contactPhoneNumber" |
| | | :addressDetail="detail?.addressDetail" |
| | | :serviceName="detail?.serviceName" |
| | | :price="detail?.specPrice" |
| | | :specName="detail?.specName" |
| | | :specNumber="detail?.specNumber" |
| | | :imgUrl="detail?.serviceFile" |
| | | statusText="é¢çº¦ç¶æ" |
| | | :beginTime="detail?.beginTime" |
| | | :endTime="detail?.endTime" |
| | | :supplierEnterpriseName="detail?.supplierEnterpriseName" |
| | | :remark="detail?.remark" |
| | | :serverContactPhoneNumbers="detail?.serverContactPhoneNumbers" |
| | | :showServerContactPhoneNumbers=" |
| | | detail.appointmentStatus === EnumStandardOrderAppointmentStatus.WaitServe |
| | | " |
| | | > |
| | | <template #status> |
| | | {{ EnumStandardOrderAppointmentStatusText[detail?.appointmentStatus] }} |
| | | </template> |
| | | </MineServiceDetailView> |
| | | </InfiniteLoading> |
| | | <PageFooter> |
| | | <PageFooterBtn |
| | | type="primary" |
| | | class="business-card-btn" |
| | | v-if="detail.appointmentStatus === EnumStandardOrderAppointmentStatus.WaitSure" |
| | | @click="goCancel" |
| | | >åæ¶æå¡</PageFooterBtn |
| | | > |
| | | <PageFooterBtn |
| | | type="primary" |
| | | class="business-card-btn" |
| | | v-if=" |
| | | detail.taskCheckReceiveStatus == EnumTaskCheckReceiveStatus.Completed && |
| | | detail.appointmentStatus === EnumStandardOrderAppointmentStatus.WaitServe |
| | | " |
| | | @click="goConfirm" |
| | | >æå¡ç¡®è®¤</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | | </LoadingLayout> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { RouterPath } from '@/constants'; |
| | | import { useStandardOrder } from '@12333/hooks'; |
| | | import { |
| | | EnumStandardOrderAppointmentStatusText, |
| | | EnumStandardOrderAppointmentStatus, |
| | | EnumTaskCheckReceiveStatus, |
| | | EnumGetStandardOrdersQueryScene, |
| | | } from '@12333/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | |
| | | const { detail, isLoading, isError, refetch } = useStandardOrder({ |
| | | id, |
| | | scene: EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder, |
| | | }); |
| | | |
| | | Taro.useDidShow(() => { |
| | | refetch(); |
| | | }); |
| | | |
| | | function goCancel() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.mineReserveServiceCancel}?id=${id}`, |
| | |
| | | ></ChooseInputWithDatePicker> |
| | | </nut-form-item> |
| | | <nut-form-item |
| | | label="æå¡æºæ:" |
| | | class="bole-form-item" |
| | | prop="enterpriseEmployeeId" |
| | | label-width="90px" |
| | | > |
| | | <ChooseInputWithSuppliers |
| | | v-model:supplierEnterpriseId="form.supplierEnterpriseId" |
| | | placeholder="è¯·éæ©" |
| | | :serviceId="id" |
| | | :beginTime="form.beginTime" |
| | | :endTime="form.endTime" |
| | | v-model:enterpriseEmployeeId="form.enterpriseEmployeeId" |
| | | v-model:enterpriseEmployeeName="form.enterpriseEmployeeName" |
| | | v-model:supplierEnterpriseName="form.supplierEnterpriseName" |
| | | ></ChooseInputWithSuppliers> |
| | | </nut-form-item> |
| | | <nut-form-item |
| | | label="夿³¨:" |
| | | class="bole-form-item alignTop" |
| | | prop="remark" |
| | |
| | | </nut-form-item> |
| | | </nut-form> |
| | | </ContentScrollView> |
| | | <PageFooter> |
| | | <PageFooter class="order-settle-bar"> |
| | | <div class="order-settle-price-wrapper"> |
| | | <div class="order-settle-price-label">æ¯ä»ï¼</div> |
| | | <nut-price :price="totlePrice" size="large" /> |
| | | </div> |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm" |
| | | >ç«å³ä¸å</PageFooterBtn |
| | | > |
| | |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; |
| | | import dayjs from 'dayjs'; |
| | | import { EnumUserBankCardAccess } from '@12333/constants'; |
| | | import { Message } from '@12333/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | beginTime: '', |
| | | endTime: '', |
| | | supplierEnterpriseId: '', |
| | | enterpriseEmployeeIds: [] as string[], |
| | | supplierEnterpriseName: '', |
| | | enterpriseEmployeeId: '', |
| | | enterpriseEmployeeName: '', |
| | | remark: '', |
| | | }); |
| | | |
| | |
| | | const rules = reactive<FormRules>({ |
| | | beginTime: [{ required: true, message: 'è¯·éæ©æå¡å¼å§æ¶é´' }], |
| | | endTime: [{ required: true, message: 'è¯·éæ©æå¡ç»ææ¶é´' }], |
| | | enterpriseEmployeeId: [{ required: true, message: 'è¯·éæ©æå¡æºæ' }], |
| | | }); |
| | | |
| | | const { isLoading, isError, detail, refetch } = useStandardServiceDetail({ |
| | |
| | | form.addressId = nowExistAdd.id; |
| | | }; |
| | | |
| | | const totlePrice = computed(() => { |
| | | return (spec.value?.price ?? 0) * specNumber; |
| | | }); |
| | | |
| | | const formRef = ref<any>(null); |
| | | function goConfirm() { |
| | | if (!formRef.value) return; |
| | | formRef.value.validate().then(({ valid, errors }: any) => { |
| | | if (valid) { |
| | | // addStandardOrder(); |
| | | addStandardOrder(); |
| | | } |
| | | }); |
| | | } |
| | |
| | | specName: spec.value.name, |
| | | specPrice: spec.value.price ?? 0, |
| | | specNumber: specNumber, |
| | | addressId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | addressId: form.addressId, |
| | | name: detail.value.name, |
| | | contactPhoneNumber: 'string', |
| | | provinceCode: 'string', |
| | | provinceContent: 'string', |
| | | cityCode: 'string', |
| | | cityContent: 'string', |
| | | areaCode: 'string', |
| | | areaContent: 'string', |
| | | addressName: 'string', |
| | | addressDetail: 'string', |
| | | longitude: 0, |
| | | latitude: 0, |
| | | beginTime: '2025-12-24T08:25:08.372Z', |
| | | endTime: '2025-12-24T08:25:08.372Z', |
| | | supplierEnterpriseId: '3fa85f64-5717-4562-b3fc-2c963f66afa6', |
| | | enterpriseEmployeeIds: ['3fa85f64-5717-4562-b3fc-2c963f66afa6'], |
| | | remark: 'string', |
| | | payAccess: 1, |
| | | contactPhoneNumber: selectedAddress.value.contactPhoneNumber, |
| | | provinceCode: selectedAddress.value.provinceCode, |
| | | provinceContent: selectedAddress.value.provinceContent, |
| | | cityCode: selectedAddress.value.cityCode, |
| | | cityContent: selectedAddress.value.cityContent, |
| | | areaCode: selectedAddress.value.areaCode, |
| | | areaContent: selectedAddress.value.areaContent, |
| | | addressName: selectedAddress.value.addressName, |
| | | addressDetail: selectedAddress.value.addressDetail, |
| | | longitude: selectedAddress.value.longitude, |
| | | latitude: selectedAddress.value.latitude, |
| | | beginTime: dayjs(form.beginTime).format('YYYY-MM-DD HH:mm'), |
| | | endTime: dayjs(form.endTime).format('YYYY-MM-DD HH:mm'), |
| | | supplierEnterpriseId: form.supplierEnterpriseId, |
| | | enterpriseEmployeeIds: [form.enterpriseEmployeeId], |
| | | remark: form.remark, |
| | | payAccess: EnumUserBankCardAccess.WeChatPay, |
| | | }; |
| | | let res = await standardOrderServices.addStandardOrder(params); |
| | | if (res) { |
| | | payStandardOrder(res); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | async function pay() { |
| | | async function payStandardOrder(orderId: string) { |
| | | try { |
| | | let params: API.PayStandardOrderCommand = { |
| | | id: '9e919af2-3d33-4eac-f6dc-08de429676b3', |
| | | id: orderId, |
| | | }; |
| | | let res = await standardOrderServices.payStandardOrder(params); |
| | | if (res) { |
| | | Taro.requestPayment({ |
| | | await Taro.requestPayment({ |
| | | timeStamp: res.timestamp, |
| | | nonceStr: res.nonceStr, |
| | | package: res.package, |
| | | signType: res.signType as any, |
| | | paySign: res.paySign, |
| | | }); |
| | | Message.success('æ¯ä»æå'); |
| | | Taro.redirectTo({ |
| | | url: `${RouterPath.mineOrderDetail}?id=${orderId}`, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | |
| | | .addStandardOrder-form { |
| | | .nut-cell-group__wrap { |
| | | box-shadow: none; |
| | | |
| | | .input-text, |
| | | .h5-textarea { |
| | | text-align: right !important; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .order-settle-bar { |
| | | .order-settle-price-wrapper { |
| | | height: 100%; |
| | | flex: 1; |
| | | min-width: 0; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-left: 28px; |
| | | |
| | | .order-settle-price-label { |
| | | color: boleGetCssVar('text-color', 'primary'); |
| | | } |
| | | } |
| | | } |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-page-infinite-scroll-list" |
| | | v-bind="infiniteLoadingProps" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ChooseServerCard |
| | | :avatar="item.avatar" |
| | | :name="item.name" |
| | | :gender="item.gender" |
| | | :age="item.age" |
| | | :isReal="item.isReal" |
| | | :personalIdentityContent="item.personalIdentityContent" |
| | | :educationalBackgroundContent="item.educationalBackgroundContent" |
| | | :taskCount="item.taskCount" |
| | | :workExperience="item.workExperience" |
| | | > |
| | | <template #actions> |
| | | <nut-button type="primary" plain>æ¥ç详æ
</nut-button> |
| | | <nut-button type="primary" @click="handleChoose(item)">éæ©</nut-button> |
| | | </template> |
| | | </ChooseServerCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder } from '@12333/constants'; |
| | | import { useEvent, useEventChannel } from 'senin-mini/hooks'; |
| | | import { SelectEnterpriseEmployeeEvent } from '../utils'; |
| | | import { goBack } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id ?? ''; |
| | | |
| | | const eventChannel = useEventChannel(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetStandardServiceServersQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | // orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | supplierEnterpriseId: id, |
| | | }; |
| | | |
| | | return standardServiceServices.getStandardServiceServers(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['standardServiceServices/getStandardServiceServers', id], |
| | | } |
| | | ); |
| | | |
| | | function handleChoose(item: API.GetStandardServiceServersQueryResultItem) { |
| | | eventChannel.emit('onSelectEnterpriseEmployee', { |
| | | enterpriseEmployeeId: item.id, |
| | | supplierEnterpriseId: id, |
| | | enterpriseEmployeeName: item.name, |
| | | } as SelectEnterpriseEmployeeEvent); |
| | | goBack(2); |
| | | } |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="addStandardOrder-page-wrapper" title="éæ©æå¡äººå"> |
| | | <InnerPage /> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'chooseEnterpriseEmployee', |
| | | }); |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-page-infinite-scroll-list" |
| | | v-bind="infiniteLoadingProps" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ChooseSupplierCard |
| | | :avatar="item.avatar" |
| | | :name="item.enterpriseName" |
| | | :mainBusiness="item.mainBusiness" |
| | | :serverCount="item.serverCount" |
| | | :serviceCount="item.serviceCount" |
| | | > |
| | | <template #actions> |
| | | <nut-button type="primary" plain>æ¥ç详æ
</nut-button> |
| | | <nut-button type="primary" @click="goEnterpriseEmployee(item)">éæ©</nut-button> |
| | | </template> |
| | | </ChooseSupplierCard> |
| | | </template> |
| | | </InfiniteLoading> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardServiceServices from '@12333/services/apiV2/standardService'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumPagedListOrder } from '@12333/constants'; |
| | | import { useEvent, useEventChannel } from 'senin-mini/hooks'; |
| | | import { SelectEnterpriseEmployeeEvent } from '../utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id ?? ''; |
| | | |
| | | const eventChannel = useEventChannel(); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetStandardServiceSupplierEnterprisesQuery = { |
| | | pageModel: { |
| | | rows: 20, |
| | | page: pageParam, |
| | | // orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |
| | | }, |
| | | serviceId: id, |
| | | }; |
| | | |
| | | return standardServiceServices.getStandardServiceSupplierEnterprises(params, { |
| | | showLoading: false, |
| | | }); |
| | | }, |
| | | { |
| | | queryKey: ['standardServiceServices/getStandardServiceSupplierEnterprises', id], |
| | | } |
| | | ); |
| | | |
| | | function goEnterpriseEmployee(item: API.GetStandardServiceSupplierEnterprisesQueryResultItem) { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.chooseEnterpriseEmployee}?id=${item.id}`, |
| | | events: { |
| | | onSelectEnterpriseEmployee: function (data: SelectEnterpriseEmployeeEvent) { |
| | | console.log('SelectEnterpriseEmployeeEvent2: ', data); |
| | | data.supplierEnterpriseName = item.enterpriseName; |
| | | eventChannel.emit('onSelectEnterpriseEmployee', data); |
| | | }, |
| | | }, |
| | | }); |
| | | } |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <PageLayoutWithBg class="addStandardOrder-page-wrapper" title="éæ©æå¡æºæ"> |
| | | <InnerPage /> |
| | | </PageLayoutWithBg> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import InnerPage from './InnerPage.vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'chooseSupplier', |
| | | }); |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | export type SelectEnterpriseEmployeeEvent = { |
| | | supplierEnterpriseId: string; |
| | | supplierEnterpriseName?: string; |
| | | enterpriseEmployeeId: string; |
| | | enterpriseEmployeeName: string; |
| | | }; |
| | |
| | | :imgUrl="imgUrl" |
| | | /> |
| | | |
| | | <List> |
| | | <ListItem title="订åç¶æ" :showArrow="false"> |
| | | <List extraFlex> |
| | | <ListItem :title="statusText" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ '订åç¶æ' }}</div> |
| | | <div class="mine-service-detail-view-list-item"> |
| | | <slot name="status"> </slot> |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="æå¡æ¶é´" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item"> |
| | | {{ '2025-12-12 12:00-14:00' }} |
| | | {{ format(beginTime, 'YYYY-MM-DD HH:mm') }}-{{ format(endTime, 'HH:mm') }} |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="æå¡æºæ" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ 'xxxxxå
¬å¸' }}</div> |
| | | <div class="mine-service-detail-view-list-item">{{ supplierEnterpriseName }}</div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="èç³»çµè¯" :showArrow="false" v-if="showServerContactPhoneNumbers"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ serverContactPhoneNumbers }}</div> |
| | | </template> |
| | | </ListItem> |
| | | <ListItem title="夿³¨" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item">{{ 'ææ¯å¤æ³¨ä¿¡æ¯' }}</div> |
| | | <div class="mine-service-detail-view-list-item">{{ remark }}</div> |
| | | </template> |
| | | </ListItem> |
| | | </List> |
| | |
| | | import ListItem from '../List/ListItem.vue'; |
| | | import ServiceDetailAddressCard from './ServiceDetailAddressCard.vue'; |
| | | import ServiceDetailGoodCard from './ServiceDetailGoodCard.vue'; |
| | | import { format } from '@12333/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'MineServiceDetailView', |
| | |
| | | specName?: string; |
| | | specNumber?: number; |
| | | imgUrl?: string; |
| | | beginTime?: string; |
| | | endTime?: string; |
| | | supplierEnterpriseName?: string; |
| | | remark?: string; |
| | | serverContactPhoneNumbers?: string; |
| | | showServerContactPhoneNumbers?: boolean; |
| | | |
| | | statusText?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | showServerContactPhoneNumbers: false, |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | font-size: 28px; |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | line-height: 40px; |
| | | flex: 1; |
| | | min-width: 0; |
| | | text-align: right; |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <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(payAmount ?? 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 |
| | | <div class="reserve-service-card-item-label">æå¡æ¶é´ï¼</div> |
| | | <div class="reserve-service-card-item-content"> |
| | | {{ |
| | | `${dayjs(beginTime).format('YYYYå¹´MMæDæ¥ HH:mm:ss')} - ${dayjs(endTime).format( |
| | | 'YYYYå¹´MMæDæ¥ HH:mm:ss' |
| | | )}` |
| | | }} |
| | | </div> |
| | | </div> |
| | | <div class="reserve-service-card-item">æå¡å°åï¼{{ addressName }}</div> |
| | | <div class="reserve-service-card-item"> |
| | | <div class="reserve-service-card-item-label">æå¡å°åï¼</div> |
| | | <div class="reserve-service-card-item-content"> |
| | | {{ addressDetail }} |
| | | </div> |
| | | </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>(), { |
| | |
| | | color: boleGetCssVar('text-color', 'regular'); |
| | | line-height: 36px; |
| | | margin-bottom: 6px; |
| | | display: flex; |
| | | align-items: flex-start; |
| | | |
| | | .reserve-service-card-item-content { |
| | | flex: 1; |
| | | min-width: 0; |
| | | } |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | |
| | | <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> |
| | |
| | | <template> |
| | | <div class="pro-list"> |
| | | <div class="pro-list" :class="{ extraFlex }"> |
| | | <slot /> |
| | | </div> |
| | | </template> |
| | |
| | | defineOptions({ |
| | | name: 'List', |
| | | }); |
| | | |
| | | type Props = { |
| | | extraFlex?: boolean; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), { |
| | | extraFlex: false, |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .extraFlex { |
| | | .pro-list-item { |
| | | .pro-list-item-inner { |
| | | height: auto; |
| | | align-items: flex-start; |
| | | padding: 30px 0; |
| | | |
| | | .pro-list-item-title { |
| | | flex: initial; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | export { default as ProCategory } from './Category/Category.vue'; |
| | | export { default as ServiceDetailAddressCard } from './Card/ServiceDetailAddressCard.vue'; |
| | | export { default as ServiceDetailGoodCard } from './Card/ServiceDetailGoodCard.vue'; |
| | | export { default as ChooseInput } from './Input/ChooseInput.vue'; |
| | |
| | | Pass = 30, |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åå页å表-ç²æ¹è®¢åç¶æ */ |
| | | export enum EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus { |
| | | /**å¾
æ¯ä» */ |
| | | Wait = 10, |
| | | /**å·²æ¯ä» */ |
| | | Pay = 20, |
| | | /**已宿 */ |
| | | Completed = 30, |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åå页å表-éå¶åºæ¯ */ |
| | | export enum EnumGetStandardOrdersQueryScene { |
| | | /**é¢çº¦è®¢å */ |
| | | Appointment = 10, |
| | | /**æ¯ä»è®¢å */ |
| | | Pay = 20, |
| | | /**ç»ç®è®¢å */ |
| | | Settlement = 30, |
| | | /**ç²æ¹ä¼ä¸è®¢å管ç */ |
| | | PartAEnterpriseOrder = 10, |
| | | /**人èµä¼ä¸è®¢å管ç */ |
| | | SupplierEnterpriseOrder = 100, |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订åå页å表-ç²æ¹è®¢åç¶æ */ |
| | | export enum EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus { |
| | | /**å¾
æ¶æ¬¾ */ |
| | | Wait = 10, |
| | | /**已宿 */ |
| | | Completed = 30, |
| | | } |
| | | |
| | | /** æä¿ä¾åºåè´¦å· */ |
| | |
| | | export * from './apiEnum'; |
| | | export * from './enterpriseEmployee'; |
| | | export * from './enterpriseWallet'; |
| | | export * from './standardOrder'; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus, |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus, |
| | | EnumStandardOrderAppointmentStatus, |
| | | EnumStandardOrderPayStatus, |
| | | EnumStandardOrderSettlementStatus, |
| | | EnumStandardServiceReleaseStatus, |
| | | EnumUserBankCardAccess, |
| | | } 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.PartAEnterpriseOrder]: 'ç²æ¹ä¼ä¸è®¢å管ç', |
| | | [EnumGetStandardOrdersQueryScene.SupplierEnterpriseOrder]: '人èµä¼ä¸è®¢å管ç', |
| | | }; |
| | | |
| | | export const EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText = { |
| | | [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Wait]: 'å¾
æ¯ä»', |
| | | [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Pay]: 'å·²æ¯ä»', |
| | | [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Completed]: '已宿', |
| | | }; |
| | | |
| | | export const EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText = { |
| | | [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Wait]: 'å¾
æ¶æ¬¾', |
| | | [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Completed]: '已宿', |
| | | }; |
| | | |
| | | export const EnumUserBankCardAccessText = { |
| | | [EnumUserBankCardAccess.WeChatPay]: '微信æ¯ä»', |
| | | [EnumUserBankCardAccess.Bank]: 'é¶è¡æ¯ä»', |
| | | }; |
| | |
| | | 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 { |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus, |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus, |
| | | 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, |
| | | 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 (queryState.appointmentStatus) { |
| | | params.appointmentStatus = queryState.appointmentStatus; |
| | | } |
| | | if (queryState.payStatus) { |
| | | params.payStatus = queryState.payStatus; |
| | | } |
| | | if (queryState.partAEnterpriseOrderStatus) { |
| | | params.partAEnterpriseOrderStatus = queryState.partAEnterpriseOrderStatus; |
| | | } |
| | | if (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 }; |
| | | } |
| | |
| | | import * as logRecords from './logRecords'; |
| | | import * as dictionary from './dictionary'; |
| | | import * as taskCheckReceive from './taskCheckReceive'; |
| | | import * as taskUser from './taskUser'; |
| | | import * as standardOrder from './standardOrder'; |
| | | import * as standardService from './standardService'; |
| | | import * as userResume from './userResume'; |
| | | import * as auth from './auth'; |
| | | import * as taskUser from './taskUser'; |
| | | import * as enterpriseInsuranceProduct from './enterpriseInsuranceProduct'; |
| | | import * as eventUtils from './eventUtils'; |
| | | import * as enterpriseCooperationWallet from './enterpriseCooperationWallet'; |
| | |
| | | logRecords, |
| | | dictionary, |
| | | taskCheckReceive, |
| | | taskUser, |
| | | standardOrder, |
| | | standardService, |
| | | userResume, |
| | | auth, |
| | | taskUser, |
| | | enterpriseInsuranceProduct, |
| | | eventUtils, |
| | | enterpriseCooperationWallet, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ¥è¯¢æ å订å详æ
GET /api/flexjob/standardOrder/getSureStandardOrder */ |
| | | export async function getSureStandardOrder( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | | params: API.APIgetSureStandardOrderParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetSureStandardOrderQueryResult>( |
| | | '/api/flexjob/standardOrder/getSureStandardOrder', |
| | | { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ åè®¢åæ¯ä» POST /api/flexjob/standardOrder/payStandardOrder */ |
| | | export async function payStandardOrder( |
| | | body: API.PayStandardOrderCommand, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** ç»ç®æ å订å PUT /api/flexjob/standardOrder/settlementStandardOrder */ |
| | | export async function settlementStandardOrder( |
| | | body: API.SettlementStandardOrderCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<string>('/api/flexjob/standardOrder/settlementStandardOrder', { |
| | | method: 'PUT', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** æ å订åæå¡ç¡®è®¤ POST /api/flexjob/standardOrder/sureStandardOrder */ |
| | | export async function sureStandardOrder( |
| | | body: API.SureStandardOrderCommand, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ¹éä»»å¡å®æ POST /api/flexjob/taskUser/batchSetTaskUserArrange */ |
| | | export async function batchSetTaskUserArrange( |
| | | body: API.BatchSetTaskUserArrangeCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<number>('/api/flexjob/taskUser/batchSetTaskUserArrange', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** æ¸
ç©ºå·²åæ¢ç任塿¶è DELETE /api/flexjob/taskUser/clearTaskCollect */ |
| | | export async function clearTaskCollect( |
| | | body: API.ClearTaskCollectCommand, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ¥è¯¢ä»»å¡å®æçµå·¥è¯¦æ
GET /api/flexjob/taskUser/getArrangeTaskEnterpriseEmployee */ |
| | | export async function getArrangeTaskEnterpriseEmployee( |
| | | // å å çæçParamç±»å (ébodyåæ°swaggeré»è®¤æ²¡æçæå¯¹è±¡) |
| | | params: API.APIgetArrangeTaskEnterpriseEmployeeParams, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetArrangeTaskEnterpriseEmployeeQueryResult>( |
| | | '/api/flexjob/taskUser/getArrangeTaskEnterpriseEmployee', |
| | | { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | }, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢ä»»å¡å®æçµå·¥å表 POST /api/flexjob/taskUser/getArrangeTaskEnterpriseEmployees */ |
| | | export async function getArrangeTaskEnterpriseEmployees( |
| | | body: API.GetArrangeTaskEnterpriseEmployeesQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetArrangeTaskEnterpriseEmployeesQueryResult>( |
| | | '/api/flexjob/taskUser/getArrangeTaskEnterpriseEmployees', |
| | | { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** B端æ¥è¯¢äººå宿å页åè¡¨ä¿¡æ¯ POST /api/flexjob/taskUser/getArrangeTaskUsers */ |
| | | export async function getArrangeTaskUsers( |
| | | body: API.GetArrangeTaskUsersQuery, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** æ¥è¯¢å¾
宿任å¡å页å表 POST /api/flexjob/taskUser/getWaitArrangeTasks */ |
| | | export async function getWaitArrangeTasks( |
| | | body: API.GetWaitArrangeTasksQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.GetWaitArrangeTasksQueryResult>('/api/flexjob/taskUser/getWaitArrangeTasks', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** ä»»å¡å®æ PUT /api/flexjob/taskUser/setTaskUserArrange */ |
| | | export async function setTaskUserArrange( |
| | | body: API.SetTaskUserArrangeCommand, |
| | |
| | | maxDeep?: number; |
| | | } |
| | | |
| | | interface APIgetArrangeTaskEnterpriseEmployeeParams { |
| | | /** çµå·¥Id */ |
| | | id?: string; |
| | | } |
| | | |
| | | interface APIgetCheckReceiveTaskUserSubmitParams { |
| | | /** æäº¤Idï¼ç¨äºB端客æ·ç«¯ï¼ */ |
| | | submitId?: string; |
| | |
| | | interface APIgetStandardOrderParams { |
| | | /** 订åId */ |
| | | id?: string; |
| | | /** éå¶åºæ¯ï¼ä¸ä¼ åä¸éå¶ï¼ */ |
| | | scene?: EnumGetStandardOrdersQueryScene; |
| | | } |
| | | |
| | | interface APIgetStandardServiceParams { |
| | |
| | | request?: GetSupplierEnterpriseSelectQuery; |
| | | } |
| | | |
| | | interface APIgetSureStandardOrderParams { |
| | | /** 订åId */ |
| | | id?: string; |
| | | } |
| | | |
| | | interface APIgetTaskEnterpriseParams { |
| | | /** ä¼ä¸Id */ |
| | | id?: string; |
| | |
| | | errorMessages?: string; |
| | | } |
| | | |
| | | interface BatchSetTaskUserArrangeCommand { |
| | | /** ä»»å¡Id */ |
| | | taskInfoIds?: string[]; |
| | | /** çµå·¥Id */ |
| | | enterpriseEmployeeId?: string; |
| | | arrangeStatus?: EnumTaskUserArrangeStatus; |
| | | } |
| | | |
| | | interface BindWxmpUserInfoCommand { |
| | | /** 访é®ä»¤ç */ |
| | | accessToken: string; |
| | |
| | | Pass = 30, |
| | | } |
| | | |
| | | enum EnumGetStandardOrdersQueryScene { |
| | | /**é¢çº¦è®¢å */ |
| | | Appointment = 10, |
| | | /**æ¯ä»è®¢å */ |
| | | enum EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus { |
| | | /**å¾
æ¯ä» */ |
| | | Wait = 10, |
| | | /**å·²æ¯ä» */ |
| | | Pay = 20, |
| | | /**ç»ç®è®¢å */ |
| | | Settlement = 30, |
| | | /**已宿 */ |
| | | Completed = 30, |
| | | } |
| | | |
| | | enum EnumGetStandardOrdersQueryScene { |
| | | /**ç²æ¹ä¼ä¸è®¢å管ç */ |
| | | PartAEnterpriseOrder = 10, |
| | | /**人èµä¼ä¸è®¢å管ç */ |
| | | SupplierEnterpriseOrder = 100, |
| | | } |
| | | |
| | | enum EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus { |
| | | /**å¾
æ¶æ¬¾ */ |
| | | Wait = 10, |
| | | /**已宿 */ |
| | | Completed = 30, |
| | | } |
| | | |
| | | enum EnumInsuranceSupplierAccess { |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetArrangeTaskEnterpriseEmployeeQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetArrangeTaskEnterpriseEmployeeQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetArrangeTaskEnterpriseEmployeesQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetArrangeTaskEnterpriseEmployeesQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetArrangeTaskUsersQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetSureStandardOrderQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetSureStandardOrderQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetTaskEnterpriseQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetWaitArrangeTasksQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | | /** ç¶æç */ |
| | | code?: number; |
| | | /** é误ç */ |
| | | errorCode?: string; |
| | | data?: GetWaitArrangeTasksQueryResult; |
| | | /** æ§è¡æå */ |
| | | success?: boolean; |
| | | /** éè¯¯ä¿¡æ¯ */ |
| | | msg?: any; |
| | | /** éå æ°æ® */ |
| | | extras?: any; |
| | | /** æ¶é´æ³ */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetWxmpSettingsQueryResult { |
| | | /** è·è¸ªId */ |
| | | traceId?: string; |
| | |
| | | quickQuery?: string; |
| | | } |
| | | |
| | | interface GetArrangeTaskEnterpriseEmployeeQueryResult { |
| | | /** çµå·¥Id */ |
| | | id?: string; |
| | | /** 头å */ |
| | | avatar?: string; |
| | | /** å§å */ |
| | | name?: string; |
| | | /** 身份è¯å· */ |
| | | identity?: string; |
| | | /** ææºå· */ |
| | | contactPhoneNumber?: string; |
| | | gender?: EnumUserGender; |
| | | /** å¹´é¾ */ |
| | | age?: number; |
| | | /** æ¯å¦å®å */ |
| | | isReal?: boolean; |
| | | realMethod?: EnumUserRealMethod; |
| | | /** çµååå */ |
| | | contractUrl?: string; |
| | | /** åè®®èµ·å§æ¶é´ */ |
| | | contractBegin?: string; |
| | | /** åè®®ç»æ¢æ¶é´ */ |
| | | contractEnd?: string; |
| | | /** å·²å®æä»»å¡ */ |
| | | taskInfos?: GetWaitArrangeTasksQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetArrangeTaskEnterpriseEmployeesQuery { |
| | | /** å
³é®åï¼å§åã身份è¯å·ãææºå·ï¼ */ |
| | | keywords?: string; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetArrangeTaskEnterpriseEmployeesQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetArrangeTaskEnterpriseEmployeesQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetArrangeTaskEnterpriseEmployeesQueryResultItem { |
| | | /** Id */ |
| | | id?: string; |
| | | /** 头å */ |
| | | avatar?: string; |
| | | /** å§å */ |
| | | name?: string; |
| | | /** 身份è¯å· */ |
| | | identity?: string; |
| | | /** ææºå· */ |
| | | contactPhoneNumber?: string; |
| | | gender?: EnumUserGender; |
| | | /** å¹´é¾ */ |
| | | age?: number; |
| | | /** æ¯å¦å®å */ |
| | | isReal?: boolean; |
| | | realMethod?: EnumUserRealMethod; |
| | | /** 已宿 */ |
| | | arrangeTaskCount?: number; |
| | | } |
| | | |
| | | interface GetArrangeTaskUsersQuery { |
| | | /** ä»»å¡Id */ |
| | | id?: string; |
| | |
| | | name?: string; |
| | | /** èç³»çµè¯ */ |
| | | contactPhoneNumber?: string; |
| | | /** çå¸åº+详ç»å°å+é¨çå· */ |
| | | /** ç份ç¼å· */ |
| | | provinceCode?: string; |
| | | /** ç份 */ |
| | | provinceContent?: string; |
| | | /** åå¸ç¼å· */ |
| | | cityCode?: string; |
| | | /** åå¸ */ |
| | | cityContent?: string; |
| | | /** åºç¼å· */ |
| | | areaCode?: string; |
| | | /** åº */ |
| | | areaContent?: string; |
| | | /** 详ç»å°å */ |
| | | addressName?: string; |
| | | /** é¨çå· */ |
| | | addressDetail?: string; |
| | | /** ç»åº¦ */ |
| | | longitude?: number; |
| | | /** 纬度 */ |
| | | latitude?: number; |
| | | /** æ¯å¦é»è®¤ */ |
| | | isDefault?: boolean; |
| | | } |
| | |
| | | serviceId?: string; |
| | | /** æå¡å */ |
| | | serviceName?: string; |
| | | /** æå¡åå· */ |
| | | serviceCode?: string; |
| | | /** æå¡å¾ç */ |
| | | serviceFile?: string; |
| | | /** ä¸åç¨æ·Id */ |
| | | createdUserId?: string; |
| | | /** ä¸åç¨æ· */ |
| | | createdUserName?: string; |
| | | /** èç³»çµè¯ */ |
| | | createdUserContactPhoneNumber?: string; |
| | | /** ä¸åæ¶é´ */ |
| | | createdTime?: string; |
| | | /** ç²æ¹ä¼ä¸Id */ |
| | | partyAEnterpriseId?: string; |
| | | /** ç²æ¹ä¼ä¸ */ |
| | |
| | | name?: string; |
| | | /** èç³»çµè¯ */ |
| | | contactPhoneNumber?: string; |
| | | /** ç份ç¼å· */ |
| | | provinceCode?: string; |
| | | /** ç份 */ |
| | | provinceContent?: string; |
| | | /** åå¸ç¼å· */ |
| | | cityCode?: string; |
| | | /** åå¸ */ |
| | | cityContent?: string; |
| | | /** åºç¼å· */ |
| | | areaCode?: string; |
| | | /** åº */ |
| | | areaContent?: string; |
| | | /** 详ç»å°å */ |
| | | addressName?: string; |
| | | /** é¨çå· */ |
| | | addressDetail?: string; |
| | | /** ç»åº¦ */ |
| | |
| | | supplierEnterpriseId?: string; |
| | | /** ä¾åºå */ |
| | | supplierEnterpriseName?: string; |
| | | /** æå¡äººåId */ |
| | | serverId?: string; |
| | | /** æå¡äººåå§å */ |
| | | serverName?: string; |
| | | /** æå¡äººå */ |
| | | serverNames?: string; |
| | | /** æå¡äººåèç³»çµè¯ */ |
| | | serverContactPhoneNumber?: string; |
| | | serverContactPhoneNumbers?: string; |
| | | /** æå¡äººå */ |
| | | servers?: GetStandardOrderQueryResultServer[]; |
| | | /** 夿³¨ */ |
| | | remark?: string; |
| | | payAccess?: EnumUserBankCardAccess; |
| | |
| | | payAmount?: number; |
| | | /** æ¯ä»æ¶é´ */ |
| | | payTime?: string; |
| | | /** æ¯ä»å®ææ¶é´ */ |
| | | payCompletedTime?: string; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType; |
| | | /** æå¡è´¹ */ |
| | |
| | | receiveAmount?: number; |
| | | /** ç»ç®éé¢ */ |
| | | settlementAmount?: number; |
| | | taskCheckReceiveStatus?: EnumTaskCheckReceiveStatus; |
| | | partAEnterpriseOrderStatus?: EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus; |
| | | supplierEnterpriseOrderStatus?: EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus; |
| | | } |
| | | |
| | | interface GetStandardOrderQueryResultServer { |
| | | /** Id */ |
| | | id?: string; |
| | | /** å§å */ |
| | | name?: string; |
| | | /** èç³»çµè¯ */ |
| | | contactPhoneNumber?: string; |
| | | } |
| | | |
| | | interface GetStandardOrdersQuery { |
| | |
| | | payTimeEnd?: string; |
| | | appointmentStatus?: EnumStandardOrderAppointmentStatus; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | partAEnterpriseOrderStatus?: EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus; |
| | | supplierEnterpriseOrderStatus?: EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | |
| | | serviceName?: string; |
| | | /** æå¡åå· */ |
| | | serviceCode?: string; |
| | | /** æå¡å¾ç */ |
| | | serviceFile?: string; |
| | | /** çå¸åº+详ç»å°å+é¨çå· */ |
| | | addressDetail?: string; |
| | | /** æå¡èµ·å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** æå¡æªæ¢æ¶é´ */ |
| | | endTime?: string; |
| | | /** ä¸åç¨æ·Id */ |
| | | createdUserId?: string; |
| | | /** ä¸åç¨æ· */ |
| | |
| | | supplierEnterpriseId?: string; |
| | | /** ä¾åºå */ |
| | | supplierEnterpriseName?: string; |
| | | /** ä¾åºåèç³»çµè¯ */ |
| | | supplierContactPhoneNumber?: string; |
| | | /** æå¡äººå */ |
| | | serverNames?: string; |
| | | /** æå¡äººåèç³»çµè¯ */ |
| | | serverContactPhoneNumbers?: string; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | /** æ¯ä»å®ææ¶é´ */ |
| | | payCompletedTime?: string; |
| | |
| | | payAmount?: number; |
| | | /** 宿¶éé¢ */ |
| | | receiveAmount?: number; |
| | | serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType; |
| | | /** æå¡è´¹ */ |
| | | serviceFee?: number; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | |
| | | settlementTime?: string; |
| | | /** ç»ç®éé¢ */ |
| | | settlementAmount?: number; |
| | | partAEnterpriseOrderStatus?: EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus; |
| | | supplierEnterpriseOrderStatus?: EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus; |
| | | } |
| | | |
| | | interface GetStandardServiceCommentsQuery { |
| | |
| | | signStatus?: EnumEnterpriseCooperationSignStatus; |
| | | } |
| | | |
| | | interface GetSureStandardOrderQueryResult { |
| | | /** 订åId */ |
| | | id?: string; |
| | | /** éªæ¶å®ææ¶é´ */ |
| | | checkReceiveTime?: string; |
| | | /** éä»¶ */ |
| | | files?: string[]; |
| | | /** 夿³¨ */ |
| | | remark?: string; |
| | | } |
| | | |
| | | interface GetTaskEnterpriseQueryResult { |
| | | /** ä¼ä¸å
¨ç§° */ |
| | | enterpriseName?: string; |
| | |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetWaitArrangeTasksQuery { |
| | | /** çµå·¥Id */ |
| | | enterpriseEmployeeId?: string; |
| | | /** å
³é®åï¼ä»»å¡åãä»»å¡åå·ï¼ */ |
| | | keywords?: string; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | | |
| | | interface GetWaitArrangeTasksQueryResult { |
| | | pageModel?: PagedListQueryResultPageModel; |
| | | /** æ°æ® */ |
| | | data?: GetWaitArrangeTasksQueryResultItem[]; |
| | | } |
| | | |
| | | interface GetWaitArrangeTasksQueryResultItem { |
| | | /** Id */ |
| | | id?: string; |
| | | /** ä»»å¡åç§° */ |
| | | name?: string; |
| | | /** ä»»å¡åå· */ |
| | | code?: string; |
| | | /** åå客æ·Id */ |
| | | enterpriseId?: string; |
| | | /** ååå®¢æ· */ |
| | | enterpriseName?: string; |
| | | /** ä»»å¡å¼å§æ¶é´ */ |
| | | beginTime?: string; |
| | | /** ä»»å¡ç»ææ¶é´ */ |
| | | endTime?: string; |
| | | } |
| | | |
| | | type GetWxmpSettingsQuery = Record<string, any>; |
| | | |
| | | interface GetWxmpSettingsQueryResult { |
| | | /** éèæ¯ä»å® */ |
| | | hiddenAlipay?: boolean; |
| | | /** å¾®ä¿¡å®¡æ ¸ä¸ */ |
| | | wxmpAuditInProcess?: boolean; |
| | | } |
| | | |
| | | interface HistoryQueryResult { |
| | |
| | | id?: string; |
| | | } |
| | | |
| | | interface SaveOperationUserCommand { |
| | | /** å§å */ |
| | | name?: string; |
| | | /** ç¨æ·å */ |
| | | userName: string; |
| | | /** ææºå· */ |
| | | phoneNumber?: string; |
| | | /** å¯ç */ |
| | | password?: string; |
| | | status?: EnumUserStatus; |
| | | /** 夿³¨ */ |
| | | remark?: string; |
| | | /** Id */ |
| | | id?: string; |
| | | } |
| | | |
| | | interface SavePartyAEnterpriseCommand { |
| | | /** Id */ |
| | | id?: string; |
| | |
| | | Refunded = 20, |
| | | } |
| | | |
| | | interface SettlementStandardOrderCommand { |
| | | /** 订åId */ |
| | | id?: string; |
| | | } |
| | | |
| | | interface SetUserInfoRolesCommand { |
| | | /** ç¨æ·Id */ |
| | | userInfoId?: string; |
| | |
| | | interface SureStandardOrderCommand { |
| | | /** 订åId */ |
| | | id?: string; |
| | | /** è¯å */ |
| | | commentStar?: number; |
| | | /** è¯ä»· */ |
| | | commentContent?: string; |
| | | /** é¢çº¦è®¢å宿夿³¨ */ |
| | | appointmentCompletedRemark?: string; |
| | | } |
| | | |
| | | interface SureTaskSettlementCommand { |
| | |
| | | }); |
| | | } |
| | | |
| | | /** ä¿åè¿è¥ç«¯ç¨æ· POST /api/user/user/saveOperationUser */ |
| | | export async function saveOperationUser( |
| | | body: API.SaveOperationUserCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<string>('/api/user/user/saveOperationUser', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** ä¿åç¨æ·é¶è¡å¡ä¿¡æ¯ POST /api/user/user/savePersonalUserBankCard */ |
| | | export async function savePersonalUserBankCard( |
| | | body: API.SavePersonalUserBankCardCommand, |