|
|
|
<template>
|
|
|
|
<view class="bg" id="bg" v-if="info">
|
|
|
|
<view class="swipe-box">
|
|
|
|
<swiper class="swiper" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="1000" circular>
|
|
|
|
<swiper-item v-if="info && info.videourl">
|
|
|
|
<video
|
|
|
|
:src="showImg(info.videourl)"
|
|
|
|
id="detailVideo"
|
|
|
|
:poster="showImg(info.image)"
|
|
|
|
@play="play"
|
|
|
|
@error="videoErrorCallback"
|
|
|
|
controls
|
|
|
|
style="width: 100%;height: 100%;"
|
|
|
|
object-fit="cover"
|
|
|
|
></video>
|
|
|
|
</swiper-item>
|
|
|
|
<swiper-item v-for="(item, index) in info.list_images.split(',')" :key="item.id">
|
|
|
|
<view class="swiper-item">
|
|
|
|
<image class="item-img" :src="showImg(item)" mode="aspectFill"></image>
|
|
|
|
</view>
|
|
|
|
</swiper-item>
|
|
|
|
</swiper>
|
|
|
|
<!-- <view class="swiper-item-num">{{ info.list_images.split(',').length }}张</view> -->
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="w-full relative" style="padding: 26rpx;top: -52rpx;">
|
|
|
|
<view class="price-box ">
|
|
|
|
<view class="price-zan">
|
|
|
|
<view class="price">
|
|
|
|
<view class="present-price">{{ info.money / 100 }}</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="title text-overflowRows">{{ info.title }}</view>
|
|
|
|
<view class="tag no-scrollbar" v-if="info.goods_new_tag">
|
|
|
|
<view class="tag-item" v-for="(item, index) in info.goods_new_tag.split(',')" :key="index">
|
|
|
|
{{ item }}
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="sp-box" @click="openPop">
|
|
|
|
<view class="sp-box-left flex-1">
|
|
|
|
<view class="flex-shrink-0">
|
|
|
|
选择:
|
|
|
|
</view>
|
|
|
|
<view class="flex-1">
|
|
|
|
{{sku[productIndex].title || '暂无可选规格'}}
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<uni-icons class="flex-shrink-0" style="height: 36rpx;margin-right: 20rpx;" type="right" size="18"></uni-icons>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="pro-title">产品简介</view>
|
|
|
|
<view class="notice" >
|
|
|
|
<view class="rich-text" v-html="formateRichText(info.special_content)"></view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="btn-list" v-if="!paramData.showCart">
|
|
|
|
<view class="left-box">
|
|
|
|
<view class="img-box" slot="content" v-if="is_post==1">
|
|
|
|
<uni-badge class="uni-badge-left-margin" :text="paramData.num" absolute="rightTop" :offset="[5, 5]" size="small"
|
|
|
|
:custom-style="{background:'#F7F7F7',color:'#F84A56',border:'1px solid #F84A56'}">
|
|
|
|
<image @click.stop="showCartClick" :src="showImg('/uploads/20241104/88b88bf627a63dd000afe769d1392fb4.png')" mode="aspectFill"
|
|
|
|
style="width: 78rpx;height: 78rpx;"></image>
|
|
|
|
</uni-badge>
|
|
|
|
</view>
|
|
|
|
<button id="contact" open-type="contact" bindcontact="handleContact" session-from="sessionFrom">
|
|
|
|
<view class="img-box">
|
|
|
|
<image :src="showImg('/uploads/20241023/c5686c6abd8ff8370ca65e0d129566cf.png')"
|
|
|
|
mode="aspectFill"></image>
|
|
|
|
<view class="text">
|
|
|
|
客服
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</button>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
<view class="btn-post" v-if="is_post==1">
|
|
|
|
<view class="left-btn-buy" @click="openPop(true)">加入购物车</view>
|
|
|
|
<view class="right-btn-buy" @click="openPop(false)">立即购买</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
<view v-else class="btn-buy" @click="openPop(false)">
|
|
|
|
立即购买
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="btn-list" v-else>
|
|
|
|
<view class="left-box">
|
|
|
|
<view class="img-box" slot="content">
|
|
|
|
<uni-badge class="uni-badge-left-margin" :text="paramData.num" absolute="rightTop" :offset="[5, 5]" size="small"
|
|
|
|
:custom-style="{background:'#F7F7F7',color:'#F84A56',border:'1px solid #F84A56'}">
|
|
|
|
<image @click.stop="showCartClick" :src="showImg('/uploads/20241104/88b88bf627a63dd000afe769d1392fb4.png')" mode="aspectFill"
|
|
|
|
style="width: 78rpx;height: 78rpx;"></image>
|
|
|
|
</uni-badge>
|
|
|
|
</view>
|
|
|
|
<view class="bottom-price">
|
|
|
|
¥
|
|
|
|
<view class="bottom-price-yuan">{{paramData.iNum}}</view>
|
|
|
|
<view>.{{paramData.fNum}}</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="btn-buy" @click="goCartOrder">
|
|
|
|
提交订单
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<cartDataVue ref="cartDataVueRef" :paramData="paramData" @changeParamData="changeParamData" :key="new Date().getTime()"></cartDataVue>
|
|
|
|
|
|
|
|
<uni-popup ref="popup" type="bottom" @change="changPopShow" style="position: relative;z-index: 50;">
|
|
|
|
<view class="popup-content" v-if="sku.length>0">
|
|
|
|
<view @click="closePopup" style="padding: 31rpx 0 0 639rpx;width: 50rpx;height: 80rpx;">
|
|
|
|
<uni-icons type="closeempty" size="24"></uni-icons>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="bottom-productImg">
|
|
|
|
<img :src="showImg(sku[productIndex].image)" alt="">
|
|
|
|
<view class="right-content">
|
|
|
|
<view class="bottom-productPrice com-price">{{(sku[productIndex].money||0)/100}}</view>
|
|
|
|
<view class="bottom-content text-overflow">已选择:{{sku[productIndex].title}}</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view>
|
|
|
|
<view class="sp">
|
|
|
|
规格
|
|
|
|
</view>
|
|
|
|
<view style="display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;">
|
|
|
|
<view style="position:relative;" v-for="(botItem,botIndex) in sku" :key="botIndex">
|
|
|
|
<view :class="['botProduct','text-overflow',{'noStore':botItem.store==0},{'botProducts':productIndex==botIndex}]"
|
|
|
|
@click="changeProduct(botItem,botIndex)">
|
|
|
|
{{botItem.title}}
|
|
|
|
</view>
|
|
|
|
<view class="noStore-text" v-if="botItem.store==0">
|
|
|
|
不可购买
|
|
|
|
</view>
|
|
|
|
<view class="noStore-text" v-else-if="is_post==1&&botItem.is_post!=1">不可加购</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="buy-num com-flex-tao">
|
|
|
|
数量
|
|
|
|
<view class="number-btn">
|
|
|
|
<view>
|
|
|
|
<text @click="delNumber">-</text>
|
|
|
|
</view>
|
|
|
|
<view style="width: 96rpx;height: 69rpx;margin: 0 14rpx;">{{ buyNum }}</view>
|
|
|
|
<view>
|
|
|
|
<text @click="addNumber">+</text>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view style="height: 100rpx;"></view>
|
|
|
|
<!-- <view class="btn-box">
|
|
|
|
<view class="buy-btn" @click="order">
|
|
|
|
下一步
|
|
|
|
</view>
|
|
|
|
</view> -->
|
|
|
|
</uni-popup>
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import cartDataVue from '../../compoents/cartData.vue'
|
|
|
|
export default {
|
|
|
|
components: {cartDataVue},
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
id: null,
|
|
|
|
info: null,
|
|
|
|
sku: [],
|
|
|
|
productIndex: 0,
|
|
|
|
|
|
|
|
is_post: "2",
|
|
|
|
|
|
|
|
isCollect: false,
|
|
|
|
showLength: 0,
|
|
|
|
buyNum: 1,
|
|
|
|
popShow: false,
|
|
|
|
paramData: {allPrice: 0,iNum:0, fNum:'00', showCart: false, num: 0},
|
|
|
|
};
|
|
|
|
},
|
|
|
|
onLoad(option) {
|
|
|
|
this.id = option.id;
|
|
|
|
this.getInfo();
|
|
|
|
this.getSpecificationsByGoodsId();
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
changPopShow (e) {
|
|
|
|
this.popShow = e.show
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getInfo() {
|
|
|
|
this.Post({
|
|
|
|
goods_id: this.id
|
|
|
|
},
|
|
|
|
'/api/goods/getGoodDetail'
|
|
|
|
).then(res => {
|
|
|
|
if (res.data.flag == 0) {
|
|
|
|
setTimeout(() => {
|
|
|
|
uni.showToast({
|
|
|
|
title: '商品不存在或已下架',
|
|
|
|
icon: 'none'
|
|
|
|
})
|
|
|
|
}, 0)
|
|
|
|
setTimeout(() => {
|
|
|
|
this.goBack()
|
|
|
|
}, 2000)
|
|
|
|
}
|
|
|
|
this.info = res.data;
|
|
|
|
this.isCollect = this.info.is_collect;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
getSpecificationsByGoodsId() {
|
|
|
|
this.Post({
|
|
|
|
goods_id: this.id
|
|
|
|
},
|
|
|
|
'/api/goods/getSpecificationsByGoodsId'
|
|
|
|
).then(res => {
|
|
|
|
if (res) {
|
|
|
|
this.sku = res.data || [];
|
|
|
|
// todo
|
|
|
|
this.is_post = "2"
|
|
|
|
if (this.sku.length>0 && this.sku.some(v=>v.is_post == 1)) {
|
|
|
|
this.is_post = "1"
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
// 收藏
|
|
|
|
collect() {
|
|
|
|
this.Post({
|
|
|
|
type: 5,
|
|
|
|
id: this.id
|
|
|
|
},
|
|
|
|
'/api/scenic/collect'
|
|
|
|
).then(res => {
|
|
|
|
if (res) {
|
|
|
|
uni.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
icon: 'none'
|
|
|
|
});
|
|
|
|
this.isCollect = !this.isCollect
|
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
//数量加减
|
|
|
|
addNumber() {
|
|
|
|
this.buyNum += 1;
|
|
|
|
},
|
|
|
|
delNumber() {
|
|
|
|
if (this.buyNum <= 1) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this.buyNum -= 1;
|
|
|
|
},
|
|
|
|
closePopup() {
|
|
|
|
this.$refs.popup.close()
|
|
|
|
},
|
|
|
|
// false 下单 true 加入购物车
|
|
|
|
openPop(flag) {
|
|
|
|
if (!this.sku||this.sku.length<=0) {
|
|
|
|
uni.showToast({
|
|
|
|
title:'暂无可选规格',
|
|
|
|
icon:'none'
|
|
|
|
})
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!this.popShow) {
|
|
|
|
this.$refs.popup.open()
|
|
|
|
} else {
|
|
|
|
if (flag) {
|
|
|
|
this.addToCart()
|
|
|
|
} else {
|
|
|
|
this.order()
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
},
|
|
|
|
order(item) {
|
|
|
|
let goods = this.sku[this.productIndex]
|
|
|
|
goods.buyNum = this.buyNum
|
|
|
|
|
|
|
|
let orderInfo = {
|
|
|
|
is_post: goods.is_post || "1",
|
|
|
|
// is_post: 2,
|
|
|
|
goods: [{goodsInfo: this.info, skuInfo: goods }],
|
|
|
|
post: 0,
|
|
|
|
}
|
|
|
|
|
|
|
|
uni.setStorageSync('teChanOrder', JSON.stringify(orderInfo)); //规格
|
|
|
|
// uni.setStorageSync('teChanInfo', JSON.stringify(this.info)); //商品
|
|
|
|
uni.navigateTo({
|
|
|
|
url: '/subPackages/techan/order'
|
|
|
|
});
|
|
|
|
},
|
|
|
|
addToCart () {
|
|
|
|
let goods = this.sku[this.productIndex]
|
|
|
|
if(goods.is_post!=1) {
|
|
|
|
uni.showToast({
|
|
|
|
title: '此规格不支持加入购物车',
|
|
|
|
icon: 'none'
|
|
|
|
})
|
|
|
|
return
|
|
|
|
}
|
|
|
|
goods.buyNum = this.buyNum
|
|
|
|
let goodsInfo = {goodsInfo:this.info, skuInfo: goods, isSelected: true}
|
|
|
|
|
|
|
|
this.Post({good_id: this.info.id, specifications_id: goods.id,num: this.buyNum },
|
|
|
|
'/api/shopping/addShopping').then(res => {
|
|
|
|
if (res) {
|
|
|
|
let selectedData = []
|
|
|
|
try {
|
|
|
|
selectedData = JSON.parse(uni.getStorageSync('cartDataInfo'));
|
|
|
|
} catch(e) {
|
|
|
|
selectedData = []
|
|
|
|
}
|
|
|
|
let currentGoods = selectedData.find(v =>v==goods.id)
|
|
|
|
if (!currentGoods) {
|
|
|
|
selectedData.push(goods.id)
|
|
|
|
}
|
|
|
|
uni.setStorageSync('cartDataInfo', JSON.stringify(selectedData));
|
|
|
|
uni.$emit("updateDataByConnect", {msgType:'updateCartDataInfo',data:null})
|
|
|
|
this.closePopup()
|
|
|
|
// this.$refs.cartDataVueRef.openPop()
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
goUser() {
|
|
|
|
uni.switchTab({
|
|
|
|
url: '/pages/index/user'
|
|
|
|
})
|
|
|
|
},
|
|
|
|
changeProduct(item,index) {
|
|
|
|
if (item.store==0) {
|
|
|
|
uni.showToast({
|
|
|
|
title:"库存不足!",
|
|
|
|
icon:'none'
|
|
|
|
})
|
|
|
|
return
|
|
|
|
}
|
|
|
|
this.productIndex = index
|
|
|
|
},
|
|
|
|
|
|
|
|
// 购物车
|
|
|
|
changeParamData (data) {
|
|
|
|
for(let key in this.paramData) {
|
|
|
|
this.paramData[key] = data[key]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
showCartClick () {
|
|
|
|
if (this.paramData.showCart) {
|
|
|
|
this.$refs.cartDataVueRef.closePopup()
|
|
|
|
} else {
|
|
|
|
this.$refs.cartDataVueRef.openPop()
|
|
|
|
}
|
|
|
|
},
|
|
|
|
goCartOrder () {
|
|
|
|
this.$refs.cartDataVueRef.goCartOrder()
|
|
|
|
},
|
|
|
|
},
|
|
|
|
onReachBottom() {
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.bg {
|
|
|
|
min-height: 100vh;
|
|
|
|
overflow-x: hidden;
|
|
|
|
background: #f2f4f7;
|
|
|
|
padding-bottom: 210rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
view {
|
|
|
|
box-sizing: border-box;
|
|
|
|
}
|
|
|
|
|
|
|
|
button {
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
outline: none;
|
|
|
|
border-radius: 0;
|
|
|
|
background-color: transparent;
|
|
|
|
line-height: inherit;
|
|
|
|
}
|
|
|
|
|
|
|
|
button::after {
|
|
|
|
border: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.swipe-box {
|
|
|
|
height: 400rpx;
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
.swiper-item-num {
|
|
|
|
width: 90rpx;
|
|
|
|
height: 40rpx;
|
|
|
|
background: rgba(0, 0, 0, 0.5);
|
|
|
|
border-radius: 20rpx;
|
|
|
|
font-size: 24rpx;
|
|
|
|
font-family: PingFangSC-Regular, PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #ffffff;
|
|
|
|
text-align: center;
|
|
|
|
line-height: 40rpx;
|
|
|
|
position: absolute;
|
|
|
|
right: 30rpx;
|
|
|
|
bottom: 50rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.swiper {
|
|
|
|
height: 400rpx;
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
.swiper-item {
|
|
|
|
width: 100%;
|
|
|
|
height: 400rpx;
|
|
|
|
|
|
|
|
.item-img {
|
|
|
|
width: 750rpx;
|
|
|
|
height: 400rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.common-container{
|
|
|
|
width: 100%;
|
|
|
|
padding: 32rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.pro-title{
|
|
|
|
font-weight: bold;
|
|
|
|
font-size: 37rpx;
|
|
|
|
color: #000000;
|
|
|
|
margin: 66rpx 0 19rpx 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.price-box {
|
|
|
|
width: 100%;
|
|
|
|
background: #ffffff;
|
|
|
|
border-radius: 20rpx 20rpx 0 0;
|
|
|
|
padding: 24rpx 30rpx;
|
|
|
|
|
|
|
|
.price-zan {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
|
|
.price {
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
.present-price {
|
|
|
|
font-size: 42rpx;
|
|
|
|
font-family: PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: rgba(248, 74, 86, 1);
|
|
|
|
|
|
|
|
&:before {
|
|
|
|
content: '¥';
|
|
|
|
display: inline-block;
|
|
|
|
font-size: 26rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:after {
|
|
|
|
content: '起';
|
|
|
|
display: inline-block;
|
|
|
|
font-size: 24rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #8D8D8D;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.tag {
|
|
|
|
margin:24rpx 0 15rpx 0;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
flex-wrap: nowrap;
|
|
|
|
overflow-x: auto;
|
|
|
|
|
|
|
|
.tag-item {
|
|
|
|
margin-right: 14rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
padding: 8rpx 16rpx;
|
|
|
|
flex-shrink: 0;
|
|
|
|
border:1px solid #515150;
|
|
|
|
border-radius: 11rpx;
|
|
|
|
font-weight: 500;
|
|
|
|
font-size: 24rpx;
|
|
|
|
color: #515150;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.title {
|
|
|
|
margin-top: 20rpx;
|
|
|
|
font-family: PingFang;
|
|
|
|
font-weight: bold;
|
|
|
|
font-size: 31rpx;
|
|
|
|
color: #000000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.notice {
|
|
|
|
padding: 35rpx;
|
|
|
|
width: 100%;
|
|
|
|
background: #ffffff;
|
|
|
|
border-radius: 20rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.tab {
|
|
|
|
width: 750rpx;
|
|
|
|
height: 88rpx;
|
|
|
|
background: #ffffff;
|
|
|
|
box-shadow: 0px 1rpx 0px 0px rgba(227, 229, 232, 1);
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
padding: 0 32rpx;
|
|
|
|
position: fixed;
|
|
|
|
top: 0;
|
|
|
|
|
|
|
|
.tab-item {
|
|
|
|
height: 88rpx;
|
|
|
|
position: relative;
|
|
|
|
line-height: 88rpx;
|
|
|
|
|
|
|
|
.tab-text {
|
|
|
|
font-size: 30rpx;
|
|
|
|
font-family: PingFangSC-Regular, PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #393b3e;
|
|
|
|
}
|
|
|
|
|
|
|
|
.act-text {
|
|
|
|
font-size: 30rpx;
|
|
|
|
font-family: PingFangSC-Medium, PingFang SC;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #000000;
|
|
|
|
}
|
|
|
|
|
|
|
|
.tab-line {
|
|
|
|
width: 60rpx;
|
|
|
|
height: 6rpx;
|
|
|
|
background: #08c59b;
|
|
|
|
border-radius: 3rpx;
|
|
|
|
position: absolute;
|
|
|
|
bottom: 0;
|
|
|
|
left: 50%;
|
|
|
|
transform: translate(-30rpx, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.more {
|
|
|
|
width: 100%;
|
|
|
|
height: 93rpx;
|
|
|
|
line-height: 93rpx;
|
|
|
|
text-align: center;
|
|
|
|
border-top: solid 1rpx rgba(227, 229, 232, 1);
|
|
|
|
font-size: 26rpx;
|
|
|
|
font-family: PingFangSC-Regular, PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #4D526C;
|
|
|
|
margin-top: 50rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.xzPopup {
|
|
|
|
width: 750rpx;
|
|
|
|
padding: 33rpx 26rpx 20rpx;
|
|
|
|
box-sizing: border-box;
|
|
|
|
background-color: #FFFFFF;
|
|
|
|
position: relative;
|
|
|
|
max-height: 70vh;
|
|
|
|
overflow-y: auto;
|
|
|
|
|
|
|
|
view {
|
|
|
|
padding: 0 20rpx;
|
|
|
|
box-sizing: border-box;
|
|
|
|
margin-top: 35rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
img {
|
|
|
|
width: 32rpx;
|
|
|
|
height: 32rpx;
|
|
|
|
position: absolute;
|
|
|
|
top: 33rpx;
|
|
|
|
right: 27rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.comment {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
box-sizing: border-box;
|
|
|
|
width: 710rpx;
|
|
|
|
height: 100rpx;
|
|
|
|
background: #FFFFFF;
|
|
|
|
border-radius: 13rpx;
|
|
|
|
margin: 0 auto;
|
|
|
|
margin-top: 20rpx;
|
|
|
|
padding: 0 20rpx;
|
|
|
|
|
|
|
|
.comment-left {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: bold;
|
|
|
|
color: #000000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.btn-list {
|
|
|
|
position: fixed;
|
|
|
|
z-index: 9999;
|
|
|
|
bottom: 0;
|
|
|
|
width: 750rpx;
|
|
|
|
height: 180rpx;
|
|
|
|
background: #FFFFFF;
|
|
|
|
box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1);
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
|
|
|
padding: 30rpx 50rpx 0 50rpx;
|
|
|
|
|
|
|
|
.left-box {
|
|
|
|
display: flex;
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
|
|
.bottom-price{
|
|
|
|
display: flex;
|
|
|
|
align-items: baseline;
|
|
|
|
font-family: PingFang SC;
|
|
|
|
font-weight: bold;
|
|
|
|
font-size: 27rpx;
|
|
|
|
color: #F84A56;
|
|
|
|
padding-top: 20rpx;
|
|
|
|
.bottom-price-yuan{
|
|
|
|
font-size: 40rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.bottom-detail-icon{
|
|
|
|
font-size: 24rpx;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.img-box {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
margin-right: 64rpx;
|
|
|
|
|
|
|
|
image {
|
|
|
|
width: 48rpx;
|
|
|
|
height: 48rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.text {
|
|
|
|
font-size: 24rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #666666;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.btn-buy {
|
|
|
|
width: 293rpx;
|
|
|
|
height: 78rpx;
|
|
|
|
background: #C3282E;
|
|
|
|
border-radius: 40rpx;
|
|
|
|
text-align: center;
|
|
|
|
line-height: 78rpx;
|
|
|
|
font-size: 32rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #FFFFFF;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.popup-content {
|
|
|
|
background-color: white;
|
|
|
|
padding: 0rpx 39rpx 51rpx 39rpx;
|
|
|
|
height: auto;
|
|
|
|
border-radius: 20rpx 20rpx 0 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.bottom-productImg {
|
|
|
|
display: flex;
|
|
|
|
margin-bottom: 23rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.bottom-productImg img {
|
|
|
|
width: 218rpx;
|
|
|
|
height: 179rpx;
|
|
|
|
background: #666666;
|
|
|
|
border-radius: 13rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.right-content {
|
|
|
|
margin: 10rpx 0 0 41rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.bottom-productPrice {
|
|
|
|
font-size: 40rpx;
|
|
|
|
color: #FC524B;
|
|
|
|
|
|
|
|
&:before {
|
|
|
|
content: "¥";
|
|
|
|
font-size: 26rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.bottom-content {
|
|
|
|
width: 331rpx;
|
|
|
|
font-size: 27rpx;
|
|
|
|
font-family: PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #666666;
|
|
|
|
}
|
|
|
|
|
|
|
|
.botProduct {
|
|
|
|
width: 320rpx;
|
|
|
|
// height: 78rpx;
|
|
|
|
border-radius: 13rpx;
|
|
|
|
background-color: #F5F5F5;
|
|
|
|
font-size: 29rpx;
|
|
|
|
font-family: PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #333333;
|
|
|
|
line-height: 78rpx;
|
|
|
|
text-align: center;
|
|
|
|
margin-bottom: 25rpx;
|
|
|
|
display: inline-block;
|
|
|
|
position: relative;
|
|
|
|
padding: 0 40rpx;
|
|
|
|
}
|
|
|
|
.noStore{
|
|
|
|
background-color: rgba(239, 239, 239, 1);
|
|
|
|
color: rgba(153, 153, 153, 1);
|
|
|
|
}
|
|
|
|
.noStore-text{
|
|
|
|
width: 113rpx;
|
|
|
|
height: 43rpx;
|
|
|
|
background: #C0C0C0;
|
|
|
|
border-radius: 7rpx 0rpx 7rpx 0rpx;
|
|
|
|
text-align: center;
|
|
|
|
line-height: 43rpx;
|
|
|
|
position: absolute;
|
|
|
|
right: -14rpx;
|
|
|
|
top: -20rpx;
|
|
|
|
font-size: 23rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #FFFFFF;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.botProducts {
|
|
|
|
// border: 1rpx solid #00AAFF;
|
|
|
|
// background-color: rgba(254, 180, 25, 1);
|
|
|
|
background: #515150;
|
|
|
|
color: #FFFFFF;
|
|
|
|
}
|
|
|
|
|
|
|
|
.buy-num {
|
|
|
|
font-size: 29rpx;
|
|
|
|
font-family: PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #333333;
|
|
|
|
// border-top: 1rpx solid #CCCCCC;
|
|
|
|
padding: 39rpx 0;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
}
|
|
|
|
|
|
|
|
.buy-num .number-btn {
|
|
|
|
display: flex;
|
|
|
|
}
|
|
|
|
|
|
|
|
.buy-num .number-btn view {
|
|
|
|
display: flex;
|
|
|
|
justify-content: center;
|
|
|
|
align-items: center;
|
|
|
|
width: 69rpx;
|
|
|
|
height: 69rpx;
|
|
|
|
border: 1rpx solid #CCCCCC;
|
|
|
|
border-radius: 7rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.buy-num .number-btn>view text {
|
|
|
|
font-size: 46rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.buy-btn {
|
|
|
|
width: 670rpx;
|
|
|
|
height: 78rpx;
|
|
|
|
text-align: center;
|
|
|
|
line-height: 78rpx;
|
|
|
|
background: linear-gradient(90deg, #F84A56, #FF9834);
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
|
|
|
font-size: 34rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #FFFFFF;
|
|
|
|
}
|
|
|
|
|
|
|
|
.btn-box {
|
|
|
|
width: 750rpx;
|
|
|
|
height: 151rpx;
|
|
|
|
background: #FFFFFF;
|
|
|
|
box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1);
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sp {
|
|
|
|
width: 100%;
|
|
|
|
height: 30rpx;
|
|
|
|
font-size: 32rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #060001;
|
|
|
|
line-height: 30rpx;
|
|
|
|
border-top: solid 2rpx #ccc;
|
|
|
|
margin: 60rpx 0;
|
|
|
|
padding-top: 30rpx;
|
|
|
|
}
|
|
|
|
|
|
|
|
.sp-box {
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
background: #fff;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
border-radius: 0 0 12rpx 12rpx;
|
|
|
|
padding: 10rpx 0 30rpx;
|
|
|
|
|
|
|
|
.sp-box-left {
|
|
|
|
display: flex;
|
|
|
|
margin-left: 38rpx;
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
:first-child {
|
|
|
|
font-family: PingFang;
|
|
|
|
font-weight: 500;
|
|
|
|
font-size: 31rpx;
|
|
|
|
color: #999999;
|
|
|
|
}
|
|
|
|
|
|
|
|
:last-child {
|
|
|
|
width: 403rpx;
|
|
|
|
font-family: PingFang SC;
|
|
|
|
font-weight: 400;
|
|
|
|
font-size: 31rpx;
|
|
|
|
color: #000000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
image {
|
|
|
|
width: 16rpx;
|
|
|
|
height: 28rpx;
|
|
|
|
margin-right: 38rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.btn-post{
|
|
|
|
font-size: 32rpx;
|
|
|
|
font-family: PingFangSC;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #FFFFFF;
|
|
|
|
line-height: 77rpx;
|
|
|
|
text-align: center;
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
.left-btn-buy{
|
|
|
|
width: 207rpx;
|
|
|
|
height: 77rpx;
|
|
|
|
color: #C3282E;
|
|
|
|
border-radius: 39rpx 0rpx 0rpx 39rpx;
|
|
|
|
border: 1px solid #C3282E;
|
|
|
|
}
|
|
|
|
.right-btn-buy{
|
|
|
|
width: 207rpx;
|
|
|
|
height: 77rpx;
|
|
|
|
background: #C3282E;
|
|
|
|
border-radius: 0rpx 39rpx 39rpx 0rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|