完整先货后款付款流程

This commit is contained in:
THK3121 2023-07-08 16:58:21 +08:00
parent 05ef84a30b
commit 42b860b90e
7 changed files with 417 additions and 392 deletions

View File

@ -41,7 +41,7 @@ export function postconfirm(merId, data) {
return request.post("admin/" + merId + "/confirm" , data, { login: true }); return request.post("admin/" + merId + "/confirm" , data, { login: true });
} }
/** /**
* 同意先货后款 * 先货后款订单结算
*/ */
export function postsettle(merId, data) { export function postsettle(merId, data) {
return request.post("admin/" + merId + "/settle" , data, { login: true }); return request.post("admin/" + merId + "/settle" , data, { login: true });

View File

@ -107,7 +107,7 @@ export function orderDel(id) {
} }
/** /**
* 订单详情 * 已付款订单详情
* @param string uni * @param string uni
*/ */
export function getOrderDetail(uni) { export function getOrderDetail(uni) {
@ -115,11 +115,11 @@ export function getOrderDetail(uni) {
} }
/** /**
* 订单详情 * 未付款订单详情
* @param string uni * @param string uni
*/ */
export function groupOrderDetail(uni) { export function groupOrderDetail(uni,product_type) {
return request.get('order/group_order_detail/' + uni); return request.get('order/group_order_detail/' + uni+'?product_type=' + product_type);
} }
// 支付状态订单 // 支付状态订单

View File

@ -266,8 +266,8 @@
type:number type:number
} }
this.$nextTick(()=>{ this.$nextTick(()=>{
this.where.is_verify = 1; this.where.status = 2;
delete this.where.status; delete this.where.is_verify;
this.init(); this.init();
}) })
postconfirm(this.merId,data).then(res=>{ postconfirm(this.merId,data).then(res=>{
@ -276,7 +276,7 @@
}, },
handleSearch() { handleSearch() {
this.loaded = false; this.loaded = false;
this.where.page = 1; this.where.page = 3;
this.list = []; this.list = [];
this.getIndex(); this.getIndex();
}, },

View File

@ -270,7 +270,8 @@
add: false, add: false,
}, },
show:false, show:false,
credit_buy:'' credit_buy:'',
product_type:0
}; };
}, },
watch: { watch: {
@ -285,6 +286,7 @@
mapGetters(['isLogin','uid','viewColor','keyColor'])), mapGetters(['isLogin','uid','viewColor','keyColor'])),
onLoad: function(options) { onLoad: function(options) {
this.credit_buy=options.credit_buy this.credit_buy=options.credit_buy
if(options.product_type)this.product_type=options.product_type
if (options.order_id) { if (options.order_id) {
this.$set(this, 'order_id', options.order_id); this.$set(this, 'order_id', options.order_id);
} }
@ -440,7 +442,7 @@
uni.showLoading({ uni.showLoading({
title: "正在加载中" title: "正在加载中"
}); });
groupOrderDetail(this.order_id).then(res => { groupOrderDetail(this.order_id,this.product_type).then(res => {
let _type = 0; let _type = 0;
uni.hideLoading(); uni.hideLoading();
that.$set(that, 'orderInfo', res.data); that.$set(that, 'orderInfo', res.data);

View File

@ -537,7 +537,7 @@
"name": "先货后款", "name": "先货后款",
"icon": "tan-a-lujing17324", "icon": "tan-a-lujing17324",
value: 'creditBuy', value: 'creditBuy',
title: `结算周期:30天 日利率0.05%`, title: `结算周期:${this.settle_cycle}天 日利率:${this.interest_rate}%`,
payStatus: '', payStatus: '',
}, },
], ],
@ -653,7 +653,9 @@
order_key: '', order_key: '',
is_take: '', is_take: '',
domain: HTTP_REQUEST_URL, domain: HTTP_REQUEST_URL,
product_type:'' product_type:'',
interest_rate:'',//
settle_cycle:'',//
}; };
}, },
computed: { computed: {
@ -1024,6 +1026,7 @@
use_integral: that.use_integral use_integral: that.use_integral
}).then(res => { }).then(res => {
// //
console.log(res);
that.is_take = false that.is_take = false
res.data.order.forEach(el => { res.data.order.forEach(el => {
if (el.order.isTake == 1) that.is_take = true if (el.order.isTake == 1) that.is_take = true
@ -1074,6 +1077,9 @@
that.allow_address = res.data.allow_address that.allow_address = res.data.allow_address
that.deliveryName = res.data.order_model == 0 ? '快递配送' : '虚拟发货' that.deliveryName = res.data.order_model == 0 ? '快递配送' : '虚拟发货'
that.order_key = res.data.key that.order_key = res.data.key
that.interest_rate = res.data.order[0].interest_rate
that.settle_cycle = res.data.order[0].settle_cycle
console.log(that.settle_cycle);
if(res.data.order[0].credit_buy == 1){ if(res.data.order[0].credit_buy == 1){
this.cartArr[4].payStatus = 1 this.cartArr[4].payStatus = 1
}else{ }else{
@ -1116,7 +1122,9 @@
phone: res.data.phone phone: res.data.phone
} }
console.log(that.addressId); console.log(that.addressId);
this.getConfirm(that.addressId); this.$nextTick(()=>{
this.getConfirm(that.addressId);
})
}) })
} else { } else {
getAddressList().then(res => { getAddressList().then(res => {

View File

@ -21,7 +21,7 @@
<view>全部</view> <view>全部</view>
<view class='num'>{{orderData.all || 0}}</view> <view class='num'>{{orderData.all || 0}}</view>
</view> </view>
<view class='item' :class='orderStatus==20 ? "on": ""' @click="statusClick(20)"> <view class='item' :class='orderStatus==0 ? "on": ""' @click="statusClick(0)">
<view>待付款</view> <view>待付款</view>
<view class='num'>{{orderData.noPay || 0}}</view> <view class='num'>{{orderData.noPay || 0}}</view>
</view> </view>
@ -61,7 +61,7 @@
<view v-if="orderList.length > 0"> <view v-if="orderList.length > 0">
<block v-if="orderStatus == 0"> <block v-if="orderStatus == 0">
<view class='item' v-for="(item,index) in orderList" :key="index"> <view class='item' v-for="(item,index) in orderList" :key="index">
<view @click='goOrderDetails(item.group_order_id)'> <view @click='goOrderDetails(item.group_order_id,item.orderList[0].activity_type)'>
<view class='title acea-row row-between-wrapper'> <view class='title acea-row row-between-wrapper'>
<view class="acea-row row-middle left-wrapper"> <view class="acea-row row-middle left-wrapper">
{{item.group_order_sn}} {{item.group_order_sn}}
@ -141,6 +141,12 @@
{{item.total_num || 0}}件商品总金额 {{item.total_num || 0}}件商品总金额
<text class='money p-color'>{{item.pay_price}}</text> <text class='money p-color'>{{item.pay_price}}</text>
</view> </view>
<view class='totalPrice' v-else>{{item.orderNum || 0}}件商品总金额
<text class='money p-color'>{{item.pay_price}}</text>
</view>
<view class="totalPrice" >
{{item.total_num || 0}}件商品结算周期到期后付款{{item.pay_price}}
</view>
<view class='bottom acea-row row-right row-middle'> <view class='bottom acea-row row-right row-middle'>
<view class='bnt b-color' @click.stop='goPay(item.pay_price,item.group_order_id)'> <view class='bnt b-color' @click.stop='goPay(item.pay_price,item.group_order_id)'>
立即付款</view> 立即付款</view>
@ -238,13 +244,6 @@
<view class='totalPrice' v-if="item.activity_type == 2">{{item.orderNum || 0}}件商品总金额 <view class='totalPrice' v-if="item.activity_type == 2">{{item.orderNum || 0}}件商品总金额
<text class='money p-color'>{{item.presell_price}}</text> <text class='money p-color'>{{item.presell_price}}</text>
</view> </view>
<view class='totalPrice' v-else>{{item.orderNum || 0}}件商品总金额
<text class='money p-color'>{{item.pay_price}}</text>
</view>
<view class="totalPrice" v-if="item.pay_type == 8 && item.status == 12">
共1件商品结算周期到期后付款100
</view>
</view> </view>
<view class='bottom acea-row row-right row-middle'> <view class='bottom acea-row row-right row-middle'>
<view v-if="!item.receipt && item.status != -1" class='bnt cancelBnt' <view v-if="!item.receipt && item.status != -1" class='bnt cancelBnt'
@ -509,7 +508,7 @@
getOrderData: function() { getOrderData: function() {
let that = this; let that = this;
orderData({ orderData({
product_type:that.product_type product_type:this.product_type
}).then(res => { }).then(res => {
that.$set(that, 'orderData', res.data); that.$set(that, 'orderData', res.data);
}) })
@ -544,10 +543,13 @@
* *
*/ */
goPay: function(pay_price, order_id) { goPay: function(pay_price, order_id) {
this.$set(this, 'pay_close', true); uni.navigateTo({
this.order_id = order_id; url: '/pages/users/payment/payment?order_id=' + order_id + '&product_type=' + this.product_type
this.pay_order_id = order_id.toString() });
this.$set(this, 'totalPrice', pay_price); // this.$set(this, 'pay_close', true);
// this.order_id = order_id;
// this.pay_order_id = order_id.toString()
// this.$set(this, 'totalPrice', pay_price);
}, },
/** /**
* 支付成功回调 * 支付成功回调
@ -573,7 +575,7 @@
/** /**
* 去订单详情 * 去订单详情
*/ */
goOrderDetails: function(order_id) { goOrderDetails: function(order_id,product_type) {
let self = this let self = this
if (!order_id) return that.$util.Tips({ if (!order_id) return that.$util.Tips({
title: '缺少订单号无法查看订单详情' title: '缺少订单号无法查看订单详情'
@ -586,7 +588,7 @@
uni.hideLoading(); uni.hideLoading();
if (self.orderStatus == 0) { if (self.orderStatus == 0) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/order_details/stay?order_id=' + order_id url: '/pages/order_details/stay?order_id=' + order_id + '&product_type=' + product_type
}) })
} else { } else {
uni.navigateTo({ uni.navigateTo({
@ -600,7 +602,7 @@
// #ifndef MP // #ifndef MP
if (self.orderStatus == 0) { if (self.orderStatus == 0) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/order_details/stay?order_id=' + order_id url: '/pages/order_details/stay?order_id=' + order_id + '&product_type=' + product_type
}) })
} else { } else {
uni.navigateTo({ uni.navigateTo({
@ -663,7 +665,7 @@
that.loadTitle = "加载更多"; that.loadTitle = "加载更多";
if (that.isReady) { if (that.isReady) {
that.isReady = false that.isReady = false
if (that.orderStatus == 20) { if (that.orderStatus == 0) {
groupOrderList({ groupOrderList({
page: that.page, page: that.page,
limit: that.limit, limit: that.limit,
@ -766,27 +768,6 @@
this.show = true this.show = true
this.shouhuo.id = item.order_id this.shouhuo.id = item.order_id
this.shouhuo.index = index this.shouhuo.index = index
// uni.showModal({
// title: '',
// content: '',
// success: function(res) {
// if (res.confirm) {
// orderTake(item.order_id).then(res => {
// return that.$util.Tips({
// title: '',
// icon: 'success'
// }, function() {
// that.orderList.splice(index, 1);
// that.getOrderData();
// });
// }).catch(err => {
// return that.$util.Tips({
// title: err
// });
// })
// }
// }
// })
}, },
queding() { queding() {
let that = this; let that = this;

View File

@ -1,384 +1,418 @@
<template> <template>
<view class="center"> <view class="center">
<view class='wrapper'> <view class='wrapper'>
<view class='item'> <view class='item'>
<view>支付方式</view> <view>支付方式</view>
<view class='list'> <view class='list'>
<!-- #ifdef H5 --> <!-- #ifdef H5 -->
<view class='payItem acea-row row-middle' :class='active==index ?"on":""' @tap='payItem(index)' <view class='payItem acea-row row-middle' :class='active==index ?"on":""' @tap='payItem(index)'
v-for="(item,index) in cartArr" :key='index' v-if="item.payStatus==1"> v-for="(item,index) in cartArr" :key='index' v-if="item.payStatus==1">
<view class='name acea-row row-center-wrapper'> <view class='name acea-row row-center-wrapper'>
<view class='iconfont animated' <view class='iconfont animated'
:class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view> :class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view>
{{item.name}} {{item.name}}
</view> </view>
<view class='tip'> <view class='tip'>
{{item.title}} {{item.title}}
<block v-if="item.value == 'balance'"> <block v-if="item.value == 'balance'">
{{userInfo.now_money}} {{userInfo.now_money}}
</block> </block>
</view> </view>
</view> </view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP || APP-PLUS --> <!-- #ifdef MP || APP-PLUS -->
<view class='payItem acea-row row-middle' :class='active==index ?"on":""' @tap='payItem(index)' <view class='payItem acea-row row-middle' :class='active==index ?"on":""' @tap='payItem(index)'
v-for="(item,index) in cartArr" :key='index' v-if="item.payStatus==1"> v-for="(item,index) in cartArr" :key='index' v-if="item.payStatus==1">
<view class='name acea-row row-center-wrapper'> <view class='name acea-row row-center-wrapper'>
<view class='iconfont animated' <view class='iconfont animated'
:class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view> :class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view>
{{item.name}} {{item.name}}
</view> </view>
<view class='tip'> <view class='tip'>
{{item.title}} {{item.title}}
<block v-if="item.value == 'balance'"> <block v-if="item.value == 'balance'">
{{userInfo.now_money}} {{userInfo.now_money}}
</block> </block>
</view> </view>
</view> </view>
<!-- #endif --> <!-- #endif -->
</view> </view>
</view> </view>
</view> </view>
<view class="settel"> <view class="settel">
<view class='settel-t'> <view class='settel-t'>
<view>实付款</view> <view>实付款</view>
<view class='conter'> {{couponData.orderList[0].pay_price}}</view> <view class='conter'> {{couponData.orderList[0].pay_price}}</view>
</view> </view>
</view> </view>
<view class="settel"> <view class="settel">
<view class='settel-t'> <view class='settel-t'>
<view>利息合计:</view> <view>利息合计:</view>
<view class="conter"> <view class="conter">
<view class='con_text'> {{couponData.orderList[0].pay_price}}</view> <view class='con_text'> {{couponData.orderList[0].pay_price}}</view>
<view class='con_text' style="color: #F84221;" v-if="couponData.pay_type == 8">已逾期1天)</view> <view class='con_text' style="color: #F84221;" v-if="couponData.pay_type == 8">已逾期1天)</view>
</view> </view>
</view> </view>
</view> </view>
<view class='footer acea-row row-between-wrapper'> <view class='footer acea-row row-between-wrapper'>
<view class="footer_count"> <view class="footer_count">
<view> <view>
合计: 合计:
<text class='pColor' v-if="cartArr[4].payStatus == 1">0.00</text> <text class='pColor' v-if="cartArr[4].payStatus == 1">0.00</text>
<text class='pColor' v-else>{{couponData.orderList[0].pay_price}}</text> <text class='pColor' v-else>{{couponData.orderList[0].pay_price}}</text>
</view> </view>
<view style="font-size: 14px;color: #F84221;" v-if="couponData.pay_type == 8"> <view style="font-size: 14px;color: #F84221;" v-if="couponData.pay_type == 8">
可结算周期到期后再付款{{totalPrice}} 可结算周期到期后再付款{{totalPrice}}
</view> </view>
</view> </view>
<view class='settlement' @tap="SubOrder"> <view class='settlement' @tap="SubOrder">
提交订单 提交订单
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import { import {
getUserInfo, getUserInfo,
} from '@/api/user.js'; } from '@/api/user.js';
import { import {
groupOrderDetail, groupOrderDetail,
orderPay orderPay
} from '@/api/order.js' } from '@/api/order.js'
export default { import {
data() { postsettle,
return { } from '@/api/admin.js'
animated: false, export default {
totalPrice: 0, data() {
couponData: {}, return {
active: 0, // , animated: false,
userInfo: {}, // totalPrice: 0,
cartArr: [{ couponData: {},
"name": "微信支付", active: 0, // ,
"icon": "icon-weixin2", userInfo: {}, //
value: 'weixin', cartArr: [{
title: '微信快捷支付', "name": "微信支付",
payStatus: 1, "icon": "icon-weixin2",
}, value: 'weixin',
{ title: '微信快捷支付',
name: "支付宝支付", payStatus: 1,
icon: "icon-icon34", },
// #ifdef H5 || APP-PLUS {
value: 'alipay', name: "支付宝支付",
// #endif icon: "icon-icon34",
// #ifdef MP // #ifdef H5 || APP-PLUS
value: 'alipayQr', value: 'alipay',
// #endif // #endif
title: '支付宝支付', // #ifdef MP
payStatus: this.$store.getters.globalData.alipay_open value: 'alipayQr',
}, // #endif
{ title: '支付宝支付',
"name": "余额支付", payStatus: this.$store.getters.globalData.alipay_open
"icon": "icon-icon-test", },
value: 'balance', {
title: '可用余额:', "name": "余额支付",
payStatus: this.$store.getters.globalData.yue_pay_status, "icon": "icon-icon-test",
}, value: 'balance',
{ title: '可用余额:',
"name": "线下支付", payStatus: this.$store.getters.globalData.yue_pay_status,
"icon": "icon-yinhangqia", },
value: 'offline', {
title: '线下支付', "name": "线下支付",
payStatus: 2, "icon": "icon-yinhangqia",
}, { value: 'offline',
"name": "先货后款", title: '线下支付',
"icon": "tan-a-lujing17324", payStatus: 2,
value: 'creditBuy', }, {
title: `结算周期30天 `, "name": "先货后款",
label: '日利率0.05%', "icon": "tan-a-lujing17324",
order_id: '', value: 'creditBuy',
}, title: `结算周期30天 `,
], label: '日利率0.05%',
order_id: '' order_id: '',
}; },
}, ],
onLoad(options) { order_id: '',
this.order_id = options.order_id product_type: 0,
this.getOrderInfo(this.order_id) mer_id:''
this.getUserInfo() };
}, },
methods: { onLoad(options) {
payItem: function(e) { this.order_id = options.order_id
let that = this; if (options.product_type) { this.product_type = options.product_type }
let active = e; console.log(this.product_type);
that.active = active; this.getOrderInfo()
that.animated = true; this.getUserInfo()
that.payType = that.cartArr[active].value; },
if (that.payType == 'weixin') { methods: {
that.payType = that.from payItem: function(e) {
} let that = this;
console.log(that.payType); let active = e;
}, that.active = active;
getUserInfo() { that.animated = true;
getUserInfo().then(res => { that.payType = that.cartArr[active].value;
this.userInfo = res.data if (that.payType == 'weixin') {
}) that.payType = that.from
}, }
getOrderInfo(order_id) { console.log(that.payType);
groupOrderDetail(order_id).then(res => { },
this.couponData = res.data getUserInfo() {
console.log(res); getUserInfo().then(res => {
}) this.userInfo = res.data
}, this.mer_id = res.data.service.mer_id
SubOrder() { })
orderPay(this.order_id, { },
type: this.payType getOrderInfo() {
}).then(res => { groupOrderDetail(this.order_id, this.product_type).then(res => {
console.log(res); this.couponData = res.data
setTimeout(() => { console.log(res);
uni.navigateBack({ })
delta: 1 },
}) SubOrder() {
}, 1000) if (this.product_type == 98) {
uni.showToast({ postsettle(
title: res.message this.mer_id, {
}) id:this.order_id,
}) pay_type: this.payType
} }
).then(res => {
if(res.message == 'success'){
uni.showToast({
title: '付款成功'
})
setTimeout(() => {
uni.navigateBack({
delta: 1
})
}, 1000)
}
console.log(res);
}).catch(err=>{
uni.showToast({
title: err.message
})
})
} else {
orderPay(this.order_id, {
type: this.payType
}).then(res => {
console.log(res);
setTimeout(() => {
uni.navigateBack({
delta: 1
})
}, 1000)
uni.showToast({
title: res.message
})
})
}
} }
}
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.center { .center {
.wrapper .item .discount .placeholder { .wrapper .item .discount .placeholder {
color: #ccc; color: #ccc;
text-align: right; text-align: right;
} }
.wrapper { .wrapper {
margin-bottom: 12rpx; margin-bottom: 12rpx;
background-color: #fff; background-color: #fff;
padding-top: 20px; padding-top: 20px;
} }
.wrapper .item { .wrapper .item {
padding: 27rpx 30rpx; padding: 27rpx 30rpx;
font-size: 30rpx; font-size: 30rpx;
color: #282828; color: #282828;
} }
.wrapper .item .discount .iconfont { .wrapper .item .discount .iconfont {
color: #515151; color: #515151;
font-size: 30rpx; font-size: 30rpx;
margin-left: 15rpx; margin-left: 15rpx;
} }
.wrapper .item .discount .num { .wrapper .item .discount .num {
font-size: 32rpx; font-size: 32rpx;
margin-right: 20rpx; margin-right: 20rpx;
} }
.wrapper .item .shipping { .wrapper .item .shipping {
font-size: 30rpx; font-size: 30rpx;
color: #999; color: #999;
position: relative; position: relative;
padding-right: 58rpx; padding-right: 58rpx;
} }
.wrapper .item .shipping .iconfont { .wrapper .item .shipping .iconfont {
font-size: 35rpx; font-size: 35rpx;
color: #707070; color: #707070;
position: absolute; position: absolute;
right: 0; right: 0;
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
margin-left: 30rpx; margin-left: 30rpx;
} }
.wrapper .item input { .wrapper .item input {
flex: 1; flex: 1;
height: 100%; height: 100%;
margin-left: 20rpx; margin-left: 20rpx;
text-align: right; text-align: right;
} }
.wrapper .item .placeholder { .wrapper .item .placeholder {
color: #ccc; color: #ccc;
} }
.wrapper .item .list { .wrapper .item .list {
margin-top: 35rpx; margin-top: 35rpx;
} }
.wrapper .item .list .payItem { .wrapper .item .list .payItem {
border: 1px solid #eee; border: 1px solid #eee;
border-radius: 6rpx; border-radius: 6rpx;
height: 86rpx; height: 86rpx;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
margin-top: 20rpx; margin-top: 20rpx;
font-size: 28rpx; font-size: 28rpx;
color: #282828; color: #282828;
} }
.wrapper .item .list .payItem.on { .wrapper .item .list .payItem.on {
border-color: var(--view-theme); border-color: var(--view-theme);
color: var(--view-theme); color: var(--view-theme);
} }
.wrapper .item .list .payItem .name { .wrapper .item .list .payItem .name {
width: 50%; width: 50%;
text-align: center; text-align: center;
border-right: 1px solid #eee; border-right: 1px solid #eee;
justify-content: left; justify-content: left;
padding-left: 80rpx; padding-left: 80rpx;
} }
.wrapper .item .list .payItem .name .iconfont { .wrapper .item .list .payItem .name .iconfont {
width: 44rpx; width: 44rpx;
height: 44rpx; height: 44rpx;
border-radius: 50%; border-radius: 50%;
text-align: center; text-align: center;
line-height: 44rpx; line-height: 44rpx;
background-color: #fe960f; background-color: #fe960f;
color: #fff; color: #fff;
font-size: 30rpx; font-size: 30rpx;
margin-right: 15rpx; margin-right: 15rpx;
} }
.wrapper .item .list .payItem .name .iconfont.icon-weixin2 { .wrapper .item .list .payItem .name .iconfont.icon-weixin2 {
background-color: #41b035; background-color: #41b035;
} }
.wrapper .item .list .payItem .name .iconfont.icon-icon34 { .wrapper .item .list .payItem .name .iconfont.icon-icon34 {
background-color: #4295D5; background-color: #4295D5;
} }
.wrapper .item .list .payItem .tip { .wrapper .item .list .payItem .tip {
width: 49%; width: 49%;
text-align: center; text-align: center;
font-size: 26rpx; font-size: 26rpx;
color: #aaa; color: #aaa;
} }
.footer { .footer {
width: 100%; width: 100%;
height: 100rpx; height: 100rpx;
height: calc(100rpx+ constant(safe-area-inset-bottom)); /// IOS<11.2/ height: calc(100rpx+ constant(safe-area-inset-bottom)); /// IOS<11.2/
height: calc(100rpx + env(safe-area-inset-bottom)); /// IOS>11.2/ height: calc(100rpx + env(safe-area-inset-bottom)); /// IOS>11.2/
background-color: #fff; background-color: #fff;
padding: 0 30rpx; padding: 0 30rpx;
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #333;
box-sizing: border-box; box-sizing: border-box;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
left: 0; left: 0;
z-index: 30; z-index: 30;
.footer_count { .footer_count {
font-size: 28rpx; font-size: 28rpx;
} }
.coupon_price { .coupon_price {
color: #999999; color: #999999;
font-size: 20rpx; font-size: 20rpx;
margin-top: 10rpx; margin-top: 10rpx;
text { text {
color: #282828; color: #282828;
padding: 2rpx 10rpx; padding: 2rpx 10rpx;
background: #F5F5F5; background: #F5F5F5;
border-radius: 26rpx; border-radius: 26rpx;
margin-left: 20rpx; margin-left: 20rpx;
line-height: 30rpx; line-height: 30rpx;
height: 30rpx; height: 30rpx;
display: inline-block; display: inline-block;
} }
} }
.settlement { .settlement {
font-size: 30rpx; font-size: 30rpx;
color: #fff; color: #fff;
width: 240rpx; width: 240rpx;
height: 70rpx; height: 70rpx;
background: linear-gradient(90deg, #F98649 0%, #F34E45 100%); background: linear-gradient(90deg, #F98649 0%, #F34E45 100%);
border-radius: 50rpx; border-radius: 50rpx;
text-align: center; text-align: center;
line-height: 70rpx; line-height: 70rpx;
&.disabled { &.disabled {
background-color: #cccccc; background-color: #cccccc;
} }
} }
.transparent { .transparent {
opacity: 0 opacity: 0
} }
} }
.settel { .settel {
width: 100%; width: 100%;
background-color: #fff; background-color: #fff;
height: 70px; height: 70px;
padding: 0 15px 0 15px; padding: 0 15px 0 15px;
line-height: 70px; line-height: 70px;
.settel-t { .settel-t {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.con_text { .con_text {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
height: 35px; height: 35px;
margin: auto; margin: auto;
line-height: 35px; line-height: 35px;
} }
} }
} }
</style> </style>