You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1123 lines
26 KiB
1123 lines
26 KiB
<template>
|
|
<view class="bg" id="bg" v-if="info">
|
|
<view class="scroll-all-box" id="menus">
|
|
<view :class="'scroll-menus fixed-menus'">
|
|
<view :class="'scroll-menu-item' + (type == 1 ? ' active' : '')" @click="changeMenu(1)">基本信息</view>
|
|
<view :class="'scroll-menu-item' + (type == 2 ? ' active' : '')" @click="changeMenu(2)">产品详情</view>
|
|
</view>
|
|
|
|
</view>
|
|
<view style="height: 88rpx"></view>
|
|
|
|
<view class="swipe-box info-box-query" id="box1">
|
|
<swiper class="swiper" :autoplay="true" :interval="3000" :duration="1000"
|
|
@change="swiperChange" circular>
|
|
<swiper-item v-if="info && info.videourl">
|
|
<video :src="showImg(info.videourl)" id="detailVideo"
|
|
:poster="showImg(info.headimg)"
|
|
@error="videoErrorCallback" controls
|
|
style="width: 100%;height: 100%;" object-fit="cover"
|
|
></video>
|
|
</swiper-item>
|
|
<swiper-item v-for="(item, index) in info.listimg" :key="item.id">
|
|
<view class="swiper-item">
|
|
<image class="item-img" :src="showImg(item)" mode="aspectFill"></image>
|
|
</view>
|
|
</swiper-item>
|
|
</swiper>
|
|
|
|
<!-- <view class="swiper-pointer">
|
|
<view :class="['cricle',swiperCurrent==i?'active':'']" v-for="(item,i) in info.listimg" :key="i"></view>
|
|
</view> -->
|
|
</view>
|
|
|
|
<view class="w-full relative " >
|
|
<view class="price-box " style="padding-bottom: 27rpx;">
|
|
<view class="flex flex-between" style="font-weight: 500;font-size: 24rpx;color: #666666;">
|
|
<view >
|
|
<text class="present-price">{{ info.price / 100 }}</text>
|
|
/份
|
|
</view>
|
|
<view>已售{{info.sales_number || 0}}份</view>
|
|
</view>
|
|
<view class="title text-overflowRows">{{ info.title }}</view>
|
|
<view class="title text-overflowRows" style="font-weight: 500;font-size: 24rpx;color: #999999;">{{ info.subtitle }}</view>
|
|
<view class="tag no-scrollbar" v-if="info.delivery_method">
|
|
<view class="tag-item" v-for="(item, index) in info.delivery_method_str" :key="index">
|
|
支持{{ item }}
|
|
</view>
|
|
</view>
|
|
|
|
<view class="cert-box" style="padding-top: 1rpx;" v-if="certObj">
|
|
<view v-for="(item,key) in certObj" :key="key" class="cert-item flex-between" @click="viewImage(item)">
|
|
<image v-if="key==1" src="https://static.ticket.sz-trip.com/uploads/20250916/927117700e11004a0c332b535bb249b6.png"></image>
|
|
<image v-if="key==2" src="https://static.ticket.sz-trip.com/uploads/20250916/de42d3e5c17462615e6f22246c3ea24f.png"></image>
|
|
<image v-if="key==3" src="https://static.ticket.sz-trip.com/uploads/20250916/b63681844b2b85aec5e087cf89d5acf5.png"></image>
|
|
<image v-if="key==4" src="https://static.ticket.sz-trip.com/uploads/20250916/001b09bc6e33251f1817c3af71e1e8ff.png"></image>
|
|
<view class="cert-content flex-1 w-1rpx flex-between">
|
|
<view class="cert-text flex-1 w-1rpx" style="padding-left: 13rpx;">
|
|
<view v-if="key==1">绿色食品</view>
|
|
<view v-if="key==2">中国有机产品</view>
|
|
<view v-if="key==3">江苏食用农产品合格证</view>
|
|
<view v-if="key==4">农产品地理标志</view>
|
|
<view style="padding-top: 10rpx;">{{item.number}}</view>
|
|
</view>
|
|
<view class="view-icon flex-shrink-0">
|
|
查看<uni-icons type="right" color="#6A8A2D" size="12"></uni-icons>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="price-box display-tag text-overflow" v-if="info.display_tags">
|
|
限制:{{info.display_tags.split(',').join(' | ')}}
|
|
</view>
|
|
<view style="width: 100%;height: 20rpx;background: #F7F7F7;"></view>
|
|
<commentListVue v-if="id" :prodId="id"></commentListVue>
|
|
|
|
<view class="price-box supplier-box" style="margin-top: 20rpx;" v-if="supplierInfo">
|
|
<image v-if="supplierInfo.headimg" class="supplier-image" :src="supplierInfo.headimg"></image>
|
|
<view class="supplier-content">
|
|
<view class="text-overflowRows">{{supplierInfo.shop_name}}</view>
|
|
<view class="tags" v-if="supplierInfo.display_tags">
|
|
<view class="tags-item" v-for="(item,i) in supplierInfo.display_tags.split(',')" :key="i">
|
|
{{item}}
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="supplier-btn" @click="goShopDetail(supplierInfo.id)">
|
|
进店
|
|
</view>
|
|
</view>
|
|
|
|
<view class="price-box info-box-query" id="box2" style="margin-top: 20rpx;">
|
|
<view class="pro-title">产品详情</view>
|
|
<view class="notice" >
|
|
<view class="rich-text" v-html="formateRichText(info.content)"></view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="btn-list" >
|
|
<view class="left-box flex-between">
|
|
<view class="img-box" v-if="supplierInfo" @click="goShopDetail(supplierInfo.id)">
|
|
<image src="https://static.ticket.sz-trip.com/uploads/20250820/ead79154bae29fde0cd05b41539a1a74.png" mode="aspectFill"></image>
|
|
<view class="text">店铺</view>
|
|
</view>
|
|
<button id="contact" open-type="contact" bindcontact="handleContact" session-from="sessionFrom">
|
|
<view class="img-box">
|
|
<image src="https://static.ticket.sz-trip.com/uploads/20250820/194e12115940d2c67619a2d1fd9120c3.png" mode="aspectFill"></image>
|
|
<view class="text">客服</view>
|
|
</view>
|
|
</button>
|
|
<view class="img-box" style="position: relative;" @click="goCartPage()">
|
|
<image src="https://static.ticket.sz-trip.com/uploads/20250820/17eeecf12ba9fdc56bce3b84fd5fb45f.png" mode="aspectFill"></image>
|
|
<view class="text">购物车</view>
|
|
<view class="cartNum" v-if="cartNum">{{cartNum}}</view>
|
|
</view>
|
|
|
|
</view>
|
|
<view class="btn-post">
|
|
<view class="left-btn-buy" @click="openPop(true)">加入购物车</view>
|
|
<view class="right-btn-buy" @click="openPop(false)">立即购买</view>
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<uni-popup ref="popup" type="bottom" @change="changPopShow" :safe-area="false" style="position: relative;z-index: 99;">
|
|
<view class="popup-content" v-if="sku.length>0">
|
|
<view style="padding: 0rpx 39rpx 50rpx 39rpx;">
|
|
<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">
|
|
<image :src="showImg(sku[productIndex].headimg)" alt=""></image>
|
|
<view class="right-content">
|
|
<view class="bottom-productPrice com-price">{{(sku[productIndex].price||0)/100}}</view>
|
|
<view class="bottom-content">已选择:{{sku[productIndex].sku_name}}</view>
|
|
|
|
<view class="buy-num com-flex-tao">
|
|
<view class="number-btn">
|
|
<view>
|
|
<text @click="delNumber">-</text>
|
|
</view>
|
|
<view style="flex: 1;">{{ buyNum }}</view>
|
|
<view>
|
|
<text @click="addNumber">+</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view>
|
|
<view class="sp">规格</view>
|
|
<view class="sp-container" style="">
|
|
<view style="position:relative;max-width: 100%;" v-for="(botItem,botIndex) in sku" :key="botIndex">
|
|
<view :class="['botProduct','text-overflow',{'noStore':botItem.store==0},{'botProducts':productIndex==botIndex}]"
|
|
@click="changeProduct(botItem,botIndex)">
|
|
<image :src="showImg(botItem.headimg)"></image>
|
|
<view class="sku-name">{{botItem.sku_name}}</view>
|
|
</view>
|
|
<view class="noStore-text" v-if="botItem.store==0">
|
|
不可购买
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="flex-between" style="padding-top: 20rpx;" v-if="sku[productIndex]&&addCart">
|
|
配送方式
|
|
<view class="flex-center" >
|
|
<view class="flex-center" v-if="sku[productIndex].use_type!=1" @click="changeSelectSkuPost(1)">
|
|
<view class="select-cycle" v-show="sku[productIndex].user_type!==1"></view>
|
|
<view class="select-cycle selected" v-show="sku[productIndex].user_type===1">
|
|
<image src="https://static.ticket.sz-trip.com/uploads/20250617/c87afc2e461a01af35c71fb46ef0859d.png">
|
|
</view>
|
|
<view style="padding:0 30rpx 0 10rpx;">邮寄</view>
|
|
</view>
|
|
<view class="flex-center" v-if="sku[productIndex].use_type!=0" @click="changeSelectSkuPost(2)">
|
|
<view class="select-cycle" v-show="sku[productIndex].user_type!==2"></view>
|
|
<view class="select-cycle selected" v-show="sku[productIndex].user_type===2">
|
|
<image src="https://static.ticket.sz-trip.com/uploads/20250617/c87afc2e461a01af35c71fb46ef0859d.png">
|
|
</view>
|
|
<view style="padding:0 30rpx 0 10rpx;">自提</view>
|
|
</view>
|
|
<view class="flex-center" v-if="sku[productIndex].is_delivery" @click="changeSelectSkuPost(3)">
|
|
<view class="select-cycle" v-show="sku[productIndex].user_type!==3"></view>
|
|
<view class="select-cycle selected" v-show="sku[productIndex].user_type===3">
|
|
<image src="https://static.ticket.sz-trip.com/uploads/20250617/c87afc2e461a01af35c71fb46ef0859d.png">
|
|
</view>
|
|
<view style="padding:0 10rpx;">配送</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="sp-bottom-btn">
|
|
<view class="btn" @click="openPop">{{addCart?"加入购物车":"立即购买"}}</view>
|
|
</view>
|
|
</view>
|
|
</uni-popup>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import commentListVue from '../../components/commentList.vue';
|
|
import cartDataVue from '../../components/cartData.vue'
|
|
export default {
|
|
components: {cartDataVue,commentListVue},
|
|
data() {
|
|
return {
|
|
down: false,
|
|
type: 1,
|
|
fixed: false,
|
|
|
|
swiperCurrent: 0,
|
|
|
|
id: null,
|
|
info: null,
|
|
sku: [],
|
|
productIndex: 0,
|
|
|
|
showLength: 0,
|
|
buyNum: 1,
|
|
popShow: false,
|
|
addCart: false,
|
|
|
|
cartNum: 0,
|
|
supplierInfo: null,
|
|
|
|
certObj: null,
|
|
};
|
|
},
|
|
onPageScroll(e){
|
|
let query = uni.createSelectorQuery()
|
|
|
|
if (this.down) {
|
|
return
|
|
}else{
|
|
this.down = true
|
|
query.selectAll(".info-box-query").boundingClientRect(res=>{
|
|
let i = res.findLastIndex(v=>v.top-100<=0)
|
|
if (i>=0) {
|
|
this.type = i+1
|
|
}
|
|
}).exec()
|
|
this.down = false
|
|
}
|
|
},
|
|
onLoad(option) {
|
|
this.id = option.id;
|
|
this.getInfo();
|
|
this.getCartList()
|
|
},
|
|
methods: {
|
|
videoErrorCallback(e) {
|
|
uni.showModal({
|
|
content: e.target.errMsg,
|
|
showCancel: false
|
|
})
|
|
},
|
|
viewImage (item) {
|
|
let image = "";
|
|
if (item.image) {
|
|
image = this.showImg(item.image)
|
|
uni.previewImage({
|
|
urls: [image]
|
|
})
|
|
}
|
|
},
|
|
|
|
changPopShow (e) {
|
|
this.popShow = e.show
|
|
},
|
|
|
|
getInfo() {
|
|
this.Post({id: this.id},
|
|
'/api/product/get_product_detail').then(res => {
|
|
if (res.code !== 1) {
|
|
uni.showToast({
|
|
title: '商品不存在或已下架',
|
|
icon: 'none'
|
|
})
|
|
setTimeout(() => {
|
|
this.goBack()
|
|
}, 2000)
|
|
return
|
|
}
|
|
let data = res.data;
|
|
if (data.delivery_method) {
|
|
data.delivery_method_str = this.getDeliveryMethodStr(data.delivery_method,)
|
|
}
|
|
console.log(data)
|
|
this.info = data;
|
|
this.sku = data.sku || []
|
|
if (res.data.product_certification_data) {
|
|
try {
|
|
this.certObj = JSON.parse(res.data.product_certification_data)
|
|
console.log(this.certObj["1"])
|
|
} catch (e) {}
|
|
}
|
|
this.getSupplierInfo(res.data.supplier_id)
|
|
|
|
this.shareParam = {title: this.info.title, imageUrl: this.info.headimg}
|
|
});
|
|
},
|
|
getSupplierInfo (supplier_id) {
|
|
this.Post({supplier_id: supplier_id},
|
|
'/api/supplier/get_supplier_detail').then(res => {
|
|
if (res.code == 1) {
|
|
this.supplierInfo = res.data;
|
|
}
|
|
});
|
|
},
|
|
goShopDetail(id) {
|
|
uni.navigateTo({
|
|
url:"/subPackages/search/shopResult?id="+id
|
|
})
|
|
},
|
|
|
|
//数量加减
|
|
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.addCart = flag
|
|
this.$refs.popup.open()
|
|
} else {
|
|
if (this.addCart) {
|
|
this.addToCart()
|
|
} else {
|
|
this.order()
|
|
}
|
|
|
|
}
|
|
},
|
|
order(item) {
|
|
let goods = this.sku[this.productIndex]
|
|
goods.buyNum = this.buyNum
|
|
|
|
let orderInfo = [{
|
|
pInfo: this.info,
|
|
sInfo: goods,
|
|
// post: 0,
|
|
}]
|
|
let data = {
|
|
list1: orderInfo,list2:[], list3: []
|
|
}
|
|
|
|
this.$store.commit("changeTechanOrderList", data);
|
|
uni.navigateTo({
|
|
url: '/subPackages/techan/order'
|
|
});
|
|
},
|
|
addToCart () {
|
|
let goods = this.sku[this.productIndex]
|
|
if (![1,2,3].includes(goods.user_type)) {
|
|
uni.showToast({
|
|
title: "请选择配送方式",
|
|
icon:"none"
|
|
})
|
|
return
|
|
}
|
|
goods.buyNum = this.buyNum
|
|
this.Post({sku_id: goods.id,num: this.buyNum,delivery_method: goods.user_type},'/api/cart/add_sku').then(res => {
|
|
if (res.code == 1) {
|
|
uni.showToast({title: res.msg,icon: 'none'});
|
|
uni.$emit("updateDataByConnect", {msgType:'updateCartDataInfo',data:null})
|
|
this.closePopup()
|
|
this.getCartList()
|
|
// this.$refs.cartDataVueRef.openPop()
|
|
}
|
|
});
|
|
},
|
|
|
|
changeProduct(item,index) {
|
|
if (item.store==0) {
|
|
uni.showToast({
|
|
title:"库存不足!",
|
|
icon:'none'
|
|
})
|
|
return
|
|
}
|
|
this.productIndex = index
|
|
},
|
|
changeSelectSkuPost (val) {
|
|
let sInfo = this.sku[this.productIndex]
|
|
if (sInfo) {
|
|
this.$set(sInfo, "user_type",val)
|
|
}
|
|
},
|
|
// 购物车
|
|
getCartList () {
|
|
this.Post({noForceLogin: true},'/api/cart/get_cart_count').then(res=>{
|
|
this.cartNum = res.data || 0
|
|
})
|
|
},
|
|
|
|
swiperChange (e) {
|
|
this.swiperCurrent = e.detail.current
|
|
},
|
|
changeMenu(e) {
|
|
this.down = true
|
|
let index = e;
|
|
let that = this
|
|
const query = uni.createSelectorQuery(); //创建节点查询器
|
|
query.select('#box'+index).boundingClientRect(); //选择toViewid获取位置信息
|
|
query.selectViewport().scrollOffset(); //获取页面查询位置的
|
|
query.exec(function (res) {
|
|
console.log(res)
|
|
let scrollTop = res[0].top + res[1].scrollTop;
|
|
uni.pageScrollTo({
|
|
scrollTop: scrollTop-50,
|
|
duration: 200,
|
|
fail: (e)=>{
|
|
console.log(e)
|
|
},
|
|
complete: ()=>{
|
|
that.type = index
|
|
setTimeout(()=>{that.down = false},1000)
|
|
}
|
|
});
|
|
});
|
|
},
|
|
|
|
},
|
|
onReachBottom() {
|
|
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.bg {
|
|
min-height: 100vh;
|
|
overflow-x: hidden;
|
|
background: #F7F7F7;;
|
|
padding-bottom: 210rpx;
|
|
}
|
|
|
|
view {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.swipe-box {
|
|
height: 750rpx;
|
|
position: relative;
|
|
.swiper {
|
|
height: 750rpx;
|
|
position: relative;
|
|
|
|
.swiper-item {
|
|
width: 100%;
|
|
height: 750rpx;
|
|
|
|
.item-img {
|
|
width: 750rpx;
|
|
height: 750rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.swiper-pointer{
|
|
position: absolute;
|
|
right: 10rpx;
|
|
bottom: 40rpx;
|
|
display: flex;
|
|
}
|
|
.cricle{
|
|
width: 14rpx;
|
|
height: 14rpx;
|
|
background: rgba(255,255,255,0.3);
|
|
border-radius: 50%;
|
|
margin-left: 10rpx;
|
|
}
|
|
.cricle.active{
|
|
background: white;
|
|
}
|
|
}
|
|
|
|
|
|
button {
|
|
margin: 0;
|
|
padding: 0;
|
|
outline: none;
|
|
border-radius: 0;
|
|
background-color: transparent;
|
|
line-height: inherit;
|
|
}
|
|
|
|
button::after {
|
|
border: none;
|
|
}
|
|
|
|
.swipe-box {
|
|
height: 750rpx;
|
|
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: 750rpx;
|
|
position: relative;
|
|
|
|
.swiper-item {
|
|
width: 100%;
|
|
height: 750rpx;
|
|
|
|
.item-img {
|
|
width: 750rpx;
|
|
height: 750rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.pro-title{
|
|
font-weight: bold;
|
|
font-size: 35rpx;
|
|
color: #010101;
|
|
}
|
|
|
|
.price-box {
|
|
width: 100%;
|
|
background: #ffffff;
|
|
padding: 40rpx 24rpx;
|
|
|
|
|
|
.present-price {
|
|
font-size: 42rpx;
|
|
font-family: PingFang SC;
|
|
font-weight: bold;
|
|
color: #C3282E;
|
|
&:before {
|
|
content: '¥';
|
|
display: inline-block;
|
|
font-size: 26rpx;
|
|
}
|
|
}
|
|
|
|
.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: 7rpx 14rpx;
|
|
flex-shrink: 0;
|
|
border-radius: 5rpx 4rpx 4rpx 5rpx;
|
|
border: 1px solid #6A8A27;
|
|
font-weight: 500;
|
|
font-size: 24rpx;
|
|
color: #6A8A27;
|
|
}
|
|
}
|
|
|
|
.title {
|
|
margin-top: 20rpx;
|
|
font-family: PingFang;
|
|
font-weight: bold;
|
|
font-size: 31rpx;
|
|
color: #000000;
|
|
}
|
|
}
|
|
|
|
.limit{
|
|
border-top: 1px solid #D8D8D8;
|
|
padding: 27rpx 24rpx;
|
|
width: 100%;
|
|
background: #FFFFFF;
|
|
}
|
|
.notice {
|
|
padding: 35rpx 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.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);
|
|
}
|
|
}
|
|
}
|
|
|
|
.btn-list {
|
|
position: fixed;
|
|
z-index: 50;
|
|
bottom: 0;
|
|
width: 750rpx;
|
|
height: 140rpx;
|
|
background: #FFFFFF;
|
|
box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1);
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 30rpx 26rpx 0 ;
|
|
|
|
.left-box {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
flex: 1;
|
|
width: 100rpx;
|
|
padding-right: 50rpx;
|
|
|
|
.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;
|
|
|
|
image {
|
|
width: 44rpx;
|
|
height: 44rpx;
|
|
}
|
|
|
|
.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;
|
|
height: auto;
|
|
border-radius: 20rpx 20rpx 0 0;
|
|
|
|
.bottom-productImg {
|
|
display: flex;
|
|
margin-bottom: 23rpx;
|
|
flex-shrink: 0;
|
|
image {
|
|
width: 173.33rpx;
|
|
height: 173.33rpx;
|
|
background: #666666;
|
|
border-radius: 13rpx;
|
|
}
|
|
}
|
|
|
|
.right-content {
|
|
padding-left: 14rpx;
|
|
flex: 1;
|
|
width: 1rpx;
|
|
.bottom-productPrice {
|
|
font-size: 40rpx;
|
|
color: #FC524B;
|
|
&:before {
|
|
content: "¥";
|
|
font-size: 26rpx;
|
|
}
|
|
}
|
|
|
|
.bottom-content {
|
|
width: 100%;
|
|
font-size: 27rpx;
|
|
font-family: PingFang SC;
|
|
font-weight: 400;
|
|
color: #666666;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.botProduct {
|
|
position: relative;
|
|
min-height: 67rpx;
|
|
border-radius: 13rpx;
|
|
margin-bottom: 34rpx;
|
|
max-width: 100%;
|
|
padding-right:15rpx;
|
|
min-width: 320rpx;
|
|
background: #EFEFEF;
|
|
display: flex;
|
|
align-items: center;
|
|
box-sizing: border-box;
|
|
color: #333;
|
|
width: fit-content;
|
|
&>image{
|
|
width: 67rpx;
|
|
height: 67rpx;
|
|
border-radius: 13rpx;
|
|
flex-shrink: 0;
|
|
}
|
|
.sku-name{
|
|
flex: 1;
|
|
padding-left: 15rpx;
|
|
white-space: normal;
|
|
font-size: 27rpx;
|
|
word-break: break-all;
|
|
}
|
|
}
|
|
.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 {
|
|
color: #6A8A27;
|
|
border: 1px solid #6A8A27;
|
|
}
|
|
|
|
.buy-num {
|
|
font-weight: 500;
|
|
font-size: 31rpx;
|
|
color: #000000;
|
|
color: #333333;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
width: 233rpx;
|
|
height: 53rpx;
|
|
background: #EFEFEF;
|
|
border-radius: 13rpx;
|
|
margin-top: 25rpx;
|
|
.number-btn {
|
|
display: flex;
|
|
height: 100%;
|
|
width: 100%;
|
|
view {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
width: 69rpx;
|
|
height: 100%;
|
|
}
|
|
}
|
|
}
|
|
|
|
.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: 32rpx 0 60rpx;
|
|
padding-top: 30rpx;
|
|
}
|
|
.sp-container{
|
|
display: flex;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
min-height: 400rpx;
|
|
max-height: 600rpx;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
align-content: flex-start
|
|
}
|
|
.sp-bottom-btn{
|
|
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;
|
|
.btn{
|
|
width: 697rpx;
|
|
height: 73rpx;
|
|
background: #6A8A2D;
|
|
border-radius: 11rpx;
|
|
font-weight: bold;
|
|
font-size: 32rpx;
|
|
color: #FFFFFF;
|
|
text-align: center;
|
|
line-height: 73rpx;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.btn-post{
|
|
font-size: 31rpx;
|
|
font-family: PingFangSC;
|
|
font-weight: bold;
|
|
color: #FFFFFF;
|
|
line-height: 60rpx;
|
|
text-align: center;
|
|
display: flex;
|
|
flex-shrink: 0;
|
|
|
|
.left-btn-buy{
|
|
width: 200rpx;
|
|
height: 75rpx;
|
|
line-height: 75rpx;
|
|
color: #6A8A27;
|
|
background: #D3E8A7;
|
|
border-radius: 20rpx 0rpx 0rpx 20rpx;
|
|
}
|
|
.right-btn-buy{
|
|
width: 200rpx;
|
|
height: 75rpx;
|
|
line-height: 75rpx;
|
|
background: #6A8A27;
|
|
border-radius: 0rpx 20rpx 20rpx 0rpx;
|
|
}
|
|
}
|
|
.add-cart-icon{
|
|
width: 80rpx;
|
|
height: 80rpx;
|
|
background: #FFFFFF;
|
|
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0,0,0,0.2);
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: fixed;
|
|
bottom: 200rpx;
|
|
right: 20rpx;
|
|
z-index: 10;
|
|
image{
|
|
width: 43.33rpx;
|
|
height: 42rpx;
|
|
}
|
|
}
|
|
.scroll-all-box {
|
|
background-color: #fff;
|
|
.scroll-menus {
|
|
padding: 0 40rpx;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
font-size: 29rpx;
|
|
color: #333;
|
|
height: 84rpx;
|
|
padding-bottom: 12rpx;
|
|
|
|
.scroll-menu-item {
|
|
position: relative;
|
|
line-height: 84rpx;
|
|
flex: 1;
|
|
flex-shrink: 0;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
font-size: 31rpx;
|
|
color: #010101;
|
|
}
|
|
|
|
.scroll-menu-item.active::after {
|
|
content: '1';
|
|
font-size: 0;
|
|
display: block;
|
|
position: absolute;
|
|
width: 73rpx;
|
|
height: 6rpx;
|
|
border-radius: 3rpx;
|
|
background: #6A8A27;
|
|
left: 50%;
|
|
margin-left: -37rpx;
|
|
bottom: 0rpx;
|
|
}
|
|
}
|
|
|
|
.fixed-menus {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
background: white;
|
|
z-index: 1;
|
|
}
|
|
}
|
|
.select-cycle{
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
border-radius: 50%;
|
|
border: 1px solid #999999;
|
|
image{
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
.select-cycle.selected {
|
|
border: none;
|
|
image{
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
border-radius: 50%;
|
|
}
|
|
}
|
|
|
|
.display-tag{
|
|
font-weight: 500;
|
|
font-size: 24rpx;
|
|
color: #111111;
|
|
padding: 27rpx;
|
|
border-top: 1px solid #D8D8D8;
|
|
}
|
|
|
|
.supplier-box{
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 28rpx 23rpx;
|
|
.supplier-image{
|
|
width: 113.07rpx;
|
|
height: 113.07rpx;
|
|
border-radius: 50%;
|
|
flex-shrink: 0 ;
|
|
}
|
|
.supplier-content{
|
|
flex: 1;
|
|
width: 1px;
|
|
padding: 0 50rpx 0 20rpx;
|
|
height: 113.07rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
font-weight: bold;
|
|
font-size: 32rpx;
|
|
color: #010101;
|
|
}
|
|
.supplier-btn{
|
|
flex-shrink: 0;
|
|
width: 133rpx;
|
|
height: 55rpx;
|
|
background: #6A8A2D;
|
|
border-radius: 13rpx;
|
|
font-weight: 500;
|
|
font-size: 31rpx;
|
|
color: #FFFFFF;
|
|
text-align: center;
|
|
line-height: 55rpx;
|
|
}
|
|
|
|
.tags{
|
|
display: flex;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
padding-top: 10rpx;
|
|
.tags-item{
|
|
padding: 4rpx 10rpx;
|
|
font-weight: 500;
|
|
font-size: 24rpx;
|
|
color: #6A8A27;
|
|
border-radius: 5rpx 4rpx 4rpx 5rpx;
|
|
border: 1px solid #6A8A27;
|
|
margin-right: 15rpx;
|
|
}
|
|
}
|
|
}
|
|
.cartNum{
|
|
width: 28rpx;
|
|
height: 28rpx;
|
|
background: #DC2525;
|
|
border-radius: 50%;
|
|
border: 1px solid #DC2525;
|
|
font-weight: normal;
|
|
font-size: 23rpx;
|
|
color: #FFFFFF;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
position: absolute;
|
|
top: -10rpx;
|
|
right: -6rpx;
|
|
}
|
|
|
|
.cert-item{
|
|
width: 100%;
|
|
height: 93.33rpx;
|
|
padding: 3.33rpx 23rpx 3.33rpx 3.33rpx;
|
|
background: #EBF4D7;
|
|
font-weight: 500;
|
|
font-size: 24rpx;
|
|
color: #6A8A2D;
|
|
border-radius: 7rpx;
|
|
margin-top: 13rpx;
|
|
image{
|
|
height: 100%;
|
|
width: 86.67rpx;
|
|
flex-shrink: 0;
|
|
}
|
|
}
|
|
</style>
|