<template>
|
|
<view class="confirm-order flex-1 position-relative" :class="[{'confirm-order-p-b': consumption}]">
|
|
<view class="confirm-order-item flex align-center">
|
|
<view class="flex-11">
|
|
<view class="flex align-center">
|
|
<view class="m-r-14">
|
|
<u-icon size="40" name="map-fill" color="#01AEEA"></u-icon>
|
|
</view>
|
|
<view class="confirm-order-address font-30">
|
|
{{ location.type === 'shop' ? `站点:${location.name}` : `${location.shippingAddress} ${location.addressDetail}` }}
|
|
</view>
|
|
</view>
|
|
|
|
<view class="confirm-order-user m-t-20" v-if="location.type === 'user'">
|
|
<text class="m-r-40">{{ location.name }}</text>
|
|
<text>{{ location.phone }}</text>
|
|
</view>
|
|
</view>
|
|
<!-- 站点 -->
|
|
<view class="shopIcon shopIcon-color" v-if="location.type === 'shop'" @click="selectAddress(0)">
|
|
站点
|
|
<u-icon size="30" name="arrow-right" color="#ccc"></u-icon>
|
|
</view>
|
|
<!-- 地址 -->
|
|
<view class="shopIcon" @click="selectAddress(1)">
|
|
<text v-if="location.type === 'shop'">地址</text>
|
|
<u-icon size="30" name="arrow-right" color="#ccc"></u-icon>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="confirm-order-item">
|
|
<view v-for="(item, index) in goodsProducts.list" :key="item.id">
|
|
<view class="confirm-order-goods bg-white m-b-20"
|
|
v-show="index < (!showItem ? 2 : goodsProducts.list.length - 1) ">
|
|
<view class="flex-1 flex align-start">
|
|
<view class="m-r-20">
|
|
<image class="confirm-order-goods-image" :src="item.shopImage2" mode="aspectFill"></image>
|
|
</view>
|
|
<view class="confirm-order-goods-info flex-1 flex flex-column justify-between">
|
|
<view class="confirm-order-goods-info-title ">{{ item.shopName }}</view>
|
|
|
|
<view class="confirm-order-goods-info-specs">{{ item.shopSkuParam }}</view>
|
|
|
|
<view class="flex align-center justify-between">
|
|
<view class="font-24 text-red flex align-end">
|
|
<text v-if="options.orderType != 2">¥</text>
|
|
<text class="font-32">{{ item.price.toFixed(2)/item.shopNum }}</text>
|
|
<!-- <text class="font-32">{{ item.payMoney.toFixed(2)/item.shopNum }}</text> -->
|
|
|
|
|
|
|
|
<text v-if="options.orderType == 2">元兑购金</text>
|
|
</view>
|
|
|
|
<view class="confirm-order-goods-number">x{{ item.shopNum }}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="font-24 text-grey p-t-10 p-b-10 flex align-center justify-center"
|
|
v-if="goodsProducts.list.length > 3" @click="showItem = !showItem">
|
|
{{ !showItem ? `展开(共${goodsProducts.list.length}件)` : '收起' }}
|
|
<u-icon :name="!showItem ? 'arrow-down' : 'arrow-up'"></u-icon>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="confirm-order-item">
|
|
<view class="font-30 font-weight-bold m-b-10">价格明细</view>
|
|
<view class="flex align-center justify-between m-b-20">
|
|
<view class="">
|
|
<text class="m-r-10 font-28">商品总价</text>
|
|
<!-- <text class="font-24 text-grey">共{{ goodsProducts.list.length }}件商品</text> -->
|
|
</view>
|
|
<view class="flex align-end text-black">
|
|
<text class="font-22" v-if="options.orderType != 2">¥</text>
|
|
<text class="font-28">{{ goodsProducts.amount.toFixed(2) }}</text>
|
|
<text class="font-28" v-if="options.orderType == 2">元兑购金</text>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="flex align-center justify-between m-t-40" v-if="options.orderType != 2"
|
|
@click="handleRadio('weChat', 'consumption')">
|
|
<view class="flex align-center">
|
|
<image class="confirm-order-goods-price-img m-r-6" :src="IMG_URL+'wx.png'" />
|
|
<text class="font-28">微信支付</text>
|
|
</view>
|
|
<view class="confirm-order-radio flex align-center justify-center" :class="{'is-active': weChat}">
|
|
<u-icon name="checkbox-mark" color="#fff" v-if="weChat"></u-icon>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="flex align-center justify-between m-t-40"
|
|
v-if="(options.orderType == 0 || options.orderType == 3) && options.isZone != 1"
|
|
@click="handleRadio('consumption', 'weChat')">
|
|
<view class="flex align-center">
|
|
<image class="confirm-order-goods-price-img m-r-6" :src="IMG_URL+'xfj.png'" />
|
|
<text class="font-28">消费金支付</text>
|
|
</view>
|
|
<view class="flex align-center">
|
|
<view class="flex align-end text-red font-24 m-r-10">
|
|
<text>消费金余额</text>
|
|
<text class="font-20">¥</text>
|
|
<text>{{ goodsProducts.deduction > 0 ? goodsProducts.deduction : 0 }}元</text>
|
|
</view>
|
|
|
|
<view class="confirm-order-radio flex align-center justify-center"
|
|
:class="{'is-active': consumption}">
|
|
<u-icon name="checkbox-mark" color="#fff" v-if="consumption"></u-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="flex align-center justify-between m-t-40"
|
|
v-if="goodsProducts.coupon && (options.orderType == 0 || options.orderType == 3)" @click="toCoupon">
|
|
<view class="flex align-center">
|
|
<image class="confirm-order-goods-price-img m-r-6" :src="IMG_URL +'yhj.png'" />
|
|
<text class="font-28 m-r-10">优惠券</text>
|
|
<text class="font-24 text-grey" v-if="Object.keys(coupon).length">{{ coupon.name }}</text>
|
|
</view>
|
|
<view class="flex align-center">
|
|
<view class="flex align-end text-red font-24 m-r-10" v-if="Object.keys(coupon).length">
|
|
<text>减</text>
|
|
<text class="font-20">¥</text>
|
|
<text>{{ coupon.price }}</text>
|
|
</view>
|
|
<text class="font-28 m-r-10 text-grey" v-else>去使用</text>
|
|
<u-icon name="arrow-right"></u-icon>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="confirm-order-item align-center flex justify-between" v-if="options.orderType != 2">
|
|
<view class="flex align-center">
|
|
<text class="font-28 m-r-6">运费</text>
|
|
<text class="font-24 text-grey">满{{ goodsProducts.FullMinusPrice }}元包邮</text>
|
|
</view>
|
|
|
|
<text class="font-28 text-red">{{ goodsProducts.freight }}元</text>
|
|
</view>
|
|
|
|
|
|
<view class="confirm-order-tips position-fixed left-0 text-red" v-if="consumption">
|
|
微信支付,可返兑购金或消费金;
|
|
消费金支付,不返兑购金与消费金;
|
|
</view>
|
|
|
|
<view class="confirm-order-footer position-fixed bottom-0 left-0 flex align-center justify-between">
|
|
<view class="flex align-end font-32">
|
|
<text>合计:</text>
|
|
<view class="font-24 text-red flex align-end" v-if="options.orderType !== 2">
|
|
<text>¥</text>
|
|
<text class="font-42">{{ totalprice | numberFormat }}</text>
|
|
</view>
|
|
<!-- 兑购 -->
|
|
<view class="font-24 text-red flex align-end" v-else>
|
|
<text class="font-32">{{ goodsProducts.amount.toFixed(2) }} 元兑购金</text>
|
|
</view>
|
|
</view>
|
|
|
|
<u-button type="primary" shape="circle" class="confirm-order-footer-button" v-if="options.orderType != 2" @click="onPayment">支付</u-button>
|
|
<u-button type="primary" shape="circle" class="confirm-order-footer-button" v-if="options.orderType == 2" @click="onPayment">兑购</u-button>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
IMG_URL
|
|
} from '@/env.js'
|
|
export default {
|
|
data() {
|
|
return {
|
|
IMG_URL,
|
|
showItem: false,
|
|
consumption: '',
|
|
weChat: true,
|
|
goodsProducts: [],
|
|
options: {},
|
|
coupon: {},
|
|
allMoney: '' ,// 合计多少钱
|
|
};
|
|
},
|
|
onLoad(options) {
|
|
this.options = options
|
|
this.getConfirmOrderGoodsInfo()
|
|
|
|
// uni.$on('SELECT_ADDRESS', obj => {
|
|
// this.goodsProducts.address = { ...this.goodsProducts.address, ...obj}
|
|
// console.log(obj)
|
|
// })
|
|
uni.$on('coupon', obj => {
|
|
console.log(obj)
|
|
this.coupon = obj
|
|
})
|
|
},
|
|
onUnload() {
|
|
// uni.$off('SELECT_ADDRESS')
|
|
uni.$off('coupon')
|
|
},
|
|
computed: {
|
|
totalprice() {
|
|
let consumption = this.consumption ? this.goodsProducts.deduction : 0 // 消费金
|
|
let coupon = Object.keys(this.coupon).length ? this.coupon.price : 0 // 优惠券
|
|
// 不要减去消费金 - consumption
|
|
let payPrice = this.goodsProducts.amount - coupon
|
|
// 包邮 满多少包邮问题 goodsProducts.FullMinusPrice goodsProducts.freight
|
|
payPrice = this.goodsProducts.amount >= this.goodsProducts.FullMinusPrice ? payPrice : payPrice + this
|
|
.goodsProducts.freight
|
|
this.allMoney = payPrice
|
|
return payPrice > 0 ? payPrice : 0
|
|
},
|
|
location() {
|
|
return this.$store.state.location
|
|
},
|
|
shopId() {
|
|
return this.location.type === 'shop' ? this.location.id : ''
|
|
// return this.location.id
|
|
}
|
|
},
|
|
methods: {
|
|
handleRadio(key1, key2) {
|
|
if (this[key1]) return
|
|
this[key1] = true
|
|
this[key2] = false
|
|
|
|
},
|
|
selectAddress(index) {
|
|
// index 为 1 地址 为 0 站点
|
|
if(index == 1){
|
|
this.$tools.navigateTo({
|
|
url: '/pages/my/address/address?type=select'
|
|
})
|
|
}else{
|
|
this.$tools.navigateTo({
|
|
url: '/pagesC/receiving/receiving?type=select'
|
|
})
|
|
}
|
|
//
|
|
// if (this.location.type === 'shop') {
|
|
// this.$tools.navigateTo({
|
|
// url: '/pagesC/receiving/receiving?type=select'
|
|
// })
|
|
// } else {
|
|
// this.$tools.navigateTo({
|
|
// url: '/pages/my/address/address?type=select'
|
|
// })
|
|
// }
|
|
},
|
|
getConfirmOrderGoodsInfo() {
|
|
console.log('this.options.orderType', this.options.orderType)
|
|
uni.showLoading()
|
|
let type = this.options.orderType === 3 ? 2 : this.options.orderType
|
|
let params = {
|
|
ids: this.options.ids,
|
|
type,
|
|
}
|
|
console.log(this.options)
|
|
params = this.shopId ? {
|
|
...params,
|
|
shopId: this.shopId
|
|
} : params
|
|
this.$api('getConfirmOrderGoodsInfo', params)
|
|
.then(res => {
|
|
uni.hideLoading()
|
|
if (res.code === 200) {
|
|
res.result.list.forEach(item => item.shopImage2 = item.shopImage.split(',')[0])
|
|
this.goodsProducts = res.result
|
|
} else {
|
|
this.$Toast(res.message)
|
|
}
|
|
})
|
|
.catch(err => {
|
|
this.$Toast(err.message)
|
|
uni.hideLoading()
|
|
})
|
|
},
|
|
// getaddress_lo() {
|
|
// // 获取用户的经纬度
|
|
// wx.chooseLocation({
|
|
// success: (data) => {
|
|
// // 获取经纬度
|
|
// console.log(data);
|
|
// let {latitude, longitude } = data
|
|
// this.longitude = longitude;
|
|
// this.latitude = latitude;
|
|
// // 调取站长列表
|
|
// this.getStationmasterList(longitude,latitude);
|
|
// },
|
|
// fail: () => {
|
|
// wx.getSetting({
|
|
// success: function(res) {
|
|
// var statu = res.authSetting;
|
|
// console.log(statu);
|
|
// if (!statu['scope.userLocation']) {
|
|
// console.log(123);
|
|
// wx.showModal({
|
|
// title: '是否授权当前位置',
|
|
// content: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
|
|
// success(tip) {
|
|
// if (tip.confirm) {
|
|
// wx.openSetting({
|
|
// success: function(data) {
|
|
// if (data.authSetting["scope.userLocation"] === true) {
|
|
// this.$Toast('授权成功');
|
|
// //授权成功之后,再调用chooseLocation选择地方
|
|
// setTimeout(function(){
|
|
// wx.chooseLocation({
|
|
// success: (data) => {
|
|
// // 获取经纬度
|
|
// let {latitude, longitude } = data
|
|
// this.longitude = longitude;
|
|
// this.latitude = latitude;
|
|
// // 调取站长列表
|
|
// this.getStationmasterList(longitude,latitude);
|
|
// }
|
|
// })
|
|
// },1000)
|
|
// }
|
|
// }
|
|
// })
|
|
// } else {
|
|
// this.$Toast('授权失败');
|
|
// }
|
|
// }
|
|
// })
|
|
// }
|
|
// }
|
|
// })
|
|
// }
|
|
// });
|
|
// },
|
|
getStationmasterList(longitude, latitude) {
|
|
const params = {
|
|
longitude,
|
|
latitude
|
|
}
|
|
this.$api('getStationmasterList', params).then(res => {
|
|
let {
|
|
code,
|
|
result,
|
|
message
|
|
} = res;
|
|
if (code == 200) {
|
|
result.forEach(item => {
|
|
item.distance = this.GetDistance(item.latitude, item.longitude);
|
|
})
|
|
if (result.length == 0) {
|
|
// 没有 站长就不用做什么
|
|
|
|
}
|
|
// 有站长 用户选择一个
|
|
console.log(this.addressData)
|
|
} else {
|
|
this.$Toast(message)
|
|
}
|
|
}).catch(err => {
|
|
this.$Toast(err.message)
|
|
})
|
|
},
|
|
onPayment() {
|
|
// 查找附近有没有站长
|
|
const that = this
|
|
// this.getaddress_lo()
|
|
if (this.options.orderType == 0) {
|
|
// couponId: this.coupon?.couponId || '',
|
|
let params = {
|
|
addressId: this.location.id,
|
|
ids: this.options.ids,
|
|
type: this.consumption ? 1 : 0,
|
|
shopId: this.shopId
|
|
}
|
|
// 1 消费金支付 提示
|
|
if (params.type == 1) {
|
|
uni.showModal({
|
|
title: `确定使用${this.allMoney}元消费金抵购`,
|
|
success(res) {
|
|
if (res.confirm) {
|
|
// 确定
|
|
that.$api('createOrder', params).then(res => {
|
|
let {
|
|
code,
|
|
result,
|
|
message
|
|
} = res
|
|
if (res.code === 200) {
|
|
!that.consumption && that.weChatPay(result)
|
|
if (that.consumption) {
|
|
that.$Toast(message)
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=1'
|
|
})
|
|
}, 1000)
|
|
}
|
|
uni.$emit('updateShoppingCartList')
|
|
} else {
|
|
|
|
that.$Toast(message)
|
|
if(message == '地址信息错误'){
|
|
that.$tools.navigateTo({
|
|
url: '/pages/my/address/address?type=select'
|
|
})
|
|
}else{
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=0'
|
|
})
|
|
}, 1000)
|
|
}
|
|
|
|
}
|
|
console.log(res)
|
|
})
|
|
} else {
|
|
// 取消
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
this.$api('createOrder', params)
|
|
.then(res => {
|
|
let {
|
|
code,
|
|
result,
|
|
message
|
|
} = res
|
|
if (res.code === 200) {
|
|
!this.consumption && this.weChatPay(result)
|
|
if (this.consumption) {
|
|
this.$Toast(message)
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=1'
|
|
})
|
|
}, 1000)
|
|
}
|
|
uni.$emit('updateShoppingCartList')
|
|
} else {
|
|
this.$Toast(message)
|
|
// setTimeout(() => {
|
|
// uni.redirectTo({
|
|
// url: '/pages/my/order/index?status=0'
|
|
// })
|
|
// }, 1000)
|
|
if(message == '消费余额不足,请选择微信支付'){
|
|
console.log(123123)
|
|
uni.showModal({
|
|
title: `您的消费金不足, 请使用微信进行支付!`,
|
|
success(res) {
|
|
}
|
|
});
|
|
} else if(message == '地址信息错误'){
|
|
this.$tools.navigateTo({
|
|
url: '/pages/my/address/address?type=select'
|
|
})
|
|
}else{
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=0'
|
|
})
|
|
}, 1000)
|
|
}
|
|
}
|
|
console.log(res)
|
|
})
|
|
}
|
|
|
|
} else { // 拼团 1 && 消费金 2
|
|
console.log(this.options.orderType)
|
|
let type = this.options.orderType == 1 || this.options.orderType == 3 ? this.consumption ? 1 : 0 : 2
|
|
let params = {
|
|
addressId: this.location.id,
|
|
id: this.options.ids,
|
|
type,
|
|
shopId: this.shopId
|
|
}
|
|
const that = this;
|
|
if (this.options.orderType == 3 && this.consumption) {
|
|
uni.showModal({
|
|
title: `确定使用${this.allMoney}元消费金抵购`,
|
|
success(res) {
|
|
if(res.confirm){
|
|
// 确定
|
|
that.$api('teamCreateOrderPay', params)
|
|
.then(res => {
|
|
let {
|
|
code,
|
|
result,
|
|
message
|
|
} = res
|
|
if (res.code === 200) {
|
|
uni.$emit('updateShoppingCartList')
|
|
if (type == 0) {
|
|
that.weChatPay(result)
|
|
} else {
|
|
that.$Toast(message)
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=1'
|
|
})
|
|
}, 1000)
|
|
}
|
|
} else {
|
|
// that.$Toast(message+12)
|
|
// setTimeout(() => {
|
|
// uni.redirectTo({
|
|
// url: '/pages/my/order/index?status=0'
|
|
// })
|
|
// }, 1000)
|
|
if(message == '消费余额不足,请选择微信支付'){
|
|
console.log(123123)
|
|
uni.showModal({
|
|
title: `您的消费金不足, 请使用微信进行支付!`,
|
|
success(res) {
|
|
}
|
|
});
|
|
}else if(message == '地址信息错误'){
|
|
that.$tools.navigateTo({
|
|
url: '/pages/my/address/address?type=select'
|
|
})
|
|
}else {
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=0'
|
|
})
|
|
}, 1000)
|
|
}
|
|
}
|
|
|
|
console.log(res)
|
|
})
|
|
}else {
|
|
// 取消
|
|
}
|
|
}
|
|
})
|
|
}else if(this.options.orderType == 3 && this.weChat) {
|
|
that.$api('teamCreateOrderPay', params)
|
|
.then(res => {
|
|
let {
|
|
code,
|
|
result,
|
|
message
|
|
} = res
|
|
if (res.code === 200) {
|
|
uni.$emit('updateShoppingCartList')
|
|
if (type == 0) {
|
|
that.weChatPay(result)
|
|
} else {
|
|
that.$Toast(message)
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=1'
|
|
})
|
|
}, 1000)
|
|
}
|
|
} else {
|
|
that.$Toast(message)
|
|
// setTimeout(() => {
|
|
// uni.redirectTo({
|
|
// url: '/pages/my/order/index?status=0'
|
|
// })
|
|
// }, 1000)
|
|
if(message == '地址信息错误'){
|
|
that.$tools.navigateTo({
|
|
url: '/pages/my/address/address?type=select'
|
|
})
|
|
}else{
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=0'
|
|
})
|
|
}, 1000)
|
|
}
|
|
}
|
|
|
|
console.log(res)
|
|
})
|
|
|
|
} else {
|
|
this.$api('teamCreateOrderPay', params)
|
|
.then(res => {
|
|
let {
|
|
code,
|
|
result,
|
|
message
|
|
} = res
|
|
if (res.code === 200) {
|
|
uni.$emit('updateShoppingCartList')
|
|
if (type == 0) {
|
|
this.weChatPay(result)
|
|
} else {
|
|
this.$Toast(message)
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=1'
|
|
})
|
|
}, 1000)
|
|
}
|
|
} else {
|
|
this.$Toast(message)
|
|
if(message == '地址信息错误'){
|
|
this.$tools.navigateTo({
|
|
url: '/pages/my/address/address?type=select'
|
|
})
|
|
}else{
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=0'
|
|
})
|
|
}, 1000)
|
|
}
|
|
// setTimeout(() => {
|
|
// uni.redirectTo({
|
|
// url: '/pages/my/order/index?status=0'
|
|
// })
|
|
// }, 1000)
|
|
}
|
|
|
|
console.log(res)
|
|
})
|
|
}
|
|
|
|
}
|
|
},
|
|
weChatPay(params) {
|
|
uni.requestPayment({
|
|
provider: 'wxpay',
|
|
timeStamp: params.timeStamp,
|
|
nonceStr: params.nonceStr,
|
|
package: params.packageValue,
|
|
signType: params.signType,
|
|
paySign: params.paySign,
|
|
success: res => {
|
|
this.$Toast('支付成功');
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=1'
|
|
})
|
|
}, 1000)
|
|
},
|
|
fail: error => {
|
|
this.$Toast('已取消支付')
|
|
setTimeout(() => {
|
|
uni.redirectTo({
|
|
url: '/pages/my/order/index?status=0'
|
|
})
|
|
}, 1000)
|
|
}
|
|
})
|
|
},
|
|
toCoupon() {
|
|
this.$tools.navigateTo({
|
|
url: '/pages/my/coupon/coupon?id=' + this.options.ids
|
|
})
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.confirm-order {
|
|
background: #f5f5f5;
|
|
padding: 20rpx 32rpx 120rpx;
|
|
box-sizing: border-box;
|
|
|
|
&-p-b {
|
|
padding-bottom: 220rpx;
|
|
}
|
|
|
|
&-item {
|
|
padding: 20rpx;
|
|
background: #ffffff;
|
|
border-radius: 14rpx;
|
|
box-shadow: 0 6rpx 12rpx 0 rgba(0, 0, 0, 0.16);
|
|
margin-bottom: 40rpx;
|
|
}
|
|
|
|
&-address {
|
|
font-size: 24rpx;
|
|
font-family: Microsoft YaHei, Microsoft YaHei-Regular;
|
|
color: #707070;
|
|
padding-right: 10rpx;
|
|
}
|
|
|
|
&-user {
|
|
font-size: 28rpx;
|
|
font-family: Microsoft YaHei, Microsoft YaHei-Regular;
|
|
color: #333;
|
|
}
|
|
|
|
&-radio {
|
|
width: 34rpx;
|
|
height: 34rpx;
|
|
border: 1px solid #c8c9cc;
|
|
border-radius: 50%;
|
|
|
|
&.is-active {
|
|
background: #01AEEA;
|
|
border: 0;
|
|
}
|
|
}
|
|
|
|
&-item {
|
|
border-radius: 20rpx;
|
|
padding: 30rpx;
|
|
|
|
|
|
}
|
|
|
|
&-goods {
|
|
&-image {
|
|
width: 200rpx;
|
|
height: 200rpx;
|
|
border-radius: 12rpx;
|
|
}
|
|
|
|
&-number {
|
|
font-size: 24rpx;
|
|
color: #ccc
|
|
}
|
|
|
|
&-info {
|
|
min-height: 200rpx;
|
|
|
|
&-specs {
|
|
font-size: 30rpx;
|
|
font-family: Microsoft YaHei, Microsoft YaHei-Regular;
|
|
color: #6c6c6c;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: -webkit-box;
|
|
-webkit-box-orient: vertical;
|
|
/*设置对齐模式:垂直对齐*/
|
|
-webkit-line-clamp: 2;
|
|
/*设置多行的行数*/
|
|
}
|
|
|
|
&-title {
|
|
font-size: 32rpx;
|
|
font-family: Microsoft YaHei, Microsoft YaHei-Regular;
|
|
color: #000000;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: -webkit-box;
|
|
-webkit-box-orient: vertical;
|
|
/*设置对齐模式:垂直对齐*/
|
|
-webkit-line-clamp: 2;
|
|
/*设置多行的行数*/
|
|
}
|
|
}
|
|
|
|
&-price {
|
|
&-img {
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
border-radius: 50%;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
&-footer {
|
|
width: 100%;
|
|
height: 120rpx;
|
|
background-color: #fff;
|
|
padding: 0 32rpx;
|
|
box-sizing: border-box;
|
|
|
|
&-button {
|
|
|
|
/deep/.u-btn {
|
|
width: 260rpx;
|
|
height: 70rpx;
|
|
font-size: 36rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
&-tips {
|
|
bottom: 120rpx;
|
|
padding: 20rpx;
|
|
box-sizing: border-box;
|
|
height: 100rpx;
|
|
background: #D8F5FF;
|
|
line-height: 32rpx;
|
|
}
|
|
|
|
::v-deep .u-checkbox {
|
|
display: block;
|
|
}
|
|
|
|
::v-deep .u-radio {
|
|
display: block;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
.shopIcon{
|
|
text-align: center;
|
|
width: 120rpx;
|
|
height: 100%;
|
|
}
|
|
.shopIcon-color{
|
|
::v-deep .uicon-arrow-right{
|
|
color: #01AEEA !important;
|
|
}
|
|
}
|
|
</style>
|