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.
185 lines
4.0 KiB
185 lines
4.0 KiB
11 months ago
|
<template>
|
||
|
<!-- 砍价商品组 -->
|
||
|
<view class="diy-bargain" :style="{ background: itemStyle.background }">
|
||
|
<view class="goods-item" v-for="(goods, idx) in dataList" :key="idx" @click="handleNavDetail(goods)">
|
||
|
<!-- 商品图片 -->
|
||
|
<view class="goods-image">
|
||
|
<image class="image" :src="goods.goods_image"></image>
|
||
|
</view>
|
||
|
<view class="goods-info">
|
||
|
<!-- 商品名称 -->
|
||
|
<view v-if="inArray('goodsName', itemStyle.show)" class="goods-name">
|
||
|
<text class="twoline-hide">{{ goods.goods_name }}</text>
|
||
|
</view>
|
||
|
<!-- 参与的用户头像 -->
|
||
|
<view v-if="inArray('peoples', itemStyle.show) && goods.helpsCount" class="peoples">
|
||
|
<view class="user-list">
|
||
|
<view v-for="(help, hidx) in goods.helpList" :key="hidx" class="user-item-avatar">
|
||
|
<avatar-image :url="help.user.avatar_url" :width="32" />
|
||
|
</view>
|
||
|
</view>
|
||
|
<view class="people__text">
|
||
|
<text>{{ goods.helpsCount }}人正在砍价</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
<!-- 商品原价 -->
|
||
|
<view v-if="inArray('originalPrice', itemStyle.show)" class="goods-price">
|
||
|
<text>¥{{ goods.original_price }}</text>
|
||
|
</view>
|
||
|
<!-- 砍价低价 -->
|
||
|
<view v-if="inArray('floorPrice', itemStyle.show)" class="floor-price">
|
||
|
<text class="small">最低¥</text>
|
||
|
<text class="big">{{ goods.floor_price }}</text>
|
||
|
</view>
|
||
|
<!-- 操作按钮 -->
|
||
|
<view class="opt-touch">
|
||
|
<view class="touch-btn">
|
||
|
<text>立即参加</text>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import AvatarImage from '@/components/avatar-image'
|
||
|
import { inArray } from '@/utils/util'
|
||
|
import mixin from '../mixin'
|
||
|
|
||
|
export default {
|
||
|
components: {
|
||
|
AvatarImage
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 组件的属性列表
|
||
|
* 用于组件自定义设置
|
||
|
*/
|
||
|
props: {
|
||
|
itemIndex: String,
|
||
|
itemStyle: Object,
|
||
|
params: Object,
|
||
|
dataList: Array
|
||
|
},
|
||
|
|
||
|
data() {
|
||
|
return { inArray }
|
||
|
},
|
||
|
|
||
|
mixins: [mixin],
|
||
|
|
||
|
/**
|
||
|
* 组件的方法列表
|
||
|
* 更新属性和数据的方法与更新页面数据的方法类似
|
||
|
*/
|
||
|
methods: {
|
||
|
|
||
|
// 跳转到砍价商品详情
|
||
|
handleNavDetail(item) {
|
||
|
this.$navTo('pages/bargain/goods/index', { activeId: item.active_id, goodsId: item.goods_id })
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
// diy-砍价商品组
|
||
|
.diy-bargain {
|
||
|
|
||
|
.goods-item {
|
||
|
display: flex;
|
||
|
margin-bottom: 20rpx;
|
||
|
background: #fff;
|
||
|
padding: 20rpx 16rpx;
|
||
|
|
||
|
&:last-child {
|
||
|
margin-bottom: 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.goods-item .goods-image .image {
|
||
|
display: block;
|
||
|
width: 220rpx;
|
||
|
height: 220rpx;
|
||
|
}
|
||
|
|
||
|
.goods-item .goods-info {
|
||
|
width: 498rpx;
|
||
|
padding-top: 4rpx;
|
||
|
margin-left: 14rpx;
|
||
|
position: relative;
|
||
|
|
||
|
.goods-name {
|
||
|
font-size: 28rpx;
|
||
|
min-height: 60rpx;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 正在参与的用户
|
||
|
.peoples {
|
||
|
display: flex;
|
||
|
margin-top: 14rpx;
|
||
|
|
||
|
.user-list {
|
||
|
display: flex;
|
||
|
margin-right: 10rpx;
|
||
|
|
||
|
.user-item-avatar {
|
||
|
margin-left: -8rpx;
|
||
|
|
||
|
&:first-child {
|
||
|
margin-left: 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.people__text {
|
||
|
font-size: 24rpx;
|
||
|
color: #818181;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 商品原价
|
||
|
.goods-price {
|
||
|
margin-top: 14rpx;
|
||
|
color: #818181;
|
||
|
font-size: 24rpx;
|
||
|
text-decoration: line-through;
|
||
|
}
|
||
|
|
||
|
// 砍价底价
|
||
|
.floor-price {
|
||
|
color: $main-bg;
|
||
|
|
||
|
.small {
|
||
|
font-size: 24rpx;
|
||
|
}
|
||
|
|
||
|
.big {
|
||
|
font-size: 24rpx;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// 立即参加按钮
|
||
|
.opt-touch {
|
||
|
position: absolute;
|
||
|
bottom: 0;
|
||
|
right: 10rpx;
|
||
|
|
||
|
.touch-btn {
|
||
|
color: #fff;
|
||
|
font-size: 28rpx;
|
||
|
background: #d3a975;
|
||
|
border-radius: 30rpx;
|
||
|
padding: 10rpx 28rpx;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
</style>
|