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

429 lines
8.7 KiB

<template>
<view class="content">
<view class="bk-top"></view>
<view class="order-card">
<view class="order-title">
<text class="order-title-text">订单详情</text>
</view>
<view class="commodity-list" v-for="(commodity,index) in commdodiryList" :key="index">
<text class="commodity-name">{{ commodity.commodityName }}</text>
<text class="commodity-name-en">{{ commodity.commodityNameEn }}</text>
<text class="commodity-number">x{{ commodity.number }}</text>
<text class="commodity-money">¥{{ commodity.money }}</text>
</view>
<view class="order-hr"></view>
<view class="order-all-money">
<text class="all-money">¥{{ order.money == undefined ? 0 : order.money }}</text>
<text class="all-money-remark">合计</text>
</view>
<view class="bk-on"></view>
<radio-group @change="radioChange">
<view class="pay-way">
<view class="pay-way-view">
<icon class="iconfont iconwallet i-iconwallet" :class="iconwallet"></icon>
<text class="pay-name" :class="payNameColor">余额支付</text>
<text class="pay-money" :class="payNameColor">剩余{{ money }}</text>
<text class="pay-money pay-name-no" v-if="!userMoneyOK">余额不足</text>
<radio value="userPay" class="pay-radio" v-if="userMoneyOK" color="#8ADE4D" />
</view>
</view>
<view class="pay-way">
<view class="pay-way-view pay-way-view-no">
<icon class="iconfont iconzfbpay i-iconwallet i-iconwechatpay"></icon>
<text class="pay-name pay-name-yes">支付宝支付</text>
<radio value="aliApy" class="pay-radio" :checked="true" color="#8ADE4D" />
</view>
</view>
</radio-group>
</view>
<view class="order-bottom">
<text class="bottom-all-money">合计:¥{{ order.money == undefined ? 0 : order.money }}</text>
<button class="to-pay" :class="toPayColor" @click="toPay">去支付{{ order.number === undefined ? 0 : order.number }}</button>
</view>
</view>
</template>
<script>
import {getOrderInfo,unifiedOrder,useUserPay,pay} from '@/api/index/index.js'
// document.title = '确认订单'
export default {
data() {
return {
commdodiryList: [],
money: 0,
order: {},
userId: '',
sysOpenId: '',
code: '',
openId: '',
wxPayResult: {},
isPay: false,
iconwallet: 'i-iconwallet-no',
payNameColor: 'pay-name-no',
userMoneyOK: false,
toPayColor: 'to-pay-no',
isOrder: false,
payWay: 'aliApy',
isPaySuccess: false
}
},
onLoad(param) {
this.userId = param.userId
this.sysOpenId = param.sysOpenId
// this.userId = '59c7808b-c098-41ca-abe0-e2035ce39f78'
// this.sysOpenId = 'oMt0N5KE4QbBPvovuJt6OrIk_wuI'
this.getOrderInfo()
},
methods: {
radioChange(event){
this.payWay = event.detail.value
},
toPay(){
if(this.isOrder){
if(!this.isPaySuccess){
if(this.payWay == 'aliApy'){
this.aliApy()
}else if(this.payWay == 'userPay'){
this.useUserPay()
}else {
uni.showToast({
title: '请选择支付方式',
icon: 'none'
})
}
}else {
uni.showToast({
title: '请勿重复提交订单',
icon: 'none'
})
}
}else {
uni.showToast({
title: '数据加载中',
icon: 'none'
})
}
},
aliApy(){
let body = ''
for(var i = 0; i < this.commdodiryList; i++){
body = body + this.commdodiryList[i].commodityName
}
let query = {
outTradeNo: this.order.orderId,
subject: '商品',
totalAmount: this.order.money,
body: body
}
pay(query).then(res=>{
document.querySelector('body').innerHTML = res
document.forms[0].submit()
})
},
useUserPay(){
let query = {
sysOpenId: this.sysOpenId,
userId: this.userId
}
useUserPay(query).then(res=>{
if(res.success){
uni.showToast({
title: '付款成功',
icon: 'success'
})
this.isPaySuccess = true
this.toreLaunchPage()
}else {
uni.showToast({
title: '支付失败',
icon: 'none'
})
}
})
},
getOrderInfo(){
let query = {
userId: this.userId
}
getOrderInfo(query).then(res=>{
this.sysOpenId = res
if(res.success){
this.order = res.data.order
this.commdodiryList = res.data.order.orderCommodityList
this.money = res.data.money
if(this.order.money != undefined && this.order.money > 0){
this.isOrder = true
this.toPayColor = 'to-pay-yes'
if(this.order.money <= this.money){
this.iconwallet = 'i-iconwallet-yes'
this.payNameColor = 'pay-name-yes'
this.userMoneyOK = true
}
}
}
})
},
toreLaunchPage(){
let vm = this
uni.reLaunch({
url: '/pages/pay-ok/pay-ok?money=' + vm.order.money
});
}
}
}
</script>
<style>
page {
background: #FFFFFF;
}
.content {
width: 750upx;
width: 750upx;
}
.bk-top {
background: #F7F7F7;
width: 750upx;
height: 10.41upx;
}
.order-card {
width: 750upx;
width: 100%;
margin-bottom: 625upx;
}
.order-title {
height: 97.91upx;
width: 750upx;
}
.order-title-text {
height:45.83upx;
font-size:33.33upx;
font-family:PingFangSC-Regular;
font-weight:700;
color:rgba(17,17,17,1);
line-height:45.83upx;
margin-top: 31.25upx;
margin-left: 31.25upx;
float: left;
}
.commodity-list {
width: 750upx;
height: 118.75upx;
position: relative;
}
.commodity-name {
height:41.66upx;
font-size:29.16upx;
font-family:PingFangSC-Semibold;
font-weight:700;
color:rgba(17,17,17,1);
line-height:41.66upx;
position: absolute;
left: 41.66upx;
top: 0;
}
.commodity-name-en {
height:29.16upx;
font-size:25upx;
font-family:PingFangSC-Regular;
font-weight:400;
color: #333333;
line-height:29.16upx;
position: absolute;
left: 41.66upx;
top: 47.91upx;
}
.commodity-number {
height:35.41upx;
font-size:25upx;
font-family:PingFangSC-Regular;
font-weight:400;
color:rgba(17,17,17,1);
line-height:35.41upx;
position: absolute;
left: 550upx;
top: 52.08upx;
}
.commodity-money {
height:35.41upx;
font-size:25upx;
font-family:PingFangSC-Regular;
font-weight:700;
color:rgba(17,17,17,1);
line-height:35.41upx;
position: absolute;
right: 31.25upx;
top: 52.08upx;
}
.order-hr {
width:687.5upx;
height:2.08upx;
margin-left: 31.25upx;
background: #F0F0F0;
}
.order-all-money {
width: 750upx;
height: 45.83upx;
margin-top: 29.16upx;
}
.all-money-remark {
height:33.33upx;
font-size:22.91upx;
font-family:PingFangSC-Regular;
font-weight:400;
color:rgba(17,17,17,1);
line-height:33.33upx;
margin-top: 37.5upx;
margin-right: 12.5upx;
float: right;
}
.all-money {
height:45.83upx;
font-size:33.33upx;
font-family:PingFangSC-Medium;
font-weight:700;
color:rgba(17,17,17,1);
line-height:45.83upx;
margin-top: 29.16upx;
margin-right: 31.25upx;
float: right;
}
.order-bottom {
width: 750upx;
height: 112.5upx;
border-top: 4.16upx solid #EFEFEF;
position: fixed;
bottom: 0;
left: 0;
background: #FFFFFF;
}
.bottom-all-money {
height:112.5upx;
font-size:33.33upx;
font-family:PingFangSC-Medium;
font-weight:650;
color:rgba(17,17,17,1);
line-height:112.5upx;
margin-left: 20.83upx;
}
.to-pay {
padding: 0;
margin: 0;
border: 0 solid #38ADFF !important;
width:281.25upx;
height:114.58upx;
margin-top: -2.08upx;
line-height: 114.58upx;
float: right;
border-radius: 0;
font-size:37.5upx;
font-family:PingFangSC-Medium;
color: #FFFFFF;
font-weight:500;
}
.to-pay-no {
background: #98D4FF;
}
.to-pay-yes {
background: #38ADFF;
}
.to-pay:after {
border: 0 solid #38ADFF !important;
}
.bk-on {
width:750upx;
height:20.83upx;
background:rgba(247,247,247,1);
margin-top: 47.91upx;
}
.pay-way {
width: 750upx;
height: 102.08upx;
}
.pay-way-view {
width: 687.5upx;
height: 102.08upx;
margin-left: 31.25upx;
border-bottom: 2.08upx solid #F0F0F0;
}
.pay-way-view-no {
border-bottom: 0upx;
}
.i-iconwallet {
width:35.41upx;
height:41.66upx;
font-size: 39.58upx;
line-height: 102.08upx;
}
.i-iconwallet-yes {
color: #FD9B2F;
}
.i-iconwallet-no {
color: #FFCD97;
}
.pay-name {
font-size:29.16upx;
font-family:PingFangSC-Regular;
font-weight:400;
line-height:102.08upx;
margin-left: 35.41upx;
}
.pay-name-yes {
color: #111111;
}
.pay-name-no {
color: #C3C3C3;
}
.pay-money {
font-size:25upx;
font-family:PingFangSC-Regular;
font-weight:400;
line-height:102.08upx;
margin-left: 4.16upx;
}
.pay-radio {
text-align: center;
line-height: 102.08upx;
float: right;
transform:scale(0.8)
}
.i-iconwechatpay {
color: #1AACEB;
}
</style>