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
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>
|