224 lines
5.2 KiB
Vue
224 lines
5.2 KiB
Vue
<template>
|
||
<view>
|
||
<navBar
|
||
navTitle=""
|
||
:hasLogo="true"
|
||
:backToUrl="'/pages/index/index'"
|
||
:isSwitchTab="true"
|
||
:color="'#000000'" :backBackGroundColor="'#3D553D'"
|
||
></navBar>
|
||
<view class="info">
|
||
<view class="head">
|
||
<view class="title">{{ $t("payInfo.title") }}</view>
|
||
<view class="user"
|
||
>{{ $t("payInfo.subtxt1") }}<span style="color:#699A70">{{ payInfo.buyerTel }}</span
|
||
>{{ $t("payInfo.subtxt2") }}</view
|
||
>
|
||
</view>
|
||
<view class="item">
|
||
<view class="min160">{{ $t("payInfo.confirmDate") }}:</view>
|
||
<view class="lable">{{ today }}</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="min160">{{ $t("payInfo.buyerName") }}:</view>
|
||
<view class="lable">{{ payInfo.buyerName }}</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="min160">{{ $t("payInfo.orderPrice") }}:</view>
|
||
<view class="lable">{{ payInfo.price }}</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="min160">{{ $t("payInfo.artworkName") }}:</view>
|
||
<view class="lable">{{ payInfo.artworkName }}</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="min160">{{ $t("payInfo.payTypeName") }}:</view>
|
||
<view class="lable">{{ payInfo.payTypeName }}</view>
|
||
</view>
|
||
<view class="item">
|
||
<view class="min160">{{ $t("payInfo.payImages") }}:</view>
|
||
<view class="imgBox">
|
||
<u--image
|
||
v-for="(item, index) in payInfo.payImages"
|
||
width="300rpx"
|
||
height="300rpx"
|
||
:key="index"
|
||
:src="item"
|
||
@click="privewImg(item)"
|
||
mode="scaleToFill"
|
||
></u--image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<u-button
|
||
:text="$t('comfrim')"
|
||
color="#699A70"
|
||
@click="comfirmPayment"
|
||
style="
|
||
width: 484rpx;
|
||
height: 56rpx;
|
||
border-radius: 40rpx;
|
||
margin-top: 60rpx;
|
||
"
|
||
></u-button>
|
||
<u-button
|
||
:text="$t('payment.cancel')"
|
||
color="#808080"
|
||
@click="cancelPayment"
|
||
style="
|
||
width: 484rpx;
|
||
height: 56rpx;
|
||
border-radius: 40rpx;
|
||
margin-top: 20rpx;
|
||
"
|
||
></u-button>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
infoCode: "",
|
||
collectionsInfo: {},
|
||
payInfo: {},
|
||
today: "",
|
||
};
|
||
},
|
||
methods: {
|
||
// 获取核验码信息
|
||
async getCodeInfo() {
|
||
let data = {
|
||
code: this.infoCode,
|
||
};
|
||
let res = await this.$api.series.getQrcodeInfo(data);
|
||
if (res.status === 0) {
|
||
this.collectionsInfo = res.data.collections;
|
||
this.payInfo = res.data.pay;
|
||
} else {
|
||
uni.$u.toast(this.$t("load.failed"));
|
||
}
|
||
},
|
||
// 确认支付
|
||
async comfirmPayment() {
|
||
let data = {
|
||
code: this.infoCode,
|
||
};
|
||
let res = await this.$api.series.confirmPay(data);
|
||
if (res.status === 0) {
|
||
uni.$u.toast(this.$t("payment.confirmSuccess"));
|
||
setTimeout(() => {
|
||
uni.switchTab({
|
||
url: "/pages/index/index",
|
||
});
|
||
}, 2000);
|
||
} else {
|
||
uni.$u.toast(res.msg || this.$t("payment.failed"));
|
||
}
|
||
},
|
||
// 取消支付
|
||
async cancelPayment() {
|
||
let data = {
|
||
code: this.infoCode,
|
||
};
|
||
let res = await this.$api.series.cancelPay(data);
|
||
if (res.status === 0) {
|
||
uni.$u.toast(this.$t("payment.cancelSuccess"));
|
||
setTimeout(() => {
|
||
uni.switchTab({
|
||
url: "/pages/index/index",
|
||
});
|
||
}, 2000);
|
||
} else {
|
||
uni.$u.toast(res.msg || this.$t("payment.failed"));
|
||
}
|
||
},
|
||
// 预览图片
|
||
privewImg(url) {
|
||
uni.previewImage({
|
||
urls: [url],
|
||
});
|
||
},
|
||
},
|
||
|
||
onLoad: function (option) {
|
||
this.infoCode = option.code;
|
||
this.getCodeInfo();
|
||
// 获取今天的日期
|
||
let date = new Date();
|
||
let year = date.getFullYear();
|
||
let month = date.getMonth() + 1;
|
||
let day = date.getDate();
|
||
this.today = year + "年" + month + "月" + day + "日";
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
page {
|
||
background: url("@/static/image/home/new_bg.png") no-repeat;
|
||
background-size: 100% 100%;
|
||
background-attachment: fixed;
|
||
height: 100vh;
|
||
box-sizing: border-box;
|
||
// border: 1px solid red;696.1123
|
||
display: flex;
|
||
justify-content: center;
|
||
}
|
||
.min160 {
|
||
min-width: 160rpx;
|
||
color: #434343;
|
||
}
|
||
// 居中
|
||
.info {
|
||
width: 600rpx;
|
||
height: 1100rpx;
|
||
margin-top: 60rpx;
|
||
border-radius: 8rpx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
background-color: #FFFFFF;
|
||
padding: 40rpx;
|
||
box-sizing: border-box;
|
||
overflow-y: scroll;
|
||
.head {
|
||
text-align: center;
|
||
}
|
||
.title {
|
||
margin-top: 44rpx;
|
||
font-size: 40rpx;
|
||
color: #434343;
|
||
}
|
||
.lable{
|
||
color: #878787;
|
||
}
|
||
.user {
|
||
font-size: 16rpx;
|
||
color: #878787;
|
||
margin-bottom: 66rpx;
|
||
}
|
||
.content {
|
||
font-size: 24rpx;
|
||
color: #fff;
|
||
text-align: center;
|
||
line-height: 40rpx;
|
||
}
|
||
.item {
|
||
font-size: 30upx;
|
||
width: 400rpx;
|
||
display: flex;
|
||
margin-bottom: 40upx;
|
||
.imgBox {
|
||
width: 300rpx;
|
||
height: 300rpx;
|
||
border: 1px solid #fff;
|
||
margin-left: 20rpx;
|
||
}
|
||
.image {
|
||
width: 300rpx;
|
||
height: 300rpx;
|
||
}
|
||
}
|
||
}
|
||
</style>
|