yfs/pages/user/tui-guang-old.vue
2025-04-08 21:52:06 +08:00

540 lines
10 KiB
Vue

<template>
<view class="page-wrap">
<view class="top-bg">
<image :src="z_imgPath + 'tuiguang-bg.png'" />
</view>
<view class="gzbox" @click="$refs.shuoming.open()">
<image :src="z_imgPath+'yqgz.png'"></image>
</view>
<uni-popup ref="shuoming" type="center">
<view class="pop" :style="'background: url('+ z_imgPath + 'gz_bg.png'+ ') no-repeat 0 0 / 100% 100%;'">
<view class="pop_con">
<scroll-view scroll-y="true" style="height: 440rpx;">
<view v-html="news"></view>
</scroll-view>
</view>
</view>
</uni-popup>
<view class="card">
<view class="people-money">
<view class="people">
<image :src="z_imgPath+'yyq.png'" style="height:27rpx;width: 109rpx;"></image>
<view class="num"> {{ total }} <text>人</text> </view>
</view>
<view class="line"></view>
<view class="moneys">
<view class="content" @click="gotoPage('/pages/user/sy_jl')">
<image :src="z_imgPath+'jl.png'" style="height:27rpx;width: 145rpx;"></image>
<view class="money"> {{ commission }} <text>元</text> </view>
</view>
<view class="icon">
<image :src="z_imgPath+'point_right.png'" mode="scaleToFill" />
</view>
</view>
</view>
<button open-type="share" class="invite-btn">
<image :src="z_imgPath+'invite-btn.png'" />
<!-- 去邀请好友 -->
</button>
</view>
<view class="card two">
<image :src="z_imgPath + 'yqjl.png'" class="title-img" style="height: 33rpx;width: 156rpx;"></image>
<view class="list-wrap" :style="{height: upOption.isLock == false ? 'auto' : '510rpx' }">
<mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="getList"
:down="downOption" :up="upOption">
<view v-for="(item, i) of listData" :key="i" class="list-wrap-item">
<view class="content">
<view class="avatar">
<image :src="item.headimg" mode="scaleToFill" />
</view>
<view class="info">
<view class="info-hd">
<text style="color: #fff;">{{ item.nickname }}</text>
<text class="title">累计消费</text>
</view>
<view class="info-bd">
<text>{{ item.addtime }}</text>
<text class="money">¥{{ item.commission_money }}</text>
</view>
</view>
</view>
<view class="invite-name">
<!-- 邀请人:
<text>{{ item.parent_name }}</text> -->
</view>
</view>
</mescroll-body>
</view>
<view v-if="upOption.isLock" class="show-more">
<view v-if="listData.length > 3" @click="openUpPage" class="btn">
<view>查看更多</view>
<view class="icon">
<image :src=" z_imgPath + 'arrow-right-circle.png' " style="position: relative;bottom: 6rpx;"
mode="scaleToFill" />
</view>
</view>
</view>
</view>
<!-- <blank :height="30"></blank> -->
</view>
</template>
<script>
export default {
data() {
return {
z_imgPath: this.$z_img + 'mine/yaoqing/',
downOption: {
use: false,
auto: false
},
upOption: {
isLock: true,
auto: true,
page: {
size: 10 // 每页数据的数量,默认10
}
},
tabList: [{
name: '直推',
id: 1
},
{
name: '荐推',
id: 2
}
],
tabCur: 0,
pop_show: false,
userInfo: '',
listData: '',
news: '',
total: 0,
logo_image: '',
commission: 0,
pid: ''
}
},
onShareAppMessage() {
let that = this;
return {
title: "友达赏,正版潮玩手办一番赏",
imageUrl: that.logo_image,
path: "/pages/shouye/index?pid=" + uni.getStorageSync('userinfo').ID
};
},
onLoad() {
console.log(uni.getStorageSync('userinfo').ID)
this.getDanye(9)
},
methods: {
getDanye(e) {
let that = this;
that.req({
url: 'danye',
data: {
type: e
},
success(res) {
if (res.status == 1) {
that.news = res.data
}
}
})
},
openUpPage() {
this.upOption.isLock = false
this.mescroll.lockUpScroll(false)
},
getList({
num,
size
}) {
var that = this;
this.req({
url: 'invitation',
data: {
page: num,
per_page: size,
depth: this.tabList[this.tabCur].id
},
success: res => {
that.total = res.data.count
that.commission = res.data.money
that.logo_image = res.data.share_image
if (num == 1) {
this.listData = []
}
this.mescroll.endBySize(res.data.data.length, res.data.last_page)
this.listData = [...this.listData, ...res.data.data]
},
fail: err => {
console.log('err', err)
// this.mescroll.endErr()
}
})
},
/**
* @description: tab栏切换
* @param {*}
* @return {*}
*/
tabChange(item, i) {
this.tabCur = i
this.mescroll.resetUpScroll()
// this.mescroll.scrollTo(0, 0)
},
}
}
</script>
<style lang="scss">
button::after {
border: none;
}
button {
background-color: transparent;
padding-left: 0;
padding-right: 0;
line-height: inherit;
border-radius: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
image {
width: 100%;
height: 100%;
}
.page-wrap {
background: #080808;
padding-bottom: 100rpx;
padding-top: 183rpx;
box-sizing: border-box;
/deep/.uni-navbar__content {
z-index: 998;
}
.top-bg {
width: 750rpx;
height: 790rpx;
position: absolute;
left: 0;
top: 0;
}
.card {
position: relative;
z-index: 1;
margin: 299rpx auto 0;
width: 712rpx;
// height: 540rpx;
box-sizing: border-box;
border-radius: 20rpx;
// background: #fff;
padding: 10rpx 30rpx;
.title-img {
display: block;
margin: 0 auto;
}
.people-money {
display: flex;
align-items: center;
justify-content: space-evenly;
margin-top: 60rpx;
// padding: 40rpx 0;
border-radius: 10rpx;
// background: #000000;
color: #ffffff;
.people {
display: flex;
flex-flow: column nowrap;
align-items: center;
.num {
margin-top: 30rpx;
font-size: 36rpx;
font-weight: 400;
color: #F37400;
text {
font-size: 28rpx;
color: #fff;
margin-left: 6rpx;
}
}
}
.line {
height: 122rpx;
width: 0;
border-left: 1px solid rgba(255, 255, 255, 0.3);
}
.moneys {
display: flex;
align-items: center;
.content {
display: flex;
flex-flow: column nowrap;
align-items: center;
.money {
margin-top: 30rpx;
font-size: 36rpx;
color: #F37400;
text {
font-size: 28rpx;
color: #fff;
margin-left: 6rpx;
}
}
}
.icon {
width: 20rpx;
height: 32rpx;
margin-left: 10rpx;
}
}
}
.invite-btn {
width: 391rpx;
height: 74rpx;
margin: 10rpx auto 30rpx;
color: #FFFFFF;
text-align: center;
line-height: 88rpx;
border: none;
}
}
.two {
margin-top: 30rpx;
background: #151515;
padding-top: 35rpx;
.tab-wrap {
margin-top: 15rpx;
padding: 0 30rpx;
display: flex;
justify-content: space-around;
align-items: center;
background: #fff;
// width: 100%;
height: 88rpx;
position: relative;
.tab-item {
font-size: 28rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #999999;
display: flex;
justify-content: center;
align-items: center;
.bar {
width: 48rpx;
height: 4rpx;
background: #61e3ff;
border-radius: 2rpx;
position: absolute;
bottom: 15rpx;
opacity: 0;
}
&.active {
color: #222;
.bar {
opacity: 1;
}
}
}
}
.list-wrap {
height: auto;
overflow: hidden;
&-item {
height: 140rpx;
display: flex;
flex-flow: column nowrap;
justify-content: space-evenly;
box-sizing: border-box;
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
.content {
display: flex;
justify-content: space-between;
.avatar {
width: 86rpx;
height: 86rpx;
border-radius: 50%;
overflow: hidden;
background: #eee;
}
.info {
width: calc(100% - 110rpx);
&-hd {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 32rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #333333;
.title {
font-size: 24rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #999999;
}
}
&-bd {
margin-top: 10rpx;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 24rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #999999;
.money {
color: #F37400;
font-size: 28rpx;
}
}
}
}
.invite-name {
padding-left: 110rpx;
font-size: 24rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #333333;
text {
color: #ef2200;
}
}
}
}
.show-more {
height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
.btn {
display: flex;
justify-content: center;
align-items: center;
font-size: 28rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #999999;
.icon {
width: 24rpx;
height: 24rpx;
margin-left: 10rpx;
}
}
}
}
}
.gzbox {
width: 90rpx;
height: 75rpx;
position: absolute;
top: 74rpx;
left: 40rpx;
}
.gzbox>image {
width: 100%;
height: 100%;
// margin-right: 9rpx;
// margin-left: 20rpx;
position: relative;
// top: 6rpx;
}
.pop_con {
height: 440rpx;
margin: auto;
padding: 0rpx 36rpx;
font-size: 24rpx;
line-height: 36rpx;
color: #FFFFFF;
box-sizing: border-box;
overflow-y: scroll;
}
.pop_title {
// font-family: 'zcq';
font-size: 40rpx;
color: #96FFFE;
height: 128rpx;
line-height: 128rpx;
text-align: center;
}
.pop {
width: 543rpx;
height: 801rpx;
padding-top: 192rpx;
box-sizing: border-box;
/* background: #FFFFFF; */
/* border-radius: 20rpx; */
}
</style>