|
@@ -1,18 +1,22 @@
|
|
<template>
|
|
<template>
|
|
<BasicModal v-bind="$attrs" @register="registerModal" title="查看" width="1000px" destroyOnClose>
|
|
<BasicModal v-bind="$attrs" @register="registerModal" title="查看" width="1000px" destroyOnClose>
|
|
- <div class="px3" v-if="orderInfo">
|
|
|
|
|
|
+ <div class="px3 max-h-900px overflow-y-scroll" v-if="orderInfo">
|
|
<div class="flex items-center font-semibold">
|
|
<div class="flex items-center font-semibold">
|
|
<div>订单编号:{{ orderInfo.orderCode }}</div>
|
|
<div>订单编号:{{ orderInfo.orderCode }}</div>
|
|
<div class="ml-3">下单时间:{{ orderInfo.createTime }} </div>
|
|
<div class="ml-3">下单时间:{{ orderInfo.createTime }} </div>
|
|
</div>
|
|
</div>
|
|
<div class="mt3">
|
|
<div class="mt3">
|
|
- <div
|
|
|
|
|
|
+ <div v-if="orderInfo.orderType != 1 && orderInfo.orderType != 2"
|
|
>共{{ orderInfo.proInfoList?.length }}人 <span class="text-gray">{{ orderStatus[orderInfo.orderStatus] }}</span>
|
|
>共{{ orderInfo.proInfoList?.length }}人 <span class="text-gray">{{ orderStatus[orderInfo.orderStatus] }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div v-else> 共 {{ orderInfo.proInfoList?.length }} 场 </div>
|
|
<div class="flex items-center mt3" v-if="orderInfo.orderStatus == 1 || orderInfo.orderStatus == 2">
|
|
<div class="flex items-center mt3" v-if="orderInfo.orderStatus == 1 || orderInfo.orderStatus == 2">
|
|
<div class="flex items-center mr2" v-for="item in orderInfo.proInfoList" :key="item.id">
|
|
<div class="flex items-center mr2" v-for="item in orderInfo.proInfoList" :key="item.id">
|
|
- <div class="mr3 text-gray">{{ item.userName }} </div>
|
|
|
|
- <div class="text-gray">{{ orderStatus[item.orderStatus] }} </div>
|
|
|
|
|
|
+ <template v-if="item.type != 6">
|
|
|
|
+ <div class="mr3 text-gray" v-if="orderInfo.orderType != 1 && orderInfo.orderType != 2">{{ item.userName }} </div>
|
|
|
|
+ <div class="mr3 text-gray" :class="[item.orderStatus == 2 ? 'line-through' : '']" v-else> {{ item.ticketNo }} </div>
|
|
|
|
+ <div class="text-gray">{{ orderStatus[item.orderStatus] }} </div>
|
|
|
|
+ </template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-if="orderInfo.orderStatus == 0">
|
|
<div v-if="orderInfo.orderStatus == 0">
|
|
@@ -30,7 +34,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<Divider></Divider>
|
|
<Divider></Divider>
|
|
- <div class="flex items-center justify-between">
|
|
|
|
|
|
+ <div class="grid lg:grid-cols-3 gap-2 sm:grid-cols-1">
|
|
<div>
|
|
<div>
|
|
<div>使用地信息 </div>
|
|
<div>使用地信息 </div>
|
|
<div class="text-gray">地点:{{ orderInfo.siteName }}</div>
|
|
<div class="text-gray">地点:{{ orderInfo.siteName }}</div>
|
|
@@ -49,68 +53,77 @@
|
|
</div>
|
|
</div>
|
|
<Divider></Divider>
|
|
<Divider></Divider>
|
|
<TypographyTitle :level="5">订单信息</TypographyTitle>
|
|
<TypographyTitle :level="5">订单信息</TypographyTitle>
|
|
- <Table :columns="orderColum" :dataSource="orderInfo.proInfoList" :pagination="{ hideOnSinglePage: true }"></Table>
|
|
|
|
|
|
+ <div class="w-full">
|
|
|
|
+ <Table :columns="orderColum" :dataSource="orderInfo.proInfoList" bordered :pagination="{ hideOnSinglePage: true }"></Table>
|
|
|
|
+ </div>
|
|
<div class="mt3">
|
|
<div class="mt3">
|
|
<Descriptions title="费用信息" bordered layout="vertical">
|
|
<Descriptions title="费用信息" bordered layout="vertical">
|
|
- <DescriptionsItem label="费用类型">
|
|
|
|
- <div>
|
|
|
|
- <div>商品总额</div>
|
|
|
|
- <Divider></Divider>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="orderInfo.tDiscounts">
|
|
|
|
- <div>团购优惠</div>
|
|
|
|
- <Divider></Divider>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="orderInfo.price">
|
|
|
|
- <div>实际付款</div>
|
|
|
|
- <Divider></Divider>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="orderInfo.sDiscounts">
|
|
|
|
- <div>试听优惠</div>
|
|
|
|
- <Divider></Divider>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="orderInfo.price">
|
|
|
|
- <div>应付款</div>
|
|
|
|
- <Divider></Divider>
|
|
|
|
- </div>
|
|
|
|
- </DescriptionsItem>
|
|
|
|
- <DescriptionsItem label="金额/元">
|
|
|
|
|
|
+ <DescriptionsItem>
|
|
|
|
+ <template #label>
|
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
|
+ <div>费用信息</div>
|
|
|
|
+ <div>金额/元</div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
<div>
|
|
<div>
|
|
- <div>{{ orderInfo.totalPrice || 0 }}</div>
|
|
|
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
|
+ <div>商品总额</div>
|
|
|
|
+ <div>{{ orderInfo.totalPrice || 0 }}</div>
|
|
|
|
+ </div>
|
|
<Divider></Divider>
|
|
<Divider></Divider>
|
|
</div>
|
|
</div>
|
|
- <div v-if="orderInfo.tDiscounts">
|
|
|
|
- <div>{{ orderInfo.tDiscounts || 0 }}</div>
|
|
|
|
|
|
+ <div v-if="orderInfo.tdiscounts">
|
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
|
+ <div>团购优惠</div>
|
|
|
|
+ <div>- {{ orderInfo.tdiscounts || 0 }}</div>
|
|
|
|
+ </div>
|
|
<Divider></Divider>
|
|
<Divider></Divider>
|
|
</div>
|
|
</div>
|
|
<div v-if="orderInfo.price">
|
|
<div v-if="orderInfo.price">
|
|
- <div>{{ orderInfo.price || 0 }}</div>
|
|
|
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
|
+ <div>实际付款</div>
|
|
|
|
+ <div>{{ orderInfo.price || 0 }}</div>
|
|
|
|
+ </div>
|
|
<Divider></Divider>
|
|
<Divider></Divider>
|
|
</div>
|
|
</div>
|
|
- <div v-if="orderInfo.sDiscounts">
|
|
|
|
- <div>{{ orderInfo.sDiscounts || 0 }}</div>
|
|
|
|
|
|
+ <div v-if="orderInfo.sdiscounts">
|
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
|
+ <div>试听优惠</div>
|
|
|
|
+ <div>{{ orderInfo.sdiscounts || 0 }}</div>
|
|
|
|
+ </div>
|
|
<Divider></Divider>
|
|
<Divider></Divider>
|
|
</div>
|
|
</div>
|
|
<div v-if="orderInfo.price">
|
|
<div v-if="orderInfo.price">
|
|
- <div>{{ orderInfo.price || 0 }}</div>
|
|
|
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
|
+ <div>应付款</div>
|
|
|
|
+ <div>{{ orderInfo.price || 0 }}</div>
|
|
|
|
+ </div>
|
|
<Divider></Divider>
|
|
<Divider></Divider>
|
|
</div>
|
|
</div>
|
|
</DescriptionsItem>
|
|
</DescriptionsItem>
|
|
</Descriptions>
|
|
</Descriptions>
|
|
</div>
|
|
</div>
|
|
- <div class="mt3">
|
|
|
|
|
|
+ <div class="mt3" v-if="orderInfo.isinList">
|
|
<TypographyTitle :level="5">使用记录</TypographyTitle>
|
|
<TypographyTitle :level="5">使用记录</TypographyTitle>
|
|
- <Table :columns="useRecord" :dataSource="orderInfo.isinList" :pagination="{ hideOnSinglePage: true }"></Table>
|
|
|
|
|
|
+ <Table :columns="getColumText(orderInfo.orderType)" :dataSource="orderInfo.isinList" :pagination="{ hideOnSinglePage: true }"></Table>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="mt3" v-if="normalClass?.length">
|
|
|
|
+ <TypographyTitle :level="5">(正常课)核销记录</TypographyTitle>
|
|
|
|
+ <Table :columns="verificationRecordColumns" :dataSource="normalClass" :pagination="{ hideOnSinglePage: true }"></Table>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="mt3" v-if="supplementClass?.length">
|
|
|
|
+ <TypographyTitle :level="5">(补课)核销记录</TypographyTitle>
|
|
|
|
+ <Table :columns="verificationRecordColumns" :dataSource="supplementClass" :pagination="{ hideOnSinglePage: true }"></Table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</BasicModal>
|
|
</BasicModal>
|
|
</template>
|
|
</template>
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
import { TypographyTitle, Divider, Table, Descriptions, DescriptionsItem, StatisticCountdown } from 'ant-design-vue';
|
|
import { TypographyTitle, Divider, Table, Descriptions, DescriptionsItem, StatisticCountdown } from 'ant-design-vue';
|
|
- import { ref } from 'vue';
|
|
|
|
|
|
+ import { computed, ref } from 'vue';
|
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
|
import { queryByid, AppOrderInfoVO } from '../order.api';
|
|
import { queryByid, AppOrderInfoVO } from '../order.api';
|
|
- import { orderStatus, orderColum, useRecord } from '../order.data';
|
|
|
|
|
|
+ import { orderStatus, orderColum, getColumText, verificationRecordColumns } from '../order.data';
|
|
import dayjs from 'dayjs';
|
|
import dayjs from 'dayjs';
|
|
const orderId = ref();
|
|
const orderId = ref();
|
|
const orderInfo = ref<AppOrderInfoVO>();
|
|
const orderInfo = ref<AppOrderInfoVO>();
|
|
@@ -124,4 +137,12 @@
|
|
const res = await queryByid(orderId.value);
|
|
const res = await queryByid(orderId.value);
|
|
orderInfo.value = res;
|
|
orderInfo.value = res;
|
|
}
|
|
}
|
|
|
|
+ const normalClass = computed(() => {
|
|
|
|
+ const newList = orderInfo.value?.verificationRecordDTOList?.filter((it) => it.coursesType == 0);
|
|
|
|
+ return newList?.length ? newList[0].verificationRecordList : [];
|
|
|
|
+ });
|
|
|
|
+ const supplementClass = computed(() => {
|
|
|
|
+ const newList = orderInfo.value?.verificationRecordDTOList?.filter((it) => it.coursesType == 1);
|
|
|
|
+ return newList?.length ? newList[0].verificationRecordList : [];
|
|
|
|
+ });
|
|
</script>
|
|
</script>
|