|
|
|
<template>
|
|
|
|
<view class="" style="background-color: #efefef;">
|
|
|
|
<cu-custom class="main-topbar bg-main-oil" :isBack="true" bgColor="bg-main-oil">
|
|
|
|
<block slot="backText">返回</block>
|
|
|
|
<block slot="content">{{'支付状态'}}</block>
|
|
|
|
</cu-custom>
|
|
|
|
<view class="text-center margin-top icon-container boxsings_main_top">
|
|
|
|
<view class="cu-avatar xl round text-sl headImg showIcons">
|
|
|
|
<image src="../../static/img/new_logo.png" class='showimgs' mode=""></image>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="radius margin bg-white padding-top padding " style="padding-top: 125rpx;">
|
|
|
|
<view class="">
|
|
|
|
<view class="payStatue_text">
|
|
|
|
<text>{{PayTitle}}</text>
|
|
|
|
</view>
|
|
|
|
<view class="number text-xl text-center oil-main-color">¥{{displayMoney|numberFormat}}</view>
|
|
|
|
</view>
|
|
|
|
<view class="payStatue">
|
|
|
|
<view class="payStatue_p" v-if="payState == 0">
|
|
|
|
<text>请勿离开当前页面,等待支付完成</text>
|
|
|
|
</view>
|
|
|
|
<view class="payStatue_p" v-if="payState == 2">
|
|
|
|
<button style="width: 500upx;margin-bottom: 40upx;" v-if="payState == 2"
|
|
|
|
class="round large cu-btn bg-main-oil" @tap="singleCheck(orderId)">手动刷新</button>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm" @tap="copyId(orderInfos.customerId,'司机编号')">
|
|
|
|
司机编号
|
|
|
|
<text class="fr">{{orderInfos.customerId}}<text :class="orderInfos.customerId?'cuIcon-copy':''"
|
|
|
|
class="flex-sub padding-left-sm text-right text-lg text-red">
|
|
|
|
</text></text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
加油司机
|
|
|
|
<view class="fr">
|
|
|
|
<text>{{ orderInfos.customerName ? orderInfos.customerName : '丰油用户' }}</text> <text
|
|
|
|
class="padding-left-sm">{{orderInfos.plateNumber|plateFilter}}
|
|
|
|
</text>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<!-- <view class="margin-bottom-sm" @tap="copyId(orderItem.carNo,'司机车牌')">
|
|
|
|
司机车牌
|
|
|
|
<text class="fr">{{orderItem.carNo?orderItem.carNo:'暂无'}}<text :class="orderItem.carNo?'cuIcon-copy':''" class="flex-sub padding-left-sm text-right text-lg text-red">
|
|
|
|
</text></text>
|
|
|
|
</view> -->
|
|
|
|
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
油枪油号
|
|
|
|
<text class="fr">{{orderInfos.oilsBar}}号枪{{orderInfos.oilName||orderInfos.oilsCode}}</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
油机单价
|
|
|
|
<text class="fr">¥{{orderInfos.sitePrice||orderInfos.price |UnitPriceFormat}} / 升</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
加油升数
|
|
|
|
<text class="fr">{{orderInfos.volume|numberFormat}} 升</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm" v-if="orderSource=='mpxoil'">
|
|
|
|
油机总价
|
|
|
|
<text class="fr">¥{{displayMoney|numberFormat}}</text>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<!-- <view class="margin-bottom-sm" v-if="orderItem.xoilDiscountAmount">
|
|
|
|
星卡优惠
|
|
|
|
<text class="fr">¥ {{(orderItem.xoilDiscountAmount)|numberFormat}}</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm" v-else>
|
|
|
|
星卡优惠
|
|
|
|
<text class="fr">¥ {{(orderItem.amount-orderItem.realamount)|numberFormat}}</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
优惠券
|
|
|
|
<text class="fr">{{orderItem.coupon|couponFormat}}</text>
|
|
|
|
</view> -->
|
|
|
|
<!-- <view class="margin-bottom-sm">
|
|
|
|
实扣款
|
|
|
|
<text class="fr oil-main-color">¥ {{orderItem.realamount|numberFormat}}</text>
|
|
|
|
</view> -->
|
|
|
|
</view>
|
|
|
|
<view class="radius bg-white margin padding ">
|
|
|
|
<view class="flex padding-bottom-sm">
|
|
|
|
<view class="basis-sm">
|
|
|
|
加油站名称
|
|
|
|
</view>
|
|
|
|
<view class="basis-lg text-right text-cut">{{orderItem.siteName}}</view>
|
|
|
|
</view>
|
|
|
|
<view class="flex padding-bottom-sm">
|
|
|
|
<view class="basis-xs">
|
|
|
|
地址
|
|
|
|
</view>
|
|
|
|
<view class="basis-xl text-right text-cut">{{orderItem.siteAddress}}</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="radius bg-white margin margin-bottom-0 padding">
|
|
|
|
<view class="margin-bottom-sm" @tap="copyId(orderInfos.orderSerialNumber,'订单号')">
|
|
|
|
订单号
|
|
|
|
<text class=" fr">{{orderInfos.orderSerialNumber}}<text
|
|
|
|
class="flex-sub padding-left-sm text-right cuIcon-copy text-lg text-red">
|
|
|
|
</text></text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
下单时间
|
|
|
|
<text class="fr">{{orderInfos.createTime}}</text>
|
|
|
|
</view>
|
|
|
|
<!-- <view class="margin-bottom-sm">
|
|
|
|
扣款时间
|
|
|
|
<text class="fr">{{orderItem.paydatetime}}</text>
|
|
|
|
</view> -->
|
|
|
|
<!-- <view class="padding-bottom-sm">
|
|
|
|
开票状态
|
|
|
|
<text class="fr" v-if="formQr">未开票</text>
|
|
|
|
<text class="fr" v-else>{{orderItem.invoiceState|invoiceStateFormat}}</text>
|
|
|
|
</view> -->
|
|
|
|
<!-- <view class="margin-bottom-sm" v-if="orderItem.paydatetime">
|
|
|
|
支付时间
|
|
|
|
<text class="fr">{{orderItem.paydatetime}}</text>
|
|
|
|
</view>-->
|
|
|
|
</view>
|
|
|
|
<view class="radius bg-white margin margin-bottom-0 padding" v-if='orderItem.plateNumberImages'>
|
|
|
|
<view class="flex padding-bottom-sm">
|
|
|
|
<view class="basis-sm">
|
|
|
|
车辆照片
|
|
|
|
</view>
|
|
|
|
<view class="basis-lg text-right text-cut" @tap="showImg('car')">点击查看</view>
|
|
|
|
</view>
|
|
|
|
<view class="flex padding-bottom-sm">
|
|
|
|
<view class="basis-xs">
|
|
|
|
油站照片
|
|
|
|
</view>
|
|
|
|
<view class="basis-xl text-right text-cut" @tap="showImg('oli')">点击查看</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="padding-lg padding-top-40 padding-bottom-xl">
|
|
|
|
<!-- <button v-show="formQr" @tap="scanQr" class="bg-main-oil margin-bottom">
|
|
|
|
<text class="cuIcon-scan padding-right-xs"></text>
|
|
|
|
继续加油</button> -->
|
|
|
|
<button v-if="payState == 1" class="round large cu-btn bg-main-oil btn-oils"
|
|
|
|
@tap="toDetails(orderId)">前往订单</button>
|
|
|
|
<button v-if="payState == 2" class="round large cu-btn bg-main-oil btn-oils"
|
|
|
|
@tap="getScanning()">重新扫码下单</button>
|
|
|
|
<button v-if="payState != 0" class="round large cu-btn bg-main-oil btn-oils"
|
|
|
|
@tap="gotoHome()">返回首页</button>
|
|
|
|
<!-- <button class="bg-red light margin-bottom" @tap="backHome">
|
|
|
|
<text class="cuIcon-home padding-right-xs"></text>
|
|
|
|
返回首页</button> -->
|
|
|
|
|
|
|
|
</view>
|
|
|
|
<u-popup v-model="show" mode="center" @close="close">
|
|
|
|
<view style="width: 100%;height: 100%;">
|
|
|
|
<image :src="showUrl" style=" max-width: 80%;max-height: 80%;" mode=""></image>
|
|
|
|
</view>
|
|
|
|
</u-popup>
|
|
|
|
<!-- <view class="margin-sm bg-white padding-lg">
|
|
|
|
<view class="padding-top margin-bottom"></view>
|
|
|
|
<view class="text-xsl text-center">
|
|
|
|
<text class="cuIcon-rechargefill oil-main-color"></text>
|
|
|
|
</view>
|
|
|
|
<view class="text-center text-bold" style='font-size:40upx;margin-bottom: 40upx;'>
|
|
|
|
{{PayTitle}}
|
|
|
|
</view>
|
|
|
|
<view class="text-center">
|
|
|
|
<button style="width: 500upx;margin-bottom: 40upx;" v-if="payState == 1" class="round large cu-btn bg-main-oil" @tap="toDetails(orderId)">前往订单</button>
|
|
|
|
<button style="width: 500upx;margin-bottom: 40upx;" v-if="payState == 2" class="round large cu-btn bg-main-oil" @tap="getScanning()">重新扫码下单</button>
|
|
|
|
<button style="width: 500upx; margin-bottom: 40upx;" v-if="payState != 0" class="round large cu-btn bg-main-oil" @tap="gotoHome()">返回首页</button>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="margin-sm bg-white padding">
|
|
|
|
<view class="margin-bottom-sm" >
|
|
|
|
加油司机
|
|
|
|
<text class="fr">
|
|
|
|
{{driverMsg.customerName}}
|
|
|
|
</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm" >
|
|
|
|
司机车牌
|
|
|
|
<text class="fr">
|
|
|
|
{{driverMsg.plateNumbers[0]}}
|
|
|
|
</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
油号
|
|
|
|
<text class="fr"> {{insertResult.oilsCode}}</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
加油总金额
|
|
|
|
<text class="fr">¥ {{insertResult.totalPrice }}</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
加油升数
|
|
|
|
<text class="fr">{{insertResult.volume }} 升</text>
|
|
|
|
</view>
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
星游优惠
|
|
|
|
<text class="fr">¥ {{insertResult.xoilDiscountAmount }}</text>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="margin-bottom-sm">
|
|
|
|
实扣款
|
|
|
|
<text class="fr oil-main-color">¥ {{insertResult.payRealAmount }}</text>
|
|
|
|
</view>
|
|
|
|
</view> -->
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import oilFinanceApi from '@/api/oil-finance.js'
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
orderItem: uni.getStorageSync('SiteInfo'),
|
|
|
|
insertResult: {},
|
|
|
|
orderId: '',
|
|
|
|
timerF: '',
|
|
|
|
checkTime: 40,
|
|
|
|
payState: 0,
|
|
|
|
PayTitle: '正在支付中',
|
|
|
|
orderInfos: {}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
filters: {
|
|
|
|
numberFormat(value) {
|
|
|
|
if (value != 'xxx.x') {
|
|
|
|
console.log('old:', value)
|
|
|
|
let realAmount = value.toFixed(2)
|
|
|
|
console.log('new:', realAmount)
|
|
|
|
return realAmount
|
|
|
|
} else {
|
|
|
|
return value
|
|
|
|
}
|
|
|
|
},
|
|
|
|
UnitPriceFormat(value) {
|
|
|
|
console.log('++++++++++++++++++++', value)
|
|
|
|
if (value) {
|
|
|
|
return value
|
|
|
|
} else {
|
|
|
|
return '--'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
onLoad(option) {
|
|
|
|
console.log(option)
|
|
|
|
let insertResult = JSON.parse(option.item)
|
|
|
|
this.insertResult = insertResult
|
|
|
|
console.log(this.insertResult)
|
|
|
|
this.orderId = insertResult.orderId
|
|
|
|
let orderId = insertResult.orderId
|
|
|
|
console.log(this.orderId)
|
|
|
|
this.checkSf(orderId) //进入获取订单信息
|
|
|
|
this.timerF = setInterval((res) => {
|
|
|
|
this.checkSf(orderId)
|
|
|
|
}, 5000)
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
getScanning() { //支付取消 或失败 前往重新下单
|
|
|
|
uni.redirectTo({
|
|
|
|
url: '/pages/stationDetail/stationDetail',
|
|
|
|
fail: (err) => {}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
gotoHome() { // 返回首页
|
|
|
|
uni.reLaunch({
|
|
|
|
url: '/pages/index/index',
|
|
|
|
fail: (err) => {}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
singleCheck(ids) { //单独调用check 订单状态
|
|
|
|
let _that = this
|
|
|
|
oilFinanceApi.checkOrderState(ids).then((res) => {
|
|
|
|
console.log(res)
|
|
|
|
if (res.code == 20000) {
|
|
|
|
_that.displayMoney = res.data.sitePriceAmount
|
|
|
|
_that.orderInfos = res.data
|
|
|
|
console.log(_that.orderInfos)
|
|
|
|
_that.payState = res.data.orderStatus
|
|
|
|
if (res.data.orderStatus == 0) {
|
|
|
|
_that.PayTitle = '正在支付中....'
|
|
|
|
}
|
|
|
|
if (res.data.orderStatus == 1) {
|
|
|
|
_that.PayTitle = '支付成功'
|
|
|
|
if (_that.payState != 0 || res.data.orderStatus == 1) {
|
|
|
|
console.log('测试手动刷新是否进入清除计时器')
|
|
|
|
clearInterval(_that.timerF)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (res.data.orderStatus == 2) {
|
|
|
|
if (!res.data.cancelRemak) {
|
|
|
|
_that.PayTitle = '支付已取消'
|
|
|
|
} else {
|
|
|
|
_that.PayTitle = res.data.cancelRemak
|
|
|
|
}
|
|
|
|
if (_that.payState != 0 || res.data.orderStatus == 2) {
|
|
|
|
console.log('测试手动刷新是否进入清除计时器')
|
|
|
|
clearInterval(_that.timerF)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
toDetails(id) {
|
|
|
|
uni.setStorageSync('orderId', id)
|
|
|
|
console.log('id', id)
|
|
|
|
uni.redirectTo({
|
|
|
|
url: '/packageOrders/pages/orderList/OrderDetail/OrderDetail'
|
|
|
|
})
|
|
|
|
|
|
|
|
},
|
|
|
|
checkSf(id) { // 轮询 check 顺丰订单状态
|
|
|
|
let _that = this,
|
|
|
|
time = _that.checkTime,
|
|
|
|
ids = id
|
|
|
|
if (time <= 0) {
|
|
|
|
uni.showToast({
|
|
|
|
title: '支付已取消'
|
|
|
|
})
|
|
|
|
_that.payState = 0
|
|
|
|
_that.PayTitle = '三分钟自动取消....'
|
|
|
|
clearInterval(_that.timerF)
|
|
|
|
// uni.navigateBack({})
|
|
|
|
} else {
|
|
|
|
time--
|
|
|
|
_that.singleCheck(ids)
|
|
|
|
// oilFinanceApi.checkOrderState(ids).then( (res)=>{
|
|
|
|
// console.log(res)
|
|
|
|
// if(res.code == 20000){
|
|
|
|
// _that.payState = res.data.orderStatus
|
|
|
|
// if(res.data.orderStatus == 0){
|
|
|
|
// _that.PayTitle = '正在支付中....'
|
|
|
|
// }
|
|
|
|
// if(res.data.orderStatus == 1){
|
|
|
|
// _that.PayTitle = '支付成功'
|
|
|
|
// clearInterval(_that.timerF)
|
|
|
|
// }
|
|
|
|
// if(res.data.orderStatus == 2){
|
|
|
|
// _that.PayTitle = '支付已取消'
|
|
|
|
// clearInterval(_that.timerF)
|
|
|
|
// }
|
|
|
|
// console.log('this.payState+++',this.payState)
|
|
|
|
// console.log('res.data.orderStatuse+++',res.data.orderStatus)
|
|
|
|
// }
|
|
|
|
|
|
|
|
// // if(res.data.orderStatus == 1){
|
|
|
|
// // clearInterval(this.timerF )
|
|
|
|
// // this.payState = 1
|
|
|
|
// // if (!_that.isG7) {
|
|
|
|
// // setTimeout(() => {
|
|
|
|
// // // this.gotoOrderStatus()
|
|
|
|
// // // _that.toDetails(ids)
|
|
|
|
// // }, 400)
|
|
|
|
// // } else {
|
|
|
|
// // _that.beforePay = false
|
|
|
|
// // setTimeout(() => {
|
|
|
|
// // _that_that.orderId = res.data.orderId
|
|
|
|
// // _that.queryTimer()
|
|
|
|
// // _that.getPayStatus(_that.orderId)
|
|
|
|
// // }, 400)
|
|
|
|
// // }
|
|
|
|
// // }else if(res.data.orderStatus == 2){
|
|
|
|
// // this.payState = 2
|
|
|
|
// // uni.showToast({
|
|
|
|
// // title:'支付已取消'
|
|
|
|
// // })
|
|
|
|
// // uni.navigateBack({ })
|
|
|
|
// // }
|
|
|
|
// } )
|
|
|
|
_that.checkTime = time
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
page {
|
|
|
|
background-color: #efefef;
|
|
|
|
}
|
|
|
|
|
|
|
|
.page-content {
|
|
|
|
background-color: #f1f2f7;
|
|
|
|
min-height: 100%;
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
|
|
|
|
.navigation {
|
|
|
|
position: absolute;
|
|
|
|
right: 16px;
|
|
|
|
top: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.icon-self {
|
|
|
|
width: 1rem;
|
|
|
|
height: 1rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
.oil-price {
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
|
|
|
|
.oil-price radio {
|
|
|
|
position: absolute;
|
|
|
|
left: 0rem;
|
|
|
|
top: 10px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.qr-icon {
|
|
|
|
font-size: 2rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
.pay-desc {
|
|
|
|
line-height: 2rem;
|
|
|
|
}
|
|
|
|
|
|
|
|
.bottom-pay {
|
|
|
|
min-height: 100rpx;
|
|
|
|
width: 750upx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.pay-bar {
|
|
|
|
width: 750upx;
|
|
|
|
position: absolute;
|
|
|
|
bottom: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.money-container {
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
|
|
|
|
.money-position {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
right: 0;
|
|
|
|
display: block;
|
|
|
|
border-radius: 0 0 0 100upx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.payStatue_text {
|
|
|
|
font-size: 36rpx;
|
|
|
|
color: #737373;
|
|
|
|
font-weight: bold;
|
|
|
|
margin-bottom: 10rpx;
|
|
|
|
text-align: center;
|
|
|
|
margin-top: 6rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.payStatue_p {
|
|
|
|
font-size: 26rpx;
|
|
|
|
color: #888888;
|
|
|
|
font-weight: bold;
|
|
|
|
text-align: center;
|
|
|
|
margin-bottom: 30rpx;
|
|
|
|
margin-top: 20rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.btn-oils {
|
|
|
|
width: 100%;
|
|
|
|
border-radius: 14rpx;
|
|
|
|
margin-top: 30rpx;
|
|
|
|
font-size: 32rpx;
|
|
|
|
/* padding: 14rpx; */
|
|
|
|
height: 80rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.showimgs {
|
|
|
|
width: 130rpx;
|
|
|
|
height: 130rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.boxsings_main_top {
|
|
|
|
position: relative;
|
|
|
|
margin-top: 90rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.showIcons {
|
|
|
|
background-color: #fff;
|
|
|
|
background-size: cover;
|
|
|
|
position: absolute;
|
|
|
|
top: -30rpx;
|
|
|
|
left: 40%;
|
|
|
|
}
|
|
|
|
</style>
|