| | |
| | | :contactPhoneNumber="detail?.contactPhoneNumber" |
| | | :addressDetail="detail?.addressDetail" |
| | | :serviceName="detail?.serviceName" |
| | | :price="detail?.serviceFee" |
| | | :price="detail?.payAmount" |
| | | :specName="detail?.specName" |
| | | :specNumber="detail?.specNumber" |
| | | :imgUrl="detail?.serviceFile" |
| | |
| | | :contactPhoneNumber="detail?.contactPhoneNumber" |
| | | :addressDetail="detail?.addressDetail" |
| | | :serviceName="detail?.serviceName" |
| | | :price="detail?.serviceFee" |
| | | :price="detail?.payAmount" |
| | | :specName="detail?.specName" |
| | | :specNumber="detail?.specNumber" |
| | | :imgUrl="detail?.serviceFile" |
| | |
| | | "miniprogram": { |
| | | "list": [ |
| | | { |
| | | "name": "取消原因", |
| | | "pathName": "subpackages/mine/mineReserveServiceCancel/mineReserveServiceCancel", |
| | | "query": "id=d16809d3-e6b9-4b5f-2e87-08de443f2678", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | }, |
| | | { |
| | | "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=ccdc16fb-d842-4e66-bdf5-08de43546a8c&id=e4df3802-1e9b-4b21-4ef6-08de43551f52", |
| | | "scene": null, |
| | | "launchMode": "default" |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "选择服务人员", |
| | |
| | | "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", |
| | |
| | | <template> |
| | | <ChooseInput :modelValue="enterpriseEmployeeName" @click="handleOpen()"></ChooseInput> |
| | | <ChooseInput :modelValue="supplierEnterpriseName" @click="handleOpen()"></ChooseInput> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | |
| | | 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; |
| | |
| | | supplierEnterpriseId.value = data.supplierEnterpriseId; |
| | | enterpriseEmployeeId.value = data.enterpriseEmployeeId; |
| | | enterpriseEmployeeName.value = data.enterpriseEmployeeName; |
| | | supplierEnterpriseName.value = data.supplierEnterpriseName; |
| | | }, |
| | | }, |
| | | }); |
| | |
| | | <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() { |
| | |
| | | <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], |
| | | } |
| | | ); |
| | | |
| | |
| | | <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" |
| | |
| | | :end-time="item.endTime" |
| | | :addressDetail="item.addressDetail" |
| | | :appointmentStatus="item.appointmentStatus" |
| | | :supplierEnterpriseName="item.supplierEnterpriseName" |
| | | :payAmount="item.payAmount" |
| | | @click="goSerciceDetail(item)" |
| | | > |
| | | </ReserveServiceCard> |
| | |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumPagedListOrder, |
| | | EnumStandardOrderAppointmentStatus, |
| | | GetPersonalApplyTaskInfosQueryStatus, |
| | | } from '@12333/constants'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import Taro from '@tarojs/taro'; |
| | |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const route = Taro.useRouter(); |
| | | const status = route.params?.status as any as EnumStandardOrderAppointmentStatus; |
| | | |
| | | const queryState = reactive({ |
| | | scene: EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder, |
| | | appointmentStatus: 0 as any as EnumStandardOrderAppointmentStatus, |
| | | appointmentStatus: status ? Number(status) : 0, |
| | | }); |
| | | |
| | | const userStore = useUserStore(); |
| | | |
| | | // onMounted(() => { |
| | | // standardOrderServices.checkPayStandardOrder({ |
| | | // id: 'ca8c17a1-6c44-446e-2e88-08de443f2678', |
| | | // }); |
| | | // }); |
| | | |
| | | const { infiniteLoadingProps } = useInfiniteLoading( |
| | | ({ pageParam }) => { |
| | | let params: API.GetStandardOrdersQuery = { |
| | |
| | | }); |
| | | }, |
| | | { |
| | | 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"> --> |
| | | <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?.payAmount" |
| | | :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" |
| | | <PageFooterBtn |
| | | type="primary" |
| | | class="business-card-btn" |
| | | v-if="detail.appointmentStatus === EnumStandardOrderAppointmentStatus.WaitSure" |
| | | @click="goCancel" |
| | | >取消服务</PageFooterBtn |
| | | > |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm" |
| | | <PageFooterBtn |
| | | type="primary" |
| | | class="business-card-btn" |
| | | v-if=" |
| | | detail.taskCheckReceiveStatus == EnumTaskCheckReceiveStatus.Completed && |
| | | detail.appointmentStatus === EnumStandardOrderAppointmentStatus.WaitSure |
| | | " |
| | | @click="goConfirm" |
| | | >服务确认</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | | <!-- </LoadingLayout> --> |
| | | </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, |
| | | } from '@12333/constants'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | const route = Taro.useRouter(); |
| | | const id = route.params?.id as string; |
| | | |
| | | const { detail, isLoading, isError, refetch } = useStandardOrder({ id }); |
| | | |
| | | Taro.useDidShow(() => { |
| | | refetch(); |
| | | }); |
| | | |
| | | function goCancel() { |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.mineReserveServiceCancel}?id=${id}`, |
| | |
| | | :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 |
| | |
| | | beginTime: '', |
| | | endTime: '', |
| | | supplierEnterpriseId: '', |
| | | supplierEnterpriseName: '', |
| | | enterpriseEmployeeId: '', |
| | | enterpriseEmployeeName: '', |
| | | remark: '', |
| | |
| | | import { EnumPagedListOrder } from '@12333/constants'; |
| | | import { useEvent, useEventChannel } from 'senin-mini/hooks'; |
| | | import { SelectEnterpriseEmployeeEvent } from '../utils'; |
| | | import { goBack } from '@/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | supplierEnterpriseId: id, |
| | | enterpriseEmployeeName: item.name, |
| | | } as SelectEnterpriseEmployeeEvent); |
| | | Taro.navigateBack({ delta: 2 }); |
| | | goBack(2); |
| | | } |
| | | </script> |
| | |
| | | events: { |
| | | onSelectEnterpriseEmployee: function (data: SelectEnterpriseEmployeeEvent) { |
| | | console.log('SelectEnterpriseEmployeeEvent2: ', data); |
| | | data.supplierEnterpriseName = item.enterpriseName; |
| | | eventChannel.emit('onSelectEnterpriseEmployee', data); |
| | | }, |
| | | }, |
| | |
| | | export type SelectEnterpriseEmployeeEvent = { |
| | | supplierEnterpriseId: string; |
| | | supplierEnterpriseName?: string; |
| | | enterpriseEmployeeId: string; |
| | | enterpriseEmployeeName: string; |
| | | }; |
| | |
| | | :imgUrl="imgUrl" |
| | | /> |
| | | |
| | | <List> |
| | | <List extraFlex> |
| | | <ListItem :title="statusText" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item"> |
| | |
| | | <ListItem title="服务时间" :showArrow="false"> |
| | | <template #extra> |
| | | <div class="mine-service-detail-view-list-item"> |
| | | {{ format(beginTime, 'YYYY-MM-DD HH:mm') }}-{{ format(endTime, 'YYYY-MM-DD HH:mm') }} |
| | | {{ format(beginTime, 'YYYY-MM-DD HH:mm') }}-{{ format(endTime, 'HH:mm') }} |
| | | </div> |
| | | </template> |
| | | </ListItem> |
| | |
| | | endTime?: string; |
| | | supplierEnterpriseName?: string; |
| | | remark?: string; |
| | | serverContactPhoneNumbers?: string; |
| | | |
| | | statusText?: string; |
| | | }; |
| | |
| | | font-size: 28px; |
| | | color: boleGetCssVar('text-color', 'secondary'); |
| | | line-height: 40px; |
| | | flex: 1; |
| | | min-width: 0; |
| | | text-align: right; |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <div class="reserve-service-card-title-wrapper"> |
| | | <div class="reserve-service-card-title">{{ serviceName }}</div> |
| | | <slot name="title-right"> |
| | | <TaskPrice :value="toThousand(serviceFee ?? 0)" unit="元" /> |
| | | <TaskPrice :value="toThousand(payAmount ?? 0)" unit="元" /> |
| | | </slot> |
| | | </div> |
| | | <div class="reserve-service-card-item-list"> |
| | | <div class="reserve-service-card-item"> |
| | | 服务时间:{{ |
| | | <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 class="reserve-service-card-item">服务地址:{{ addressDetail }}</div> |
| | | </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"> |
| | |
| | | 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="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> |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 批量任务安排 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, |
| | |
| | | errorMessages?: string; |
| | | } |
| | | |
| | | interface BatchSetTaskUserArrangeCommand { |
| | | /** 任务Id */ |
| | | taskInfoIds?: string[]; |
| | | /** 灵工Id */ |
| | | enterpriseEmployeeId?: string; |
| | | arrangeStatus?: EnumTaskUserArrangeStatus; |
| | | } |
| | | |
| | | interface BindWxmpUserInfoCommand { |
| | | /** 访问令牌 */ |
| | | accessToken: string; |
| | |
| | | /** 供应商 */ |
| | | supplierEnterpriseName?: string; |
| | | /** 服务人员 */ |
| | | serverNames?: string; |
| | | /** 服务人员联系电话 */ |
| | | serverContactPhoneNumbers?: string; |
| | | /** 服务人员 */ |
| | | servers?: GetStandardOrderQueryResultServer[]; |
| | | /** 备注 */ |
| | | remark?: string; |
| | |
| | | receiveAmount?: number; |
| | | /** 结算金额 */ |
| | | settlementAmount?: number; |
| | | taskCheckReceiveStatus?: EnumTaskCheckReceiveStatus; |
| | | partAEnterpriseOrderStatus?: EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus; |
| | | supplierEnterpriseOrderStatus?: EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus; |
| | | } |
| | |
| | | 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; |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 保存运营端用户 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, |