|
|
@@ -1,6 +1,6 @@
|
|
|
<script setup lang="tsx">
|
|
|
import { onMounted, ref } from 'vue';
|
|
|
-import { useRoute } from 'vue-router';
|
|
|
+import { useRoute, useRouter } from 'vue-router';
|
|
|
// import { NFlex } from 'naive-ui';
|
|
|
import { NDataTable } from 'naive-ui';
|
|
|
import dayjs from 'dayjs';
|
|
|
@@ -16,6 +16,7 @@ import { useModalFrom } from '@/components/zt/ModalForm/hooks/useModalForm';
|
|
|
// import { copyTextToClipboard } from '@/utils/zt';
|
|
|
import {
|
|
|
businessType,
|
|
|
+ cancelState,
|
|
|
chargeMethod,
|
|
|
dvyStatus,
|
|
|
orderColumns,
|
|
|
@@ -33,6 +34,7 @@ const orderInfo = ref<Api.delivery.deliveryOrder>();
|
|
|
const TimeDown = ref<number>(0);
|
|
|
dayjs.extend(duration);
|
|
|
const route = useRoute();
|
|
|
+const router = useRouter();
|
|
|
const deliveryNode = ref<any[]>([]);
|
|
|
const [
|
|
|
registerModalForm,
|
|
|
@@ -251,6 +253,56 @@ function handleFinish() {
|
|
|
open(String(orderInfo.value?.orderNumber));
|
|
|
}
|
|
|
|
|
|
+function filterStatus(val: number) {
|
|
|
+ if (val == 0) {
|
|
|
+ return '待支付';
|
|
|
+ } else if (val == 70 || val == 80 || val == 61) {
|
|
|
+ return '已完成';
|
|
|
+ } else if (val == 60 || val == 62) {
|
|
|
+ return '已取消';
|
|
|
+ }
|
|
|
+ return '进行中';
|
|
|
+}
|
|
|
+// 证件类型,0 身份证 1 学生证 2 军官证 3 护照 4 户口本(儿童请选择此项) 5 港澳通行证 6 台湾居民来往大陆通行证 7 台湾通行证 8 入台证 9 香港居民往来内地通行证 10 警官证 11 驾驶证 12 海员证 13 外国人在中国永久居留证 14澳门居民往来内地通行证 15港澳居民来往内地通行证 16港澳台居民来往内地通行证 17港澳台居民居住证 18中华人民共和国旅行证 19回乡证 20台胞证 21香港身份证
|
|
|
+function filterType(val: number) {
|
|
|
+ const typeObj = {
|
|
|
+ 0: '身份证',
|
|
|
+ 1: '学生证',
|
|
|
+ 2: '军官证',
|
|
|
+ 3: '护照',
|
|
|
+ 4: '户口本',
|
|
|
+ 5: '港澳通行证',
|
|
|
+ 6: '台湾居民来往大陆通行证',
|
|
|
+ 7: '台湾通行证',
|
|
|
+ 8: '入台证',
|
|
|
+ 9: '港澳居民往来内地通行证',
|
|
|
+ 10: '警官证',
|
|
|
+ 11: '驾驶证',
|
|
|
+ 12: '海员证',
|
|
|
+ 13: '外国人在中国永久居留证',
|
|
|
+ 14: '澳门居民往来内地通行证',
|
|
|
+ 15: '港澳居民来往内地通行证',
|
|
|
+ 16: '港澳台居民来往内地通行证',
|
|
|
+ 17: '港澳台居民居住证',
|
|
|
+ 18: '中华人民共和国旅行证',
|
|
|
+ 19: '回乡证',
|
|
|
+ 20: '台胞证',
|
|
|
+ 21: '香港身份证'
|
|
|
+ };
|
|
|
+ return typeObj[val as keyof typeof typeObj];
|
|
|
+}
|
|
|
+
|
|
|
+function handleSaleOrder(row: Api.delivery.deliveryOrder) {
|
|
|
+ if (!row.orderNumber) {
|
|
|
+ window.$message?.error('订单异常');
|
|
|
+ }
|
|
|
+ router.push({
|
|
|
+ path: '/order-manage/after-sales-order',
|
|
|
+ query: {
|
|
|
+ orderNumber: orderInfo.value?.orderNumber
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
onMounted(async () => {
|
|
|
await open(String(route.query.orderNumber));
|
|
|
if (route.query.type == 'ship') {
|
|
|
@@ -266,7 +318,7 @@ onMounted(async () => {
|
|
|
<div class="mb-10px text-16px font-semibold">
|
|
|
统一状态:
|
|
|
<template v-if="orderInfo.businessType != 'DYY'">
|
|
|
- {{ orderStatus[orderInfo.hbOrderStatus as keyof typeof orderStatus] }}
|
|
|
+ {{ filterStatus(orderInfo.hbOrderStatus) }}
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
{{ yppStatus[orderInfo.yppDetail?.orderState as keyof typeof yppStatus] }}
|
|
|
@@ -284,7 +336,7 @@ onMounted(async () => {
|
|
|
orderInfo.hbOrderStatus == 20 ||
|
|
|
orderInfo.hbOrderStatus == 30 ||
|
|
|
orderInfo.hbOrderStatus == 40 ||
|
|
|
- orderInfo.hbOrderStatus == 70
|
|
|
+ orderInfo.hbOrderStatus == 1
|
|
|
? '进行中'
|
|
|
: orderStatus[orderInfo.hbOrderStatus as keyof typeof orderStatus]
|
|
|
}}
|
|
|
@@ -324,7 +376,18 @@ onMounted(async () => {
|
|
|
</div>
|
|
|
<div>支付时间:{{ orderInfo.payTime || '暂无' }}</div>
|
|
|
<div>交易号:{{ orderInfo.outTradeNo || '---' }}</div>
|
|
|
- <div>退款记录:{{ orderInfo.record || '暂无' }}</div>
|
|
|
+ <div>
|
|
|
+ 退款记录:{{ orderInfo.refundOrderList ? orderInfo.refundOrderList.length : '暂无' }}
|
|
|
+ <NButton
|
|
|
+ v-if="orderInfo.refundOrderList && orderInfo.refundOrderList.length > 0"
|
|
|
+ size="small"
|
|
|
+ quaternary
|
|
|
+ type="primary"
|
|
|
+ @click="handleSaleOrder(orderInfo)"
|
|
|
+ >
|
|
|
+ 查看
|
|
|
+ </NButton>
|
|
|
+ </div>
|
|
|
</NCard>
|
|
|
</div>
|
|
|
<div class="flex-1">
|
|
|
@@ -645,6 +708,90 @@ onMounted(async () => {
|
|
|
<div>抵扣券ID:{{ orderInfo.omsOrderOilVO?.allowanceId || '---' }}</div>
|
|
|
<div>优惠描述:{{ orderInfo.omsOrderOilVO?.activityName || '---' }}</div>
|
|
|
</template>
|
|
|
+ <template v-else-if="orderInfo.businessType == 'JDMP'">
|
|
|
+ <div>产品编号:{{ orderInfo.backendOrderScenic.productNo || '---' }}</div>
|
|
|
+ <div>产品名称:{{ orderInfo.backendOrderScenic.productName || '---' }}</div>
|
|
|
+ <div>景区名称:{{ orderInfo.backendOrderScenic.viewName || '---' }}</div>
|
|
|
+ <div>
|
|
|
+ 游玩日期:{{ orderInfo.backendOrderScenic.travelDate || '---' }}
|
|
|
+ {{ orderInfo.backendOrderScenic.endTravelDate ? '-' + orderInfo.backendOrderScenic.endTravelDate : '' }}
|
|
|
+ </div>
|
|
|
+ <div>备注:{{ orderInfo.backendOrderScenic.orderMemo || '---' }}</div>
|
|
|
+
|
|
|
+ <div>联系人:{{ orderInfo.backendOrderScenic.linkMan || '---' }}</div>
|
|
|
+ <div>联系电话:{{ orderInfo.backendOrderScenic.linkPhone || '---' }}</div>
|
|
|
+
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in orderInfo.backendOrderScenic.omsOrderScenicPeopleList"
|
|
|
+ :key="index"
|
|
|
+ class="mt-10px border rounded-4px p-8px"
|
|
|
+ >
|
|
|
+ <div>游客姓名{{ index + 1 }}:{{ item.linkMan || '---' }}</div>
|
|
|
+ <div>证据类型:{{ filterType(item.linkCreditType) || '---' }}</div>
|
|
|
+ <div>证件号码:{{ item.linkCreditNo || '---' }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <NTable class="mt-20px" :single-line="false">
|
|
|
+ <NThead>
|
|
|
+ <NTr>
|
|
|
+ <NTh>产品</NTh>
|
|
|
+ <NTh>数量</NTh>
|
|
|
+ <NTh>金额/元</NTh>
|
|
|
+ </NTr>
|
|
|
+ </NThead>
|
|
|
+ <NTbody>
|
|
|
+ <NTr>
|
|
|
+ <NTd>{{ orderInfo.backendOrderScenic.productName || '---' }}</NTd>
|
|
|
+ <NTd>x{{ orderInfo.backendOrderScenic.num }}</NTd>
|
|
|
+ <NTd>{{ orderInfo.total }}</NTd>
|
|
|
+ </NTr>
|
|
|
+ </NTbody>
|
|
|
+ </NTable>
|
|
|
+
|
|
|
+ <NTable class="mt-20px" :single-line="false">
|
|
|
+ <NThead>
|
|
|
+ <NTr>
|
|
|
+ <NTh>订单金额</NTh>
|
|
|
+ <NTh>{{ orderInfo.backendOrderScenic.orderMoney }}</NTh>
|
|
|
+ </NTr>
|
|
|
+ </NThead>
|
|
|
+ <NTbody>
|
|
|
+ <NTr>
|
|
|
+ <NTd>积分抵扣</NTd>
|
|
|
+ <NTd>-{{ (Number(orderInfo.backendOrderScenic.offsetPoints) / 100).toFixed(2) || 0 }}</NTd>
|
|
|
+ </NTr>
|
|
|
+ <NTr>
|
|
|
+ <NTd>微信支付</NTd>
|
|
|
+ <NTd>{{ orderInfo.backendOrderScenic.actualTotal || 0 }}</NTd>
|
|
|
+ </NTr>
|
|
|
+ </NTbody>
|
|
|
+ </NTable>
|
|
|
+
|
|
|
+ <NTable v-if="orderInfo.backendOrderScenic.refundCreateTime" class="mt-20px" :single-line="false">
|
|
|
+ <NThead>
|
|
|
+ <NTr>
|
|
|
+ <NTh>退款信息</NTh>
|
|
|
+ <NTh></NTh>
|
|
|
+ </NTr>
|
|
|
+ </NThead>
|
|
|
+ <NTbody>
|
|
|
+ <NTr>
|
|
|
+ <NTd>申请时间</NTd>
|
|
|
+ <NTd>{{ orderInfo.backendOrderScenic.refundCreateTime || '---' }}</NTd>
|
|
|
+ </NTr>
|
|
|
+ <NTr>
|
|
|
+ <NTd>申请说明</NTd>
|
|
|
+ <NTd>{{ orderInfo.backendOrderScenic.cancelMemo || '---' }}</NTd>
|
|
|
+ </NTr>
|
|
|
+ <NTr>
|
|
|
+ <NTd>处理状态</NTd>
|
|
|
+ <NTd>
|
|
|
+ {{ cancelState[orderInfo.backendOrderScenic.cancelState as keyof typeof cancelState] || '---' }}
|
|
|
+ </NTd>
|
|
|
+ </NTr>
|
|
|
+ </NTbody>
|
|
|
+ </NTable>
|
|
|
+ </template>
|
|
|
</NCard>
|
|
|
</div>
|
|
|
</div>
|