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.
1710 lines
43 KiB
1710 lines
43 KiB
<template> |
|
<view :class="[posterImageStatus ? 'noscroll product-con' : 'product-con']" v-show="domStatus"> |
|
|
|
<view class="header"> |
|
<cu-custom :isBack="true" :isCenter="true" > |
|
<block slot="backText"> |
|
<view class="backImg"> |
|
<image src="@/static/images/back-btn.png" mode=""></image> |
|
</view> |
|
</block> |
|
</cu-custom> |
|
</view> |
|
|
|
<!-- 商品轮播 --> |
|
<product-con-swiper :imgUrls="imgUrls"></product-con-swiper> |
|
|
|
<view class="tui-pro-detail"> |
|
<view class="tui-product-title"> |
|
<view class="activity-info-box"> |
|
<view class="activity-info acea-row row-between"> |
|
<view class="activity-info-left acea-row row-column row-middle"> |
|
<view class="people-icon-box" :style="'width:'+ (22*storeInfo.people - 4*(storeInfo.people - 1)) +'rpx;'"> |
|
<view class="item" v-for="(item,index) in storeInfo.people" :key="index" :style="'left:'+(18*index)+'rpx;z-index:'+(storeInfo.people - index)+';'"> |
|
<image src="../../../static/images/group-icon.png" mode=""></image> |
|
<!-- <image src="../../../static/images/group-light-icon.png" mode=""></image> --> |
|
</view> |
|
</view> |
|
<!-- <view class="">3/{{ storeInfo.people }}已参团</view> --> |
|
</view> |
|
<view class="activity-info-right"> |
|
<view class="people-num">{{ storeInfo.people }}</view> |
|
<view class="text">人团</view> |
|
</view> |
|
</view> |
|
</view> |
|
<!-- <view class="tui-price__box"> --> |
|
<!-- <view class="tui-pro-pricebox tui-padding"> --> |
|
<view class="tui-pro-price"> |
|
<text class="tui-price">¥{{storeInfo.price}}</text> |
|
<view class="tui-original-price">¥{{storeInfo.productPrice}}</view> |
|
</view> |
|
<!-- <view class="tui-sold tui-white__gray"> |
|
<view class="tui-price-tag">{{ storeInfo.people }}人团</view> |
|
<text>已拼{{ storeInfo.sales }}{{ storeInfo.unitName }}</text> |
|
</view> --> |
|
<!-- </view> --> |
|
<!-- <view class="tui-right__box">库存{{ storeInfo.stock }}{{ storeInfo.unitName }}</view> --> |
|
<!-- </view> --> |
|
<!-- <view class="tui-pro-titbox"> --> |
|
<view class="tui-pro-title">{{ storeInfo.title }}</view> |
|
<view class="tui-pro-info">{{ storeInfo.info }}</view> |
|
<!-- </view> --> |
|
<view class="tui-sale-info acea-row row-between"> |
|
<view class="tips acea-row"> |
|
<view class="tip">甄选品牌</view> |
|
</view> |
|
<view>库存:{{ storeInfo.stock }}{{ storeInfo.unitName }}</view> |
|
</view> |
|
</view> |
|
|
|
<!-- 拼团规则 --> |
|
<view class="playWay acea-row row-middle"> |
|
<view class="title">拼团规则</view> |
|
<view class="way acea-row row-middle row-around"> |
|
<view class="item"><text class="num">1</text>开团/参团</view> |
|
<!-- <view class="iconfont icon-arrow"></view> --> |
|
<view class="item"> <text class="num">2</text>邀请好友</view> |
|
<!-- <view class="iconfont icon-arrow"></view> --> |
|
<view class="item"> |
|
<view> <text class="num">3</text>人满发货</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<!-- 规格 --> |
|
<view class="attribute acea-row row-between-wrapper" @click="selecAttrTap"> |
|
<view>选规格</view> |
|
<view class="acea-row attr-content"> |
|
<image v-if="item.image" :src="item.image" v-for="(item,index) in attrImages" :key="index" mode="aspectFill"></image> |
|
<view class="attrs">共{{attr.productAttr[0].attrValueArr.length}}个{{attr.productAttr[0].attrName}}可选</view> |
|
<!-- <text>{{ attrTxt }}:</text> |
|
<text class="atterTxt">{{ attrValue }}</text> --> |
|
</view> |
|
<view class="jiantou-right"></view> |
|
<!-- <view class="iconfont icon-jiantou"></view> --> |
|
</view> |
|
|
|
<view class="safeguard-info acea-row" v-if="tempName || storeInfo.config"> |
|
<view class="safeguard-item" v-if="tempName"> |
|
<image class="img" src="@/static/images/by.png" mode=""></image> |
|
<view class="line1">{{tempName}}</view> |
|
</view> |
|
<view class="safeguard-item" v-for="(item,index) in storeInfo.config" :key="index"> |
|
<image class="img" :src="item.configuration" mode=""></image> |
|
<view class="line1">{{item.content}}</view> |
|
</view> |
|
<!-- <view class="safeguard-item"> |
|
<image class="img" src="@/static/images/fxt.png" mode=""></image> |
|
<view>7天无理由</view> |
|
</view> |
|
<view class="line"></view> |
|
<view class="safeguard-item"> |
|
<image class="img" src="@/static/images/bj.png" mode=""></image> |
|
<view>30天保价</view> |
|
</view> --> |
|
</view> |
|
|
|
<!-- 拼团信息 --> |
|
<!-- <view class="notice acea-row row-middle"> |
|
<view class="num font-color-red"> |
|
<text class="iconfont icon-laba"></text> |
|
已拼{{ storeInfo.sales }}{{ storeInfo.unitName }} |
|
<text class="line">|</text> |
|
</view> |
|
<view class="swiper-no-swiping swiper"> |
|
<swiper class="swiper-wrapper" :options="swiperTip" :autoplay="true" :interval="3000"> |
|
<block v-for="(item, itemNewIndex) in itemNew" :key="itemNewIndex"> |
|
<swiper-item> |
|
<view class="line1">{{ item }}</view> |
|
</swiper-item> |
|
</block> |
|
</swiper> |
|
</view> |
|
</view> --> |
|
|
|
<!-- 拼团人数,头像 --> |
|
<!-- <view class="assemble"> |
|
<view v-for="(item, groupListindex) in groupList" :key="groupListindex"> |
|
<view class="item acea-row row-between-wrapper" v-if="groupListindex < groupListCount"> |
|
<view class="pictxt acea-row row-between-wrapper"> |
|
<view class="pictrue"> |
|
<image :src="item.avatar" class="image" /> |
|
</view> |
|
<view class="text line1" v-text="item.nickname || '微信用户'"></view> |
|
</view> |
|
<view class="right acea-row row-middle"> |
|
<view> |
|
<view class="lack"> |
|
<text>还差</text> |
|
<text class="font-color-red" v-text="item.count"></text> |
|
<text>人成团</text> |
|
</view> |
|
<count-down :isDay="true" :tipText="'剩余 '" :dayText="' 天 '" :hourText="' : '" :minuteText="' : '" :secondText="' '" :datatime="item.stopTime"></count-down> |
|
</view> |
|
<view class="spellBnt" @click="groupRule(item.id)"> |
|
去拼单 |
|
|
|
<text class="iconfont icon-jiantou"></text> |
|
|
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="more" v-if="groupList.length > groupListCount" @click="setGroupListCount"> |
|
查看更多 |
|
<text class="iconfont icon-xiangxia"></text> |
|
</view> |
|
</view> --> |
|
|
|
<!-- 拼团规则 --> |
|
<!-- <view class="playWay"> |
|
<view class="title acea-row row-between-wrapper"> |
|
<view>拼团玩法</view> |
|
</view> |
|
<view class="way acea-row row-middle"> |
|
<view class="item"> <text class="num">①</text>开团/参团 </view> |
|
<view class="iconfont icon-arrow"></view> |
|
<view class="item"> <text class="num">②</text>邀请好友 </view> |
|
<view class="iconfont icon-arrow"></view> |
|
<view class="item"> |
|
<view> <text class="num">③</text>满员发货 </view> |
|
</view> |
|
</view> |
|
</view> --> |
|
|
|
<!-- 用户评价 --> |
|
<view class="userEvaluation" v-if="replyCount"> |
|
<view class="title acea-row row-between-wrapper"> |
|
<view class="acea-row row-middle"><text>评价</text><text class="replyCount">{{ replyCount }}</text></view> |
|
<view class="praise acea-row row-middle" @click="goReply"> |
|
<view>好评率{{ replyChance }}%</view> |
|
<view class="jiantou-right"></view> |
|
<!-- <text class="font-color-red" v-text="replyChance + '%'"></text>好评率 |
|
<text class="iconfont icon-jiantou"></text> --> |
|
</view> |
|
</view> |
|
<UserEvaluation :reply="reply"></UserEvaluation> |
|
</view> |
|
|
|
<!-- 产品介绍 --> |
|
<view class="product-intro"> |
|
<!-- <view class="title">商品展示</view> --> |
|
<view class="conter"> |
|
<mp-html id="article" :setTitle="false" :lazy-load="true" :copy-link="false" :tag-style="tagStyle" |
|
:content="storeInfo.description" @linktap="linktap" /> |
|
</view> |
|
<!-- <view class="conter" v-html="storeInfo.description"></view> --> |
|
</view> |
|
|
|
<!-- 操作栏 --> |
|
<view :style="(addBottom?'height: 162rpx;':'height: 122rpx;')+'background: #FFFFFF;'"></view> |
|
|
|
<!--底部操作栏--> |
|
<view class="tui-operation acea-row" :style="addBottom?'height: 162rpx;':'height: 122rpx;'"> |
|
<view class="tui-operation-left acea-row row-between"> |
|
<!-- #ifdef MP-WEIXIN --> |
|
<button class="tui-operation-item" open-type="contact" hover-class="tui-opcity" :hover-stay-time="150"> |
|
<image src="@/static/images/service-icon.png" mode=""></image> |
|
<!-- <view class="iconfont icon-kefu"></view> --> |
|
<view class="tui-operation-text">客服</view> |
|
</button> |
|
<!-- #endif --> |
|
|
|
<view @click="goShoppingCart" class="tui-operation-item"> |
|
<image src="@/static/images/cart-icon.png" mode=""></image> |
|
<view class="tui-operation-text">购物车</view> |
|
</view> |
|
|
|
<view class="tui-operation-item" hover-class="tui-opcity" :hover-stay-time="150" @click="setCollect"> |
|
<image v-if="userCollect" src="@/static/images/star-light.png" mode=""></image> |
|
<image v-else src="@/static/images/star.png" mode=""></image> |
|
<view class="tui-operation-text">{{userCollect?'已收藏':'收藏'}}</view> |
|
</view> |
|
|
|
<!-- <view class="tui-operation-item" hover-class="tui-opcity" :hover-stay-time="150" @click="setCollect" v-if="userCollect"> |
|
<view class="iconfont icon-shoucang1"></view> |
|
<view class="tui-operation-text tui-scale-small">收藏</view> |
|
</view> |
|
<view class="tui-operation-item" hover-class="tui-opcity" :hover-stay-time="150" @click="setCollect" v-if="!userCollect"> |
|
<view class="iconfont icon-shoucang"></view> |
|
<view class="tui-operation-text tui-scale-small">收藏</view> |
|
</view> --> |
|
</view> |
|
|
|
<view class="tui-operation-right acea-row"> |
|
<view class="btn other-col" @click="openAlone">单独购买</view> |
|
<view class="btn" @click="openTeam">发起拼团</view> |
|
<!-- <view class="tui-flex-1"> |
|
<tui-button height="100rpx" :size="26" type="warning" shape="rightAngle" @click="openAlone"> |
|
<view class="tui-btn__box"> |
|
<view>单独购买</view> |
|
<view class="tui-flex-end"> |
|
<view class="tui-size-26">¥</view> |
|
<view class="tui-size-36">{{ formatPrice(storeInfo.productPrice, 0) }}</view> |
|
<view class="tui-size-26">.{{ formatPrice(storeInfo.productPrice, 1) }}</view> |
|
</view> |
|
</view> |
|
</tui-button> |
|
</view> |
|
<view class="tui-flex-1"> |
|
<tui-button height="100rpx" :size="26" type="danger" shape="rightAngle" @click="openTeam"> |
|
<view class="tui-btn__box"> |
|
<view>发起拼团</view> |
|
<view class="tui-flex-end"> |
|
<view class="tui-size-28">¥</view> |
|
<view class="tui-price-large tui-size-36">{{ formatPrice(storeInfo.price, 0) }}</view> |
|
<view class="tui-size-28">.{{ formatPrice(storeInfo.price, 1) }}</view> |
|
</view> |
|
</view> |
|
</tui-button> |
|
</view> --> |
|
</view> |
|
</view> |
|
|
|
<!-- 词条弹框 --> |
|
<view class="entry-mask" v-show="showEntry" @touchmove.stop.prevent @click="closeEntry"> |
|
<view class="entry-box"> |
|
<view class="entry"> |
|
{{entryInfo.entryInfo}} |
|
</view> |
|
</view> |
|
</view> |
|
<!-- 商品信息弹窗 --> |
|
<ProductWindow v-if="cartNum" v-on:changeFun="changeFun" :attr="attr" :cartNum="cartNum" :storeInfo="storeInfo.info" :unitName="storeInfo.unitName"></ProductWindow> |
|
<StorePoster v-on:setPosterImageStatus="setPosterImageStatus" :posterImageStatus="posterImageStatus" :posterData="posterData"></StorePoster> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
// import { swiper, swiperSlide } from "vue-awesome-swiper"; |
|
|
|
import ProductConSwiper from '@/components/ProductConSwiper' |
|
import CountDown from '@/components/CountDown' |
|
import UserEvaluation from '@/components/UserEvaluation' |
|
import ProductWindow from '@/components/ProductWindow' |
|
import StorePoster from '@/components/StorePoster' |
|
import { getCombinationDetail } from '@/api/activity' |
|
import { postCartAdd, getEntry } from '@/api/store' |
|
import { imageBase64 } from '@/api/public' |
|
import { getCoupon, getCollectAdd, getCollectDel, getUserInfo } from '@/api/user' |
|
const NAME = 'GroupDetails' |
|
|
|
export default { |
|
name: 'GroupDetails', |
|
components: { |
|
ProductConSwiper, |
|
CountDown, |
|
UserEvaluation, |
|
// swiper, |
|
// swiperSlide, |
|
ProductWindow, |
|
StorePoster, |
|
}, |
|
props: {}, |
|
data: function() { |
|
return { |
|
addBottom: this.addBottom, |
|
domStatus: false, |
|
posterData: { |
|
image: '', |
|
title: '', |
|
price: '', |
|
code: '', |
|
}, |
|
posterImageStatus: false, |
|
reply: [], |
|
replyCount: 0, |
|
replyChance: 0, |
|
tempName: '', |
|
imgUrls: [], |
|
storeInfo: {}, |
|
itemNew: {}, |
|
groupListCount: 2, |
|
groupList: {}, |
|
attrTxt: '请选择', |
|
productValue: [], |
|
attrImages: [], |
|
attrValue: '', |
|
swiperTip: { |
|
direction: 'vertical', |
|
autoplay: { |
|
disableOnInteraction: false, |
|
delay: 2000, |
|
}, |
|
loop: true, |
|
speed: 1000, |
|
observer: true, |
|
observeParents: true, |
|
}, |
|
attr: { |
|
cartAttr: false, |
|
productAttr: [], |
|
productSelect: {}, |
|
}, |
|
cartNum: 1, |
|
userCollect: false, |
|
entryInfo: {}, |
|
showEntry: false, |
|
tagStyle: { |
|
a: 'color:#0A59F7;text-decoration:underline;', |
|
img: 'padding:0;margin:0;font-size:0;display:block;' |
|
} |
|
} |
|
}, |
|
computed: {}, |
|
watch: { |
|
$yroute: function(n) { |
|
var that = this |
|
if (n.name === NAME) { |
|
that.mountedStart() |
|
} |
|
}, |
|
}, |
|
onLoad: function() { |
|
this.mountedStart() |
|
}, |
|
methods: { |
|
formatPrice(price, index) { |
|
// console.log(price) |
|
if (price) { |
|
return price.split('.')[index] |
|
} |
|
return '' |
|
}, |
|
onShareAppMessage: function() { |
|
return { |
|
title: this.storeInfo.title, |
|
imageUrl: this.storeInfo.image, |
|
path: 'pages/activity/GroupDetails/index?id=' + this.storeInfo.id + '&spread=' + uni.getStorageSync('uid') + '&pageType=good&codeType=routine', |
|
success(res) { |
|
uni.showToast({ |
|
title: '分享成功', |
|
}) |
|
}, |
|
fail(res) { |
|
uni.showToast({ |
|
title: '分享失败', |
|
icon: 'none', |
|
}) |
|
}, |
|
} |
|
}, |
|
goShoppingCart() { |
|
uni.setStorageSync('pathToCart', '/pages/activity/GroupDetails/index?id='+ this.$yroute.query.id); |
|
this.$yrouter.switchTab('/pages/shop/ShoppingCart/index'); |
|
}, |
|
//收藏商品 |
|
setCollect: function() { |
|
let that = this, |
|
// id = that.storeInfo.id, |
|
id = that.storeInfo.productId, |
|
category = 'product' |
|
if (that.userCollect) { |
|
getCollectDel(id, category).then(function() { |
|
that.userCollect = !that.userCollect |
|
}) |
|
} else { |
|
getCollectAdd(id, category).then(function() { |
|
that.userCollect = !that.userCollect |
|
}) |
|
} |
|
}, |
|
mountedStart: function() { |
|
var that = this |
|
let id = that.$yroute.query.id |
|
getCombinationDetail(id).then(res => { |
|
that.userCollect = res.data.userCollect |
|
res.data.storeInfo.description = res.data.storeInfo.description.replace(/\<img/gi, '<img style="max-width:100%;height:auto;"') |
|
that.$set(that.attr, 'productAttr', res.data.productAttr) |
|
that.$set(that, 'productValue', res.data.productValue) |
|
that.$set(that, 'storeInfo', res.data.storeInfo) |
|
that.$set(that, 'imgUrls', res.data.storeInfo.sliderImageArr) |
|
that.$set(that, 'itemNew', res.data.pinkOkList) |
|
that.$set(that, 'groupList', res.data.pink) |
|
that.$set(that, 'reply', [res.data.reply]) |
|
that.$set(that, 'replyCount', res.data.replyCount) |
|
that.$set(that, 'replyChance', res.data.replyChance) |
|
that.$set(that, 'tempName', res.data.tempName); |
|
that.posterData.image = that.storeInfo.image |
|
if (that.storeInfo.title.length > 30) { |
|
that.posterData.title = that.storeInfo.title.substring(0, 30) + '...' |
|
} else { |
|
that.posterData.title = that.storeInfo.title |
|
} |
|
that.posterData.price = that.storeInfo.pinkPrice |
|
that.posterData.code = that.storeInfo.code_base |
|
that.domStatus = true |
|
console.log(this.storeInfo) |
|
that.DefaultSelect() |
|
for(let i in that.productValue) { |
|
that.attrImages.push(that.productValue[i]); |
|
if(that.attrImages.length == 2) return |
|
} |
|
}) |
|
}, |
|
DefaultSelect: function() { |
|
let productAttr = this.attr.productAttr |
|
let value = [] |
|
for (let i = 0; i < productAttr.length; i++) { |
|
this.$set(productAttr[i], 'index', 0) |
|
value.push(productAttr[i].attrValueArr[0]) |
|
} |
|
//sort();排序函数:数字-英文-汉字; |
|
let productSelect = this.productValue[value.sort().join(',')] |
|
console.log(productSelect) |
|
if (productSelect && productAttr.length) { |
|
this.$set(this.attr.productSelect, 'store_name', this.storeInfo.title) |
|
this.$set(this.attr.productSelect, 'image', productSelect.image) |
|
this.$set(this.attr.productSelect, 'price', productSelect.pinkPrice) |
|
this.$set(this.attr.productSelect, 'otPrice', productSelect.otPrice); |
|
// this.$set(this.attr.productSelect, 'otPrice', productSelect.price); |
|
this.$set(this.attr.productSelect, 'stock', productSelect.pinkStock) |
|
this.$set(this.attr.productSelect, 'unique', productSelect.unique) |
|
this.$set(this.attr.productSelect, 'cart_num', 1) |
|
this.$set(this, 'attrValue', value.sort().join(',')) |
|
this.$set(this, 'attrTxt', '已选择') |
|
} else if (!productSelect && productAttr.length) { |
|
this.$set(this.attr.productSelect, 'store_name', this.storeInfo.title) |
|
this.$set(this.attr.productSelect, 'image', this.storeInfo.image) |
|
this.$set(this.attr.productSelect, 'price', this.storeInfo.pinkPrice) |
|
this.$set(this.attr.productSelect, 'otPrice', this.storeInfo.otPrice); |
|
// this.$set(this.attr.productSelect, 'otPrice', this.storeInfo.price); |
|
this.$set(this.attr.productSelect, 'stock', 0) |
|
this.$set(this.attr.productSelect, 'unique', '') |
|
this.$set(this.attr.productSelect, 'cart_num', 0) |
|
this.$set(this, 'attrValue', '') |
|
this.$set(this, 'attrTxt', '请选择') |
|
} else if (!productSelect && !productAttr.length) { |
|
this.$set(this.attr.productSelect, 'store_name', this.storeInfo.title) |
|
this.$set(this.attr.productSelect, 'image', this.storeInfo.image) |
|
this.$set(this.attr.productSelect, 'price', this.storeInfo.pinkPrice) |
|
this.$set(this.attr.productSelect, 'otPrice', this.storeInfo.otPrice); |
|
// this.$set(this.attr.productSelect, 'otPrice', this.storeInfo.price); |
|
this.$set(this.attr.productSelect, 'stock', this.storeInfo.pinkStock) |
|
this.$set(this.attr.productSelect, 'unique', this.storeInfo.unique || '') |
|
this.$set(this.attr.productSelect, 'cart_num', 1) |
|
this.$set(this, 'attrValue', '') |
|
this.$set(this, 'attrTxt', '请选择') |
|
} |
|
}, |
|
getImageBase64: function() { |
|
let that = this |
|
imageBase64(this.posterData.image, that.posterData.code).then(res => { |
|
that.posterData.image = res.data.image |
|
that.posterData.code = res.data.code |
|
}) |
|
}, |
|
setPosterImageStatus: function() { |
|
// var sTop = document.body || document.documentElement; |
|
// sTop.scrollTop = 0; |
|
this.posterImageStatus = !this.posterImageStatus |
|
}, |
|
groupRule: function(id) { |
|
var that = this |
|
that.$yrouter.push({ |
|
path: '/pages/activity/GroupRule/index', |
|
query: { |
|
id, |
|
}, |
|
}) |
|
}, |
|
goReply: function() { |
|
var that = this |
|
that.$yrouter.push({ |
|
path: '/pages/shop/EvaluateList/index', |
|
query: { |
|
id: that.storeInfo.product_id, |
|
}, |
|
}) |
|
}, |
|
setGroupListCount: function() { |
|
this.groupListCount = this.groupListCount + 2 |
|
}, |
|
//将父级向子集多次传送的函数合二为一; |
|
changeFun: function(opt) { |
|
if (typeof opt !== 'object') opt = {} |
|
let action = opt.action || '' |
|
let value = opt.value === undefined ? '' : opt.value |
|
this[action] && this[action](value) |
|
}, |
|
changeattr: function(res) { |
|
var that = this |
|
that.attr.cartAttr = res |
|
}, |
|
ChangeCartNum: function(res) { |
|
var that = this |
|
that.attr.productSelect.cart_num = 1 |
|
that.cartNum = 1 |
|
uni.showToast({ |
|
title: '每人每次限购1' + that.storeInfo.unitName, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}, |
|
//选择属性; |
|
ChangeAttr: function(res) { |
|
// 修改了规格 |
|
let productSelect = this.productValue[res.value] |
|
if (productSelect) { |
|
this.attr.productAttr[res.indexw].index = res.indexn |
|
this.$set(this.attr.productSelect, 'image', productSelect.image) |
|
this.$set(this.attr.productSelect, 'price', productSelect.pinkPrice) |
|
this.$set(this.attr.productSelect, 'otPrice', productSelect.otPrice); |
|
// this.$set(this.attr.productSelect, 'otPrice', productSelect.price); |
|
this.$set(this.attr.productSelect, 'stock', productSelect.pinkStock) |
|
this.$set(this.attr.productSelect, 'unique', productSelect.unique) |
|
this.$set(this.attr.productSelect, 'cart_num', 1) |
|
this.$set(this, 'attrValue', res.value) |
|
this.$set(this, 'attrTxt', '已选择') |
|
} else { |
|
this.$set(this.attr.productSelect, 'image', this.storeInfo.image) |
|
this.$set(this.attr.productSelect, 'price', this.storeInfo.pinkPrice) |
|
this.$set(this.attr.productSelect, 'otPrice', this.storeInfo.otPrice); |
|
// this.$set(this.attr.productSelect, 'otPrice', this.storeInfo.price); |
|
this.$set(this.attr.productSelect, 'stock', 0) |
|
this.$set(this.attr.productSelect, 'unique', '') |
|
this.$set(this.attr.productSelect, 'cart_num', 0) |
|
this.$set(this, 'attrValue', '') |
|
this.$set(this, 'attrTxt', '请选择') |
|
} |
|
}, |
|
// 单独购买 |
|
openAlone: function() { |
|
this.$yrouter.push({ |
|
path: '/pages/shop/GoodsCon/index', |
|
query: { |
|
id: this.storeInfo.productId, |
|
}, |
|
}) |
|
// this.$yrouter.replace({ path: "/detail/" + this.storeInfo.productId }); |
|
}, |
|
// 发起拼团 |
|
openTeam: function() { |
|
var that = this |
|
console.log(this.attr) |
|
if (that.attr.cartAttr == false) { // 展示弹框 |
|
console.log(this.attr.cartAttr) |
|
that.attr.cartAttr = !this.attr.cartAttr |
|
// 设置拼团价格 |
|
that.attr.productSelect.price = this.storeInfo.price |
|
} else { // 已有弹框——初始化商品信息,下单请求 |
|
var data = {} |
|
data.productId = that.storeInfo.productId |
|
data.price = that.storeInfo.price |
|
data.cartNum = that.attr.productSelect.cart_num |
|
data.uniqueId = that.attr.productSelect.unique |
|
data.combinationId = that.storeInfo.id |
|
data.new = 1 |
|
console.log(data) |
|
postCartAdd(data) |
|
.then(res => { |
|
that.$yrouter.push({ |
|
path: '/pages/order/OrderSubmission/index', |
|
query: { |
|
// id: res.data.cartId, |
|
pinkId: res.data.cartId, |
|
}, |
|
}) |
|
}) |
|
.catch(err => { |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
} |
|
}, |
|
//打开属性插件; |
|
selecAttrTap: function() { |
|
this.attr.cartAttr = true |
|
this.isOpen = true |
|
}, |
|
linktap(e) { |
|
// console.log('description', e.innerText); |
|
if (e.innerText == this.entryInfo.entryName) { |
|
this.showEntry = true; |
|
return; |
|
} |
|
getEntry({ |
|
name: e.innerText |
|
}).then(res => { |
|
this.entryInfo = res.data; |
|
this.showEntry = true; |
|
}) |
|
}, |
|
closeEntry() { |
|
this.showEntry = false; |
|
}, |
|
}, |
|
} |
|
</script> |
|
<style scoped lang="less"> |
|
.header { |
|
.tab-title { |
|
font-size: 32rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #2DB5AE; |
|
line-height: 42rpx; |
|
} |
|
.backImg { |
|
width: 88rpx; |
|
height: 62rpx; |
|
padding-left: 26rpx; |
|
image { |
|
width: 100%; |
|
height: 100%; |
|
} |
|
} |
|
} |
|
|
|
.jiantou-right { |
|
width: 0; |
|
height: 0; |
|
border-top: 6rpx solid transparent; |
|
border-left: 10rpx solid #2DB5AE; |
|
border-bottom: 6rpx solid transparent; |
|
border-right: 0rpx solid transparent; |
|
margin-left: 8rpx; |
|
} |
|
|
|
.product-con .wrapper { |
|
padding-bottom: 0.26 * 100rpx; |
|
} |
|
|
|
.noscroll { |
|
height: 100%; |
|
overflow: hidden; |
|
} |
|
|
|
.product-con .footer-group .bnt { |
|
// flex:1; |
|
width: 43%; |
|
} |
|
|
|
.footer-group { |
|
button { |
|
border: 0; |
|
background: none; |
|
} |
|
} |
|
|
|
.product-con .footer-group .bnt.bg-color-violet { |
|
background-color: #fa8013; |
|
} |
|
|
|
/*内容 部分*/ |
|
|
|
// .tui-padding { |
|
// padding: 0 30rpx; |
|
// box-sizing: border-box; |
|
// } |
|
|
|
.tui-ml-auto { |
|
margin-left: auto; |
|
} |
|
|
|
/* #ifdef H5 */ |
|
.tui-ptop { |
|
padding-top: 44px; |
|
} |
|
|
|
/* #endif */ |
|
|
|
.tui-size { |
|
font-size: 24rpx; |
|
line-height: 24rpx; |
|
} |
|
|
|
.tui-gray { |
|
color: #999; |
|
} |
|
|
|
// .tui-white__gray { |
|
// color: rgba(255, 255, 255, 0.8); |
|
// font-weight: normal; |
|
// font-size: 26rpx; |
|
// } |
|
|
|
.tui-color-red { |
|
color: #eb0909; |
|
} |
|
|
|
// .tui-border-radius { |
|
// border-bottom-left-radius: 24rpx; |
|
// border-bottom-right-radius: 24rpx; |
|
// overflow: hidden; |
|
// } |
|
|
|
.tui-radius-all { |
|
border-radius: 24rpx; |
|
overflow: hidden; |
|
} |
|
|
|
.tui-mtop { |
|
margin-top: 26rpx; |
|
} |
|
|
|
.tui-pro-detail { |
|
width: 686rpx; |
|
margin: 8rpx 32rpx 20rpx; |
|
background: #2DB5AE; |
|
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06); |
|
border-radius: 16rpx; |
|
|
|
// color: #333; |
|
} |
|
|
|
.tui-product-title { |
|
width: 686rpx; |
|
background: #F5F6F8; |
|
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06); |
|
border-radius: 16rpx; |
|
padding: 24rpx; |
|
position: relative; |
|
|
|
.activity-info-box { |
|
position: absolute; |
|
top: 0rpx; |
|
right: 24rpx; |
|
width: 220rpx; |
|
height: 74rpx; |
|
overflow: hidden; |
|
.activity-info { |
|
padding: 16rpx 16rpx 0rpx; |
|
width: 188rpx; |
|
height: 74rpx; |
|
background: #2DB5AE; |
|
border-radius: 0rpx 0rpx 16rpx 16rpx; |
|
position: relative; |
|
z-index: 1; |
|
margin: 0rpx 16rpx; |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #FFFFFF; |
|
line-height: 26rpx; |
|
.activity-info-left { |
|
width: 102rpx; |
|
text-align: center; |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #F5F6F8; |
|
line-height: 26rpx; |
|
.people-icon-box { |
|
height: 26rpx; |
|
position: relative; |
|
// padding-bottom: 2rpx; |
|
|
|
margin-top: 8rpx; |
|
|
|
.item { |
|
width: 22rpx; |
|
height: 24rpx; |
|
position: absolute; |
|
top: 0; |
|
image { |
|
width: 100%; |
|
height: 100%; |
|
} |
|
} |
|
// .item:first-child { |
|
// left: 0rpx !important; |
|
// } |
|
} |
|
} |
|
.activity-info-right { |
|
font-size: 14rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #F5F6F8; |
|
// line-height: 14rpx; |
|
text-align: center; |
|
.people-num { |
|
font-size: 46rpx; |
|
font-family: Futura; |
|
font-weight: bold; |
|
color: #FFFFFF; |
|
// line-height: 46rpx; |
|
} |
|
.text { |
|
padding-top: 4rpx; |
|
} |
|
} |
|
} |
|
.activity-info::after { |
|
width: 32rpx; |
|
height: 32rpx; |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: -32rpx; |
|
border-radius: 16rpx; |
|
box-shadow: 16rpx -16rpx 0rpx #2DB5AE; |
|
} |
|
.activity-info::before { |
|
width: 32rpx; |
|
height: 32rpx; |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
right: -32rpx; |
|
border-radius: 16rpx; |
|
box-shadow: -16rpx -16rpx 0rpx #2DB5AE; |
|
} |
|
} |
|
} |
|
|
|
// .tui-price__box { |
|
// width: 100%; |
|
// height: 130rpx; |
|
// display: flex; |
|
// } |
|
|
|
// .tui-pro-pricebox { |
|
// width: 540rpx; |
|
// height: 130rpx; |
|
// display: flex; |
|
// flex-direction: column; |
|
// justify-content: center; |
|
// color: #ffffff; |
|
// font-size: 26rpx; |
|
// line-height: 26rpx; |
|
// background: linear-gradient(-30deg, #ff1f2e, #f52c6c); |
|
// flex-shrink: 0; |
|
// } |
|
|
|
.tui-pro-price { |
|
display: flex; |
|
// align-items: flex-end; |
|
} |
|
|
|
.tui-price { |
|
font-size: 48rpx; |
|
font-family: Futura; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 64rpx; |
|
} |
|
|
|
// .tui-sold { |
|
// width: 100%; |
|
// height: 44rpx; |
|
// padding-left: 4rpx; |
|
// display: flex; |
|
// align-items: center; |
|
// padding-top: 10rpx; |
|
// } |
|
|
|
// .tui-price-tag { |
|
// height: 38rpx; |
|
// border: 1rpx solid #fff; |
|
// border-radius: 6rpx; |
|
// white-space: nowrap; |
|
// display: flex; |
|
// align-items: center; |
|
// justify-content: center; |
|
// font-size: 24rpx; |
|
// line-height: 24rpx; |
|
// transform: scale(0.8); |
|
// transform-origin: 0 center; |
|
// border-radius: 6rpx; |
|
// padding: 0 8rpx; |
|
// } |
|
|
|
.tui-original-price { |
|
font-size: 30rpx; |
|
font-family: Futura; |
|
font-weight: 600; |
|
color: #999999; |
|
line-height: 40rpx; |
|
padding-top: 18rpx; |
|
padding-left: 16rpx; |
|
text-decoration: line-through; |
|
} |
|
|
|
// .tui-right__box { |
|
// flex: 1; |
|
// background-color: #ffe5e5; |
|
// font-size: 28rpx; |
|
// display: flex; |
|
// flex-direction: column; |
|
// align-items: center; |
|
// justify-content: center; |
|
// color: #eb0909; |
|
// } |
|
|
|
// .tui-pro-titbox { |
|
// font-size: 32rpx; |
|
// font-weight: 500; |
|
// position: relative; |
|
// padding: 0 150rpx 0 30rpx; |
|
// box-sizing: border-box; |
|
// } |
|
|
|
.tui-pro-title { |
|
font-size: 34rpx; |
|
font-family: SourceHanSansSCVF; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 50rpx; |
|
} |
|
|
|
.tui-pro-info { |
|
font-size: 20rpx; |
|
font-family: SourceHanSansSCVF; |
|
font-weight: 600; |
|
color: #999999; |
|
line-height: 28rpx; |
|
} |
|
|
|
.tui-sale-info { |
|
padding-top: 16rpx; |
|
font-size: 20rpx; |
|
font-family: SourceHanSansSCVF; |
|
font-weight: 500; |
|
color: #999999; |
|
line-height: 28rpx; |
|
.tips { |
|
padding-top: 4rpx; |
|
.tip { |
|
width: 80rpx; |
|
height: 26rpx; |
|
background: #2DB5AE; |
|
border-radius: 6rpx; |
|
margin-right: 4rpx; |
|
font-size: 16rpx; |
|
font-family: PingFang SC; |
|
color: #FFFFFF; |
|
line-height: 26rpx; |
|
text-align: center; |
|
margin-right: 20rpx; |
|
} |
|
} |
|
} |
|
|
|
// .tui-share-btn { |
|
// display: block; |
|
// background: transparent; |
|
// margin: 0; |
|
// padding: 0; |
|
// border-radius: 0; |
|
// border: 0; |
|
// } |
|
|
|
// .tui-share-btn::after { |
|
// border: 0; |
|
// } |
|
|
|
// .tui-share-box { |
|
// display: flex; |
|
// align-items: center; |
|
// } |
|
|
|
// .tui-share-position { |
|
// position: absolute; |
|
// right: 0; |
|
// top: 30rpx; |
|
// } |
|
|
|
// .tui-share-text { |
|
// padding-left: 8rpx; |
|
// } |
|
|
|
// .tui-sub-title { |
|
// padding: 20rpx 0; |
|
// line-height: 32rpx; |
|
// } |
|
|
|
// .tui-guarantee__box { |
|
// display: flex; |
|
// padding: 12rpx 88rpx 0; |
|
// box-sizing: border-box; |
|
// justify-content: space-between; |
|
// align-items: center; |
|
// background: #fff; |
|
// } |
|
|
|
// .tui-gt-item { |
|
// font-size: 28rpx; |
|
// display: flex; |
|
// align-items: center; |
|
// } |
|
|
|
// .tui-gt-item text { |
|
// transform: scale(0.8); |
|
// transform-origin: center center; |
|
// } |
|
|
|
// .tui-gt-img { |
|
// width: 24rpx; |
|
// height: 26rpx; |
|
// flex-shrink: 0; |
|
// } |
|
|
|
// .tui-group-text { |
|
// width: 100%; |
|
// display: flex; |
|
// align-items: center; |
|
// } |
|
|
|
// .tui-group-title { |
|
// font-size: 30rpx; |
|
// line-height: 30rpx; |
|
// font-weight: bold; |
|
// padding-left: 16rpx; |
|
// border-left: 2px solid #eb0909; |
|
// box-sizing: border-box; |
|
// } |
|
|
|
// .tui-sub__title { |
|
// font-size: 26rpx; |
|
// padding-right: 30rpx; |
|
// } |
|
|
|
// .tui-step__box { |
|
// width: 100%; |
|
// height: 210rpx; |
|
// background: #fff; |
|
// padding: 0 60rpx; |
|
// display: flex; |
|
// align-items: center; |
|
// justify-content: space-between; |
|
// box-sizing: border-box; |
|
// } |
|
|
|
// .tui-step-item { |
|
// display: flex; |
|
// align-items: center; |
|
// justify-content: center; |
|
// flex-direction: column; |
|
// font-size: 26rpx; |
|
// color: #666666; |
|
// } |
|
|
|
// .tui-step-item image { |
|
// width: 64rpx; |
|
// height: 55rpx; |
|
// flex-shrink: 0; |
|
// } |
|
|
|
// .tui-step-item image:first-child { |
|
// width: 60rpx !important; |
|
// } |
|
|
|
// .tui-step-arrow { |
|
// height: 90rpx; |
|
// } |
|
|
|
// .tui-step-arrow image { |
|
// width: 11rpx; |
|
// height: 20rpx; |
|
// flex-shrink: 0; |
|
// } |
|
|
|
// .tui-step-text { |
|
// line-height: 26rpx; |
|
// padding-top: 24rpx; |
|
// } |
|
|
|
// .tui-discount-box { |
|
// background: #fff; |
|
// } |
|
|
|
// .tui-list__cell { |
|
// width: 100%; |
|
// position: relative; |
|
// display: flex; |
|
// align-items: center; |
|
// font-size: 26rpx; |
|
// line-height: 26rpx; |
|
// padding: 36rpx 30rpx; |
|
// box-sizing: border-box; |
|
// } |
|
|
|
.tui-right { |
|
position: absolute; |
|
right: 30rpx; |
|
top: 30rpx; |
|
} |
|
|
|
.tui-top40 { |
|
top: 40rpx !important; |
|
} |
|
|
|
.tui-bold { |
|
font-weight: bold; |
|
} |
|
|
|
// .tui-list__cell::after { |
|
// content: ''; |
|
// position: absolute; |
|
// border-bottom: 1rpx solid #eaeef1; |
|
// -webkit-transform: scaleY(0.5); |
|
// transform: scaleY(0.5); |
|
// bottom: 0; |
|
// right: 0; |
|
// left: 126rpx; |
|
// } |
|
|
|
.tui-last::after { |
|
border-bottom: 0 !important; |
|
} |
|
|
|
.tui-flex-center { |
|
display: flex; |
|
align-items: center; |
|
} |
|
|
|
.tui-cell-title { |
|
width: 66rpx; |
|
padding-right: 30rpx; |
|
flex-shrink: 0; |
|
} |
|
|
|
.tui-promotion-box { |
|
display: flex; |
|
align-items: center; |
|
padding: 10rpx 0; |
|
width: 80%; |
|
} |
|
|
|
.tui-promotion-box text { |
|
width: 70%; |
|
white-space: nowrap; |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
} |
|
|
|
.tui-basic-info { |
|
background: #fff; |
|
} |
|
|
|
.tui-addr-box { |
|
width: 76%; |
|
} |
|
|
|
.tui-addr-item { |
|
padding: 10rpx; |
|
line-height: 34rpx; |
|
} |
|
|
|
.tui-guarantee { |
|
background: #fdfdfd; |
|
display: flex; |
|
flex-wrap: wrap; |
|
padding: 20rpx 30rpx 30rpx 30rpx; |
|
font-size: 24rpx; |
|
} |
|
|
|
.tui-guarantee-item { |
|
color: #999; |
|
padding-right: 30rpx; |
|
padding-top: 10rpx; |
|
} |
|
|
|
.tui-pl { |
|
padding-left: 4rpx; |
|
} |
|
|
|
.tui-cmt-box { |
|
background: #fff; |
|
} |
|
|
|
.tui-between { |
|
justify-content: space-between !important; |
|
} |
|
|
|
.tui-cmt-all { |
|
color: #ff201f; |
|
padding-right: 8rpx; |
|
} |
|
|
|
.tui-cmt-content { |
|
font-size: 26rpx; |
|
} |
|
|
|
.tui-cmt-user { |
|
display: flex; |
|
align-items: center; |
|
} |
|
|
|
.tui-acatar { |
|
width: 60rpx; |
|
height: 60rpx; |
|
border-radius: 30rpx; |
|
display: block; |
|
margin-right: 16rpx; |
|
} |
|
|
|
.tui-cmt { |
|
padding: 14rpx 0; |
|
} |
|
|
|
.tui-attr { |
|
font-size: 24rpx; |
|
color: #999; |
|
padding: 6rpx 0; |
|
} |
|
|
|
.tui-cmt-btn { |
|
padding: 50rpx 0 30rpx 0; |
|
box-sizing: border-box; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
} |
|
|
|
.tui-nomore-box { |
|
padding-top: 10rpx; |
|
} |
|
|
|
.tui-product-img { |
|
display: flex; |
|
flex-direction: column; |
|
transform: translateZ(0); |
|
} |
|
|
|
.tui-product-img image { |
|
width: 100%; |
|
display: block; |
|
} |
|
|
|
/*底部操作栏*/ |
|
|
|
// .tui-col-7 { |
|
// width: 58.33333333%; |
|
// } |
|
|
|
// .tui-col-5 { |
|
// width: 41.66666667%; |
|
// } |
|
|
|
.tui-operation { |
|
width: 100%; |
|
position: fixed; |
|
z-index: 100; |
|
bottom: 0; |
|
left: 0; |
|
// padding-bottom: env(safe-area-inset-bottom); |
|
|
|
background: #F1F1F1; |
|
box-shadow: 0rpx -4rpx 38rpx 0rpx rgba(0,0,0,0.2); |
|
border-radius: 28rpx 28rpx 0rpx 0rpx; |
|
} |
|
|
|
// .tui-safearea-bottom { |
|
// width: 100%; |
|
// height: env(safe-area-inset-bottom); |
|
// } |
|
|
|
// .tui-operation::before { |
|
// content: ''; |
|
// position: absolute; |
|
// top: 0; |
|
// right: 0; |
|
// left: 0; |
|
// border-top: 1rpx solid #eaeef1; |
|
// -webkit-transform: scaleY(0.5); |
|
// transform: scaleY(0.5); |
|
// } |
|
|
|
.tui-operation-left { |
|
padding: 12rpx 28rpx; |
|
width: 330rpx; |
|
// display: flex; |
|
// align-items: center; |
|
} |
|
|
|
.tui-operation-item { |
|
width: 60rpx; |
|
// flex: 1; |
|
display: flex; |
|
align-items: center; |
|
// justify-content: center; |
|
flex-direction: column; |
|
// position: relative; |
|
background: none; |
|
padding: 0; |
|
margin: 0; |
|
border: 0; |
|
// line-height: 1em; |
|
|
|
image { |
|
width: 50rpx; |
|
height: 50rpx; |
|
} |
|
&:after { |
|
display: none; |
|
} |
|
.tui-operation-text { |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 500; |
|
color: #3A3A3C; |
|
line-height: 22rpx; |
|
} |
|
} |
|
|
|
// .tui-operation-text { |
|
// font-size: 22rpx; |
|
// color: #333; |
|
// } |
|
|
|
// .tui-opacity { |
|
// opacity: 0.5; |
|
// } |
|
|
|
// .tui-scale-small { |
|
// transform: scale(0.9); |
|
// transform-origin: center center; |
|
// } |
|
|
|
.tui-operation-right { |
|
// height: 100rpx; |
|
padding-top: 18rpx; |
|
.btn { |
|
width: 186rpx; |
|
height: 66rpx; |
|
background: #2DB5AE; |
|
border-radius: 16rpx; |
|
font-size: 26rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #FFFFFF; |
|
line-height: 66rpx; |
|
text-align: center; |
|
margin-right: 14rpx; |
|
} |
|
.other-col { |
|
background: #98DAD7; |
|
} |
|
} |
|
|
|
// .tui-right-flex { |
|
// display: flex; |
|
// align-items: center; |
|
// justify-content: center; |
|
// } |
|
// .tui-flex-1 { |
|
// flex: 1; |
|
// } |
|
|
|
// .tui-img__clock { |
|
// width: 30rpx; |
|
// height: 30rpx; |
|
// margin-right: 8rpx; |
|
// } |
|
|
|
/*底部操作栏*/ |
|
|
|
/*底部选择弹层*/ |
|
|
|
.tui-popup-class { |
|
border-top-left-radius: 24rpx; |
|
border-top-right-radius: 24rpx; |
|
padding-bottom: env(safe-area-inset-bottom); |
|
} |
|
|
|
.tui-popup-box { |
|
position: relative; |
|
padding: 30rpx 0 100rpx 0; |
|
} |
|
|
|
.tui-popup-btn { |
|
width: 100%; |
|
position: absolute; |
|
left: 0; |
|
bottom: 0; |
|
} |
|
|
|
.tui-product-box { |
|
display: flex; |
|
align-items: flex-end; |
|
font-size: 24rpx; |
|
padding-bottom: 30rpx; |
|
} |
|
|
|
.tui-popup-img { |
|
height: 200rpx; |
|
width: 200rpx; |
|
border-radius: 24rpx; |
|
display: block; |
|
} |
|
|
|
.tui-popup-price { |
|
padding-left: 20rpx; |
|
padding-bottom: 8rpx; |
|
} |
|
|
|
.tui-amount { |
|
color: #ff201f; |
|
font-size: 36rpx; |
|
} |
|
|
|
.tui-number { |
|
font-size: 24rpx; |
|
line-height: 24rpx; |
|
padding-top: 12rpx; |
|
color: #999; |
|
} |
|
|
|
.tui-popup-scroll { |
|
height: 600rpx; |
|
font-size: 26rpx; |
|
} |
|
|
|
.tui-scrollview-box { |
|
padding: 0 30rpx 60rpx 30rpx; |
|
box-sizing: border-box; |
|
} |
|
|
|
.tui-attr-title { |
|
padding: 10rpx 0; |
|
color: #333; |
|
} |
|
|
|
.tui-attr-box { |
|
font-size: 0; |
|
padding: 20rpx 0; |
|
} |
|
|
|
.tui-attr-item { |
|
max-width: 100%; |
|
min-width: 200rpx; |
|
height: 64rpx; |
|
display: -webkit-inline-flex; |
|
display: inline-flex; |
|
align-items: center; |
|
justify-content: center; |
|
background: #f7f7f7; |
|
padding: 0 26rpx; |
|
box-sizing: border-box; |
|
border-radius: 32rpx; |
|
margin-right: 20rpx; |
|
margin-bottom: 20rpx; |
|
font-size: 26rpx; |
|
} |
|
|
|
.tui-attr-active { |
|
background: #fcedea !important; |
|
color: #e41f19; |
|
font-weight: bold; |
|
position: relative; |
|
} |
|
|
|
.tui-attr-active::after { |
|
content: ''; |
|
position: absolute; |
|
border: 1rpx solid #e41f19; |
|
width: 100%; |
|
height: 100%; |
|
border-radius: 40rpx; |
|
left: 0; |
|
top: 0; |
|
} |
|
|
|
.tui-number-box { |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
padding: 20rpx 0 30rpx 0; |
|
box-sizing: border-box; |
|
} |
|
|
|
/*底部选择弹层*/ |
|
|
|
/*拼团玩法介绍 modal*/ |
|
.tui-modal__title { |
|
text-align: center; |
|
font-weight: bold; |
|
padding-bottom: 8rpx; |
|
} |
|
.tui-modal__p { |
|
font-size: 26rpx; |
|
color: #888; |
|
padding-top: 20rpx; |
|
} |
|
.tui-modal__btn { |
|
width: 100%; |
|
padding: 60rpx 0 20rpx; |
|
display: flex; |
|
justify-content: center; |
|
} |
|
|
|
/*正在拼团*/ |
|
.tui-group-swiper { |
|
width: 100%; |
|
background-color: #fff; |
|
} |
|
.tui-group-user { |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
padding: 35rpx 40rpx; |
|
box-sizing: border-box; |
|
} |
|
|
|
.tui-user-left { |
|
font-size: 30rpx; |
|
display: flex; |
|
align-items: center; |
|
} |
|
|
|
.tui-user-left image { |
|
height: 80rpx; |
|
width: 80rpx; |
|
flex-shrink: 0; |
|
border-radius: 50%; |
|
margin-right: 16rpx; |
|
} |
|
|
|
.tui-user-right { |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
} |
|
|
|
.tui-user-anme { |
|
max-width: 160rpx; |
|
overflow: hidden; |
|
white-space: nowrap; |
|
text-overflow: ellipsis; |
|
} |
|
|
|
.tui-group-num { |
|
font-size: 26rpx; |
|
line-height: 26rpx; |
|
padding-bottom: 12rpx; |
|
} |
|
|
|
.tui-user-countdown { |
|
padding-right: 18rpx; |
|
display: flex; |
|
flex-direction: column; |
|
align-items: center; |
|
} |
|
|
|
.tui-sub-title { |
|
font-size: 28rpx; |
|
padding-right: 30rpx; |
|
} |
|
.tui-group-countdown { |
|
display: flex; |
|
align-items: center; |
|
font-size: 24rpx; |
|
color: #666666; |
|
white-space: nowrap; |
|
} |
|
|
|
.tui-countdown-right { |
|
padding-right: 6rpx; |
|
} |
|
|
|
.tui-countdown-left { |
|
padding-left: 6rpx; |
|
} |
|
|
|
.tui-btn__box { |
|
height: 98rpx; |
|
font-size: 26rpx; |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
flex-direction: column; |
|
line-height: 28rpx; |
|
padding: 18rpx 0 14rpx 0; |
|
box-sizing: border-box; |
|
} |
|
|
|
.tui-size-26 { |
|
font-size: 26rpx; |
|
line-height: 26rpx; |
|
padding-top: 4rpx; |
|
} |
|
|
|
.tui-size-36 { |
|
font-size: 36rpx; |
|
line-height: 34rpx; |
|
font-weight: 500; |
|
} |
|
.tui-flex-end { |
|
display: flex; |
|
align-items: flex-end; |
|
} |
|
|
|
.product-con .attribute { |
|
.attr-content { |
|
width: 548rpx; |
|
padding-left: 20rpx; |
|
padding-right: 12rpx; |
|
image { |
|
width: 46rpx; |
|
height: 46rpx; |
|
border-radius: 8rpx; |
|
border: 2rpx solid #E3E3E3; |
|
margin-right: 20rpx; |
|
} |
|
.attrs { |
|
padding: 0rpx 8rpx; |
|
min-width: 158rpx; |
|
height: 46rpx; |
|
background: #E3E3E3; |
|
border-radius: 8rpx; |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 500; |
|
color: #999999; |
|
line-height: 46rpx; |
|
text-align: center; |
|
} |
|
} |
|
} |
|
|
|
.safeguard-info { |
|
width: 686rpx; |
|
height: 120rpx; |
|
background: #F5F6F8; |
|
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06); |
|
border-radius: 16rpx; |
|
padding: 18rpx 0rpx; |
|
margin: 0rpx 32rpx 20rpx; |
|
.safeguard-item { |
|
flex: 1; |
|
// width: 226rpx; |
|
height: 84rpx; |
|
border-right: 2rpx solid #979797; |
|
font-size: 20rpx; |
|
font-family: SourceHanSansSCVF; |
|
font-weight: 600; |
|
color: #999999; |
|
line-height: 28rpx; |
|
text-align: center; |
|
.img { |
|
width: 46rpx; |
|
height: 46rpx; |
|
margin-top: 2rpx; |
|
} |
|
} |
|
.safeguard-item:last-child { |
|
border-right: 0; |
|
} |
|
// .line { |
|
// width: 2rpx; |
|
// height: 84rpx; |
|
// background-color: #979797; |
|
// } |
|
} |
|
|
|
.userEvaluation .title .replyCount { |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 500; |
|
color: #3A3A3C; |
|
padding-left: 8rpx; |
|
} |
|
</style>
|
|
|