|
|
|
<!-- 推广商品 -->
|
|
|
|
<template>
|
|
|
|
<view class="promotion-goods-wrap">
|
|
|
|
<view class="goods-list u-flex" v-for="(item, index) in goodsList" :key="item.goods_id" @tap="jump('/pages/goods/detail', { id: item.id })">
|
|
|
|
<view class="img-box"><image class="goods-img" :src="item.image" mode=""></image></view>
|
|
|
|
<view class="goods-info u-flex-col u-row-between">
|
|
|
|
<view class="goods-title u-ellipsis-1">{{ item.title }}</view>
|
|
|
|
<view class="goods-des u-ellipsis-1">{{ item.subtitle }}</view>
|
|
|
|
<view class="goods-price u-flex font-OPPOSANS">
|
|
|
|
<view class="price">¥{{ item.price }}</view>
|
|
|
|
<view class="origin-price" v-if="item.original_price!='0.00'">¥{{ item.original_price }}</view>
|
|
|
|
</view>
|
|
|
|
<view class="commission-num">预计佣金:¥{{ item.commission_money }}</view>
|
|
|
|
</view>
|
|
|
|
<button class="share-btn u-reset-button" @tap.stop="toShare(index)">分享赚</button>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<!-- 分享组件 -->
|
|
|
|
<shopro-share v-model="showShare" :posterInfo="posterInfo" :posterType="'goods'"></shopro-share>
|
|
|
|
<!-- 缺省页 -->
|
|
|
|
<shopro-empty v-if="isEmpty" :image="$IMG_URL + '/imgs/empty/no_data.png'" tipText="暂无数据"></shopro-empty>
|
|
|
|
<!-- 更多 -->
|
|
|
|
<u-loadmore v-if="goodsList.length" height="80rpx" :status="loadStatus" icon-type="flower" color="#ccc" />
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import share from '@/shopro/share';
|
|
|
|
export default {
|
|
|
|
components: {},
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
showShare: false, //是否分享
|
|
|
|
posterInfo: {}, //分享信息
|
|
|
|
goodsList: [], //分销商品
|
|
|
|
loadStatus: 'loadmore', //loadmore-加载前的状态,loading-加载中的状态,nomore-没有更多的状态
|
|
|
|
currentPage: 1,
|
|
|
|
lastPage: 1,
|
|
|
|
isEmpty: false
|
|
|
|
};
|
|
|
|
},
|
|
|
|
computed: {},
|
|
|
|
onLoad() {
|
|
|
|
this.getGoodList();
|
|
|
|
},
|
|
|
|
onUnload() {
|
|
|
|
share.setShareInfo();
|
|
|
|
},
|
|
|
|
onReachBottom() {
|
|
|
|
if (this.currentPage < this.lastPage) {
|
|
|
|
this.currentPage += 1;
|
|
|
|
this.getGoodList();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
jump(path, parmas) {
|
|
|
|
this.$Router.push({
|
|
|
|
path: path,
|
|
|
|
query: parmas
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 去分享
|
|
|
|
toShare(index) {
|
|
|
|
const that = this;
|
|
|
|
let goodsInfo = this.goodsList[index];
|
|
|
|
this.posterInfo = goodsInfo;
|
|
|
|
share.setShareInfo({
|
|
|
|
title: goodsInfo.title,
|
|
|
|
desc: goodsInfo.subtitle,
|
|
|
|
image: goodsInfo.image,
|
|
|
|
params: {
|
|
|
|
page: 2,
|
|
|
|
pageId: goodsInfo.id
|
|
|
|
}
|
|
|
|
});
|
|
|
|
this.showShare = true;
|
|
|
|
},
|
|
|
|
getGoodList() {
|
|
|
|
let that = this;
|
|
|
|
that.loadStatus = 'loading';
|
|
|
|
that.$http('commission.goods', {
|
|
|
|
page: that.currentPage
|
|
|
|
}).then(res => {
|
|
|
|
if (res.code === 1) {
|
|
|
|
that.goodsList = [...that.goodsList, ...res.data.data];
|
|
|
|
that.lastPage = res.data.last_page;
|
|
|
|
that.isEmpty = !that.goodsList.length;
|
|
|
|
that.loadStatus = that.currentPage < res.data.last_page ? 'loadmore' : 'nomore';
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
page {
|
|
|
|
background-color: #fff;
|
|
|
|
}
|
|
|
|
// 推广商品列表
|
|
|
|
.goods-list {
|
|
|
|
padding: 30rpx;
|
|
|
|
border-bottom: 1rpx solid rgba(#dfdfdf, 0.5);
|
|
|
|
position: relative;
|
|
|
|
.share-btn {
|
|
|
|
position: absolute;
|
|
|
|
bottom: 30rpx;
|
|
|
|
right: 30rpx;
|
|
|
|
width: 160rpx;
|
|
|
|
line-height: 60rpx;
|
|
|
|
background: linear-gradient(90deg, #a36fff, #5336ff);
|
|
|
|
box-shadow: 0px 7rpx 11rpx 2rpx rgba(124, 103, 214, 0.34);
|
|
|
|
border-radius: 30rpx;
|
|
|
|
font-size: 28rpx;
|
|
|
|
color: #fff;
|
|
|
|
font-weight: 500;
|
|
|
|
}
|
|
|
|
.img-box {
|
|
|
|
border: 1rpx solid rgba(223, 223, 223, 0.43);
|
|
|
|
margin-right: 30rpx;
|
|
|
|
.goods-img {
|
|
|
|
width: 200rpx;
|
|
|
|
height: 200rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.goods-info {
|
|
|
|
align-items: flex-start;
|
|
|
|
height: 200rpx;
|
|
|
|
|
|
|
|
.goods-title {
|
|
|
|
width: 400rpx;
|
|
|
|
font-size: 28rpx;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #333333;
|
|
|
|
margin-bottom: 10rpx;
|
|
|
|
}
|
|
|
|
.goods-des {
|
|
|
|
width: 400rpx;
|
|
|
|
font-size: 22rpx;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #a8700d;
|
|
|
|
margin-bottom: 10rpx;
|
|
|
|
}
|
|
|
|
.goods-price {
|
|
|
|
margin-bottom: 10rpx;
|
|
|
|
.price {
|
|
|
|
font-size: 28rpx;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #333333;
|
|
|
|
margin-right: 16rpx;
|
|
|
|
}
|
|
|
|
.origin-price {
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
text-decoration: line-through;
|
|
|
|
color: #999999;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.commission-num {
|
|
|
|
font-size: 24rpx;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #5e4ddf;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|