| | |
| | | <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>(), {}); |
| | |
| | | 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, |
| | | } |
| | | |
| | | /** 投保供应商账号 */ |
| | |
| | | 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, |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 查询标准订单详情 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, |
| | |
| | | interface APIgetStandardOrderParams { |
| | | /** 订单Id */ |
| | | id?: string; |
| | | /** 限制场景(不传则不限制) */ |
| | | scene?: EnumGetStandardOrdersQueryScene; |
| | | } |
| | | |
| | | interface APIgetStandardServiceParams { |
| | |
| | | request?: GetSupplierEnterpriseSelectQuery; |
| | | } |
| | | |
| | | interface APIgetSureStandardOrderParams { |
| | | /** 订单Id */ |
| | | id?: string; |
| | | } |
| | | |
| | | interface APIgetTaskEnterpriseParams { |
| | | /** 企业Id */ |
| | | id?: 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 FriendlyResultGetSureStandardOrderQueryResult { |
| | | /** 跟踪Id */ |
| | | traceId?: string; |
| | | /** 状态码 */ |
| | | code?: number; |
| | | /** 错误码 */ |
| | | errorCode?: string; |
| | | data?: GetSureStandardOrderQueryResult; |
| | | /** 执行成功 */ |
| | | success?: boolean; |
| | | /** 错误信息 */ |
| | | msg?: any; |
| | | /** 附加数据 */ |
| | | extras?: any; |
| | | /** 时间戳 */ |
| | | timestamp?: number; |
| | | } |
| | | |
| | | interface FriendlyResultGetTaskEnterpriseQueryResult { |
| | | /** 跟踪Id */ |
| | | traceId?: string; |
| | |
| | | name?: string; |
| | | /** 联系电话 */ |
| | | contactPhoneNumber?: string; |
| | | /** 省份编号 */ |
| | | provinceCode?: string; |
| | | /** 省份 */ |
| | | provinceContent?: string; |
| | | /** 城市编号 */ |
| | | cityCode?: string; |
| | | /** 城市 */ |
| | | cityContent?: string; |
| | | /** 区编号 */ |
| | | areaCode?: string; |
| | | /** 区 */ |
| | | areaContent?: string; |
| | | /** 详细地址 */ |
| | | addressName?: string; |
| | | /** 门牌号 */ |
| | | addressDetail?: string; |
| | | /** 经度 */ |
| | |
| | | receiveAmount?: number; |
| | | /** 结算金额 */ |
| | | settlementAmount?: number; |
| | | partAEnterpriseOrderStatus?: EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus; |
| | | supplierEnterpriseOrderStatus?: EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus; |
| | | } |
| | | |
| | | interface GetStandardOrderQueryResultServer { |
| | |
| | | payTimeEnd?: string; |
| | | appointmentStatus?: EnumStandardOrderAppointmentStatus; |
| | | payStatus?: EnumStandardOrderPayStatus; |
| | | partAEnterpriseOrderStatus?: EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus; |
| | | supplierEnterpriseOrderStatus?: EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus; |
| | | settlementStatus?: EnumStandardOrderSettlementStatus; |
| | | pageModel?: PagedListQueryPageModel; |
| | | } |
| | |
| | | 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; |
| | |
| | | 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 { |