You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

224 lines
5.2 KiB
Vue

5 months ago
<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>