1067 lines
33 KiB
Vue
1067 lines
33 KiB
Vue
<template>
|
||
<!-- 订单详情页 -->
|
||
<view class="content">
|
||
<view class="container">
|
||
<view class="my-header">
|
||
<view class="my-icons" @click="goBack"> <uni-icons type="left" size="16"></uni-icons> </view>
|
||
<view class="my-text">支付订单</view>
|
||
<view class="my-icons"></view>
|
||
</view>
|
||
<!-- 顶部区域 -->
|
||
<view style="background-color: white;width: 94%;margin: 15px auto;">
|
||
<view style="font-weight: bold;height: 40px;line-height: 40px;margin-left: 10px;margin-top: 20px;">订单详情
|
||
</view>
|
||
<view class="desc">
|
||
<view>油站名称</view>
|
||
<!-- <view>{{store.name}}{{store.description ? "("+store.description+")" : ""}}</view> -->
|
||
<view>{{oilOrder.storeName}}{{oilOrder.description ? "("+oilOrder.description+")" : ""}}</view>
|
||
</view>
|
||
<view class="desc">
|
||
<view>油号油枪</view>
|
||
<view>{{oilOrder.oilName}}/{{oilOrder.gunName}}</view>
|
||
</view>
|
||
<view class="desc">
|
||
<view>加油金额</view>
|
||
<view>{{oilOrder.orderAmount}}元</view>
|
||
</view>
|
||
<view class="desc">
|
||
<view>加油数量</view>
|
||
<view>{{oilOrder.oilNum}}升</view>
|
||
</view>
|
||
<view class="desc">
|
||
<view>油品单价</view>
|
||
<view>¥{{oilPrice}}/L</view>
|
||
</view>
|
||
<!-- <view class="desc">
|
||
<view>加油员工</view>
|
||
<view>{{oilOrder.realName || "--"}}</view>
|
||
</view> -->
|
||
</view>
|
||
|
||
<view style="background-color: white;width: 94%;margin: 15px auto;" v-if="AppToken">
|
||
|
||
<view class="desc">
|
||
<view style="display: flex;">
|
||
储值卡
|
||
<span style="display: flex;">(<span
|
||
v-if="isUseChildCard">主卡</span>余额:¥{{user.cardBalance}})</span>
|
||
</view>
|
||
<view style="display: flex;">
|
||
<span style="margin-right: 10px;display: flex;">
|
||
-¥{{balanceRedece}}
|
||
</span>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="desc">
|
||
<view style="display: flex;">
|
||
囤油卡
|
||
<span style="display: flex;">(余额:{{refuelBalance}}L)</span>
|
||
</view>
|
||
<view style="display: flex;">
|
||
<span style="margin-right: 10px;display: flex;">
|
||
- {{oilCardRedece}}L
|
||
<span style="margin-left: 8px;margin-top: 8px;">
|
||
<u-checkbox-group>
|
||
<u-checkbox v-model="checkOilCard" :checked="checkOilCard" @change="changeOilCard"
|
||
:disabled="refuelBalance==0"></u-checkbox>
|
||
</u-checkbox-group>
|
||
</span>
|
||
</span>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="desc" v-if="preferentialData.activeFavorableAmount">
|
||
<view style="display: flex;">
|
||
活动优惠
|
||
<!-- <span style="display: flex;">(满减活动)</span> -->
|
||
</view>
|
||
<view style="display: flex;">
|
||
<span style="margin-right: 10px;display: flex;">
|
||
-¥{{fullRedece}}
|
||
<!-- <span style="margin-left: 8px;margin-top: 8px;">
|
||
<u-checkbox-group>
|
||
<u-checkbox v-model="checkFull" :checked="checkFull" @change="changeFull"></u-checkbox>
|
||
</u-checkbox-group>
|
||
</span> -->
|
||
</span>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="desc" v-if="preferentialData.cardFavorableAmount">
|
||
<view style="display: flex;">
|
||
优惠券优惠
|
||
<!-- <span style="display: flex;">(优惠券)</span> -->
|
||
</view>
|
||
<view style="display: flex;">
|
||
<span style="margin-right: 10px;display: flex;">
|
||
-¥{{couponRedece}}
|
||
</span>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="desc" v-if="gradeRedece>0">
|
||
<view style="display: flex;">
|
||
会员等级优惠
|
||
<!-- <span style="display: flex;">({{userGrade.name}})</span> -->
|
||
</view>
|
||
<view style="display: flex;">
|
||
<span style="margin-right: 10px;display: flex;">
|
||
-¥{{gradeRedece}}
|
||
</span>
|
||
</view>
|
||
</view>
|
||
<!-- <view class="desc" v-if="!isFullPreferential && !isGradePreferential && !isOilStorageCard && !isStoreValueCard">无优惠</view> -->
|
||
|
||
<view style="margin: 10px 20px 0;color: red;font-size: 12px;"
|
||
v-if="fullRedece>0 || gradeRedece>0 || couponRedece>0">已为您计算出最大优惠</view>
|
||
<view style="margin: 10px 20px 0;color: red;font-size: 12px;">注:囤油卡不参与任何优惠活动</view>
|
||
</view>
|
||
|
||
<view style="background-color: white;width: 94%;margin: 15px auto;height: 100px;">
|
||
<view style="font-weight: bold;height: 40px;line-height: 40px;margin-left: 10px;margin-top: 20px;">支付方式
|
||
</view>
|
||
<!-- #ifdef MP-WEIXIN -->
|
||
<view class="scc">
|
||
<image src="@/static/imgs/wechat.png" class="imgIcon"></image>
|
||
<span style="width: 70%;margin-top: 5px;">微信支付</span>
|
||
<radio value="r1" checked="true" />
|
||
</view>
|
||
<!-- #endif -->
|
||
<!-- #ifdef MP-ALIPAY -->
|
||
<view class="scc">
|
||
<image src="@/static/imgs/alipay.png" class="imgIcon"></image>
|
||
<span style="width: 70%;margin-top: 5px;">支付宝支付</span>
|
||
<radio value="r1" checked="true" />
|
||
</view>
|
||
<!-- #endif -->
|
||
</view>
|
||
|
||
<!-- 支付信息 -->
|
||
<view class="bar">
|
||
<view style="margin-left: 20px;">
|
||
<view>
|
||
¥<span style="font-size: 22px;font-weight: bold;">{{payAmount}}</span>
|
||
</view>
|
||
<view style="color: red;font-size: 12px;">应付金额</view>
|
||
</view>
|
||
<view @click="payment"
|
||
style="margin-right: 20px;width: 30%;border-radius:30px;background-color: #1879ff;height: 40px;line-height: 40px;text-align: center;color: white">
|
||
确认支付
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import request from '../../utils/request'
|
||
export default {
|
||
data() {
|
||
return {
|
||
// 小程序类型 微信 WECHAT 支付宝 ALIPAY
|
||
appltType: uni.getStorageSync("appltType"),
|
||
// 判断是否有登录token
|
||
AppToken: uni.getStorageSync("App-Token"),
|
||
// 是否登录
|
||
ifLogin: false,
|
||
gradeDis: "",
|
||
title: '',
|
||
value: true,
|
||
orderNo: "",
|
||
// 油品订单信息
|
||
oilOrder: {},
|
||
// 员工列表信息
|
||
staff: {},
|
||
// 店铺信息
|
||
store: {},
|
||
oilPrice: 0,
|
||
// 油品名称
|
||
oilName: "",
|
||
oilNameId: "",
|
||
// 油品类型
|
||
oilType: "",
|
||
// 油品id
|
||
oilId: "",
|
||
// 用户信息
|
||
user: {
|
||
cardBalance: 0,
|
||
},
|
||
// 储值卡升数
|
||
refuelBalance: 0,
|
||
// 会员等级信息
|
||
userGrade: {},
|
||
balanceRedece: 0,
|
||
oilCardRedece: 0,
|
||
gradeRedece: 0,
|
||
fullRedece: 0,
|
||
couponRedece: 0,
|
||
// 消费储值卡后的金额(未扣除优惠金额前的金额)
|
||
deductAmount: 0,
|
||
// 囤油卡信息
|
||
refuelMoney: [],
|
||
refuelMoneyAfter: [],
|
||
// 会员等级优惠信息
|
||
gradeDiscount: [],
|
||
// 优惠券优惠信息
|
||
couponDiscount: [],
|
||
// 满减优惠信息
|
||
fullReduceDiscount: [],
|
||
// 支付金额
|
||
payAmount: 0,
|
||
// 调起支付所需的数据
|
||
orderInfo: {},
|
||
// 是否使用囤油卡
|
||
isOilStorageCard: false,
|
||
// 是否使用储值卡
|
||
isStoreValueCard: false,
|
||
// 是否存在可使用的等级优惠
|
||
isGradePreferential: false,
|
||
// 是否存在可使用的满减或折扣优惠
|
||
isFullPreferential: false,
|
||
// 是否存在可使用的优惠券
|
||
isCoupons: false,
|
||
transferDTO: {
|
||
type: 0,
|
||
amount: 0,
|
||
oilId: "",
|
||
mtUserLevel: "",
|
||
storeId: uni.getStorageSync("storeId")
|
||
},
|
||
fixingLevel: {},
|
||
isUseChildCard: false,
|
||
cardsList: [],
|
||
query: {
|
||
storeId: uni.getStorageSync("storeId"),
|
||
couponType: '',
|
||
useStatus: 0,
|
||
pageNo: 1,
|
||
pageSize: 10
|
||
},
|
||
checkBalance: false,
|
||
checkOilCard: false,
|
||
checkFull: false,
|
||
checkCoupon: false,
|
||
checkGrade: false,
|
||
preferentialData: {
|
||
activeFavorableAmount: "",
|
||
activeId: "",
|
||
activeInfo: "",
|
||
cardFavorableAmount: "",
|
||
cardFavorableId: "",
|
||
cardFavorableInfo: "",
|
||
memberFavorableAmount: "",
|
||
type: "",
|
||
},
|
||
levelAmount: 0,
|
||
activeAmount: 0,
|
||
// 是否为固定等级会员
|
||
isFixingLevel: false,
|
||
}
|
||
},
|
||
onLoad(e) {
|
||
this.orderNo = e.orderNo
|
||
// this.orderNo = "2345202401261502301206e6"
|
||
},
|
||
onShow() {
|
||
this.getOilOrder();
|
||
},
|
||
components: {
|
||
|
||
},
|
||
methods: {
|
||
// 选择囤油卡
|
||
changeOilCard(val) {
|
||
this.checkOilCard = val
|
||
if (val) {
|
||
this.chooseRefuelMoney()
|
||
this.fullRedece = 0;
|
||
this.gradeRedece = 0;
|
||
this.couponRedece = 0;
|
||
this.preferentialData = {
|
||
activeFavorableAmount: "",
|
||
activeId: "",
|
||
activeInfo: "",
|
||
cardFavorableAmount: "",
|
||
cardFavorableId: "",
|
||
cardFavorableInfo: "",
|
||
memberFavorableAmount: "",
|
||
type: "",
|
||
};
|
||
} else {
|
||
this.oilCardRedece = 0
|
||
if (!this.isFixingLevel) {
|
||
this.getPaymentPreferential(this.user.gradeId)
|
||
}
|
||
}
|
||
},
|
||
|
||
// 支付接口
|
||
payment() {
|
||
if (this.isUseChildCard) {
|
||
if (this.balanceRedece > 0) {
|
||
this.isUseChildCard = true
|
||
} else {
|
||
this.isUseChildCard = false
|
||
}
|
||
}
|
||
let map = {
|
||
orderNo: this.orderNo,
|
||
payAmount: this.payAmount,
|
||
// payAmount : "0.01",
|
||
discountAmount: (this.fullRedece * 100 + this.gradeRedece * 100 + this.couponRedece * 100) / 100,
|
||
oilCardAmount: JSON.stringify(this.refuelMoneyAfter),
|
||
oilCardLiters: this.oilCardRedece,
|
||
balanceAmount: this.balanceRedece,
|
||
isOilStorageCard: this.isOilStorageCard,
|
||
tankId: uni.getStorageSync("tankId"),
|
||
// tankId : 6,
|
||
isUseChildCard: this.isUseChildCard,
|
||
activeId: this.preferentialData.activeId,
|
||
cardFavorableId: this.preferentialData.cardFavorableId,
|
||
recordId: this.preferentialData.recordId,
|
||
type: this.preferentialData.type,
|
||
balanceAmountSale: this.balanceRedece,
|
||
oilCardAmountSale: this.oilCardRedece,
|
||
ifLogin: this.ifLogin,
|
||
levelAmount: this.levelAmount,
|
||
activeAmount: this.activeAmount
|
||
};
|
||
let _this = this;
|
||
request({
|
||
url: "business/oilOrder/appletPay",
|
||
method: 'post',
|
||
data: map,
|
||
}).then(res => {
|
||
let payProvider = "wxpay"
|
||
if (_this.appltType == "WECHAT") {
|
||
payProvider = "wxpay"
|
||
} else {
|
||
payProvider = "alipay"
|
||
}
|
||
if (res.data.error) {
|
||
request({
|
||
url: "/business/allOrderInfo/orderStatus",
|
||
method: 'post',
|
||
data: {
|
||
"orderNo": _this.orderNo,
|
||
"status": "payFail"
|
||
},
|
||
}).then((ress) => {})
|
||
uni.showToast({
|
||
title: res.data.error,
|
||
icon: "none"
|
||
})
|
||
// _this.goBack()
|
||
return;
|
||
}
|
||
if (res.data.code == "error") {
|
||
request({
|
||
url: "/business/allOrderInfo/orderStatus",
|
||
method: 'post',
|
||
data: {
|
||
"orderNo": _this.orderNo,
|
||
"status": "payFail"
|
||
},
|
||
}).then((ress) => {})
|
||
uni.showToast({
|
||
// title:res.data.msg,
|
||
title: "支付失败,请联系商家",
|
||
icon: "none"
|
||
})
|
||
// _this.goBack()
|
||
return;
|
||
}
|
||
if (res.data.success == "ok") {
|
||
// _this.preferentialData.storeId = _this.oilOrder.storeId
|
||
// _this.preferentialData.orderAmount = _this.oilOrder.orderAmount
|
||
// _this.preferentialData.oilId = _this.oilOrder.oils
|
||
// _this.preferentialData.mtUserLevel = _this.user.gradeId
|
||
// request({
|
||
// url: "business/marketingActivity/cardFavorableRecord/updateCardAndActiveById",
|
||
// method: 'post',
|
||
// data: _this.preferentialData,
|
||
// }).then((res)=>{})
|
||
// uni.reLaunch({
|
||
// url: '/pagesRefuel/orderSuccess/index'
|
||
// })
|
||
uni.redirectTo({
|
||
url: '/pagesRefuel/orderSuccess/index?orderNo=' + _this.orderNo,
|
||
})
|
||
return;
|
||
}
|
||
if (res.data.resultMsg == "商户订单号重复") {
|
||
uni.showToast({
|
||
title: "商户订单号重复,请重新选择订单信息进行支付!",
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (res.data.data.reservedPayInfo) {
|
||
_this.orderInfo = JSON.parse(res.data.data.reservedPayInfo);
|
||
uni.requestPayment({
|
||
// 微信支付provider: 'wxpay' 支付宝支付 'alipay'
|
||
provider: payProvider,
|
||
// 时间戳
|
||
timeStamp: _this.orderInfo.timeStamp,
|
||
// 随机字符串
|
||
nonceStr: _this.orderInfo.nonceStr,
|
||
// 固定值
|
||
package: _this.orderInfo.package,
|
||
// 解密方式
|
||
signType: 'MD5',
|
||
// 支付签名
|
||
paySign: _this.orderInfo.paySign,
|
||
success: function(res) {
|
||
console.log('success');
|
||
// 支付成功后调用修改使用后的优惠券情况
|
||
// _this.preferentialData.storeId = _this.oilOrder.storeId
|
||
// _this.preferentialData.orderAmount = _this.oilOrder.orderAmount
|
||
// _this.preferentialData.oilId = _this.oilOrder.oils
|
||
// _this.preferentialData.mtUserLevel = _this.user.gradeId
|
||
// request({
|
||
// url: "business/marketingActivity/cardFavorableRecord/updateCardAndActiveById",
|
||
// method: 'post',
|
||
// data: _this.preferentialData,
|
||
// }).then((res)=>{
|
||
// console.log(res);
|
||
// })
|
||
// uni.reLaunch({
|
||
|
||
// })
|
||
|
||
uni.redirectTo({
|
||
url: '/pagesRefuel/orderSuccess/index?orderNo=' + _this
|
||
.orderNo,
|
||
})
|
||
},
|
||
fail: function(err) {
|
||
request({
|
||
url: "/business/allOrderInfo/orderStatus",
|
||
method: 'post',
|
||
data: {
|
||
"orderNo": res.data.data.orderNo,
|
||
"status": "payFail"
|
||
},
|
||
}).then((res) => {
|
||
uni.showToast({
|
||
title: "支付失败!",
|
||
icon: "error"
|
||
})
|
||
})
|
||
console.log('fail:', err);
|
||
}
|
||
});
|
||
}
|
||
if (_this.appltType == "ALIPAY") {
|
||
my.tradePay({
|
||
tradeNO: res.data.data.reservedTransactionId
|
||
}, function(resp) {
|
||
if (resp.resultCode == '9000') {
|
||
console.log("支付成功")
|
||
// 支付成功后调用修改使用后的优惠券情况
|
||
// _this.preferentialData.storeId = _this.oilOrder.storeId
|
||
// _this.preferentialData.orderAmount = _this.oilOrder.orderAmount
|
||
// _this.preferentialData.oilId = _this.oilOrder.oils
|
||
// _this.preferentialData.mtUserLevel = _this.user.gradeId
|
||
// request({
|
||
// url: "business/marketingActivity/cardFavorableRecord/updateCardAndActiveById",
|
||
// method: 'post',
|
||
// data: _this.preferentialData,
|
||
// }).then((res)=>{})
|
||
// uni.reLaunch({
|
||
// url: '/pagesRefuel/orderSuccess/index'
|
||
// })
|
||
|
||
uni.redirectTo({
|
||
url: '/pagesRefuel/orderSuccess/index?orderNo=' + _this
|
||
.orderNo,
|
||
})
|
||
} else {
|
||
request({
|
||
url: "/business/allOrderInfo/orderStatus",
|
||
method: 'post',
|
||
data: {
|
||
"orderNo": res.data.data.orderNo,
|
||
"status": "payFail"
|
||
},
|
||
}).then((res) => {
|
||
uni.showToast({
|
||
title: "支付失败!",
|
||
icon: "error"
|
||
})
|
||
})
|
||
console.log('支付失败,' + resp.resultCode);
|
||
}
|
||
});
|
||
}
|
||
})
|
||
},
|
||
|
||
// 查看是否有可使用的囤油卡
|
||
chooseRefuelMoney() {
|
||
console.log("oilCard");
|
||
let falg = false;
|
||
for (let i = 0; i < this.refuelMoney.length; i++) {
|
||
if (this.refuelMoney[i].oilType == this.oilNameId) {
|
||
if (this.refuelMoney[i].refuelMoney > 0) {
|
||
falg = true
|
||
}
|
||
this.refuelBalance = this.refuelMoney[i].refuelMoney
|
||
if (this.refuelMoney[i].refuelMoney > 0) {
|
||
this.isOilStorageCard = true
|
||
}
|
||
if (this.refuelMoney[i].refuelMoney >= this.oilOrder.oilNum) {
|
||
this.oilCardRedece = this.oilOrder.oilNum
|
||
this.refuelMoneyAfter[i].refuelMoney = this.refuelMoney[i].refuelMoney - this.oilOrder.oilNum
|
||
this.payAmount = 0
|
||
this.checkOilCard = true
|
||
} else {
|
||
this.oilCardRedece = this.refuelMoney[i].refuelMoney
|
||
this.refuelMoneyAfter[i].refuelMoney = 0
|
||
if (falg) {
|
||
this.checkOilCard = true
|
||
this.chooseCardBalance(1)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (falg == false) {
|
||
// this.chooseCardBalance(0)
|
||
// this.chooseGrade(this.user.id,this.user.gradeId)
|
||
}
|
||
if (this.oilCardRedece == 0) {
|
||
if (!this.isFixingLevel) {
|
||
this.chooseCardBalance(0)
|
||
this.getPaymentPreferential(this.user.gradeId)
|
||
} else {
|
||
this.chooseCardBalance(0)
|
||
}
|
||
}
|
||
},
|
||
// 查看是否有可使用的储值卡金额
|
||
chooseCardBalance(val) {
|
||
console.log("balance");
|
||
if (this.user.cardBalance > 0) {
|
||
this.isStoreValueCard = true;
|
||
if (val == 0) {
|
||
// 没有使用囤油卡
|
||
if (this.user.cardBalance >= (this.oilOrder.orderAmount - this.fullRedece - this.couponRedece -
|
||
this.gradeRedece)) {
|
||
this.balanceRedece = (this.oilOrder.orderAmount - this.fullRedece - this.couponRedece - this
|
||
.gradeRedece).toFixed(2)
|
||
} else {
|
||
this.balanceRedece = this.user.cardBalance
|
||
this.deductAmount = (this.oilOrder.orderAmount - this.fullRedece - this.couponRedece - this
|
||
.gradeRedece - this.balanceRedece).toFixed(2)
|
||
this.payAmount = (this.oilOrder.orderAmount - this.fullRedece - this.couponRedece - this
|
||
.gradeRedece - this.balanceRedece).toFixed(2)
|
||
console.log(this.oilOrder.orderAmount, this.fullRedece, this.couponRedece, this.gradeRedece,
|
||
this.balanceRedece, 111);
|
||
}
|
||
} else {
|
||
// 使用囤油卡
|
||
// 扣除囤油卡金额后需要支付的金额
|
||
let residueAmount = 0
|
||
if (this.oilCardRedece > 0) {
|
||
residueAmount = ((this.oilOrder.oilNum - this.oilCardRedece) * this.oilPrice).toFixed(2)
|
||
} else {
|
||
residueAmount = this.oilOrder.orderAmount
|
||
}
|
||
if (this.user.cardBalance >= residueAmount) {
|
||
this.balanceRedece = residueAmount
|
||
} else {
|
||
this.balanceRedece = this.user.cardBalance
|
||
this.payAmount = ((residueAmount * 100).toFixed(0) - (this.balanceRedece * 100).toFixed(0)) /
|
||
100
|
||
}
|
||
}
|
||
} else {
|
||
this.deductAmount = (this.oilOrder.orderAmount - this.fullRedece - this.couponRedece - this
|
||
.gradeRedece).toFixed(2)
|
||
this.payAmount = (this.oilOrder.orderAmount - this.fullRedece - this.couponRedece - this.gradeRedece)
|
||
.toFixed(2)
|
||
console.log(this.oilOrder.orderAmount, this.fullRedece, this.couponRedece, this.gradeRedece, this
|
||
.balanceRedece, 222);
|
||
}
|
||
},
|
||
// 查看是否有可使用的会员等级优惠
|
||
chooseGrade(userId, gradeId) {
|
||
console.log("userGrade");
|
||
let that = this;
|
||
that.isFixingLevel = false
|
||
request({
|
||
url: "business/userManager/userGrade/isUse",
|
||
method: 'post',
|
||
data: {
|
||
userId: userId,
|
||
gradeId: gradeId,
|
||
storeId: that.oilOrder.storeId
|
||
}
|
||
}).then((res) => {
|
||
if (res.data) {
|
||
if (res.data.fixingLevel) {
|
||
if (res.data.fixingLevel.discountType == "自定义优惠") {
|
||
if (that.oilType == "汽油") {
|
||
// 将数组按照金额从小到大排序
|
||
let gasolineRule = JSON.parse(res.data.fixingLevel.gasolineRule).sort((a, b) =>
|
||
a.gasolineRule1 - b.gasolineRule1);
|
||
if (res.data.fixingLevel.gasolineDiscount == "满减优惠") {
|
||
if (gasolineRule.length > 1) {
|
||
for (let i = 1; i < gasolineRule.length; i++) {
|
||
if (that.oilOrder.orderAmount >= gasolineRule[gasolineRule.length -
|
||
1].gasolineRule1) {
|
||
that.gradeRedece = gasolineRule[gasolineRule.length - 1]
|
||
.gasolineRule2
|
||
that.isGradePreferential = true
|
||
break;
|
||
}
|
||
if (that.oilOrder.orderAmount >= gasolineRule[i - 1]
|
||
.gasolineRule1 && that.oilOrder.orderAmount < gasolineRule[i]
|
||
.gasolineRule1) {
|
||
that.gradeRedece = gasolineRule[i - 1].gasolineRule2
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
} else {
|
||
if (that.oilOrder.orderAmount >= gasolineRule[gasolineRule.length - 1]
|
||
.gasolineRule1) {
|
||
that.gradeRedece = gasolineRule[gasolineRule.length - 1]
|
||
.gasolineRule2
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
}
|
||
if (res.data.fixingLevel.gasolineDiscount == "每升优惠") {
|
||
if (gasolineRule.length > 1) {
|
||
for (let i = 1; i < gasolineRule.length; i++) {
|
||
if (that.oilOrder.orderAmount >= gasolineRule[gasolineRule.length -
|
||
1].gasolineRule1) {
|
||
// 计算升数 和 优惠金额
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
gasolineRule[gasolineRule.length - 1].gasolineRule3)
|
||
.toFixed(2)
|
||
that.isGradePreferential = true
|
||
break;
|
||
}
|
||
if (that.oilOrder.orderAmount >= gasolineRule[i - 1]
|
||
.gasolineRule1 && that.oilOrder.orderAmount < gasolineRule[i]
|
||
.gasolineRule1) {
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
gasolineRule[i - 1].gasolineRule3).toFixed(2)
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
} else {
|
||
if (that.oilOrder.orderAmount >= gasolineRule[gasolineRule.length - 1]
|
||
.gasolineRule1) {
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
gasolineRule[gasolineRule.length - 1].gasolineRule3)
|
||
.toFixed(2)
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (that.oilType == "柴油") {
|
||
// 将数组按照金额从小到大排序
|
||
let dieselRule = JSON.parse(res.data.fixingLevel.dieselRule).sort((a, b) => a
|
||
.dieselRule1 - b.dieselRule1);
|
||
if (res.data.fixingLevel.dieselDiscount == "满减优惠") {
|
||
if (dieselRule.length > 1) {
|
||
for (let i = 1; i < dieselRule.length; i++) {
|
||
if (that.oilOrder.orderAmount >= dieselRule[dieselRule.length - 1]
|
||
.dieselRule1) {
|
||
that.gradeRedece = dieselRule[dieselRule.length - 1]
|
||
.dieselRule2
|
||
that.isGradePreferential = true
|
||
break;
|
||
}
|
||
if (that.oilOrder.orderAmount >= dieselRule[i - 1].dieselRule1 &&
|
||
that.oilOrder.orderAmount < dieselRule[i].dieselRule1) {
|
||
that.gradeRedece = dieselRule[i - 1].dieselRule2
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
} else {
|
||
if (that.oilOrder.orderAmount >= dieselRule[dieselRule.length - 1]
|
||
.dieselRule1) {
|
||
that.gradeRedece = dieselRule[dieselRule.length - 1].dieselRule2
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
}
|
||
if (res.data.fixingLevel.dieselDiscount == "每升优惠") {
|
||
if (dieselRule.length > 1) {
|
||
for (let i = 1; i < dieselRule.length; i++) {
|
||
if (that.oilOrder.orderAmount >= dieselRule[dieselRule.length - 1]
|
||
.dieselRule1) {
|
||
// 计算升数 和 优惠金额
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
dieselRule[dieselRule.length - 1].dieselRule3).toFixed(
|
||
2)
|
||
that.isGradePreferential = true
|
||
break;
|
||
}
|
||
if (that.oilOrder.orderAmount >= dieselRule[i - 1].dieselRule1 &&
|
||
that.oilOrder.orderAmount < dieselRule[i].dieselRule1) {
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
dieselRule[i - 1].dieselRule3).toFixed(2)
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
} else {
|
||
if (that.oilOrder.orderAmount >= dieselRule[dieselRule.length - 1]
|
||
.dieselRule1) {
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
dieselRule[dieselRule.length - 1].dieselRule3).toFixed(2)
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (that.oilType == "天然气") {
|
||
// 将数组按照金额从小到大排序
|
||
let naturalGasRule = JSON.parse(res.data.fixingLevel.naturalGasRule).sort((a,
|
||
b) => a.naturalGasRule1 - b.naturalGasRule1);
|
||
if (res.data.fixingLevel.naturalGasDiscount == "满减优惠") {
|
||
if (naturalGasRule.length > 1) {
|
||
for (let i = 1; i < naturalGasRule.length; i++) {
|
||
if (that.oilOrder.orderAmount >= naturalGasRule[naturalGasRule
|
||
.length - 1].naturalGasRule1) {
|
||
that.gradeRedece = naturalGasRule[naturalGasRule.length - 1]
|
||
.naturalGasRule2
|
||
that.isGradePreferential = true
|
||
break;
|
||
}
|
||
if (that.oilOrder.orderAmount >= naturalGasRule[i - 1]
|
||
.naturalGasRule1 && that.oilOrder.orderAmount < naturalGasRule[
|
||
i].naturalGasRule1) {
|
||
that.gradeRedece = naturalGasRule[i - 1].naturalGasRule2
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
} else {
|
||
if (that.oilOrder.orderAmount >= naturalGasRule[naturalGasRule.length -
|
||
1].naturalGasRule1) {
|
||
that.gradeRedece = naturalGasRule[naturalGasRule.length - 1]
|
||
.naturalGasRule2
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
}
|
||
if (res.data.fixingLevel.naturalGasDiscount == "每升优惠") {
|
||
if (naturalGasRule.length > 1) {
|
||
for (let i = 1; i < naturalGasRule.length; i++) {
|
||
if (that.oilOrder.orderAmount >= naturalGasRule[naturalGasRule
|
||
.length - 1].naturalGasRule1) {
|
||
// 计算升数 和 优惠金额
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
naturalGasRule[naturalGasRule.length - 1]
|
||
.naturalGasRule3).toFixed(2)
|
||
that.isGradePreferential = true
|
||
break;
|
||
}
|
||
if (that.oilOrder.orderAmount >= naturalGasRule[i - 1]
|
||
.naturalGasRule1 && that.oilOrder.orderAmount < naturalGasRule[
|
||
i].naturalGasRule1) {
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
naturalGasRule[i - 1].naturalGasRule3).toFixed(2)
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
} else {
|
||
if (that.oilOrder.orderAmount >= naturalGasRule[naturalGasRule.length -
|
||
1].naturalGasRule1) {
|
||
that.gradeRedece = (that.oilOrder.orderAmount / that.oilPrice *
|
||
naturalGasRule[naturalGasRule.length - 1].naturalGasRule3)
|
||
.toFixed(2)
|
||
that.isGradePreferential = true
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
that.isFixingLevel = true
|
||
// if (res.data.fixingLevel.storeValue=="no" && that.balanceRedece>0){
|
||
// that.gradeRedece = 0
|
||
// }
|
||
}
|
||
|
||
}
|
||
})
|
||
},
|
||
// 查看是否有可使用的优惠活动
|
||
chooseFullOrCoupon() {
|
||
console.log("full");
|
||
this.transferDTO.amount = this.deductAmount
|
||
this.transferDTO.mtUserLevel = this.userGrade.id
|
||
this.transferDTO.oilId = this.oilId
|
||
let _this = this;
|
||
request({
|
||
url: "business/marketingActivity/activeExchange/test",
|
||
method: 'post',
|
||
data: _this.transferDTO,
|
||
}).then((res) => {
|
||
if (res.data.amount > 0) {
|
||
_this.payAmount = res.data.amount - _this.gradeRedece
|
||
_this.fullRedece = res.data.favorableAmount
|
||
_this.isFullPreferential = true
|
||
}
|
||
})
|
||
},
|
||
// 查看是否有可使用的优惠券
|
||
chooseCoupons() {
|
||
console.log("coupons");
|
||
request({
|
||
url: 'business/marketingActivity/cardFavorable/applet',
|
||
method: 'get',
|
||
params: this.query
|
||
}).then(res => {
|
||
if (res.data.records) {
|
||
console.log(res.data.records);
|
||
this.cardsList = res.data.records
|
||
if (this.cardsList.length > 0) {
|
||
this.couponRedece = this.cardsList[0].couponAmount
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
// 计算用户应付金额
|
||
countPayMent() {
|
||
this.payAmount = this.deductAmount;
|
||
// console.log("111",this.deductAmount, this.gradeRedece, this.fullRedece, this.couponRedece);
|
||
},
|
||
|
||
// 根据店铺id查询用户信息
|
||
async getUser(id) {
|
||
let _this = this;
|
||
request({
|
||
url: "business/userManager/user/storeUser",
|
||
method: 'post',
|
||
data: {
|
||
storeId: _this.oilOrder.storeId,
|
||
userId: id
|
||
}
|
||
}).then((res) => {
|
||
if (res.data.isUseChild == 'yes') {
|
||
_this.isUseChildCard = true
|
||
} else {
|
||
_this.isUseChildCard = false
|
||
}
|
||
_this.user = res.data.userVo;
|
||
_this.user = res.data.userVo;
|
||
_this.chooseGrade(_this.user.id, _this.user.gradeId);
|
||
if (res.data.userVo.refuelMoney && res.data.userVo.refuelMoney != 'null') {
|
||
_this.refuelMoney = JSON.parse(res.data.userVo.refuelMoney)
|
||
_this.refuelMoneyAfter = JSON.parse(res.data.userVo.refuelMoney)
|
||
_this.chooseRefuelMoney()
|
||
} else {
|
||
|
||
if (!this.isFixingLevel) {
|
||
_this.chooseCardBalance(0)
|
||
console.log(this.balanceRedece, 154);
|
||
_this.getPaymentPreferential(this.user.gradeId)
|
||
} else {
|
||
_this.chooseCardBalance(0)
|
||
}
|
||
}
|
||
console.log("afterGrade");
|
||
// _this.chooseGrade(res.data.userVo.id,res.data.userVo.gradeId)
|
||
})
|
||
},
|
||
getPaymentPreferential(gradeId) {
|
||
let type = 0;
|
||
if (this.balanceRedece == 0) {
|
||
type = 2
|
||
} else {
|
||
type = 0
|
||
}
|
||
let map = {
|
||
//支付类型 0:储值卡 1:囤油卡
|
||
type: type,
|
||
//支付金额
|
||
amount: this.oilOrder.orderAmount,
|
||
//可用油品Id
|
||
oilId: this.oilOrder.oils,
|
||
//店铺id
|
||
storeId: this.oilOrder.storeId,
|
||
//会员等级
|
||
mtUserLevel: gradeId,
|
||
//用户id
|
||
userId: this.oilOrder.userId,
|
||
}
|
||
request({
|
||
url: "business/marketingActivity/activeExchange/getPaymentActive",
|
||
method: 'get',
|
||
params: map,
|
||
}).then((res) => {
|
||
this.preferentialData = res.data
|
||
if (res.data.memberFavorableAmount) {
|
||
this.gradeRedece = res.data.memberFavorableAmount
|
||
this.levelAmount = res.data.memberFavorableAmount
|
||
}
|
||
if (res.data.cardFavorableAmount) {
|
||
this.couponRedece = res.data.cardFavorableAmount
|
||
}
|
||
if (res.data.activeFavorableAmount) {
|
||
this.fullRedece = res.data.activeFavorableAmount
|
||
this.activeAmount = res.data.activeFavorableAmount
|
||
}
|
||
console.log(this.gradeRedece, this.couponRedece, this.fullRedece, res.data
|
||
.memberFavorableAmount, "2231");
|
||
|
||
this.chooseCardBalance(0)
|
||
// this.payAmount = (this.payAmount - this.fullRedece - this.couponRedece - this.gradeRedece).toFixed(2)
|
||
})
|
||
},
|
||
// 获取油品订单
|
||
getOilOrder() {
|
||
let _this = this;
|
||
request({
|
||
// url: "business/oilOrder/orderNo",
|
||
url: "business/oilOrder/oilOrderNo",
|
||
method: 'post',
|
||
data: {
|
||
orderNo: _this.orderNo
|
||
},
|
||
}).then((res) => {
|
||
if (res.data) {
|
||
// console.log(res);
|
||
_this.oilOrder = res.data
|
||
// _this.getStaffList(res.data.staffId)
|
||
// _this.getStore(res.data.storeId)
|
||
_this.getOilNumber(res.data.storeId)
|
||
// _this.chooseCoupons()
|
||
// 判断是否登录
|
||
if (_this.AppToken) {
|
||
_this.getUser(res.data.userId)
|
||
_this.ifLogin = true
|
||
} else {
|
||
_this.ifLogin = false
|
||
_this.payAmount = _this.oilOrder.orderAmount
|
||
}
|
||
}
|
||
})
|
||
},
|
||
// 获取门店信息
|
||
getStore(id) {
|
||
let _this = this;
|
||
request({
|
||
url: "business/storeInformation/store/queryStoreById",
|
||
method: 'post',
|
||
data: {
|
||
"storeId": id
|
||
},
|
||
}).then((res) => {
|
||
_this.store = res.data;
|
||
})
|
||
},
|
||
// 根据员工id获取员工信息
|
||
getStaffList(staffId) {
|
||
let _this = this;
|
||
request({
|
||
url: "business/member/staff/" + staffId,
|
||
method: 'get',
|
||
}).then((res) => {
|
||
_this.staff = res.data
|
||
})
|
||
},
|
||
// 获取当前店铺油号信息
|
||
getOilNumber(storeId) {
|
||
let _this = this;
|
||
request({
|
||
url: "business/petrolStationManagement/oilNumber/getOilNumberName/" + storeId,
|
||
method: 'get',
|
||
}).then((res) => {
|
||
res.data.forEach(item => {
|
||
if (item.oilName == _this.oilOrder.oils) {
|
||
_this.oilPrice = item.oilPrice;
|
||
_this.oilName = item.oilNames;
|
||
_this.oilNameId = item.oilName;
|
||
_this.oilType = item.oilType;
|
||
_this.oilId = item.oilId;
|
||
}
|
||
})
|
||
})
|
||
},
|
||
// 返回
|
||
goBack() {
|
||
uni.navigateBack()
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.scc {
|
||
display: flex;
|
||
justify-content: space-around;
|
||
margin-top: 10px;
|
||
height: 40px;
|
||
font-size: 18px;
|
||
line-height: 40px;
|
||
}
|
||
|
||
.imgIcon {
|
||
width: 30px;
|
||
height: 30px;
|
||
border-radius: 50%;
|
||
margin-top: 10px;
|
||
}
|
||
|
||
.desc {
|
||
height: 35px;
|
||
line-height: 35px;
|
||
margin-left: 20px;
|
||
margin-right: 20px;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
font-size: 15px;
|
||
color: rgba(0, 0, 0, 0.65);
|
||
}
|
||
|
||
.bar {
|
||
width: 100%;
|
||
height: 70px;
|
||
background-color: white;
|
||
position: fixed;
|
||
bottom: 0px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.content {
|
||
background: #f4f5f6;
|
||
}
|
||
|
||
.container {
|
||
width: 100%;
|
||
height: 100vh;
|
||
box-sizing: border-box;
|
||
padding-top: 88px;
|
||
}
|
||
|
||
.my-header {
|
||
width: 100%;
|
||
height: 88px;
|
||
background: #ffffff;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
color: #000;
|
||
box-sizing: border-box;
|
||
padding: 0px 15px;
|
||
padding-top: 40px;
|
||
|
||
.my-icons {
|
||
width: 20px;
|
||
|
||
}
|
||
|
||
position: fixed;
|
||
top: 0px;
|
||
}
|
||
</style>
|