mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp.git
synced 2026-08-07 03:14:59 +08:00
- 将多个组件转换为 `<script setup>` 语法,提升可读性和性能 - 优化状态管理和事件处理逻辑,简化代码结构 - 更新样式和布局以适应新组件结构 - 添加新功能和修复已知问题,提升用户体验
88 lines
1.8 KiB
Vue
88 lines
1.8 KiB
Vue
<template>
|
|
<view class="error-page">
|
|
<u-navbar title="支付失败" :border="false" :fixed="true" :placeholder="true" :auto-back="true"></u-navbar>
|
|
<view class="error-content">
|
|
<u-icon name="close-circle-fill" color="#f56c6c" size="120"></u-icon>
|
|
<text class="error-title">支付失败</text>
|
|
<text class="error-desc">{{ errorMessage || '支付过程中出现错误,请重试' }}</text>
|
|
<view class="btn-group">
|
|
<u-button type="primary" text="返回订单" @click="goBack"></u-button>
|
|
<u-button type="warning" text="去支付" @click="rePay"></u-button>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { ref } from 'vue'
|
|
import { onLoad } from '@dcloudio/uni-app'
|
|
|
|
const errorMessage = ref('')
|
|
const orderSn = ref('')
|
|
|
|
onLoad((options: any) => {
|
|
if (options) {
|
|
errorMessage.value = options.message || ''
|
|
orderSn.value = options.orderSn || ''
|
|
}
|
|
})
|
|
|
|
function goBack() {
|
|
uni.navigateBack({
|
|
fail: () => {
|
|
uni.switchTab({ url: '/pages/tabbar/user/my' })
|
|
}
|
|
})
|
|
}
|
|
|
|
function rePay() {
|
|
if (orderSn.value) {
|
|
uni.navigateTo({
|
|
url: `/pages/cart/payment/payOrder?orderSn=${orderSn.value}`
|
|
})
|
|
} else {
|
|
goBack()
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.error-page {
|
|
min-height: 100vh;
|
|
background: #fff;
|
|
}
|
|
|
|
.error-content {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 200rpx 40rpx;
|
|
}
|
|
|
|
.error-title {
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
color: #333;
|
|
margin-top: 40rpx;
|
|
}
|
|
|
|
.error-desc {
|
|
font-size: 28rpx;
|
|
color: #999;
|
|
margin-top: 20rpx;
|
|
text-align: center;
|
|
}
|
|
|
|
.btn-group {
|
|
display: flex;
|
|
gap: 24rpx;
|
|
margin-top: 60rpx;
|
|
width: 100%;
|
|
|
|
:deep(.u-button) {
|
|
flex: 1;
|
|
}
|
|
}
|
|
</style>
|