deming/pageC/cart/ConfirmOrder.vue

615 lines
16 KiB
Vue
Raw Normal View History

2020-06-09 17:33:12 +08:00
<template>
<view class="order">
2020-07-30 20:33:16 +08:00
<view class="info-address" @click="changeAddress" v-if="JSON.stringify(addressInfo) != '{}'">
2020-06-09 17:33:12 +08:00
<image src="../static/image/2.png" class="address-icon"></image>
<view class="address">
<view class="user-info">
2020-07-06 17:32:29 +08:00
<view>{{ addressInfo.address_realname }}</view>
<view>{{ addressInfo.address_mob_phone }}</view>
2020-06-09 17:33:12 +08:00
</view>
2020-07-06 17:32:29 +08:00
<view class="address-text u-line-2">{{ addressInfo.area_info + addressInfo.address_detail }}</view>
2020-06-09 17:33:12 +08:00
</view>
<image src="../static/image/1.png" class="right"></image>
</view>
2020-07-30 20:33:16 +08:00
<view v-else class="address-none" @click="changeAddress">请选择地址</view>
2020-06-09 17:33:12 +08:00
<view class="main">
2020-06-30 18:06:50 +08:00
<view v-for="(item, index) in orderInfo.store_cart_list" :key="index">
<view class="goods-info">
<view class="store">
2020-08-04 19:08:04 +08:00
<image class="avatar" :src="orderInfo.store_list[index].store_avatar"></image>
2020-06-30 18:06:50 +08:00
<view>{{ item[0].store_name }}</view>
<image src="../static/image/1.png" class="right"></image>
</view>
<view class="goods">
<view v-for="(goods, g_index) in item" :key="g_index" class="goods-item">
<image :src="goods.goods_image_url"></image>
<view class="info">
<view class="name u-line-2">{{ goods.goods_name }}</view>
<view class="cart-info">
<view class="price">{{ goods.goods_price }}</view>
2020-07-14 17:43:15 +08:00
<view>×{{ goods.goods_num }}</view>
2020-06-30 18:06:50 +08:00
</view>
2020-06-09 17:33:12 +08:00
</view>
</view>
</view>
</view>
2020-06-30 18:06:50 +08:00
<view class="order-info">
2020-07-23 14:56:20 +08:00
<view @click="showCoupon({type: 2, store_id: item[0].store_id})" v-if="orderType == 1 || orderType == 5">
2020-06-30 18:06:50 +08:00
<view class="title">优惠券折扣</view>
<view class="value">
2020-07-23 14:56:20 +08:00
<view>-{{ storeCoupon[item[0].store_id] ? storeCoupon[item[0].store_id].voucher_price.toFixed(2) : '0.00' }}</view>
2020-06-30 18:06:50 +08:00
<image src="../static/image/1.png"></image>
</view>
2020-06-09 17:33:12 +08:00
</view>
2020-07-16 17:39:06 +08:00
<view>
<view class="title">运费</view>
2020-06-30 18:06:50 +08:00
<view class="value">
2020-07-16 17:39:06 +08:00
<view v-if="freight">{{ freight | setFreight(index) }}</view>
2020-06-30 18:06:50 +08:00
</view>
2020-07-16 17:39:06 +08:00
</view>
2020-07-14 09:15:51 +08:00
</view>
</view>
</view>
<view class="common-active">
2020-07-23 14:56:20 +08:00
<view @click="showCoupon({type: 1})" v-if="orderType == 1 || orderType == 5">
2020-07-14 09:15:51 +08:00
<view class="title">平台优惠券</view>
<view class="value">
2020-07-23 14:56:20 +08:00
<view>-{{ choiceCoupon.vouchertemplate_id ? choiceCoupon.voucher_price.toFixed(2) : '0.00' }}</view>
2020-07-14 09:15:51 +08:00
<image src="../static/image/1.png"></image>
</view>
</view>
2020-07-16 17:39:06 +08:00
<view @click="showDelivery=true">
2020-07-14 09:15:51 +08:00
<view class="title">配送方式</view>
<view class="value">
2020-07-16 17:39:06 +08:00
<view>{{ delivery.text }}</view>
2020-07-14 09:15:51 +08:00
<image src="../static/image/1.png"></image>
2020-06-09 17:33:12 +08:00
</view>
</view>
</view>
2020-07-18 17:43:37 +08:00
<u-popup v-model="couponStatus" mode="bottom">
2020-07-23 14:56:20 +08:00
<scroll-view class="coupon-choose" scroll-y style="height: 800rpx;" v-if="this.couponType.type == 1">
2020-07-18 17:43:37 +08:00
<view class="title">优惠券详情</view>
2020-07-27 17:59:47 +08:00
<view class="text">平台优惠券</view>
2020-07-23 14:56:20 +08:00
<Coupon :couponInfo="coupon" @use="useCoupon($event)" :goodsClass="goodsClass" v-for="(coupon, index) in orderInfo.store_voucher_all_list" :key="index"></Coupon>
<u-empty text="无可用优惠券" mode="coupon" v-if="!orderInfo.store_voucher_all_list.length"></u-empty>
</scroll-view>
<scroll-view class="coupon-choose" scroll-y style="height: 800rpx;" v-if="this.couponType.type == 2">
<view class="title">优惠券详情</view>
2020-07-27 17:59:47 +08:00
<view class="text">店铺优惠券</view>
2020-07-23 14:56:20 +08:00
<Coupon :couponInfo="coupon" @use="useCoupon($event)" :goodsClass="goodsClass" v-for="(coupon, index) in orderInfo.store_voucher_list[this.couponType.store_id]" :key="index"></Coupon>
<u-empty text="无可用优惠券" mode="coupon" v-if="!orderInfo.store_voucher_list[this.couponType.store_id].length"></u-empty>
2020-07-18 17:43:37 +08:00
</scroll-view>
</u-popup>
2020-06-10 16:06:01 +08:00
<view class="bottom">
<view class="left">
<view class="title">合计</view>
2020-07-16 17:39:06 +08:00
<view class="price">{{ totalPrice }}</view>
2020-06-10 16:06:01 +08:00
</view>
<view class="right">
2020-07-14 09:15:51 +08:00
<view class="num">共件{{ orderInfo.store_cart_list | setTotalNumber }}商品</view>
2020-07-22 18:51:48 +08:00
<view class="btn" @click="intermediate">结算</view>
2020-06-10 16:06:01 +08:00
</view>
</view>
2020-07-16 17:39:06 +08:00
<u-action-sheet :list="deliveryList" @click="setDelivery" border-radius="10" v-model="showDelivery"></u-action-sheet>
2020-06-09 17:33:12 +08:00
</view>
</template>
<script>
2020-07-20 17:17:41 +08:00
import Coupon from "@/components/mine/coupon/mine";
2020-06-09 17:33:12 +08:00
export default {
data() {
2020-06-30 18:06:50 +08:00
return {
2020-07-16 17:39:06 +08:00
showDelivery: false,
2020-06-30 18:06:50 +08:00
orderInfo: {},
totalPrice: '0.00',
2020-07-06 17:32:29 +08:00
addressInfo: {},
2020-07-16 17:39:06 +08:00
freight: {}, // 运费
isTakeawayer: '', // 是否支持骑手
deliveryList: [{
text: '快递',
value: 'express',
}, {
text: '骑手',
value: 'takeawayer',
}],
delivery: {
text: '快递',
value: 'express',
}, // 配送方式
2020-07-18 17:43:37 +08:00
couponList: [],
couponStatus: false,
2020-07-23 14:56:20 +08:00
couponType: {}, // 选择的优惠券
storeCoupon: {}, // 选中的店铺优惠券
2020-07-18 17:43:37 +08:00
choiceCoupon: {}, // 使用的平台优惠券
2020-07-20 17:17:41 +08:00
goodsClass: [],
2020-07-22 18:51:48 +08:00
orderType: '', // 订单类型 1 普通订单 2 拼团订单 3 秒杀订单 4 优惠券 5 购物车订单
2020-08-03 18:38:04 +08:00
debounce: true,
2020-06-30 18:06:50 +08:00
}
},
2020-07-18 17:43:37 +08:00
components: {
Coupon
},
2020-06-30 18:06:50 +08:00
filters: {
2020-07-14 09:15:51 +08:00
setTotalNumber(data) {
let num = 0;
for (const key in data) {
if (data.hasOwnProperty(key)) {
2020-07-14 17:43:15 +08:00
const element = data[key];
element.forEach(item => {
num += item.goods_num;
})
2020-07-14 09:15:51 +08:00
}
}
return num;
},
2020-07-16 17:39:06 +08:00
setFreight(freight, index) {
return freight[index];
}
2020-06-30 18:06:50 +08:00
},
onLoad(option) {
2020-07-21 21:02:28 +08:00
this.orderType = this.$store.state.orderType;
this.orderInfo = this.$store.state.orderInfo;
2020-07-25 17:51:01 +08:00
// console.log(this.orderType);
2020-07-30 20:33:16 +08:00
// console.log(this.orderInfo);
2020-07-23 14:56:20 +08:00
this.getGoodsClass();
2020-07-30 20:33:16 +08:00
this.setTotalPrice();
2020-07-16 17:39:06 +08:00
},
onShow() {
2020-08-03 18:38:04 +08:00
this.debounce = true;
2020-07-27 17:59:47 +08:00
this.storeCoupon = {};
this.choiceCoupon = {};
2020-07-16 17:39:06 +08:00
// 判断是不是从选择地址页面返回
if(JSON.stringify(this.$store.state.orderAddress) == '{}') {
2020-07-30 20:33:16 +08:00
if(this.orderInfo.address_info) this.$store.commit('updateAddress', this.orderInfo.address_info);
2020-07-16 17:39:06 +08:00
} else {
2020-07-30 20:33:16 +08:00
if(this.$store.getters.getOrderAddress) this.addressInfo = this.$store.state.orderAddress;
2020-07-16 17:39:06 +08:00
}
},
beforeDestroy() {
this.$store.commit('updateAddress', {});
},
watch: {
'$store.state.orderAddress'(value) {
this.addressInfo = value;
2020-07-30 20:33:16 +08:00
if(JSON.stringify(value) != '{}') this.getFreight();
2020-07-23 14:56:20 +08:00
},
2020-06-10 16:06:01 +08:00
},
methods: {
2020-07-22 18:51:48 +08:00
// 如果有pintuangroup_headid为参团不然为开团
async withImmediate(type) {
let params = {
pintuan_id: this.orderInfo.pintuan_id,
}
// console.log(this.involvemenGroupInfo);
if(this.orderInfo.pintuangroup_id) {
Object.assign(params, { pintuangroup_headid: this.$store.state.pintuangroup_headid });
Object.assign(params, { pintuangroup_id: this.orderInfo.pintuangroup_id });
}
// console.log(params);
this.$u.api.withImmediate(params).then(res => {
this.showGroupUser = false;
this.showInvolvementUser = false;
if(res.errCode == 0) {
this.sendOrder(0);
} else {
2020-08-03 18:38:04 +08:00
this.debounce = true;
2020-07-22 18:51:48 +08:00
this.$u.toast(res.message);
}
})
},
intermediate() {
2020-08-03 18:38:04 +08:00
if(!this.debounce) return;
this.debounce = false;
2020-07-24 19:48:57 +08:00
if(this.orderType == 2) {
2020-08-05 17:38:11 +08:00
// this.sendOrder(0);
2020-07-24 19:48:57 +08:00
this.withImmediate();
} else if(this.orderType == 1) {
this.sendOrder(0);
2020-08-05 17:38:11 +08:00
} else {
this.sendOrder(1);
2020-07-24 19:48:57 +08:00
}
2020-07-22 18:51:48 +08:00
},
2020-07-24 19:48:57 +08:00
// @params {Number} ifcart 是否是购物车商品
2020-07-22 18:51:48 +08:00
sendOrder(ifcart) {
2020-07-14 17:43:15 +08:00
// 拼接后端需要的数据形式
let id = [], temp = '';
const object = this.orderInfo.store_cart_list;
for (const key in object) {
if (object.hasOwnProperty(key)) {
const element = object[key];
element.forEach(item => {
temp = item.cart_id + '|' + item.goods_num;
id.push(temp);
temp = '';
})
}
}
2020-07-23 14:56:20 +08:00
// 拼接优惠券
let coupon = [];
for (const key in this.storeCoupon) {
if (this.storeCoupon.hasOwnProperty(key)) {
const element = this.storeCoupon[key];
temp = key + '|' + element.voucher_id;
coupon.push(temp);
temp = '';
}
}
// 平台券store_id写0
if(JSON.stringify(this.choiceCoupon) != '{}') {
coupon.push(0 + '|' + this.choiceCoupon.voucher_id)
}
2020-07-30 20:33:16 +08:00
// 验证是否选择地址
if(!this.addressInfo || JSON.stringify(this.addressInfo) == '{}') {
this.$u.toast('收货地址不能为空');
return false;
}
2020-07-21 21:02:28 +08:00
let params = {
2020-07-22 18:51:48 +08:00
ifcart: ifcart,
2020-07-14 17:43:15 +08:00
cart_id: id,
address_id: this.addressInfo.address_id,
2020-07-14 10:13:27 +08:00
buy_city_id: this.addressInfo.city_id,
2020-07-21 21:02:28 +08:00
}
2020-07-24 19:48:57 +08:00
if(coupon.length) Object.assign(params, { voucher_id: coupon });
2020-07-22 18:51:48 +08:00
if(this.orderType == 2) {
2020-07-24 19:48:57 +08:00
Object.assign(params, { pintuan_id: this.orderInfo.pintuan_id });
if(this.orderInfo.pintuangroup_id) Object.assign(params, { pintuangroup_id: this.orderInfo.pintuangroup_id });
2020-07-22 18:51:48 +08:00
}
2020-07-23 14:56:20 +08:00
// console.log(params);
2020-07-21 21:02:28 +08:00
this.$u.api.sendOrder(params).then(res => {
2020-07-14 17:43:15 +08:00
if(res.errCode == 0) {
2020-08-05 17:38:11 +08:00
// this.withImmediate();
2020-07-14 17:43:15 +08:00
this.$u.route({
2020-07-27 17:59:47 +08:00
type: 'redirect',
2020-07-14 17:43:15 +08:00
url: '/pageC/cart/cashier',
params: {
2020-08-03 19:51:05 +08:00
ifcart: params.ifcart,
2020-07-14 17:43:15 +08:00
pay_sn: res.data.pay_sn,
price: res.data.order_total_amount,
2020-08-03 19:51:05 +08:00
order_id: res.data.order_list[0].order_id,
2020-07-14 17:43:15 +08:00
}
})
2020-07-22 18:51:48 +08:00
} else {
2020-08-03 18:38:04 +08:00
this.debounce = true;
2020-07-22 18:51:48 +08:00
this.$u.toast(res.message);
2020-07-14 17:43:15 +08:00
}
2020-07-14 10:13:27 +08:00
})
2020-07-06 17:32:29 +08:00
},
2020-07-23 14:56:20 +08:00
showCoupon({ type, store_id = -1 } = {}) {
this.couponType = {
2020-07-18 17:43:37 +08:00
type: type,
2020-07-23 14:56:20 +08:00
store_id: store_id
2020-07-20 17:17:41 +08:00
}
2020-07-23 14:56:20 +08:00
this.couponStatus = true;
2020-07-18 17:43:37 +08:00
},
useCoupon(coupon) {
2020-07-23 14:56:20 +08:00
if(this.couponType.type == 1) this.choiceCoupon = coupon;
if(this.couponType.type == 2) {
Object.assign(this.storeCoupon, {
[this.couponType.store_id]: coupon
})
}
// console.log(this.choiceCoupon);
// console.log(this.storeCoupon);
2020-07-18 17:43:37 +08:00
this.couponStatus = false;
2020-07-23 14:56:20 +08:00
this.setTotalPrice(); // 计算总价
2020-07-18 17:43:37 +08:00
},
2020-07-06 17:32:29 +08:00
getFreight() {
this.$u.api.getFreight({
freight_hash: this.orderInfo.freight_hash,
city_id: this.addressInfo.city_id,
area_id: this.addressInfo.area_id,
2020-07-16 17:39:06 +08:00
delivery: this.delivery.value,
2020-07-06 17:32:29 +08:00
}).then(res => {
if(res.errCode == 0) {
2020-07-16 17:39:06 +08:00
this.freight = res.data.content;
this.isTakeawayer = res.data.delivery.takeawayer;
this.setTotalPrice(); // 计算总价
2020-07-06 17:32:29 +08:00
}
})
2020-06-30 18:06:50 +08:00
},
2020-07-23 14:56:20 +08:00
setTotalPrice() {
2020-07-16 17:39:06 +08:00
const goods = this.orderInfo.store_goods_total;
2020-08-01 16:36:48 +08:00
// console.log(this.freight);
2020-07-16 17:39:06 +08:00
const freight = this.freight;
let price = 0;
2020-07-23 14:56:20 +08:00
// 商品价格加上运费
2020-07-16 17:39:06 +08:00
[goods, freight].forEach(object => {
for (const key in object) {
if (object.hasOwnProperty(key)) {
const element = object[key];
price += Number(element);
}
}
})
2020-07-23 14:56:20 +08:00
// 减去优惠券
// 平台
if(JSON.stringify(this.choiceCoupon) != '{}') price -= Number(this.choiceCoupon.voucher_price);
// 店铺
if(JSON.stringify(this.storeCoupon) != '{}') {
for (const key in this.storeCoupon) {
if (this.storeCoupon.hasOwnProperty(key)) {
const element = this.storeCoupon[key];
price -= element.voucher_price;
}
}
}
2020-07-16 17:39:06 +08:00
// console.log(price);
2020-07-23 14:56:20 +08:00
this.totalPrice = price.toFixed(2);
2020-07-16 17:39:06 +08:00
},
setDelivery(index) {
if(index == 1) {
if(!this.isTakeawayer) this.$u.toast('此地区不支持骑手配送');
return false;
}
this.delivery = this.deliveryList[index];
this.getFreight();
},
2020-06-10 16:06:01 +08:00
settlement() {
uni.navigateTo({
url: '/pageE/order/Details'
});
},
2020-07-20 17:17:41 +08:00
getGoodsClass() {
this.$u.api.getGoodsClass().then(res => {
this.goodsClass = res.data;
})
},
2020-06-10 16:06:01 +08:00
changeAddress() {
uni.navigateTo({
2020-07-16 17:39:06 +08:00
url: '/pageE/more/Address?type=choose'
2020-06-10 16:06:01 +08:00
});
}
},
2020-06-09 17:33:12 +08:00
};
</script>
<style lang="scss" scoped>
.order {
2020-06-10 16:06:01 +08:00
min-height: calc(100vh - var(--window-top));
background-color: #ECECEC;
padding-top: 1rpx;
2020-06-09 17:33:12 +08:00
.info-address {
2020-06-10 16:06:01 +08:00
padding: 30rpx;
display: flex;
align-items: center;
margin-bottom: 10rpx;
background:rgba(255,255,255,1);
.address-icon {
width: 28rpx;
height: 34rpx;
margin-right: 31rpx;
flex-shrink: 0;
}
.address {
width: 570rpx;
.user-info {
display: flex;
align-items: center;
font-size: 28rpx;
color: rgba(51,51,51,1);
margin-bottom: 20rpx;
2020-07-14 09:15:51 +08:00
> view:first-child {
margin-right: 13rpx;
}
2020-06-10 16:06:01 +08:00
}
.address-text {
font-size: 24rpx;
color: rgba(102,102,102,1);
line-height: 42rpx;
}
}
.right {
flex-shrink: 0;
margin-left: auto;
width: 12rpx;
height: 22rpx;
}
}
2020-07-30 20:33:16 +08:00
.address-none {
height: 150rpx;
line-height: 150rpx;
margin-bottom: 10rpx;
background:rgba(255,255,255,1);
text-align: center;
color: #333;
}
2020-06-10 16:06:01 +08:00
.main {
2020-07-14 09:15:51 +08:00
margin-bottom: 50rpx;
2020-06-30 18:06:50 +08:00
> view {
2020-07-14 17:43:15 +08:00
margin-bottom: 20rpx;
2020-06-30 18:06:50 +08:00
.goods-info {
background-color: #ffffff;
padding: 30rpx;
margin-bottom: 2rpx;
.store {
2020-06-09 17:33:12 +08:00
display: flex;
align-items: center;
2020-06-30 18:06:50 +08:00
margin-bottom: 20rpx;
.avatar {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
margin-right: 15rpx;
2020-08-04 19:08:04 +08:00
background-color: aquamarine;
2020-06-30 18:06:50 +08:00
}
> view {
font-size: 28rpx;
color: rgba(51,51,51,1);
margin-right: 15rpx;
2020-06-10 16:06:01 +08:00
}
2020-06-30 18:06:50 +08:00
.right {
2020-06-10 16:06:01 +08:00
flex-shrink: 0;
2020-06-30 18:06:50 +08:00
width: 11rpx;
height: 22rpx;
2020-06-10 16:06:01 +08:00
}
2020-06-30 18:06:50 +08:00
}
.goods {
.goods-item {
2020-06-10 16:06:01 +08:00
display: flex;
2020-06-30 18:06:50 +08:00
align-items: center;
&:not(:last-child) {
margin-bottom: 20rpx;
}
> image {
margin-right: 30rpx;
width: 180rpx;
height: 160rpx;
border-radius: 10rpx;
background-color: aqua;
flex-shrink: 0;
2020-06-10 16:06:01 +08:00
}
2020-06-30 18:06:50 +08:00
.info {
2020-07-06 17:32:29 +08:00
flex: 1;
2020-06-30 18:06:50 +08:00
// width: 418rpx;
height: 160rpx;
2020-06-10 16:06:01 +08:00
display: flex;
2020-06-30 18:06:50 +08:00
flex-direction: column;
2020-06-10 16:06:01 +08:00
justify-content: space-between;
2020-06-30 18:06:50 +08:00
.name {
2020-06-10 16:06:01 +08:00
font-size: 30rpx;
2020-06-30 18:06:50 +08:00
color: rgba(51,51,51,1);
2020-06-10 16:06:01 +08:00
}
2020-06-30 18:06:50 +08:00
.cart-info {
display: flex;
align-items: center;
justify-content: space-between;
.price {
font-size: 30rpx;
font-weight: 500;
color: rgba(255,49,49,1);
}
.u-numberbox {
border: 1rpx solid rgba(217,215,215,1);
border-radius:4px;
/deep/ .u-number-input {
margin: 0;
color: #333 !important;
border: 1rpx #D9D7D7 solid {
top: 0px;
bottom: 0px;
}
2020-06-10 16:06:01 +08:00
}
}
}
}
}
2020-06-09 17:33:12 +08:00
}
2020-06-10 16:06:01 +08:00
}
2020-06-30 18:06:50 +08:00
.order-info {
> view {
height: 98rpx;
background: rgba(255,255,255,1);
padding: 35rpx 30rpx;
2020-06-10 16:06:01 +08:00
display: flex;
align-items: center;
2020-06-30 18:06:50 +08:00
justify-content: space-between;
margin-bottom: 2rpx;
.title {
font-size: 28rpx;
color: rgba(102,102,102,1);
}
.value {
display: flex;
align-items: center;
font-size: 30rpx;
color:rgba(51,51,51,1);
> image {
width: 12rpx;
height: 22rpx;
flex-shrink: 0;
margin-left: 20rpx;
}
2020-06-10 16:06:01 +08:00
}
}
}
}
}
2020-07-14 09:15:51 +08:00
.common-active {
padding-bottom: 200rpx;
> view {
height: 98rpx;
background: rgba(255,255,255,1);
padding: 35rpx 30rpx;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 2rpx;
.title {
font-size: 28rpx;
color: rgba(102,102,102,1);
}
.value {
display: flex;
align-items: center;
font-size: 30rpx;
color:rgba(51,51,51,1);
> image {
width: 12rpx;
height: 22rpx;
flex-shrink: 0;
margin-left: 20rpx;
}
}
}
}
2020-07-18 17:43:37 +08:00
.coupon-choose {
box-sizing: border-box;
padding: 30rpx;
.title {
padding-bottom: 30rpx;
font-size: 32rpx;
font-weight: 500;
color: rgba(51,51,51,1);
text-align: center;
}
.text {
padding-bottom: 30rpx;
font-size: 28rpx;
font-weight: 500;
color: rgba(102,102,102,1);
}
}
2020-06-10 16:06:01 +08:00
.bottom {
padding: 35rpx 30rpx;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 98rpx;
background-color: rgba(255,255,255,1);
box-shadow: 0rpx 10rpx 14rpx 2rpx rgba(0, 0, 0, 0.34);
display: flex;
align-items: center;
justify-content: space-between;
.left {
display: flex;
align-items: center;
font-size: 30rpx;
.title {
color:rgba(153,153,153,1);
margin-right: 10rpx;
2020-06-09 17:33:12 +08:00
}
2020-06-10 16:06:01 +08:00
.price {
color: #F40E0E;
2020-06-09 17:33:12 +08:00
}
}
2020-06-10 16:06:01 +08:00
.right {
display: flex;
align-items: center;
.num {
font-size: 26rpx;
color: rgba(153,153,153,1);
margin-right: 50rpx;
}
.btn {
width: 160rpx;
height: 60rpx;
background: rgba(255,120,15,1);
border-radius: 30rpx;
font-size: 30rpx;
color: rgba(255,255,255,1);
line-height: 60rpx;
text-align: center;
}
}
}
2020-06-09 17:33:12 +08:00
}
</style>