1052 lines
24 KiB
Vue
1052 lines
24 KiB
Vue
<template>
|
||
<view :style="viewColor">
|
||
<view class='order-submission'>
|
||
<!-- 商品信息 -->
|
||
<view class="storeinfo-wrapper">
|
||
<view class="store-item">
|
||
<view class="store-title">
|
||
<text class="iconfont icon-shangjiadingdan"></text>
|
||
<view class="txt" @click="goStore(item.mer_id)">{{payForm.merName}}</view>
|
||
<text class="iconfont icon-xiangyou"></text>
|
||
</view>
|
||
|
||
<block v-for="(item,indx) in productData" :key="indx">
|
||
<view class="product-item">
|
||
<view class="img-box">
|
||
<image :src="item.image" width="170rpx" height="180rpx" />
|
||
</view>
|
||
<view class="content event_content">
|
||
<view class="name line1">
|
||
{{item.store_name}}
|
||
</view>
|
||
<view style="margin-top: 30rpx;color: #FF5C2D;">
|
||
¥{{item.price}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
</view>
|
||
|
||
<view class='wrapper'>
|
||
<view class='item'>
|
||
<view style="font-weight: bold;">支付方式</view>
|
||
<view class='list'>
|
||
<!-- #ifdef H5 -->
|
||
<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">
|
||
<view class='name acea-row row-center-wrapper'>
|
||
<view class='iconfont animated'
|
||
:class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view>
|
||
{{item.name}}
|
||
</view>
|
||
<view class='tip'>
|
||
{{item.title}}
|
||
<block v-if="item.value == 'balance'">
|
||
{{userInfo.now_money}}
|
||
</block>
|
||
</view>
|
||
</view>
|
||
<!-- #endif -->
|
||
<!-- #ifdef MP || APP-PLUS -->
|
||
<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">
|
||
<view class='name acea-row row-center-wrapper'>
|
||
<view class='iconfont animated'
|
||
:class='(item.icon) + " " + (animated==true&&active==index ?"bounceIn":"")'></view>
|
||
{{item.name}}
|
||
</view>
|
||
<view class='tip'>
|
||
{{item.title}}
|
||
<block v-if="item.value == 'balance'">
|
||
{{userInfo.now_money}}
|
||
</block>
|
||
</view>
|
||
</view>
|
||
<!-- #endif -->
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class='moneyList'>
|
||
<view class='item acea-row row-between-wrapper'>
|
||
<view>商品总价:</view>
|
||
<view class='money'>¥{{payForm.money}}</view>
|
||
</view>
|
||
|
||
<view class='item acea-row row-between-wrapper'>
|
||
<view>补贴抵扣</view>
|
||
<block v-if="platformConsumption.length > 0">
|
||
<view class='discount money red_packet' @click="couponTap3()">
|
||
<text v-if="consumption_id">-¥{{consumption_money||'0.00'}}</text>
|
||
<text v-else>有补贴补贴未选</text>
|
||
<text class='iconfont icon-jiantou'></text>
|
||
</view>
|
||
</block>
|
||
<block v-else>
|
||
<view class='discount'>暂无抵扣红包</view>
|
||
</block>
|
||
</view>
|
||
</view>
|
||
<view style='height:140rpx;'></view>
|
||
|
||
<view class='footer acea-row row-between-wrapper'>
|
||
<view class="footer_count">
|
||
<view>
|
||
合计:
|
||
<text class='pColor' v-if="cartArr[4].payStatus == 1 && active == 4">¥0.00</text>
|
||
<text class='pColor' v-else>¥{{ total_coupon }}</text>
|
||
</view>
|
||
</view>
|
||
<view class='settlement' :class='couponData.status != "noAddress" ? "" : "disabled"' style='z-index:100'
|
||
@tap="SubOrder">{{couponData.status != "noAddress" ? '提交订单':'选择地址'}}</view>
|
||
</view>
|
||
|
||
|
||
<!-- 支付密码 键盘 -->
|
||
<popups ref="popups" :isPay="true" @confirm="handleConfirm" @clear="handleClear" @change="handleChange" />
|
||
|
||
<!-- 密码错误事件处理 -->
|
||
<payPwd ref="payPwd" @left="handleLeft" @right="handleRight"></payPwd>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
<script>
|
||
// +----------------------------------------------------------------------
|
||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | Author: CRMEB Team <admin@crmeb.com>
|
||
// +----------------------------------------------------------------------
|
||
let app = getApp();
|
||
import {
|
||
orderConfirm,
|
||
createOrder
|
||
} from '@/api/order.js';
|
||
import {
|
||
getUserInfo,
|
||
} from '@/api/user.js';
|
||
import {
|
||
openPaySubscribe
|
||
} from '@/utils/SubscribeMessage.js';
|
||
import {
|
||
mapGetters
|
||
} from "vuex";
|
||
import {
|
||
configMap
|
||
} from '@/utils';
|
||
import {
|
||
orderPay,
|
||
orderCheck
|
||
} from "@/api/payment.js";
|
||
import {
|
||
verifyPwd
|
||
} from '@/api/order.js';
|
||
import payPwd from "@/components/payPwd/index.vue";
|
||
import popups from "@/components/popups/index.vue";
|
||
|
||
export default {
|
||
components: {
|
||
payPwd,
|
||
popups
|
||
},
|
||
data() {
|
||
return {
|
||
platformConsumption: [],
|
||
//支付方式
|
||
cartArr: [{
|
||
"name": "微信支付",
|
||
"icon": "icon-weixin2",
|
||
value: 'weixin',
|
||
title: '微信快捷支付',
|
||
payStatus: 1,
|
||
},
|
||
{
|
||
name: "支付宝支付",
|
||
icon: "icon-icon34",
|
||
// #ifdef H5 || APP-PLUS
|
||
value: 'alipay',
|
||
// #endif
|
||
// #ifdef MP
|
||
value: 'alipayQr',
|
||
// #endif
|
||
title: '支付宝支付',
|
||
payStatus: this.$store.getters.globalData.alipay_open
|
||
},
|
||
{
|
||
"name": "余额支付",
|
||
"icon": "icon-icon-test",
|
||
value: 'balance',
|
||
title: '可用余额:',
|
||
payStatus: this.$store.getters.globalData.yue_pay_status,
|
||
},
|
||
{
|
||
"name": "线下支付",
|
||
"icon": "icon-yinhangqia",
|
||
value: 'offline',
|
||
title: '线下支付',
|
||
payStatus: 2,
|
||
}, {
|
||
"name": "先货后款",
|
||
"icon": "tan-a-lujing17324",
|
||
value: 'creditBuy',
|
||
title: `结算周期:${this.settle_cycle}天 日利率:${this.interest_rate}%`,
|
||
payStatus: '',
|
||
},
|
||
],
|
||
tagStyle: {
|
||
img: 'width:100%;display:block;',
|
||
video: 'width:100%;'
|
||
},
|
||
radioList: [{
|
||
title: this.deliveryName,
|
||
check: true
|
||
}, {
|
||
title: '到店核销',
|
||
check: false
|
||
}],
|
||
payType: 'weixin', //支付方式
|
||
active: 0, //支付方式切换
|
||
address: {
|
||
address: false
|
||
}, //地址组件
|
||
couponId: 0, //优惠券id
|
||
cartId: '', //购物车id
|
||
userInfo: {}, //用户信息
|
||
coupon_price: 0, //优惠券抵扣金额
|
||
ChangePrice: 0, //使用积分抵扣变动后的金额
|
||
formIds: [], //收集formid
|
||
status: 0,
|
||
is_address: false,
|
||
toPay: false, //修复进入支付时页面隐藏从新刷新页面
|
||
cartInfo: [],
|
||
priceGroup: {},
|
||
animated: false,
|
||
totalPrice: 0,
|
||
offlinePostage: "",
|
||
|
||
from: '',
|
||
orderStatus: '', //是否有地址
|
||
couponIndex: 0, //选择商铺优惠券索引
|
||
subCoupon: {}, //提交订单使用的优惠券
|
||
couponData: {},
|
||
orderPay: false,
|
||
pics: [],
|
||
extend: [],
|
||
virtualIndex: 0,
|
||
platformCoupon: [],
|
||
total_platform_coupon_price: 0,
|
||
enabledPlatformCoupon: false,
|
||
plantCoupon: false,
|
||
order_key: '',
|
||
product_type: '',
|
||
source: null,
|
||
settle_cycle: '', // 周期
|
||
type_id: '', //店铺类型
|
||
consumption_id: '', //补贴id
|
||
consumption_money: '', //补贴抵扣金额
|
||
total_coupon: '', //合计
|
||
payForm: {
|
||
cart_id: '',
|
||
address_id: '',
|
||
consumption_id: '',
|
||
use_coupon: '',
|
||
takes: '',
|
||
use_integral: '',
|
||
receipt_data: [],
|
||
mark: '',
|
||
pay_type: '',
|
||
money: '',
|
||
merName: '',
|
||
return_url: '',
|
||
key: '',
|
||
source: 999,
|
||
},
|
||
checkForm: {
|
||
address_id: '',
|
||
cart_id: [],
|
||
consumption_id: '',
|
||
product_type: 0,
|
||
source: 999,
|
||
takes: [],
|
||
use_coupon: {},
|
||
use_integral: false,
|
||
key: ''
|
||
},
|
||
productData: [],
|
||
orderData: {}
|
||
};
|
||
},
|
||
computed: {
|
||
...mapGetters(['isLogin', 'viewColor']),
|
||
...configMap(['hide_mer_status', 'yue_pay_status']),
|
||
},
|
||
watch: {
|
||
yue_pay_status(n) {
|
||
this.payMode[2].payStatus = n
|
||
}
|
||
},
|
||
onLoad: function(options) {
|
||
// options.money = parseFloat(options.money).toFixed(2);
|
||
// this.payForm.cart_id = options.cartId;
|
||
// this.payForm.money = options.money;
|
||
// this.payForm.merName = options.merName;
|
||
// this.checkForm.cart_id = options.cartId.split(',');
|
||
// this.total_coupon = options.money;
|
||
|
||
// this.platformConsumption = [{
|
||
// balance: "39000.00",
|
||
// coupon_price: "50000.00",
|
||
// coupon_title: "春耕采购余额",
|
||
// coupon_user_id: 178,
|
||
// describe: "仅限平台指定商家商品可使用",
|
||
// end_time: "2025-07-01 00:00:00",
|
||
// start_time: "2024-03-02 14:15:17",
|
||
// uid: 889
|
||
// }]
|
||
|
||
|
||
let data = uni.getStorageSync("datas");
|
||
this.productData = data.productData;
|
||
this.platformConsumption = data.platformConsumption || [];
|
||
|
||
this.checkForm.cart_id = data.checkForm.cart_id;
|
||
this.payForm.cart_id = this.checkForm.cart_id;
|
||
this.payForm.money = data.money;
|
||
this.payForm.merName = data.merName;
|
||
this.payForm.key = data.key;
|
||
this.total_coupon = data.money;
|
||
this.checkForm.key = data.key;
|
||
|
||
// #ifdef H5
|
||
this.from = this.$wechat.isWeixin() ? 'weixin' : 'h5'
|
||
// #endif
|
||
// #ifdef MP
|
||
this.from = 'routine'
|
||
// #endif
|
||
// #ifdef APP-PLUS
|
||
this.from = 'weixin'
|
||
// #endif
|
||
|
||
if (!this.isLogin) {
|
||
this.isAuto = true;
|
||
this.isShowAuth = true
|
||
}
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function() {
|
||
this.getUserInfo()
|
||
},
|
||
|
||
methods: {
|
||
couponTap3: function(item, index) {
|
||
uni.navigateTo({
|
||
url: '/pages/redpacket/redpacket',
|
||
success: (res) => {
|
||
res.eventChannel.emit('changeRedPacketInfo', this.platformConsumption)
|
||
uni.$once('changeRedPacket', (data) => {
|
||
this.consumption_id = data;
|
||
orderCheck({
|
||
...this.checkForm,
|
||
consumption_id: this.consumption_id
|
||
}).then(res => {
|
||
this.total_coupon = res.data.order_price;
|
||
this.consumption_money = res.data.consumption_money;
|
||
this.payForm.consumption_id = this.consumption_id;
|
||
// this.payForm.money = res.data.order_price;
|
||
})
|
||
})
|
||
}
|
||
})
|
||
},
|
||
// 授权关闭
|
||
authColse: function(e) {
|
||
console.log(e, 'authColse')
|
||
this.isShowAuth = e;
|
||
},
|
||
onLoadFun() {
|
||
this.isShowAuth = false;
|
||
},
|
||
|
||
// 获取个人信息
|
||
getUserInfo() {
|
||
getUserInfo().then(res => {
|
||
this.userInfo = res.data
|
||
})
|
||
},
|
||
|
||
payItem: function(e) {
|
||
let that = this;
|
||
let active = e;
|
||
that.active = active;
|
||
// console.log(this.active);
|
||
that.animated = true;
|
||
that.payType = that.cartArr[active].value;
|
||
if (that.payType == 'weixin') {
|
||
that.payType = that.from
|
||
}
|
||
},
|
||
|
||
payment: function(data) {
|
||
let that = this;
|
||
createOrder(data).then(res => {
|
||
let status = res.data.status,
|
||
orderId = res.data.result.order_id,
|
||
jsConfig = res.data.result.config,
|
||
// 暂不跳转
|
||
goPages = '/pages/order_pay_status/index?order_id=' + orderId + '&msg=' + res.message +
|
||
'&product_type=' + that.payForm.product_type + '&source=' + that.payForm.source,
|
||
goPagesOrder = '/pages/order_details/stay?order_id=' + orderId +
|
||
'&credit_buy=1&product_type=' + that.payForm.product_type;
|
||
that.orderPay = true;
|
||
uni.hideLoading();
|
||
switch (status) {
|
||
case 'ORDER_EXIST':
|
||
case 'EXTEND_ORDER':
|
||
case 'PAY_ERROR':
|
||
case 'error':
|
||
return that.$util.Tips({
|
||
title: res.message
|
||
}, {
|
||
tab: 5,
|
||
url: goPagesOrder
|
||
});
|
||
break;
|
||
case 'success':
|
||
return that.$util.Tips({
|
||
title: res.message,
|
||
icon: 'success'
|
||
}, {
|
||
tab: 5,
|
||
url: goPages
|
||
});
|
||
break;
|
||
case 'alipay':
|
||
case "alipayQr":
|
||
return;
|
||
break;
|
||
// #ifndef MP
|
||
case "wechat":
|
||
case "weixin":
|
||
case "weixinApp":
|
||
jsConfig.timeStamp = jsConfig.timestamp;
|
||
// #ifndef APP-PLUS
|
||
this.$wechat.pay(jsConfig).then(res => {
|
||
return that.$util.Tips({
|
||
title: res.message,
|
||
icon: 'success'
|
||
}, {
|
||
tab: 4,
|
||
url: goPages
|
||
});
|
||
}).catch(res => {
|
||
if (res.errMsg == 'chooseWXPay:cancel') return that.$util.Tips({
|
||
title: '取消支付'
|
||
}, {
|
||
tab: 5,
|
||
url: goPages + '&status=0'
|
||
});
|
||
})
|
||
// #endif
|
||
// #ifdef APP-PLUS
|
||
let mp_pay_name = ''
|
||
if (uni.requestOrderPayment) {
|
||
mp_pay_name = 'requestOrderPayment'
|
||
} else {
|
||
mp_pay_name = 'requestPayment'
|
||
}
|
||
uni[mp_pay_name]({
|
||
provider: 'wxpay',
|
||
orderInfo: jsConfig,
|
||
success: (e) => {
|
||
// 暂不跳转
|
||
let url = '/pages/order_pay_status/index?order_id=' + orderId +
|
||
'&msg=支付成功' + '&product_type=' + that.product_type +
|
||
'&source=' + that.source;
|
||
|
||
return that.$util.Tips({
|
||
title: '支付成功',
|
||
icon: 'success'
|
||
}, {
|
||
tab: 4,
|
||
url: url
|
||
});
|
||
},
|
||
fail: (e) => {
|
||
console.log(e, '111111111')
|
||
// 暂不跳转
|
||
let url = '/pages/order_pay_status/index?order_id=' + orderId +
|
||
'&msg=取消支付' + '&product_type=' + that.product_type +
|
||
'&source=' + that.source;
|
||
return that.$util.Tips({
|
||
title: '取消支付',
|
||
}, {
|
||
tab: 4,
|
||
url: url
|
||
});
|
||
},
|
||
complete: (res) => {
|
||
uni.hideLoading();
|
||
},
|
||
});
|
||
// #endif
|
||
break;
|
||
// #endif
|
||
// #ifdef MP
|
||
case "routine":
|
||
jsConfig.timeStamp = jsConfig.timestamp;
|
||
that.toPay = true;
|
||
let mp_pay_name = ''
|
||
if (uni.requestOrderPayment) {
|
||
mp_pay_name = 'requestOrderPayment'
|
||
} else {
|
||
mp_pay_name = 'requestPayment'
|
||
}
|
||
uni[mp_pay_name]({
|
||
...jsConfig,
|
||
success: function(res) {
|
||
uni.hideLoading();
|
||
return that.$util.Tips({
|
||
title: '支付成功',
|
||
icon: 'success'
|
||
}, {
|
||
tab: 5,
|
||
url: goPages
|
||
});
|
||
},
|
||
fail: function(e) {
|
||
// 暂不跳转
|
||
let pages = '/pages/order_pay_status/index?order_id=' +
|
||
orderId + '&msg=取消支付' + '&product_type=' + that
|
||
.product_type + '&source=' + that.source;
|
||
return that.$util.Tips({
|
||
title: '取消支付'
|
||
}, {
|
||
tab: 5,
|
||
url: pages + '&status=0'
|
||
});
|
||
},
|
||
})
|
||
break;
|
||
// #endif
|
||
case "balance":
|
||
//余额
|
||
return that.$util.Tips({
|
||
title: res.msg
|
||
}, {
|
||
tab: 5,
|
||
url: goPages + '&status=1'
|
||
});
|
||
break;
|
||
// #ifdef H5
|
||
case 'h5':
|
||
let host = window.location.protocol + "//" + window.location.host;
|
||
let url =
|
||
`${host}/pages/order_pay_status/index?order_id=${orderId}&msg=${res.message}&product_type=${that.product_type}&source${that.source}`
|
||
let eUrl = encodeURIComponent(url)
|
||
let jsurl = jsConfig.mweb_url || jsConfig.h5_url
|
||
let locations = `${jsurl}&redirect_url=${eUrl}`
|
||
// 暂不跳转
|
||
setTimeout(() => {
|
||
location.href = locations;
|
||
}, 100);
|
||
break;
|
||
// #endif
|
||
default:
|
||
// 暂不跳转
|
||
let pages = '/pages/order_pay_status/index?order_id=' +
|
||
orderId + '&msg=取消支付' + '&product_type=' + that.product_type + '&source=' +
|
||
that.source
|
||
|
||
return that.$util.Tips({
|
||
title: '取消支付'
|
||
}, {
|
||
tab: 5,
|
||
url: pages + '&status=0'
|
||
});
|
||
}
|
||
}).catch(err => {
|
||
return that.$util.Tips({
|
||
title: err
|
||
});
|
||
uni.hideLoading();
|
||
});
|
||
},
|
||
|
||
SubOrder: async function() {
|
||
let that = this,
|
||
data = {};
|
||
if (!that.payType) return that.$util.Tips({
|
||
title: '请选择支付方式'
|
||
});
|
||
|
||
if (that.payType == 'balance' && this.userInfo.now_money < this.payForm.money) {
|
||
return that.$util.Tips({
|
||
title: '余额不足,请选择其他的支付方式!'
|
||
});
|
||
}
|
||
this.payForm.pay_type = that.payType;
|
||
|
||
// 设置支付密码
|
||
if (that.payType == 'balance' || that.payType == 'merBalance') {
|
||
// 是否输入密码
|
||
const result = await this.$util.checkPassword();
|
||
if (result.data.code == 101) { //未设置支付密码
|
||
return this.$util.Tips({
|
||
title: "您暂未设置支付密码,请前往设置!"
|
||
}, () => {
|
||
uni.navigateTo({
|
||
url: "/pages/users/user_modify_pwd/index?type=payPwd"
|
||
});
|
||
})
|
||
}
|
||
this.$refs.popups.handleOpen();
|
||
} else {
|
||
uni.showLoading({
|
||
title: '订单支付中',
|
||
mask: true
|
||
});
|
||
this.truePayOrder(data);
|
||
}
|
||
},
|
||
|
||
// 输入密码回调
|
||
async handleConfirm(e) {
|
||
const result = await this.$util.checkPassword(e);
|
||
// 验证密码正确
|
||
if (result.data.code == 100) {
|
||
this.$set(this.payForm, 'withdrawal_pwd', e);
|
||
uni.showLoading({
|
||
title: '订单支付中',
|
||
mask: true
|
||
});
|
||
this.truePayOrder(this.payForm);
|
||
} else {
|
||
this.$refs.payPwd.handleOpen(result.data.code);
|
||
}
|
||
},
|
||
|
||
// 弹框左边按钮 101 未设置密码 102 忘记密码 都去设置密码
|
||
handleLeft(code) {
|
||
uni.navigateTo({
|
||
url: "/pages/users/user_modify_pwd/index?type=payPwd"
|
||
});
|
||
this.$refs.payPwd.handleClose();
|
||
},
|
||
|
||
// 弹框右边按钮 取消 重试
|
||
handleRight(code) {
|
||
if (code == 101) { //取消
|
||
this.$refs.payPwd.handleClose(code);
|
||
} else {
|
||
this.$refs.payPwd.handleClose();
|
||
this.$refs.popups.handleOpen();
|
||
}
|
||
},
|
||
|
||
handleClear() {},
|
||
handleChange() {},
|
||
|
||
truePayOrder() {
|
||
// #ifdef MP
|
||
openPaySubscribe().then(() => {
|
||
that.payment(this.payForm);
|
||
});
|
||
// #endif
|
||
|
||
// #ifndef MP
|
||
this.payment(this.payForm);
|
||
// #endif
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.order-submission .wrapper {
|
||
margin-bottom: 12rpx;
|
||
background-color: #fff;
|
||
}
|
||
|
||
.order-submission .wrapper .item {
|
||
padding: 27rpx 30rpx;
|
||
font-size: 30rpx;
|
||
color: #282828;
|
||
}
|
||
|
||
.order-submission .virtual_form {
|
||
padding: 0 30rpx;
|
||
}
|
||
|
||
/deep/.order-submission .virtual_form .uni-input-wrapper {
|
||
text-align: right;
|
||
}
|
||
|
||
.order-submission .virtual_form .item-require {
|
||
color: red;
|
||
margin-right: 4rpx;
|
||
}
|
||
|
||
.order-submission .virtual_form .item {
|
||
border-bottom: 1rpx solid #EEEEEE;
|
||
padding: 27rpx 0;
|
||
}
|
||
|
||
.upload {
|
||
display: -webkit-box;
|
||
display: -moz-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-box-lines: multiple;
|
||
-moz-box-lines: multiple;
|
||
-o-box-lines: multiple;
|
||
-webkit-flex-wrap: wrap;
|
||
-ms-flex-wrap: wrap;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.order-submission .virtual_form .pictrue {
|
||
width: 156rpx;
|
||
height: 156rpx;
|
||
margin: 24rpx 20rpx 0 0;
|
||
position: relative;
|
||
font-size: 11px;
|
||
color: #bbb;
|
||
border-radius: 3rpx;
|
||
|
||
&:nth-child(4n) {
|
||
margin-right: 0;
|
||
}
|
||
|
||
&:nth-last-child(1) {
|
||
border: 0.5px solid #ddd;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
uni-image,
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 1px;
|
||
|
||
img {
|
||
-webkit-touch-callout: none;
|
||
-webkit-user-select: none;
|
||
-moz-user-select: none;
|
||
display: block;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
opacity: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
.order-submission .wrapper .item .discount {
|
||
font-size: 30rpx;
|
||
color: #999;
|
||
|
||
&.discount_voice {
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
width: 500rpx;
|
||
text-align: right;
|
||
}
|
||
}
|
||
|
||
.order-submission .wrapper .item .discount .iconfont {
|
||
color: #515151;
|
||
font-size: 30rpx;
|
||
margin-left: 15rpx;
|
||
}
|
||
|
||
.order-submission .wrapper .item .discount .num {
|
||
font-size: 32rpx;
|
||
margin-right: 20rpx;
|
||
}
|
||
|
||
.order-submission .wrapper .item input {
|
||
flex: 1;
|
||
height: 100%;
|
||
margin-left: 20rpx;
|
||
text-align: right;
|
||
}
|
||
|
||
.order-submission .wrapper .item .placeholder {
|
||
color: #ccc;
|
||
}
|
||
|
||
.order-submission .wrapper .item .list {
|
||
margin-top: 35rpx;
|
||
}
|
||
|
||
.order-submission .wrapper .item .list .payItem {
|
||
border: 1px solid #eee;
|
||
border-radius: 6rpx;
|
||
height: 86rpx;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
margin-top: 20rpx;
|
||
font-size: 28rpx;
|
||
color: #282828;
|
||
}
|
||
|
||
.order-submission .wrapper .item .list .payItem.on {
|
||
border-color: var(--view-theme);
|
||
color: var(--view-theme);
|
||
}
|
||
|
||
.order-submission .wrapper .item .list .payItem .name {
|
||
width: 50%;
|
||
text-align: center;
|
||
border-right: 1px solid #eee;
|
||
justify-content: left;
|
||
padding-left: 80rpx;
|
||
}
|
||
|
||
.order-submission .wrapper .item .list .payItem .name .iconfont {
|
||
width: 44rpx;
|
||
height: 44rpx;
|
||
border-radius: 50%;
|
||
text-align: center;
|
||
line-height: 44rpx;
|
||
background-color: #fe960f;
|
||
color: #fff;
|
||
font-size: 30rpx;
|
||
margin-right: 15rpx;
|
||
}
|
||
|
||
.order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2 {
|
||
background-color: #41b035;
|
||
}
|
||
|
||
.order-submission .wrapper .item .list .payItem .name .iconfont.icon-icon34 {
|
||
background-color: #4295D5;
|
||
}
|
||
|
||
.order-submission .wrapper .item .list .payItem .tip {
|
||
width: 49%;
|
||
text-align: center;
|
||
font-size: 26rpx;
|
||
color: #aaa;
|
||
}
|
||
|
||
.order-submission .moneyList {
|
||
margin-top: 12rpx;
|
||
background-color: #fff;
|
||
padding: 30rpx;
|
||
}
|
||
|
||
.order-submission .moneyList .item {
|
||
font-size: 28rpx;
|
||
color: #282828;
|
||
}
|
||
|
||
.order-submission .moneyList .item~.item {
|
||
margin-top: 20rpx;
|
||
}
|
||
|
||
.order-submission .moneyList .item .money {
|
||
color: #868686;
|
||
}
|
||
|
||
.order-submission .footer {
|
||
width: 100%;
|
||
height: 100rpx;
|
||
height: calc(100rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
||
height: calc(100rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
||
background-color: #fff;
|
||
padding: 0 30rpx;
|
||
font-size: 28rpx;
|
||
color: #333;
|
||
box-sizing: border-box;
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
z-index: 30;
|
||
|
||
.footer_count {
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.coupon_price {
|
||
color: #999999;
|
||
font-size: 20rpx;
|
||
margin-top: 10rpx;
|
||
|
||
text {
|
||
color: #282828;
|
||
padding: 2rpx 10rpx;
|
||
background: #F5F5F5;
|
||
border-radius: 26rpx;
|
||
margin-left: 20rpx;
|
||
line-height: 30rpx;
|
||
height: 30rpx;
|
||
display: inline-block;
|
||
}
|
||
}
|
||
}
|
||
|
||
.pColor {
|
||
color: var(--view-priceColor);
|
||
}
|
||
|
||
.order-submission .footer .settlement {
|
||
font-size: 30rpx;
|
||
color: #fff;
|
||
width: 240rpx;
|
||
height: 70rpx;
|
||
background-color: var(--view-theme);
|
||
border-radius: 50rpx;
|
||
text-align: center;
|
||
line-height: 70rpx;
|
||
|
||
&.disabled {
|
||
background-color: #cccccc;
|
||
}
|
||
}
|
||
|
||
.storeinfo-wrapper {
|
||
.store-item {
|
||
margin-top: 12rpx;
|
||
background-color: #fff;
|
||
|
||
.store-title {
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 28rpx 30rpx;
|
||
|
||
.icon-shangjiadingdan {
|
||
font-size: 32rpx;
|
||
}
|
||
|
||
.icon-xiangyou {
|
||
font-size: 26rpx;
|
||
color: #999;
|
||
}
|
||
|
||
.txt {
|
||
margin: 0 8rpx;
|
||
}
|
||
}
|
||
|
||
.product-item {
|
||
display: flex;
|
||
padding: 25rpx 30rpx;
|
||
border-top: 1px solid #F0F0F0;
|
||
|
||
.img-box {
|
||
width: 130rpx;
|
||
height: 130rpx;
|
||
|
||
image {
|
||
width: 130rpx;
|
||
height: 130rpx;
|
||
border-radius: 16rpx;
|
||
}
|
||
}
|
||
|
||
.content {
|
||
position: relative;
|
||
width: 550rpx;
|
||
margin-left: 30rpx;
|
||
font-size: 28rpx;
|
||
color: #282828;
|
||
overflow: hidden;
|
||
|
||
&.event_content {
|
||
.line1 {
|
||
width: 360rpx;
|
||
}
|
||
|
||
.price {
|
||
position: absolute;
|
||
top: 0;
|
||
right: 0;
|
||
margin-top: 0;
|
||
|
||
text {
|
||
display: block;
|
||
text-align: right;
|
||
}
|
||
}
|
||
}
|
||
|
||
.label {
|
||
margin-top: 10rpx;
|
||
color: #868686;
|
||
font-size: 20rpx;
|
||
}
|
||
|
||
.price {
|
||
margin-top: 20rpx;
|
||
color: var(--view-priceColor);
|
||
position: relative;
|
||
|
||
text {
|
||
margin-left: 10rpx;
|
||
color: #999;
|
||
}
|
||
|
||
.delivery_type {
|
||
float: right;
|
||
|
||
text {
|
||
color: var(--view-priceColor);
|
||
font-size: 20rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
uni-checkbox-group,
|
||
.checkgroup {
|
||
width: 100%;
|
||
|
||
.checkbox {
|
||
float: right;
|
||
}
|
||
}
|
||
|
||
.total {
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
padding-right: 30rpx;
|
||
padding-bottom: 30rpx;
|
||
font-size: 26rpx;
|
||
color: #282828;
|
||
|
||
.price {
|
||
margin-left: 10rpx;
|
||
color: var(--view-priceColor);
|
||
font-size: 28rpx;
|
||
font-weight: bold;
|
||
|
||
text {
|
||
font-size: 20rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.red_packet {
|
||
color: #ff5c2d !important;
|
||
background-color: rgba(#ff5c2d, 0.3);
|
||
border-radius: 60rpx;
|
||
padding: 5rpx 10rpx;
|
||
padding-left: 20rpx;
|
||
font-size: 25rpx;
|
||
}
|
||
</style> |