会员中心我的伙伴

This commit is contained in:
zhangmanman
2021-09-26 09:56:16 +08:00
parent 9d9cf4c580
commit 2f75c30bac
163 changed files with 33588 additions and 49 deletions

View File

@@ -4,10 +4,10 @@
<!-- 邀请码图 -->
<view class="codeBack">
<image class="codeBack-img" src="/static/user/user-codeIcon.png" mode="widthFix"></image>
<view class="codeBack-avatar">
<image src="/static/user/call.png" mode="aspectFill"></image>
<view class="codeBack-avatar" v-if="inviteData.user_info">
<image :src="inviteData.user_info.avatar ? inviteData.user_info.avatar : '/static/user/user-portrait.png'" mode="aspectFill"></image>
<view class="">
张慢慢
{{inviteData.user_info.nickname}}
</view>
</view>
<view class="codeBack-top">
@@ -15,7 +15,7 @@
您的邀请码
</view>
<view class="codeBack-number">
8012568
{{inviteData.invite}}
</view>
<view class="codeBack-copy" @click="copyCenter(inviteData.invite)">
复制
@@ -51,6 +51,7 @@
// 二维码
inviteInfo(){
userInvite().then(res => {
console.log(res)
this.inviteData = res
}).catch(err => {
uni.showToast({
@@ -161,7 +162,7 @@
color: #7c52fc
}
.codeBack-number {
font-size: 60rpx;
font-size: 40rpx;
color: #7c52fc;
text-transform:uppercase;
font-weight: 700;
@@ -196,6 +197,8 @@
}
.codeBack-avatar {
margin-top: $margin * 2;
font-size: 32rpx;
font-weight: 600;
image {
width: 140rpx;
height: 140rpx;
@@ -204,7 +207,7 @@
}
}
.codeBack-yard {
padding: $padding $padding * 4 $padding * 2;
padding: $padding $padding * 2 $padding * 2;
text-align: center;
position: relative;
font-size: $title-size-lg;

View File

@@ -68,7 +68,7 @@
<view class="userVip-top-name" v-if="userIdentity.right">
开通{{userIdentity.right.name}}
</view>
<view class="userVip-top-btn">
<view class="userVip-top-btn" v-if="!userIdentity.is_top" @click="$Router.push({name: 'vipIndex'})">
去开通<image class="userVip-top-arrow" src="/static/user/userVip_arrow.png"></image>
</view>
</view>
@@ -92,12 +92,17 @@
<view class="userVip-rightst-more">全部权益 <image class="userVip-rightst-more-img" src="/static/user/userVip_more_arrow.png"></image></view>
</view>
<view class="userVip-rightst-list" v-if="userIdentity.right">
<block v-for="(item, index) in userIdentity.right.rights" :key="index">
<view class="userVip-rightst-label" v-if="index <= 3">
<view v-for="(item, index) in userIdentity.right.rights" :key="index" class="userVip-rightst-label">
<block v-if="index <= 3">
<image class="userVip-rightst-img" :src="item.cover"></image>
<view class="userVip-rightst-name">{{item.name}}</view>
</view>
</block>
<view class="nowrap userVip-rightst-name">{{item.name}}</view>
</block>
</view>
<view class="userVip-rightst-label">
<image class="userVip-rightst-img" src="/static/user/userRightst_icon_more.png"></image>
<view class="nowrap userVip-rightst-name">敬请期待</view>
</view>
</view>
</view>
</view>
@@ -149,16 +154,16 @@
我的伙伴
</view>
<view class="partner-list" v-if="userData.relation_count">
<view class="partner-label">
<view class="partner-label" @click="$Router.push({name: 'userPartner', params:{larer:''}})">
<view class="partner-label-name">伙伴总数</view>
<view class="partner-label-number">{{userData.relation_count.all || 0}}</view>
</view>
<view class="partner-label">
<view class="partner-label" @click="$Router.push({name: 'userPartner', params:{larer:1}})">
<view class="partner-label-name">直接伙伴</view>
<view class="partner-label-number">{{userData.relation_count.one || 0}}</view>
</view>
<view class="partner-label">
<view class="partner-label-name">接伙伴</view>
<view class="partner-label" @click="$Router.push({name: 'userPartner', params:{larer:2}})">
<view class="partner-label-name">接伙伴</view>
<view class="partner-label-number">{{userData.relation_count.two || 0}}</view>
</view>
</view>
@@ -178,7 +183,7 @@
<image class="tool-label-img" src="/static/user/userTool-01.png" mode=""></image>
<view class="tool-label-name">优惠券管理</view>
</view>
<view class="tool-label">
<view class="tool-label" @click="$Router.push({name: ''})">
<image class="tool-label-img" src="/static/user/userTool-02.png" mode=""></image>
<view class="tool-label-name">营销推广码</view>
</view>
@@ -190,9 +195,9 @@
<image class="tool-label-img" src="/static/user/userTool-04.png" mode=""></image>
<view class="tool-label-name">部门门店</view>
</view>
<view class="tool-label" @click="$Router.push({name: 'instrumentBasics'})">
<view class="tool-label" @click="$Router.push({name: ''})">
<image class="tool-label-img" src="/static/user/userTool-05.png" mode=""></image>
<view class="tool-label-name">员管理</view>
<view class="tool-label-name">管理</view>
</view>
</view>
</view>
@@ -207,18 +212,18 @@
<image class="tool-label-img" src="/static/user/userServe-00.png" mode=""></image>
<view class="tool-label-name">专属客服</view>
</view>
<navigator hover-class="none" class="tool-label" @click="$Router.push({name: 'userCode'})">
<view class="tool-label" @click="$Router.push({name: 'userCode'})">
<image class="tool-label-img" src="/static/user/userServe-01.png" mode=""></image>
<view class="tool-label-name">邀请好友</view>
</navigator>
<navigator hover-class="none" class="tool-label" @click="$Router.push({name: 'userHelp'})">
</view>
<view class="tool-label" @click="$Router.push({name: 'userHelp'})">
<image class="tool-label-img" src="/static/user/userServe-02.png" mode=""></image>
<view class="tool-label-name">帮助中心</view>
</navigator>
<navigator hover-class="none" class="tool-label" @click="$Router.push({name: 'userClause'})">
</view>
<view class="tool-label" @click="$Router.push({name: 'userClause'})">
<image class="tool-label-img" src="/static/user/userServe-03.png" mode=""></image>
<view class="tool-label-name">服务条款</view>
</navigator>
</view>
</view>
</view>
</view>
@@ -229,7 +234,6 @@
<view class="item" @click="$Router.push({name: 'couponsManagement'})">优惠券管理</view>
<view class="item" @click="$Router.push({name: 'instrumentBasics'})">店员管理</view>
<view class="item" @click="$Router.push({name: 'instrumentCustomer'})">成交客户</view>
<view class="item" @click="$Router.push({name: 'instrumentBasics'})">店员管理</view>
<view class="item" @click="$Router.push({name: 'Personal'})">个人认证</view>
<view class="item" @click="$Router.push({name: 'companyApprove'})">企业认证</view>
<view class="item" @click="$Router.push({name: 'companyApprove', params: { form_type: 'put' }})">编辑企业认证</view>
@@ -247,6 +251,7 @@
scroll : 0, // 回弹效果
userData : '', // 用户信息
userIdentity : '', // 用户身份
helpDoc : '', // 资产说明
classStyle : false, // 下拉vip时改变样式
animatedShow : false, // vip上下跳动效果
newList : [],
@@ -267,11 +272,11 @@
// 获取用户信息
this.userInfo();
// 获取公告列表
this.newInfo();
// 获取专属客服二维码
this.customerInfo();
// 获取公告列表
this.newInfo();
},
onHide() {
// 移除vip模块跳动样式
@@ -282,8 +287,8 @@
userInfo() {
// 读取配置信息
userIndex().then(res=>{
console.log(res)
this.userData = res
this.userData = res
this.helpDoc = res.help_doc
this.userIdentity = res.identityShow
}).catch(err =>{
uni.showToast({
@@ -354,10 +359,12 @@
// 友情提示信息
showHelp(type) {
let content = '能量球钱包'
if(type == 'chip') content = '能量碎片'
let title = '能量球',
content = this.helpDoc.energy_ball.description
if(type == 'chip') title = '能量碎片'
if(type == 'chip') content = this.helpDoc.energy_shard.description
uni.showModal({
title: '友情提示',
title: title,
content: content,
showCancel: false
})
@@ -585,8 +592,8 @@
z-index: 1;
.user-tool-icon {
padding-left: $padding;
width: $uni-img-size-sm + 2;
height: $uni-img-size-sm + 2;
width: $uni-img-size-sm;
height: $uni-img-size-sm;
}
}
.user-back {
@@ -612,7 +619,7 @@
position: relative;
.user-portrait-head {
border-radius: $uni-border-radius-circle;
border: 4rpx solid #b197ff;
border: 4rpx solid #bfaaff;
position: absolute;
left: 8rpx;
top: 14rpx;
@@ -662,9 +669,9 @@
margin: 30rpx 0 5rpx;
font-size: 36rpx;
.user-name-identity {
width: 92rpx;
width: 100rpx;
height: 36rpx;
margin: 6rpx 0 0 10rpx;
margin: 4rpx 0 0 10rpx;
}
}
.user-status {
@@ -729,11 +736,13 @@
.userVip-rights {
margin-top: 40rpx;
border-radius: 10rpx;
padding: 20rpx;
padding: 20rpx 0;
box-sizing: border-box;
background-image:linear-gradient(to bottom, #dbceff, #bb9fff);
color: #5723af;
.userVip-rightst-title {
padding: 0 20rpx;
box-sizing: border-box;
font-size: 30rpx;
display: flex;
.userVip-rightst-title-name {
@@ -754,12 +763,12 @@
display: flex;
.userVip-rightst-label {
display: inline-block;
flex: 4;
width: 25%;
text-align: center;
font-size: 26rpx;
.userVip-rightst-img {
width: 80rpx;
height: 80rpx;
width: 90rpx;
height: 90rpx;
margin-bottom: 10rpx;
}
}

144
pages/user/partner.vue Normal file
View File

@@ -0,0 +1,144 @@
<template>
<view class="content">
<!-- 分类 -->
<view class="tabs">
<view class="item" :class="{'show': larer == ''}" @click="onTabs('')">全部</view>
<view class="item" :class="{'show': larer == '1'}" @click="onTabs('1')">直接</view>
<view class="item" :class="{'show': larer == '2'}" @click="onTabs('2')">间接</view>
</view>
<view class="partner-list">
<view class="partner-label" v-for="(item, index) in lists" :larer='larer'>
<image class="partner-avatar" :src="item.avatar ? item.avatar : '/static/user/user-portrait.png'" mode="aspectFill"></image>
<view class="partner-cont">
<view class="partner-name">
<view class="partner-nickname">
{{item.nickname}}
</view>
<image v-if="item.identity" class="partner-identity" :src="item.identity.cover" mode="widthFix"></image>
</view>
<view class="partner-tel">
{{item.username}}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import { userPartne } from '@/apis/interfaces/user'
export default {
data() {
return {
larer : '',
lists : [],
pages : {}
};
},
onShow() {
this.larer = this.$Route.query.larer
// 获取伙伴列表
this.getPartner()
},
methods: {
// 伙伴列表
getPartner() {
userPartne({
larer: this.larer
}).then(res => {
this.lists = res.users
})
},
// tabs
onTabs(value){
if(value == this.larer) return
this.lists = []
this.larer = value
this.getPartner()
}
}
}
</script>
<style lang="scss" scoped>
.content{
padding-top: 90rpx;
}
// tabs
.tabs{
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 99;
display: flex;
justify-content: space-around;
background: white;
padding: 15rpx 0;
font-size: $title-size-lg;
color: $text-gray;
.item{
height: 60rpx;
line-height: 60rpx;
&.show{
color: $text-price;
border-bottom: solid 4rpx $text-price;
}
}
}
// 列表
.partner-list{
margin: calc(#{$padding} - 10rpx);
display: flex;
flex-wrap: wrap;
background-color: #FFFFFF;
.partner-label {
padding: 20rpx;
box-sizing: border-box;
position: relative;
border-radius: 4rpx;
width: 100%;
&::after {
position: absolute;
content: '';
left: 0;
bottom: 0;
width: 100%;
height: 1rpx;
background-color: #f8f8f8;
}
&:last-child::after {
display: none;
}
.partner-avatar {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
}
.partner-cont {
position: absolute;
width: 100%;
left: 0;
top: 0;
padding: 22rpx 20rpx 20rpx 150rpx;
box-sizing: border-box;
.partner-name {
display: flex;
margin-bottom: 15rpx;
.partner-nickname {
font-size: 30rpx;
font-weight: 600;
margin-right: 10rpx;
}
.partner-identity {
width: 120rpx;
}
}
}
}
}
</style>