Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
| | |
| | | <template> |
| | | <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> --> |
| | | <ContentScrollView hasPaddingTop> |
| | | <MineServiceDetailView :addressDetail="detail?.addressDetail" /> |
| | | <MineServiceDetailView |
| | | :contactName="detail?.name" |
| | | :contactPhoneNumber="detail?.contactPhoneNumber" |
| | | :addressDetail="detail?.addressDetail" |
| | | :serviceName="detail?.serviceName" |
| | | :price="detail?.serviceFee" |
| | | :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"> |
| | | <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 { |
| | | 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', |
| | |
| | | id: id, |
| | | }); |
| | | |
| | | function goCancel() {} |
| | | 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) {} |
| | | } |
| | | |
| | | function goConfirm() {} |
| | | 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.payStatus" |
| | | v-model="queryState.supplierEnterpriseOrderStatus" |
| | | name="home-tab" |
| | | :showPaneContent="false" |
| | | class="home-tabs" |
| | |
| | | title-scroll |
| | | > |
| | | <ProTabPane :title="`全部`" :pane-key="0"></ProTabPane> |
| | | <ProTabPane :title="`待支付`" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane> |
| | | <ProTabPane :title="`已支付`" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane> |
| | | <ProTabPane :title="`已完成`" :pane-key="EnumStandardOrderPayStatus.Cancelled"></ProTabPane> |
| | | <ProTabPane |
| | | :title="`待收款`" |
| | | :pane-key="EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Wait" |
| | | ></ProTabPane> |
| | | <ProTabPane |
| | | :title="`已完成`" |
| | | :pane-key="EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Completed" |
| | | ></ProTabPane> |
| | | </ProTabs> |
| | | <InfiniteLoading |
| | | scrollViewClassName="common-infinite-scroll-list home-list" |
| | | v-bind="infiniteLoadingProps" |
| | | :key="queryState.payStatus" |
| | | :key="queryState.supplierEnterpriseOrderStatus" |
| | | > |
| | | <template #renderItem="{ item }"> |
| | | <ReserveServiceCard |
| | |
| | | :end-time="item.endTime" |
| | | :supplierEnterpriseName="item.supplierEnterpriseName" |
| | | :address-detail="item.addressDetail" |
| | | :appointmentStatus="item.appointmentStatus" |
| | | @click="goOrderDetail(item)" |
| | | > |
| | | <template #status> |
| | | {{ |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText[ |
| | | item.supplierEnterpriseOrderStatus |
| | | ] |
| | | }} |
| | | </template> |
| | | <template #serviceCustome> |
| | | {{ `服务人员:${item.serverNames}` }} |
| | | </template> |
| | |
| | | <script setup lang="ts"> |
| | | import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components'; |
| | | import { useGetStandardOrders } from '@12333/hooks'; |
| | | import { EnumStandardOrderPayStatus } from '@12333/constants'; |
| | | import { |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus, |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText, |
| | | } from '@12333/constants'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | |
| | | <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?.serviceFee" |
| | | :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"> |
| | | <PageFooterBtn class="business-card-btn" @click="cancelStandardOrderAppointment" |
| | | >取消预约</PageFooterBtn |
| | | > |
| | | <PageFooterBtn type="primary" class="business-card-btn" @click="handleSubmit" |
| | | >确认预约</PageFooterBtn |
| | | > |
| | | </PageFooter> |
| | | <!-- </LoadingLayout> --> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { MineServiceDetailView } from '@12333/components'; |
| | | import Taro from '@tarojs/taro'; |
| | | import * as standardOrderServices from '@12333/services/apiV2/standardOrder'; |
| | | import { Message } from '@12333/utils'; |
| | | import { goBack } from '@/utils'; |
| | | import { EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText } from '@12333/constants'; |
| | | import { useStandardOrder } from '@12333/hooks'; |
| | | |
| | | defineOptions({ |
| | |
| | | const { detail } = useStandardOrder({ |
| | | id: id, |
| | | }); |
| | | |
| | | async function cancelStandardOrderAppointment() { |
| | | try { |
| | | await Message.confirm({ message: '确认要取消预约吗?' }); |
| | | let params: API.CancelStandardOrderAppointmentCommand = { |
| | | id: id, |
| | | }; |
| | | let res = await standardOrderServices.cancelStandardOrderAppointment(params); |
| | | if (res) { |
| | | Message.success('操作成功'); |
| | | goBack(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | |
| | | async function handleSubmit() { |
| | | try { |
| | | let params: API.SureStandardOrderAppointmentCommand = { |
| | | id: id, |
| | | }; |
| | | let res = await standardOrderServices.sureStandardOrderAppointment(params); |
| | | if (res) { |
| | | Message.success('操作成功'); |
| | | goBack(); |
| | | } |
| | | } catch (error) {} |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | /> |
| | | |
| | | <List> |
| | | <ListItem title="订单状态" :showArrow="false"> |
| | | <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, 'YYYY-MM-DD 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"> |
| | | <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; |
| | | |
| | | statusText?: string; |
| | | }; |
| | | |
| | | const props = withDefaults(defineProps<Props>(), {}); |
| | |
| | | import { |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus, |
| | | EnumGetStandardOrdersQueryScene, |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus, |
| | | EnumStandardOrderAppointmentStatus, |
| | | EnumStandardOrderPayStatus, |
| | | EnumStandardOrderSettlementStatus, |
| | |
| | | }; |
| | | |
| | | export const EnumGetStandardOrdersQuerySceneText = { |
| | | [EnumGetStandardOrdersQueryScene.Appointment]: '预约订单', |
| | | [EnumGetStandardOrdersQueryScene.Pay]: '支付订单', |
| | | [EnumGetStandardOrdersQueryScene.Settlement]: '结算订单', |
| | | [EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder]: '甲方企业订单管理', |
| | | [EnumGetStandardOrdersQueryScene.SupplierEnterpriseOrder]: '人资企业订单管理', |
| | | }; |
| | | |
| | | export const EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText = { |
| | | [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Wait]: '待支付', |
| | | [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Pay]: '已支付', |
| | | [EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Completed]: '已完成', |
| | | }; |
| | | |
| | | export const EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatusText = { |
| | | [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Wait]: '待收款', |
| | | [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Completed]: '已完成', |
| | | }; |
| | |
| | | import { computed, MaybeRef, reactive, unref } from 'vue'; |
| | | import { groupBy } from 'lodash'; |
| | | import { useInfiniteLoading } from '@12333/hooks'; |
| | | import { EnumStandardOrderAppointmentStatus, EnumStandardOrderPayStatus } from '@12333/constants'; |
| | | import { |
| | | EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus, |
| | | EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus, |
| | | EnumStandardOrderAppointmentStatus, |
| | | EnumStandardOrderPayStatus, |
| | | } from '@12333/constants'; |
| | | |
| | | type UseStandardServiceDetailOptions = { |
| | | id: MaybeRef<string>; |
| | |
| | | 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( |
| | |
| | | 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, |