123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <route lang="json">
- { "style": { "navigationBarTitleText": "订单详情", "navigationBarBackgroundColor": "#fff" } }
- </route>
- <script setup lang="ts">
- import SectionHeading from '@/components/section-heading.vue'
- import { cancelOrder, getPointsOrder } from '../../../../core/libs/requests'
- import BottomAppBar from '@/components/bottom-app-bar.vue'
- import dayjs from 'dayjs'
- import { requestToast } from '../../../../core/utils/common'
- const id = ref()
- const status = ref({ '0': '已报名', '1': '已完成', '2': '未核销', '3': '已取消', '4': '待交付' })
- const payTypes = ref({ 0: '积分支付', 1: '现金支付' })
- const { data, run: setData } = useRequest(() => getPointsOrder(id.value), { initialData: {} })
- const handleSubmit = async () => {
- await requestToast(() => cancelOrder(id.value), { success: true, successTitle: '取消成功' })
- await setData()
- }
- onLoad((query: { id: string }) => {
- id.value = query.id
- setData()
- })
- </script>
- <template>
- <div class="flex-grow flex flex-col gap-4 px-3.5 bg-white">
- <div class="h-8.5 flex items-center justify-center mx--3.5 box-border bg-[#ffecec]">
- <div
- class="text-right text-[#ef4343] text-sm font-normal font-['PingFang_SC'] leading-normal"
- >
- {{ status[data.orderStatus] }}
- </div>
- </div>
- <div class="flex gap-4 border-b border-b-solid border-b-[#f2f2f2] pb-5">
- <wd-img
- width="94"
- height="94"
- custom-class="rounded-2xl overflow-hidden"
- :src="data.orderImgUrl"
- />
- <div class="flex flex-col flex-1">
- <div class="text-black text-base font-normal font-['PingFang_SC'] leading-normal">
- {{ data.projectName }}
- </div>
- <div
- class="text-start text-black/40 text-sm font-normal font-['PingFang_SC'] leading-normal"
- >
- x{{ data.orderQuantity }}
- </div>
- <div class="flex-1"></div>
- <div
- class="text-start text-black/60 text-sm font-normal font-['PingFang_SC'] leading-normal"
- >
- {{ data.points }}积分
- </div>
- </div>
- <div>
- <div class="text-black/40 text-sm font-normal font-['PingFang_SC'] leading-normal">
- <!-- 已完成 -->
- {{ status[data.orderStatus] }}
- </div>
- </div>
- </div>
- <SectionHeading
- v-if="data.orderMoney"
- title="订单金额"
- size="sm"
- :end-text="`¥ ${data.orderMoney}`"
- ></SectionHeading>
- <SectionHeading title="总积分" size="sm" :end-text="`${data.points}`"></SectionHeading>
- <SectionHeading title="实际支付积分" size="sm" :end-text="`${data.payPoints}`"></SectionHeading>
- <SectionHeading title="订单号" size="sm" :end-text="data.orderNo"></SectionHeading>
- <SectionHeading
- title="支付时间"
- size="sm"
- :end-text="dayjs(data.createTime).format('YYYY-MM-DD hh:mm')"
- ></SectionHeading>
- <SectionHeading title="支付方式" size="sm" :end-text="payTypes[data.payType]"></SectionHeading>
- <div class="flex-1"></div>
- <BottomAppBar fixed>
- <div>
- <wd-button :round="false" block v-if="data.orderStatus === '0'" @click="handleSubmit">
- 取消订单
- </wd-button>
- </div>
- </BottomAppBar>
- </div>
- </template>
|