callback.vue 3.43 KB
<!--
 * @Date: 2024-01-26 10:24:45
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2024-01-26 17:03:58
 * @FilePath: /xysBooking/src/views/callback.vue
 * @Description: 反馈页面
-->
<template>
  <div class="callback-page">
    <div style="">
      <div v-if="billInfo?.pay_status === PAY_STATUS.FAIL" class="text-prompts">
        <img src="https://cdn.ipadbiz.cn/xys/booking/%E6%88%90%E5%8A%9F@2x.png">
        <div class="text">支付失败</div>
      </div>
      <div v-else class="text-prompts">
        <img src="https://cdn.ipadbiz.cn/xys/booking/%E6%88%90%E5%8A%9F@2x.png">
        <div class="text">支付完成</div>
      </div>
      <div class="appointment-information">
        <div class="number-of-visitors">参观人数:<span>{{ billInfo?.total_qty }} 人</span></div>
        <div class="visit-time">参访时间:<span>{{ billInfo?.datetime }}</span></div>
        <div class="payment-amount">支付金额:<span>¥ {{ billInfo?.total_amt }}</span></div>
      </div>
      <!-- <div class="appointment-notice">
        <p style="margin-bottom: 0.25rem;"><van-icon name="info-o" />&nbsp;温馨提示</p>
        <p style="font-size: 0.85rem;">1. 一人一码,或拿身份证,扫码或识别身份证成功后进入</p>
        <p style="font-size: 0.85rem;">2. 若您无法按时参观,请提前在预约记录中取消您的预约</p>
      </div> -->
    </div>
  </div>
</template>

<script setup>
import { ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { onAuthBillInfoAPI, icbcOrderQryAPI } from '@/api/index'
import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js'
//import { } from '@/utils/generateModules.js'
//import { } from '@/utils/generateIcons.js'
//import { } from '@/composables'
const $route = useRoute();
const $router = useRouter();
useTitle($route.meta.title);

const billInfo = ref({});

const formatDatetime = (data) => { // 格式化日期
  let begin_time = data.begin_time.slice(0, -3);
  let end_time = data.end_time.slice(0, -3);
  let str = begin_time + ' ' + end_time;
  return `${str.split(' ')[0]} ${str.split(' ')[1]}-${str.split(' ')[3]}`;
}

const PAY_STATUS = {
  SUCCESS: '0',
  FAIL: '1',
  UNKNOWN: '2',
}

onMounted(async () => {
  // 获取订单ID
  const { code, data } = await icbcOrderQryAPI({ out_trade_no: $route.query.out_trade_no });
  if (code) {
    // 获取订单详情
    const { code:code_pay, data:data_pay } = await onAuthBillInfoAPI({ pay_id: data.pay_id });
    if (code_pay) {
      //
      data_pay.datetime = data_pay && formatDatetime(data_pay);
      data_pay.pay_status = data.pay_status;
      billInfo.value = data_pay;
    }
  }
})
</script>

<style lang="less" scoped>
.callback-page {
  position: relative;
  background-color: #FFF;
  .text-prompts {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 35vh;
    flex-direction: column;
    img {
      width: 60vw;
    }
    .text {
      color: #A67939;
      font-size: 1.25rem;
    }
  }
  .appointment-information {
    padding: 2rem 1rem;
    border-bottom: 1px dashed #A67939;
    line-height: 2;
    .number-of-visitors {
      span {
        color: #A67939;
      }
    }
    .visit-time {
      span {
        color: #A67939;
      }
    }
    .payment-amount {
      span {
        color: #FF1919;
      }
    }
  }
  .appointment-notice {
    color: #A67939;
    padding: 1rem;
    line-height: 2;
  }
}
</style>