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.

190 lines
3.7 KiB

3 weeks ago
<template>
<view class="wanlpage-groups" :style="[pageData.style]">
<view
class="wanlpage-groups__mian"
:class="[`col-3-${pageData.params.colmargin}`]"
:style="{ backgroundImage: `url(${$wanlshop.oss( pageData.params.groupsBackground, 0, 50, 1, 'transparent', 'png' )})` }"
>
<view class="head">
<view class="title">
<text
:style="{ color: pageData.params.titleColor, fontSize: pageData.params.titleFontSize }"
class="margin-right-sm text-bold"
>
{{ pageData.params.titleText }}
</text>
<text :style="{ color: pageData.params.infoColor, fontSize: pageData.params.infoFontSize }" >
{{ pageData.params.infoText }}
</text>
</view>
<view class="text-gray text-sm" @tap="handleGroups">
<text class="margin-right-xs">更多</text>
<text class="wlIcon-fanhui2"></text>
</view>
</view>
<view class="list">
<view class="item" v-for="(item, index) in data" :key="item.id" @tap="handleGoods(item.id)">
<image :src="$wanlshop.oss(item.image, 100, 100)" mode="aspectFill"></image>
<view class="text-cut text-sm">{{item.title}}</view>
<view class="text-cut text-orange text-xs">{{item.description}}</view>
<view class="flex align-center justify-between margin-top-xs">
<text class="text-price text-lg text-orange">{{item.price}}</text>
<text class="cu-tag round sm wanl-bg-orange"></text>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'WanlPageGroups',
props: {
pageData: {
type: Object,
default: function() {
return {
name: '拼团组件',
type: 'groups',
params: [],
style: [],
data: []
};
}
},
shopData: {
type: Object,
default () {}
}
},
data() {
return {
data: []
};
},
created() {
this.loadData();
},
methods: {
async loadData() {
await uni.request({
url: '/wanlshop/page/groups',
data: {
shop_id: this.shopData ? this.shopData.id : 0
},
success: res => {
this.data = res.data;
}
});
},
handleGoods(id) {
this.$wanlshop.to(`/pages/apps/groups/goods?id=${id}`);
},
handleGroups(){
this.$wanlshop.to(`/pages/apps/groups/index`);
}
}
};
</script>
<style lang="scss">
.wanlpage-groups {
&__mian {
background-repeat: no-repeat;
background-size: 100% auto;
&.col-3-10 {
.head {
padding: 0 10rpx;
}
.list {
padding: 0 10rpx;
.item {
width: calc((100% - 20rpx) / 3);
margin-bottom: 10rpx;
}
}
}
&.col-3-15 {
.head {
padding: 0 15rpx;
}
.list {
padding: 0 15rpx;
.item {
width: calc((100% - 30rpx) / 3);
margin-bottom: 15rpx;
}
}
}
&.col-3-20 {
.head {
padding: 0 20rpx;
}
.list {
padding: 0 20rpx;
.item {
width: calc((100% - 40rpx) / 3);
margin-bottom: 20rpx;
}
}
}
&.col-3-25 {
.head {
padding: 0 25rpx;
}
.list {
padding: 0 25rpx;
.item {
width: calc((100% - 50rpx) / 3);
margin-bottom: 25rpx;
}
}
}
&.col-3-30 {
.head {
padding: 0 30rpx;
}
.list {
padding: 0 30rpx;
.item {
width: calc((100% - 60rpx) / 3);
margin-bottom: 30rpx;
}
}
}
.head {
display: flex;
justify-content: space-between;
align-items: center;
height: 85rpx;
.title {
display: flex;
align-items: center;
}
}
.list {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
&::after{
content: '';
display: block;
width: 33%;
visibility: hidden;
}
.item {
flex-wrap: wrap;
image {
height: 200rpx;
margin-bottom: 6rpx;
border-radius: 18rpx;
overflow: hidden;
background-color: #f9f9f9;
}
}
}
}
}
</style>