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.
203 lines
5.0 KiB
203 lines
5.0 KiB
<template> |
|
<view class="tui-goods__item" :class="{ 'tui-full__item': isList }"> |
|
<view class="tui-image__box" :class="{ 'tui-full__imgbox': isList }"> |
|
<image class="tui-goods__img" :class="{ 'tui-full__img': isList }" :src="item.image" mode="widthFix"></image> |
|
</view> |
|
<view class="tui-goods__content" :class="{ 'tui-full__content': isList }"> |
|
<view class="tui-goods__title">{{ item.title || '' }}</view> |
|
<view class="progress cart-color"> |
|
<view class="bg-red" :style="{ width: loading ? item.percent + '%' : '' }"></view> |
|
<view class="piece font-color-red" v-text="'仅剩' + item.stock + '件'"></view> |
|
</view> |
|
<view class="tui-tag__box"><tui-tag plain size="24rpx" type="red" padding="8rpx 12rpx">限时价</tui-tag></view> |
|
<view class="tui-box__bottom"> |
|
<view class="tui-price__box"> |
|
<view class="tui-price"> |
|
<view class="tui-price__small">¥</view> |
|
<view class="tui-price__large">{{ item.price || '' }}</view> |
|
<!-- <view class="tui-price__small">.{{ decimalPrice }}</view> --> |
|
</view> |
|
<!-- <view class="tui-price__original">¥{{ item.factory || '0.00' }}</view> --> |
|
</view> |
|
<view> |
|
<!-- <tui-button :width="status == 3 ? '146rpx' : '144rpx'" :height="status == 3 ? '60rpx' : '50rpx'" :size="status == 3 ? 26 : 24" :type="status == 1 ? 'gray' : 'danger'" :disabled="status == 1" :plain="status == 3"> |
|
{{ status | getBtnText(item.subscribe) }} |
|
</tui-button> --> |
|
<view class="grab bg-color-red" v-if="timeList[active].status === 1 && item.stock > 0" @click="goDetail">马上抢</view> |
|
<view class="grab" v-if="timeList[active].status === 1 && item.stock <= 0">已售磬</view> |
|
<view class="grab bg-color-red" v-if="timeList[active].status === 2">即将开始</view> |
|
<view class="grab bg-color-red" v-if="timeList[active].status === 0">已结束</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
name: 'tGoodsItem', |
|
props: { |
|
item: { |
|
type: Object, |
|
default() { |
|
return {} |
|
}, |
|
}, |
|
//是否为列表展示 |
|
isList: { |
|
type: Boolean, |
|
default: false, |
|
}, |
|
//status:1-已结束,2-正在进行,3-即将开枪 |
|
status: { |
|
type: Number, |
|
default: 2, |
|
}, |
|
timeList: { |
|
type: Array, |
|
default: [], |
|
}, |
|
active: { |
|
type: Number, |
|
default: 0, |
|
}, |
|
}, |
|
filters: { |
|
getBtnText(status, subscribe) { |
|
status = status || 1 |
|
let text = ['活动已结束', '立即抢购', '立即预约'][status - 1] |
|
if (status == 3 && subscribe) { |
|
text = '取消预约' |
|
} |
|
return text |
|
}, |
|
}, |
|
computed: { |
|
integerPrice: function() { |
|
let price = this.item.sale || '0.00' |
|
if (~price.indexOf('.')) { |
|
return price.split('.')[0] |
|
} |
|
return price |
|
}, |
|
decimalPrice: function() { |
|
let price = this.item.sale || '0.00' |
|
if (~price.indexOf('.')) { |
|
return price.split('.')[1] |
|
} |
|
return '00' |
|
}, |
|
}, |
|
data() { |
|
return {} |
|
}, |
|
methods: { |
|
goDetail: function() { |
|
this.$emit('goDetail', this.item) |
|
}, |
|
}, |
|
} |
|
</script> |
|
|
|
<style scoped> |
|
.tui-goods__item { |
|
width: 100%; |
|
padding: 20rpx 20rpx 36rpx; |
|
box-sizing: border-box; |
|
border-radius: 12rpx; |
|
background-color: #fff; |
|
margin-bottom: 4%; |
|
position: relative; |
|
} |
|
.tui-full__item { |
|
display: flex; |
|
margin-bottom: 20rpx !important; |
|
padding: 20rpx !important; |
|
} |
|
.tui-img__newguest { |
|
position: absolute; |
|
width: 96rpx; |
|
height: 32rpx; |
|
left: 0; |
|
top: 8rpx; |
|
} |
|
.tui-image__box { |
|
width: 100%; |
|
height: 300rpx; |
|
} |
|
.tui-full__imgbox { |
|
width: 240rpx !important; |
|
height: 240rpx !important; |
|
margin-right: 20rpx; |
|
} |
|
.tui-goods__img { |
|
max-width: 100%; |
|
max-height: 300rpx; |
|
display: block; |
|
border-radius: 8rpx; |
|
} |
|
.tui-full__img { |
|
max-height: 240rpx !important; |
|
} |
|
.tui-goods__content { |
|
width: 100%; |
|
padding-top: 16rpx; |
|
} |
|
.tui-full__content { |
|
height: 240rpx; |
|
display: flex; |
|
flex-direction: column; |
|
justify-content: space-between; |
|
padding-top: 0 !important; |
|
} |
|
.tui-goods__title { |
|
font-size: 26rpx; |
|
font-weight: 400; |
|
color: #333; |
|
word-break: break-all; |
|
overflow: hidden; |
|
text-overflow: ellipsis; |
|
display: -webkit-box; |
|
-webkit-box-orient: vertical; |
|
-webkit-line-clamp: 2; |
|
margin-bottom: 20rpx; |
|
} |
|
.tui-tag__box { |
|
display: flex; |
|
padding-top: 25rpx; |
|
padding-bottom: 25rpx; |
|
} |
|
.tui-box__bottom { |
|
width: 100%; |
|
display: flex; |
|
align-items: center; |
|
justify-content: space-between; |
|
} |
|
.tui-price__box { |
|
display: flex; |
|
flex-direction: column; |
|
align-items: center; |
|
justify-content: center; |
|
} |
|
.tui-price { |
|
display: flex; |
|
align-items: flex-end; |
|
color: #eb0909; |
|
} |
|
.tui-price__small { |
|
font-size: 24rpx; |
|
line-height: 24rpx; |
|
} |
|
.tui-price__large { |
|
font-size: 34rpx; |
|
line-height: 32rpx; |
|
font-weight: 600; |
|
} |
|
.tui-price__original { |
|
font-size: 24rpx; |
|
line-height: 24rpx; |
|
text-decoration: line-through; |
|
color: #999; |
|
padding-top: 10rpx; |
|
} |
|
</style>
|
|
|