feat(mine): 个人页面改版
This commit is contained in:
parent
c31e192938
commit
2e0bcaf8d7
1
App.vue
1
App.vue
|
@ -6,6 +6,7 @@ export default {
|
||||||
|
|
||||||
if (options.query?.token) {
|
if (options.query?.token) {
|
||||||
setToken(options.query?.token)
|
setToken(options.query?.token)
|
||||||
|
console.log('🌈ad', options.query?.token)
|
||||||
}
|
}
|
||||||
const whiteList = [
|
const whiteList = [
|
||||||
'pages/shareRegist/index',
|
'pages/shareRegist/index',
|
||||||
|
|
|
@ -12,7 +12,7 @@ export const getGradeList = params =>
|
||||||
http.get('/system/api/grade/list', {
|
http.get('/system/api/grade/list', {
|
||||||
params,
|
params,
|
||||||
})
|
})
|
||||||
//三单轮次
|
//三单轮次。
|
||||||
export const nextRound = params =>
|
export const nextRound = params =>
|
||||||
http.get('/member/api/market-news/round-his', { params })
|
http.get('/member/api/market-news/round-his', { params })
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ module.exports = vm => {
|
||||||
|
|
||||||
//#ifdef DEV_SERVER
|
//#ifdef DEV_SERVER
|
||||||
console.log('DEV_SERVER')
|
console.log('DEV_SERVER')
|
||||||
config.baseURL = 'http://localhost:8080'
|
config.baseURL = 'http://192.168.0.102:8080'
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
//#ifdef QA_SERVER
|
//#ifdef QA_SERVER
|
||||||
|
|
|
@ -119,7 +119,7 @@ export default {
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
},
|
},
|
||||||
BONUS_FIELD_MAP: {
|
BONUS_FIELD_MAP: {
|
||||||
levelGapIncome: '级差收益',
|
levelGapIncome: '直推收益',
|
||||||
peerIncome: '平级收益',
|
peerIncome: '平级收益',
|
||||||
regionalIncome: '区域收益',
|
regionalIncome: '区域收益',
|
||||||
welfareLevelGapIncome: '福利级差收益',
|
welfareLevelGapIncome: '福利级差收益',
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="summary-amount">
|
<view class="summary-amount">
|
||||||
<text class="currency-symbol">¥</text>
|
<text class="currency-symbol">¥</text>
|
||||||
<text>{{ bonusData.totalIssued || '0.00' }}</text>
|
<text>{{ bonusData.realIncomeTotal || '0.00' }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
<view class="details-card">
|
<view class="details-card">
|
||||||
<view class="detail-item">
|
<view class="detail-item">
|
||||||
<text class="detail-label">奖金日期</text>
|
<text class="detail-label">奖金日期</text>
|
||||||
<text class="detail-value date">{{ bonusData.date }}</text>
|
<text class="detail-value date">{{ bonusData.settleDate }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view v-for="(label, key) in detailLabels" :key="key" class="detail-item">
|
<view v-for="(label, key) in detailLabels" :key="key" class="detail-item">
|
||||||
<text class="detail-label">{{ label }}</text>
|
<text class="detail-label">{{ label }}</text>
|
||||||
|
@ -46,23 +46,23 @@ export default {
|
||||||
return {
|
return {
|
||||||
// 使用截图中的数据作为示例
|
// 使用截图中的数据作为示例
|
||||||
bonusData: {
|
bonusData: {
|
||||||
totalIssued: 84.0,
|
totalIssued: 0,
|
||||||
date: '2025-03-16',
|
date: '',
|
||||||
levelDifferenceIncome: 84.0,
|
retailRangeIncome: 0,
|
||||||
peerIncome: 0.0,
|
retailSameLevelIncome: 0.0,
|
||||||
regionalIncome: 0.0,
|
retailAreaIncome: 0.0,
|
||||||
welfareLevelDifferenceIncome: 0.0,
|
// welfareLevelDifferenceIncome: 0.0,
|
||||||
welfareDividendIncome: 0.0,
|
// welfareDividendIncome: 0.0,
|
||||||
repeatConsumptionIncome: 8.4,
|
backPoints: 0,
|
||||||
subtotal: 75.6,
|
subtotal: 0,
|
||||||
},
|
},
|
||||||
detailLabels: {
|
detailLabels: {
|
||||||
levelDifferenceIncome: '级差收益(¥)',
|
retailRangeIncome: '直推收益(¥)',
|
||||||
peerIncome: '平级收益(¥)',
|
retailSameLevelIncome: '平级收益(¥)',
|
||||||
regionalIncome: '区域收益(¥)',
|
retailAreaIncome: '区域收益(¥)',
|
||||||
welfareLevelDifferenceIncome: '福利级差收益(¥)',
|
// welfareLevelDifferenceIncome: '福利级差收益(¥)',
|
||||||
welfareDividendIncome: '福利分红收益(¥)',
|
// welfareDividendIncome: '福利分红收益(¥)',
|
||||||
repeatConsumptionIncome: '重消收益(¥)',
|
backPoints: '重消收益(¥)',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,23 +21,19 @@
|
||||||
<view class="left_text">
|
<view class="left_text">
|
||||||
<view class="name_box">
|
<view class="name_box">
|
||||||
<view class="tTit1">{{ userInfo.memberCode }}</view>
|
<view class="tTit1">{{ userInfo.memberCode }}</view>
|
||||||
</view>
|
<view
|
||||||
<view class="level_box">
|
style="margin-left: 20rpx"
|
||||||
<view class="level_tag level_tag--primary">
|
class="level_tag level_tag--primary"
|
||||||
|
>
|
||||||
<u-icon name="level" color="#A77B09" size="14"></u-icon>
|
<u-icon name="level" color="#A77B09" size="14"></u-icon>
|
||||||
<text class="level_label">会员等级</text>
|
<text class="level_label">会员等级</text>
|
||||||
<text class="level_value">{{
|
<text class="level_value">{{
|
||||||
userInfo.pkGradeVal || '-'
|
userInfo.pkGradeVal || '-'
|
||||||
}}</text>
|
}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view style="display: flex; gap: 10rpx">
|
|
||||||
<view class="level_tag">
|
|
||||||
<u-icon name="star" color="#005BAC" size="14"></u-icon>
|
|
||||||
<text class="level_label">当月奖衔</text>
|
|
||||||
<text class="level_value">{{
|
|
||||||
userInfo.pkAwardsVal || '-'
|
|
||||||
}}</text>
|
|
||||||
</view>
|
</view>
|
||||||
|
<view class="level_box">
|
||||||
|
<view style="display: flex; gap: 10rpx">
|
||||||
<view class="level_tag">
|
<view class="level_tag">
|
||||||
<u-icon name="star" color="#005BAC" size="14"></u-icon>
|
<u-icon name="star" color="#005BAC" size="14"></u-icon>
|
||||||
<text class="level_label">荣誉奖衔</text>
|
<text class="level_label">荣誉奖衔</text>
|
||||||
|
@ -45,6 +41,13 @@
|
||||||
userInfo.pkMaxAwardsVal || '-'
|
userInfo.pkMaxAwardsVal || '-'
|
||||||
}}</text>
|
}}</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="level_tag">
|
||||||
|
<u-icon name="star" color="#005BAC" size="14"></u-icon>
|
||||||
|
<text class="level_label">当月奖衔</text>
|
||||||
|
<text class="level_value">{{
|
||||||
|
userInfo.pkAwardsVal || '-'
|
||||||
|
}}</text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -145,17 +148,25 @@
|
||||||
<!-- 新增信息展示 -->
|
<!-- 新增信息展示 -->
|
||||||
<view
|
<view
|
||||||
class="extra-info-card"
|
class="extra-info-card"
|
||||||
v-if="[0, 1, 2].includes(userInfo.memberSign)"
|
v-if="
|
||||||
|
[
|
||||||
|
MEMBER_SIGN.NORMAL_LEVEL,
|
||||||
|
MEMBER_SIGN.ZERO_LEVEL,
|
||||||
|
MEMBER_SIGN.V5_LEVEL,
|
||||||
|
].includes(Number(userInfo.memberSign))
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<view
|
<view
|
||||||
class="info-grid"
|
class="info-grid"
|
||||||
:class="{ 'multiple-items': userInfo.memberSign === 0 }"
|
:class="{
|
||||||
|
'multiple-items': userInfo.memberSign === MEMBER_SIGN.NORMAL_LEVEL,
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<view class="info-item">
|
<view class="info-item">
|
||||||
<text class="info-value">{{ userInfo.pkGradeVal || '-' }}</text>
|
<text class="info-value">{{ userInfo.pkGradeVal || '-' }}</text>
|
||||||
<text class="info-label">会员等级</text>
|
<text class="info-label">会员等级</text>
|
||||||
</view>
|
</view>
|
||||||
<template v-if="userInfo.memberSign === 0">
|
<template v-if="userInfo.memberSign === MEMBER_SIGN.NORMAL_LEVEL">
|
||||||
<view class="info-item">
|
<view class="info-item">
|
||||||
<text class="info-value">{{ totalBox || '0' }}</text>
|
<text class="info-value">{{ totalBox || '0' }}</text>
|
||||||
<text class="info-label">总盒数</text>
|
<text class="info-label">总盒数</text>
|
||||||
|
@ -240,47 +251,42 @@
|
||||||
<text class="thetitle">{{ '市场动态' }}</text>
|
<text class="thetitle">{{ '市场动态' }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="market-stats-container">
|
<view class="market-stats-container">
|
||||||
<view class="stat-row">
|
<view
|
||||||
<view class="stat-cards">
|
class="stat-block primary"
|
||||||
<view class="stat-card primary">
|
@click="goTo('/pages/performanceEchart/index')"
|
||||||
<text class="stat-label">总业绩:</text>
|
>
|
||||||
<text class="stat-value">{{
|
<view class="stat-content">
|
||||||
performanceData.totalSumPv || '0.00'
|
<view class="stat-item">
|
||||||
}}</text>
|
<text class="stat-label">总业绩</text>
|
||||||
|
<text class="stat-value">{{ totalSumPv || '0.00' }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="stat-card secondary">
|
<view class="stat-divider"></view>
|
||||||
<text class="stat-label">小区:</text>
|
<view class="stat-item">
|
||||||
<text class="stat-value">{{
|
<text class="stat-label">小区业绩</text>
|
||||||
performanceData.smallAreaPv || '0.00'
|
<text class="stat-value">{{ smallAreaPv || '0.00' }}</text>
|
||||||
}}</text>
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="stat-more-arrow">
|
||||||
|
<u-icon name="arrow-right" color="#fff" size="16"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
class="stat-more"
|
class="stat-block secondary"
|
||||||
@click="goTo('/pages/performanceEchart/index')"
|
@click="goTo('/pages/mine/order/index')"
|
||||||
>
|
>
|
||||||
<text>更多</text>
|
<view class="stat-content">
|
||||||
<u-icon name="arrow-right" color="#999999" size="14rpx"></u-icon>
|
<view class="stat-item">
|
||||||
|
<text class="stat-label">总盒数</text>
|
||||||
|
<text class="stat-value">{{ totalBox || '0' }}</text>
|
||||||
|
</view>
|
||||||
|
<view class="stat-divider"></view>
|
||||||
|
<view class="stat-item">
|
||||||
|
<text class="stat-label">小区盒数</text>
|
||||||
|
<text class="stat-value">{{ smallAreaBox || '0' }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="stat-row">
|
<view class="stat-more-arrow">
|
||||||
<view class="stat-cards">
|
<u-icon name="arrow-right" color="#fff" size="16"></u-icon>
|
||||||
<view class="stat-card primary">
|
|
||||||
<text class="stat-label">总盒数:</text>
|
|
||||||
<text class="stat-value">{{
|
|
||||||
performanceData.totalBox || '0'
|
|
||||||
}}</text>
|
|
||||||
</view>
|
|
||||||
<view class="stat-card secondary">
|
|
||||||
<text class="stat-label">小区盒数:</text>
|
|
||||||
<text class="stat-value">{{
|
|
||||||
performanceData.smallAreaBox || '0'
|
|
||||||
}}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="stat-more" @click="goTo('/pages/mine/order/index')">
|
|
||||||
<text>更多</text>
|
|
||||||
<u-icon name="arrow-right" color="#999999" size="14rpx"></u-icon>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
@ -402,6 +408,7 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
MEMBER_SIGN,
|
||||||
getLanguageList: [],
|
getLanguageList: [],
|
||||||
index: 0,
|
index: 0,
|
||||||
userInfo: {},
|
userInfo: {},
|
||||||
|
@ -411,58 +418,6 @@ export default {
|
||||||
waitPayNum: '',
|
waitPayNum: '',
|
||||||
payNum: '',
|
payNum: '',
|
||||||
awards: {},
|
awards: {},
|
||||||
markMenuList: [
|
|
||||||
{
|
|
||||||
url: '/pages/performanceEchart/index',
|
|
||||||
name: '数据查询',
|
|
||||||
imgurl: '../../static/images/mark1.png',
|
|
||||||
menuKey: 'marketDynamics',
|
|
||||||
ifshow: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/pages/bonus/menu',
|
|
||||||
name: '奖金明细',
|
|
||||||
imgurl: '../../static/images/mark2.png',
|
|
||||||
menuKey: 'incomeDetail',
|
|
||||||
ifshow: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/pages/market/examineDetail/examineDetail',
|
|
||||||
name: '考核明细',
|
|
||||||
imgurl: '../../static/images/mark5.png',
|
|
||||||
menuKey: 'appraisal',
|
|
||||||
ifshow: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/pages/market/registerList/registerList',
|
|
||||||
name: '注册列表',
|
|
||||||
imgurl: '../../static/images/mark6.png',
|
|
||||||
menuKey: 'registration',
|
|
||||||
ifshow: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/pages/market/investmentList/investmentList',
|
|
||||||
name: '招商列表',
|
|
||||||
imgurl: '../../static/images/mark7.png',
|
|
||||||
menuKey: 'investment',
|
|
||||||
ifshow: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/pages/market/activeArea/index',
|
|
||||||
name: '活动专区',
|
|
||||||
imgurl: '../../static/images/mark9.png',
|
|
||||||
menuKey: 'activeZone',
|
|
||||||
ifshow: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
url: '/pages/architecture/architecture',
|
|
||||||
name: '架构管理',
|
|
||||||
imgurl: '../../static/images/my_icon14.png',
|
|
||||||
menuKey: 'recommend',
|
|
||||||
ifshow: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
|
|
||||||
otherMenuList: [
|
otherMenuList: [
|
||||||
{
|
{
|
||||||
url: '1',
|
url: '1',
|
||||||
|
@ -551,8 +506,10 @@ export default {
|
||||||
regionInfo: {},
|
regionInfo: {},
|
||||||
smallAreaBox: 0,
|
smallAreaBox: 0,
|
||||||
totalBox: 0,
|
totalBox: 0,
|
||||||
performanceData: {},
|
// performanceData: {},
|
||||||
marketDynamicBoxInfo: {},
|
marketDynamicBoxInfo: {},
|
||||||
|
totalSumPv: 0,
|
||||||
|
smallAreaPv: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
|
@ -560,7 +517,6 @@ export default {
|
||||||
this.orderNum()
|
this.orderNum()
|
||||||
this.getRegionSelect()
|
this.getRegionSelect()
|
||||||
this.getMemberBoxCount()
|
this.getMemberBoxCount()
|
||||||
this.fetchMemberPerformance()
|
|
||||||
this.getMarketDynamicBoxCount()
|
this.getMarketDynamicBoxCount()
|
||||||
// this.getUserAwardss()
|
// this.getUserAwardss()
|
||||||
})
|
})
|
||||||
|
@ -615,13 +571,6 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
fetchMemberPerformance() {
|
|
||||||
getMemberPerformance().then(res => {
|
|
||||||
if (res.code === 200) {
|
|
||||||
this.performanceData = res.data || {}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
getRegionSelect() {
|
getRegionSelect() {
|
||||||
getRegionSelect().then(res => {
|
getRegionSelect().then(res => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
|
@ -750,6 +699,8 @@ export default {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.totalBox = res.data?.totalBox || 0
|
this.totalBox = res.data?.totalBox || 0
|
||||||
this.smallAreaBox = res.data?.smallAreaBox || 0
|
this.smallAreaBox = res.data?.smallAreaBox || 0
|
||||||
|
this.totalSumPv = res.data?.totalSumPv || 0
|
||||||
|
this.smallAreaPv = res.data?.smallAreaPv || 0
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -1430,62 +1381,73 @@ export default {
|
||||||
|
|
||||||
.market-stats-container {
|
.market-stats-container {
|
||||||
padding: 20rpx 0;
|
padding: 20rpx 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stat-row {
|
.stat-block {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-bottom: 20rpx;
|
padding: 20rpx 30rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
&:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-cards {
|
|
||||||
display: flex;
|
|
||||||
gap: 20rpx;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-card {
|
|
||||||
flex: 1;
|
|
||||||
padding: 20rpx;
|
|
||||||
border-radius: 10rpx;
|
|
||||||
color: #fff;
|
color: #fff;
|
||||||
display: flex;
|
position: relative;
|
||||||
justify-content: center;
|
transition: transform 0.2s ease;
|
||||||
align-items: center;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
min-height: 80rpx;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
.stat-label {
|
|
||||||
font-size: 24rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stat-value {
|
|
||||||
font-size: 28rpx;
|
|
||||||
font-weight: bold;
|
|
||||||
margin-left: 10rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.primary {
|
|
||||||
background: linear-gradient(135deg, #005bac, #007bff);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.secondary {
|
|
||||||
background: linear-gradient(135deg, #4682b4, #87ceeb);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.stat-more {
|
.stat-block:active {
|
||||||
margin-left: 20rpx;
|
transform: scale(0.98);
|
||||||
font-size: 24rpx;
|
}
|
||||||
color: #999;
|
|
||||||
|
.stat-block.primary {
|
||||||
|
background: linear-gradient(135deg, #005bac, #007bff);
|
||||||
|
box-shadow: 0 6rpx 12rpx rgba(0, 91, 172, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-block.secondary {
|
||||||
|
background: linear-gradient(135deg, #4682b4, #87ceeb);
|
||||||
|
box-shadow: 0 6rpx 12rpx rgba(70, 130, 180, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-content {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
gap: 20rpx;
|
||||||
|
flex-grow: 1;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-divider {
|
||||||
|
width: 2rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
background-color: rgba(255, 255, 255, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-label {
|
||||||
|
font-size: 24rpx;
|
||||||
|
margin-top: 8rpx;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-value {
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 1.2;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stat-more-arrow {
|
||||||
|
margin-left: 20rpx;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue