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.
813 lines
22 KiB
813 lines
22 KiB
<template> |
|
<view :class="[posterImageStatus ? 'noscroll product-con' : 'product-con']" v-show="domStatus"> |
|
<product-con-swiper :imgUrls="imgUrls"></product-con-swiper> |
|
|
|
<view class="tui-pro-detail"> |
|
<view class="tui-product-title tui-border-radius"> |
|
<view class="tui-price__box"> |
|
<view class="tui-pro-pricebox tui-padding"> |
|
<view class="tui-pro-price"> |
|
<view> |
|
<text>¥</text> |
|
<text class="tui-price">{{ formatPrice(storeInfo.price, 0) }}</text> |
|
<text>.{{ formatPrice(storeInfo.price, 1) }}</text> |
|
</view> |
|
<view class="tui-original-price tui-white__gray" v-text="'¥' + storeInfo.price"></view> |
|
</view> |
|
<view class="tui-sold tui-white__gray"> |
|
<text>已抢{{ storeInfo.sales }}件</text> |
|
<tui-tag v-if="seckillStatus != 2" type="white" plain size="24rpx" padding="8rpx" :scaleMultiple="0.94">限时秒杀</tui-tag> |
|
</view> |
|
</view> |
|
<view class="tui-right__box"> |
|
<image v-if="seckillStatus == 2" src="https://www.thorui.cn/images/mall/img_seckillgood_seckill.png" class="tui-seckill__img" mode="widthFix"></image> |
|
<tui-button v-if="seckillStatus == 2" type="danger" disabled shape="circle" width="140rpx" height="42rpx" :size="24">{{ seckillStatus == 1 ? '活动已结束' : '即将开抢' }}</tui-button> |
|
<text v-if="seckillStatus != 2" class="tui-color-red">距结束还剩:</text> |
|
<count-down :isDay="false" :tipText="' '" :dayText="' '" :hourText="' : '" :minuteText="' : '" :secondText="' '" :datatime="datatime"></count-down> |
|
</view> |
|
</view> |
|
<view class="tui-pro-titbox"> |
|
<view class="tui-pro-title">{{ storeInfo.title }}</view> |
|
</view> |
|
<view class="tui-padding"> |
|
<view class="tui-sale-info tui-size tui-gray"> |
|
<view>库存:{{ storeInfo.stock }}</view> |
|
<view>月销{{ storeInfo.sales }}</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<!-- 规格 --> |
|
<view class="attribute acea-row row-between-wrapper" @click="selecAttrTap"> |
|
<view> |
|
<text>{{ attrTxt }}:</text> |
|
<text class="atterTxt">{{ attrValue }}</text> |
|
</view> |
|
<view class="iconfont icon-jiantou"></view> |
|
</view> |
|
<view class="product-intro"> |
|
<text class="title"><text>产品介绍</text></text> |
|
<view class="conter" v-html="storeInfo.description"></view> |
|
</view> |
|
|
|
<!-- 操作栏 --> |
|
<view style="height: 100rpx"></view> |
|
|
|
<!--底部操作栏--> |
|
<view class="tui-operation"> |
|
<view class="tui-operation-left tui-col-5"> |
|
<!-- #ifdef MP-WEIXIN --> |
|
<button class="tui-operation-item" hover-class="tui-opcity" :hover-stay-time="150"> |
|
<view class="iconfont icon-kefu"></view> |
|
<view class="tui-operation-text tui-scale-small">客服</view> |
|
</button> |
|
<!-- #endif --> |
|
|
|
<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 tui-right-flex tui-col-7 tui-btnbox-4" v-if="seckillStatus == 1 && storeInfo.num > 0 && storeInfo.stock > 0"> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="warning" shape="circle" @click="openAlone">单独购买</tui-button> |
|
</view> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="danger" shape="circle" @click="tapBuy">立即购买</tui-button> |
|
</view> |
|
</view> |
|
<view class="tui-operation-right tui-right-flex tui-col-7 tui-btnbox-4" v-if="seckillStatus == 1 && storeInfo.num <= 0 && storeInfo.stock <= 0"> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="warning" shape="circle" disabled>已售罄</tui-button> |
|
</view> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="danger" shape="circle" @click="openAlone">原价购买</tui-button> |
|
</view> |
|
</view> |
|
<view class="tui-operation-right tui-right-flex tui-col-7 tui-btnbox-4" v-if="seckillStatus == 2"> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="warning" shape="circle" disabled>即将开始</tui-button> |
|
</view> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="danger" shape="circle" @click="openAlone">原价购买</tui-button> |
|
</view> |
|
</view> |
|
<view class="tui-operation-right tui-right-flex tui-col-7 tui-btnbox-4" v-if="seckillStatus == 0"> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="warning" shape="circle" disabled>活动已结束</tui-button> |
|
</view> |
|
<view class="tui-flex-1"> |
|
<tui-button height="68rpx" :size="26" type="danger" shape="circle" @click="openAlone">原价购买</tui-button> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<ProductWindow v-on:changeFun="changeFun" :attr="attr" :cartNum="cartNum"></ProductWindow> |
|
<StorePoster v-on:setPosterImageStatus="setPosterImageStatus" :posterImageStatus="posterImageStatus" :posterData="posterData"></StorePoster> |
|
</view> |
|
</template> |
|
<style scoped lang="less"> |
|
.noscroll { |
|
height: 100%; |
|
overflow: hidden; |
|
} |
|
</style> |
|
<script> |
|
import ProductConSwiper from '@/components/ProductConSwiper' |
|
import CountDown from '@/components/CountDown' |
|
import ProductWindow from '@/components/ProductWindow' |
|
import StorePoster from '@/components/StorePoster' |
|
import { getSeckillDetail } from '@/api/activity' |
|
import { postCartAdd } from '@/api/store' |
|
import { imageBase64 } from '@/api/public' |
|
import { getCoupon, getCollectAdd, getCollectDel, getUserInfo } from '@/api/user' |
|
const NAME = 'SeckillDetails' |
|
|
|
export default { |
|
name: 'SeckillDetails', |
|
components: { |
|
ProductConSwiper, |
|
CountDown, |
|
ProductWindow, |
|
StorePoster, |
|
}, |
|
props: {}, |
|
data: function() { |
|
return { |
|
seckillStatus: '', |
|
domStatus: false, |
|
posterData: { |
|
image: '', |
|
title: '', |
|
price: '', |
|
code: '', |
|
}, |
|
posterImageStatus: false, |
|
action: '', |
|
imgUrls: [], |
|
storeInfo: [], |
|
replyCount: 0, |
|
reply: [], |
|
cartNum: 1, |
|
attrTxt: '请选择', |
|
productValue: [], |
|
attrValue: '', |
|
attr: { |
|
cartAttr: false, |
|
productAttr: [], |
|
productSelect: {}, |
|
}, |
|
datatime: 0, |
|
userCollect: false, |
|
} |
|
}, |
|
onShow: 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/GoodsSeckill/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', |
|
}) |
|
}, |
|
} |
|
}, |
|
openAlone: function() { |
|
this.$yrouter.push({ |
|
path: '/pages/shop/GoodsCon/index', |
|
query: { |
|
id: this.storeInfo.productId, |
|
}, |
|
}) |
|
// this.$yrouter.replace({ path: "/detail/" + this.storeInfo.productId }); |
|
}, |
|
routerGo(item) { |
|
this.$yrouter.push({ |
|
path: '/pages/user/CustomerList/index', |
|
}) |
|
}, |
|
//收藏商品 |
|
setCollect: function() { |
|
let that = this, |
|
id = that.storeInfo.id, |
|
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 |
|
console.log(this) |
|
let id = that.$yroute.query.id |
|
this.seckillStatus = that.$yroute.query.status |
|
that.datatime = parseInt(that.$yroute.query.time) |
|
getSeckillDetail(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, 'replyCount', res.data.replyCount) |
|
that.$set(that, 'reply', res.data.reply) |
|
that.posterData.image = that.storeInfo.image_base |
|
that.updateTitle() |
|
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.price |
|
that.posterData.code = that.storeInfo.code_base |
|
// that.setProductSelect(); |
|
that.domStatus = true |
|
that.DefaultSelect() |
|
}) |
|
}, |
|
updateTitle() { |
|
// document.title = this.storeInfo.title || this.$yroute.meta.title; |
|
}, |
|
setPosterImageStatus: function() { |
|
// var sTop = document.body || document.documentElement; |
|
// sTop.scrollTop = 0; |
|
this.posterImageStatus = !this.posterImageStatus |
|
}, |
|
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.seckillPrice) |
|
this.$set(this.attr.productSelect, 'stock', productSelect.seckillStock) |
|
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.seckillPrice) |
|
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.seckillPrice) |
|
this.$set(this.attr.productSelect, 'stock', this.storeInfo.seckillStock) |
|
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', '请选择') |
|
} |
|
}, |
|
//将父级向子集多次传送的函数合二为一; |
|
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; |
|
// if (res) { |
|
// if (that.attr.productSelect.cart_num < that.storeInfo.seckillStock) { |
|
// that.attr.productSelect.cart_num += 1; |
|
// this.cartNum += 1; |
|
// console.log(this.cartNum) |
|
// } |
|
// } else { |
|
// if (that.attr.productSelect.cart_num > 1) { |
|
// that.attr.productSelect.cart_num -= 1; |
|
// this.cartNum -= 1; |
|
// } |
|
// } |
|
// }, |
|
ChangeCartNum: function(changeValue) { |
|
//changeValue:是否 加|减 |
|
//获取当前变动属性 |
|
let productSelect = this.productValue[this.attrValue] |
|
//如果没有属性,赋值给商品默认库存 |
|
if (productSelect === undefined && !this.attr.productAttr.length) { |
|
productSelect = this.attr.productSelect |
|
} |
|
//无属性值即库存为0;不存在加减; |
|
if (productSelect === undefined) return |
|
let stock = productSelect.stock || 0 |
|
let num = this.attr.productSelect |
|
if (changeValue) { |
|
num.cart_num++ |
|
if (num.cart_num > stock) { |
|
this.$set(this.attr.productSelect, 'cart_num', stock) |
|
this.$set(this, 'cartNum', stock) |
|
} else { |
|
this.$set(this.attr.productSelect, 'cart_num', num.cart_num) |
|
this.$set(this, 'cartNum', num.cart_num) |
|
} |
|
} else { |
|
num.cart_num-- |
|
if (num.cart_num < 1) { |
|
this.$set(this.attr.productSelect, 'cart_num', 1) |
|
this.$set(this, 'cartNum', 1) |
|
} else { |
|
this.$set(this.attr.productSelect, 'cart_num', num.cart_num) |
|
this.$set(this, 'cartNum', num.cart_num) |
|
} |
|
} |
|
}, |
|
//选择属性; |
|
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.seckillPrice) |
|
this.$set(this.attr.productSelect, 'stock', productSelect.seckillStock) |
|
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.seckillPrice) |
|
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', '请选择') |
|
} |
|
}, |
|
selecAttrTap: function() { |
|
this.attr.cartAttr = true |
|
this.isOpen = true |
|
}, |
|
tapBuy: function() { |
|
var that = this |
|
if (that.attr.cartAttr == false) { |
|
that.attr.cartAttr = !this.attr.attrcartAttr |
|
} else { |
|
var data = {} |
|
data.productId = that.storeInfo.productId |
|
data.cartNum = that.attr.productSelect.cart_num |
|
data.uniqueId = that.attr.productSelect.unique |
|
data.secKillId = that.storeInfo.id |
|
data.new = 1 |
|
postCartAdd(data) |
|
.then(res => { |
|
that.$yrouter.push({ |
|
path: '/pages/order/OrderSubmission/index', |
|
query: { |
|
id: res.data.cartId, |
|
}, |
|
}) |
|
}) |
|
.catch(err => { |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
} |
|
}, |
|
}, |
|
} |
|
</script> |
|
<style scoped lang="less"> |
|
.product-con .nav { |
|
padding: 0 0.2 * 100rpx; |
|
} |
|
|
|
.product-con .footer .bnt .buy.bg-color-hui { |
|
background: #ccc; |
|
} |
|
|
|
/*内容 部分*/ |
|
|
|
.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 { |
|
box-sizing: border-box; |
|
color: #333; |
|
} |
|
|
|
.tui-product-title { |
|
background: #fff; |
|
padding-bottom: 30rpx; |
|
} |
|
|
|
.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: 44rpx; |
|
line-height: 42rpx; |
|
} |
|
|
|
.tui-sold { |
|
width: 100%; |
|
height: 44rpx; |
|
padding-left: 4rpx; |
|
display: flex; |
|
align-items: flex-end; |
|
justify-content: space-between; |
|
} |
|
|
|
.tui-original-price { |
|
font-size: 26rpx; |
|
line-height: 26rpx; |
|
padding: 0 20rpx; |
|
box-sizing: border-box; |
|
text-decoration: line-through; |
|
} |
|
|
|
.tui-right__box { |
|
flex: 1; |
|
background-color: #ffe5e5; |
|
font-size: 24rpx; |
|
display: flex; |
|
flex-direction: column; |
|
align-items: center; |
|
justify-content: center; |
|
} |
|
|
|
.tui-right__box text { |
|
text-align: center; |
|
padding-bottom: 12rpx; |
|
} |
|
|
|
.tui-seckill__img { |
|
width: 146rpx; |
|
height: 26rpx; |
|
margin-bottom: 16rpx; |
|
} |
|
|
|
.tui-pro-titbox { |
|
font-size: 32rpx; |
|
font-weight: 500; |
|
position: relative; |
|
padding: 0 150rpx 0 30rpx; |
|
box-sizing: border-box; |
|
} |
|
|
|
.tui-pro-title { |
|
padding-top: 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-sale-info { |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
padding-top: 30rpx; |
|
} |
|
|
|
.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-col-7 { |
|
width: 58.33333333%; |
|
} |
|
|
|
.tui-col-5 { |
|
width: 41.66666667%; |
|
} |
|
|
|
.tui-operation { |
|
width: 100%; |
|
height: 100rpx; |
|
background: rgba(255, 255, 255, 0.98); |
|
position: fixed; |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
z-index: 100; |
|
bottom: 0; |
|
left: 0; |
|
padding-bottom: env(safe-area-inset-bottom); |
|
} |
|
|
|
.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 { |
|
display: flex; |
|
align-items: center; |
|
} |
|
|
|
.tui-operation-item { |
|
flex: 1; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
flex-direction: column; |
|
position: relative; |
|
|
|
background: none; |
|
padding: 0; |
|
|
|
border: 0; |
|
line-height: 1em; |
|
&:after { |
|
display: none; |
|
} |
|
.tui-operation-text { |
|
margin-top: 9rpx; |
|
line-height: 1em; |
|
} |
|
} |
|
|
|
.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: 0; |
|
padding: 0 12rpx; |
|
box-sizing: border-box; |
|
} |
|
|
|
.tui-right-flex { |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
} |
|
|
|
.tui-flex-1 { |
|
flex: 1; |
|
padding: 6rpx; |
|
} |
|
|
|
.tui-img__clock { |
|
width: 30rpx; |
|
height: 30rpx; |
|
margin-right: 8rpx; |
|
} |
|
</style>
|
|
|