<template>
|
<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 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">
|
@import '@/styles/common.scss';
|
|
.mineOrderDetail-page-wrapper {
|
.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');
|
}
|
}
|
}
|
}
|
</style>
|