tydata-webview/src/components/Payment.vue
2025-01-20 16:39:00 +08:00

101 lines
3.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<van-popup v-model:show="show" position="bottom" class="flex flex-col justify-between p-6"
:style="{ height: '50%' }">
<div class=" text-center">
<h3 class="text-lg font-bold">支付</h3>
</div>
<div class="text-center">
<div class="font-bold text-xl">{{ data.product_name }}</div>
<div class="text-3xl text-red-500 font-bold">
<!-- 显示原价和折扣价格 -->
<div v-if="discountPrice" class="line-through text-gray-500 mt-4"
:class="{ 'text-2xl': discountPrice }">
¥ {{ data.sell_price }}
</div>
<div>
¥ {{ discountPrice ? (data.sell_price * 0.2).toFixed(2) : data.sell_price }}
</div>
</div>
<!-- 仅在折扣时显示活动说明 -->
<div v-if="discountPrice" class="text-sm text-red-500 mt-1">
活动价2折优惠
</div>
</div>
<!-- 支付方式选择 -->
<div class="">
<van-cell-group inset>
<!-- 支付宝支付 -->
<van-cell title="支付宝支付" clickable @click="selectedPaymentMethod = 'alipay'">
<template #icon>
<van-icon size="24" name="alipay" color="#00A1E9" class="mr-2" />
</template>
<template #right-icon>
<van-radio v-model="selectedPaymentMethod" name="alipay" />
</template>
</van-cell>
</van-cell-group>
</div>
<!-- 确认按钮 -->
<div class="">
<van-button class="w-full" round type="primary" @click="getPayment">确认支付</van-button>
</div>
</van-popup>
</template>
<script setup>
import { ref, defineProps } from 'vue'
const props = defineProps({
data: {
type: Object,
required: true,
},
id: {
type: String,
required: true,
}
})
const show = defineModel()
const orderId = ref("")
const selectedPaymentMethod = ref('alipay')
const discountPrice = ref(false) // 是否应用折扣
onMounted(() => {
// let m = localStorage.getItem("m")
// let hour = "12"
// if (m === "shifenliangzai") {
// hour = "00"
// }
// const currentDate = new Date()
// const startDate = new Date(`2025-01-01T${hour}:00:00+08:00`) // 2025年1月1日中午12点
// const endDate = new Date('2025-01-02T12:00:00+08:00') // 2025年1月2日中午12点
// console.log(startDate, endDate)
// if (currentDate >= startDate && currentDate <= endDate) {
// discountPrice.value = true // 在折扣时间范围内,启用折扣
// } else {
// discountPrice.value = false // 否则不启用折扣
// }
})
async function getPayment() {
const { data, error } = await useApiFetch('/pay/payment')
.post({
id: props.id,
pay_method: selectedPaymentMethod.value
})
.json()
if (data.value && !error.value) {
orderId.value = data.value.data.order_id
const prepayUrl = data.value.data.prepay_id;
const paymentForm = document.createElement('form');
paymentForm.method = 'POST';
paymentForm.action = prepayUrl;
paymentForm.style.display = 'none';
document.body.appendChild(paymentForm);
paymentForm.submit();
}
show.value = false
}
</script>
<style scoped></style>