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.
 
 
 
 
 

188 lines
3.6 KiB

<template>
<view>
<view class="list">
<view class="product-box">
<view class="product-list" v-for="(item, i1) in tmp_data" :key="i1" @click="goGoodsDetail(item)">
<view class="product-item">
<easy-loadimage mode="widthFix" :image-src="item.image"></easy-loadimage>
<view class="info">
<view class="title line2">
<text class="tag" v-if="item.activity && item.activity.type === '1' && $permission('seckill')">{{$t(`秒杀`)}}</text>
<text class="tag" v-if="item.activity && item.activity.type === '2' && $permission('bargain')">{{$t(`砍价`)}}</text>
<text class="tag" v-if="item.activity && item.activity.type === '3' && $permission('combination')">{{$t(`拼团`)}}</text>
<text class="tag" v-if="item.checkCoupon">{{$t(`券`)}}</text>
{{ item.store_name }}
</view>
<view class="price-box">
<view>
<text>{{$t(`¥`)}}</text>
{{ item.price }}
</view>
<view class="sales">
{{$t(`已售`)}} {{item.sales}}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
goShopDetail,
goPage
} from '@/libs/order.js'
export default {
name: 'goodsWaterfall',
props: {
dataLists: {
default: []
}
},
data() {
return {
lists: [],
showLoad: false,
tmp_data: []
};
},
methods: {
goGoodsDetail(item) {
goPage().then(res => {
goShopDetail(item, this.uid).then(res => {
uni.navigateTo({
url: `/pages/goods_details/index?id=${item.id}`
})
})
})
},
},
mounted() {
const that = this
that.tmp_data = that.dataLists
// that.showLoadFlag()
},
watch: {
dataLists() {
this.loaded = []
this.loadErr = []
this.tmp_data = this.dataLists
},
},
};
</script>
<style lang="scss" scoped>
.list {
display: flex;
margin: 0 30rpx;
}
.product-box {
display: flex;
flex: 1;
flex-wrap: wrap;
width: 100%;
}
.flow_item {
margin: 15upx;
border-radius: 20upx;
background: #f4f4f4;
overflow: hidden;
}
.flow_item_con {
padding: 10upx 20upx 20upx;
}
.flow_item_title {
position: relative;
font-size: 32upx;
font-weight: 700;
margin-bottom: 5upx;
}
.flow_item_des {
font-size: 24upx;
}
.pl10 {
padding-left: 10rpx;
}
.product-list {
display: flex;
width: calc(50% - 16rpx);
margin: 2rpx 8rpx;
.product-item {
position: relative;
width: 100%;
background: #fff;
border-radius: 10rpx;
margin-bottom: 8rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
/deep/image,
/deep/.easy-loadimage,
/deep/uni-image {
width: 100%;
height: 330rpx;
border-radius: 10rpx 10rpx 0 0;
}
.info {
flex: 1;
padding: 14rpx 16rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
.title {
font-size: 28rpx;
height: 76rpx;
line-height: 38rpx;
}
.tag {
border-radius: 4rpx;
border: 1px solid var(--view-theme);
color: var(--view-theme);
font-size: 20rpx;
padding: 0rpx 4rpx;
margin: 10rpx 0;
margin-right: 10rpx;
width: max-content;
}
.price-box {
font-size: 34rpx;
font-weight: 700;
margin-top: 8px;
color: var(--view-priceColor);
display: flex;
justify-content: space-between;
// align-items: flex-end;
align-items: center;
text {
font-size: 28rpx;
}
.sales {
color: #999999;
font-size: 24rpx;
font-weight: 400;
}
}
}
}
}
</style>