forked from angelo/web-retail-h5
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) {
|
||||
setToken(options.query?.token)
|
||||
console.log('🌈ad', options.query?.token)
|
||||
}
|
||||
const whiteList = [
|
||||
'pages/shareRegist/index',
|
||||
|
|
|
@ -12,7 +12,7 @@ export const getGradeList = params =>
|
|||
http.get('/system/api/grade/list', {
|
||||
params,
|
||||
})
|
||||
//三单轮次
|
||||
//三单轮次。
|
||||
export const nextRound = params =>
|
||||
http.get('/member/api/market-news/round-his', { params })
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ module.exports = vm => {
|
|||
|
||||
//#ifdef DEV_SERVER
|
||||
console.log('DEV_SERVER')
|
||||
config.baseURL = 'http://localhost:8080'
|
||||
config.baseURL = 'http://192.168.0.102:8080'
|
||||
//#endif
|
||||
|
||||
//#ifdef QA_SERVER
|
||||
|
|
|
@ -119,7 +119,7 @@ export default {
|
|||
pageSize: 10,
|
||||
},
|
||||
BONUS_FIELD_MAP: {
|
||||
levelGapIncome: '级差收益',
|
||||
levelGapIncome: '直推收益',
|
||||
peerIncome: '平级收益',
|
||||
regionalIncome: '区域收益',
|
||||
welfareLevelGapIncome: '福利级差收益',
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
</view>
|
||||
<view class="summary-amount">
|
||||
<text class="currency-symbol">¥</text>
|
||||
<text>{{ bonusData.totalIssued || '0.00' }}</text>
|
||||
<text>{{ bonusData.realIncomeTotal || '0.00' }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
<view class="details-card">
|
||||
<view class="detail-item">
|
||||
<text class="detail-label">奖金日期</text>
|
||||
<text class="detail-value date">{{ bonusData.date }}</text>
|
||||
<text class="detail-value date">{{ bonusData.settleDate }}</text>
|
||||
</view>
|
||||
<view v-for="(label, key) in detailLabels" :key="key" class="detail-item">
|
||||
<text class="detail-label">{{ label }}</text>
|
||||
|
@ -46,23 +46,23 @@ export default {
|
|||
return {
|
||||
// 使用截图中的数据作为示例
|
||||
bonusData: {
|
||||
totalIssued: 84.0,
|
||||
date: '2025-03-16',
|
||||
levelDifferenceIncome: 84.0,
|
||||
peerIncome: 0.0,
|
||||
regionalIncome: 0.0,
|
||||
welfareLevelDifferenceIncome: 0.0,
|
||||
welfareDividendIncome: 0.0,
|
||||
repeatConsumptionIncome: 8.4,
|
||||
subtotal: 75.6,
|
||||
totalIssued: 0,
|
||||
date: '',
|
||||
retailRangeIncome: 0,
|
||||
retailSameLevelIncome: 0.0,
|
||||
retailAreaIncome: 0.0,
|
||||
// welfareLevelDifferenceIncome: 0.0,
|
||||
// welfareDividendIncome: 0.0,
|
||||
backPoints: 0,
|
||||
subtotal: 0,
|
||||
},
|
||||
detailLabels: {
|
||||
levelDifferenceIncome: '级差收益(¥)',
|
||||
peerIncome: '平级收益(¥)',
|
||||
regionalIncome: '区域收益(¥)',
|
||||
welfareLevelDifferenceIncome: '福利级差收益(¥)',
|
||||
welfareDividendIncome: '福利分红收益(¥)',
|
||||
repeatConsumptionIncome: '重消收益(¥)',
|
||||
retailRangeIncome: '直推收益(¥)',
|
||||
retailSameLevelIncome: '平级收益(¥)',
|
||||
retailAreaIncome: '区域收益(¥)',
|
||||
// welfareLevelDifferenceIncome: '福利级差收益(¥)',
|
||||
// welfareDividendIncome: '福利分红收益(¥)',
|
||||
backPoints: '重消收益(¥)',
|
||||
},
|
||||
}
|
||||
},
|
||||
|
|
|
@ -21,23 +21,19 @@
|
|||
<view class="left_text">
|
||||
<view class="name_box">
|
||||
<view class="tTit1">{{ userInfo.memberCode }}</view>
|
||||
</view>
|
||||
<view class="level_box">
|
||||
<view class="level_tag level_tag--primary">
|
||||
<view
|
||||
style="margin-left: 20rpx"
|
||||
class="level_tag level_tag--primary"
|
||||
>
|
||||
<u-icon name="level" color="#A77B09" size="14"></u-icon>
|
||||
<text class="level_label">会员等级</text>
|
||||
<text class="level_value">{{
|
||||
userInfo.pkGradeVal || '-'
|
||||
}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="level_box">
|
||||
<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 class="level_tag">
|
||||
<u-icon name="star" color="#005BAC" size="14"></u-icon>
|
||||
<text class="level_label">荣誉奖衔</text>
|
||||
|
@ -45,6 +41,13 @@
|
|||
userInfo.pkMaxAwardsVal || '-'
|
||||
}}</text>
|
||||
</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>
|
||||
|
@ -145,17 +148,25 @@
|
|||
<!-- 新增信息展示 -->
|
||||
<view
|
||||
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
|
||||
class="info-grid"
|
||||
:class="{ 'multiple-items': userInfo.memberSign === 0 }"
|
||||
:class="{
|
||||
'multiple-items': userInfo.memberSign === MEMBER_SIGN.NORMAL_LEVEL,
|
||||
}"
|
||||
>
|
||||
<view class="info-item">
|
||||
<text class="info-value">{{ userInfo.pkGradeVal || '-' }}</text>
|
||||
<text class="info-label">会员等级</text>
|
||||
</view>
|
||||
<template v-if="userInfo.memberSign === 0">
|
||||
<template v-if="userInfo.memberSign === MEMBER_SIGN.NORMAL_LEVEL">
|
||||
<view class="info-item">
|
||||
<text class="info-value">{{ totalBox || '0' }}</text>
|
||||
<text class="info-label">总盒数</text>
|
||||
|
@ -240,47 +251,42 @@
|
|||
<text class="thetitle">{{ '市场动态' }}</text>
|
||||
</view>
|
||||
<view class="market-stats-container">
|
||||
<view class="stat-row">
|
||||
<view class="stat-cards">
|
||||
<view class="stat-card primary">
|
||||
<text class="stat-label">总业绩:</text>
|
||||
<text class="stat-value">{{
|
||||
performanceData.totalSumPv || '0.00'
|
||||
}}</text>
|
||||
<view
|
||||
class="stat-block primary"
|
||||
@click="goTo('/pages/performanceEchart/index')"
|
||||
>
|
||||
<view class="stat-content">
|
||||
<view class="stat-item">
|
||||
<text class="stat-label">总业绩</text>
|
||||
<text class="stat-value">{{ totalSumPv || '0.00' }}</text>
|
||||
</view>
|
||||
<view class="stat-card secondary">
|
||||
<text class="stat-label">小区:</text>
|
||||
<text class="stat-value">{{
|
||||
performanceData.smallAreaPv || '0.00'
|
||||
}}</text>
|
||||
<view class="stat-divider"></view>
|
||||
<view class="stat-item">
|
||||
<text class="stat-label">小区业绩</text>
|
||||
<text class="stat-value">{{ smallAreaPv || '0.00' }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
class="stat-more"
|
||||
@click="goTo('/pages/performanceEchart/index')"
|
||||
>
|
||||
<text>更多</text>
|
||||
<u-icon name="arrow-right" color="#999999" size="14rpx"></u-icon>
|
||||
<view class="stat-more-arrow">
|
||||
<u-icon name="arrow-right" color="#fff" size="16"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="stat-row">
|
||||
<view class="stat-cards">
|
||||
<view class="stat-card primary">
|
||||
<text class="stat-label">总盒数:</text>
|
||||
<text class="stat-value">{{
|
||||
performanceData.totalBox || '0'
|
||||
}}</text>
|
||||
<view
|
||||
class="stat-block secondary"
|
||||
@click="goTo('/pages/mine/order/index')"
|
||||
>
|
||||
<view class="stat-content">
|
||||
<view class="stat-item">
|
||||
<text class="stat-label">总盒数</text>
|
||||
<text class="stat-value">{{ totalBox || '0' }}</text>
|
||||
</view>
|
||||
<view class="stat-card secondary">
|
||||
<text class="stat-label">小区盒数:</text>
|
||||
<text class="stat-value">{{
|
||||
performanceData.smallAreaBox || '0'
|
||||
}}</text>
|
||||
<view class="stat-divider"></view>
|
||||
<view class="stat-item">
|
||||
<text class="stat-label">小区盒数</text>
|
||||
<text class="stat-value">{{ 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 class="stat-more-arrow">
|
||||
<u-icon name="arrow-right" color="#fff" size="16"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -402,6 +408,7 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
MEMBER_SIGN,
|
||||
getLanguageList: [],
|
||||
index: 0,
|
||||
userInfo: {},
|
||||
|
@ -411,58 +418,6 @@ export default {
|
|||
waitPayNum: '',
|
||||
payNum: '',
|
||||
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: [
|
||||
{
|
||||
url: '1',
|
||||
|
@ -551,8 +506,10 @@ export default {
|
|||
regionInfo: {},
|
||||
smallAreaBox: 0,
|
||||
totalBox: 0,
|
||||
performanceData: {},
|
||||
// performanceData: {},
|
||||
marketDynamicBoxInfo: {},
|
||||
totalSumPv: 0,
|
||||
smallAreaPv: 0,
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
|
@ -560,7 +517,6 @@ export default {
|
|||
this.orderNum()
|
||||
this.getRegionSelect()
|
||||
this.getMemberBoxCount()
|
||||
this.fetchMemberPerformance()
|
||||
this.getMarketDynamicBoxCount()
|
||||
// this.getUserAwardss()
|
||||
})
|
||||
|
@ -615,13 +571,6 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
fetchMemberPerformance() {
|
||||
getMemberPerformance().then(res => {
|
||||
if (res.code === 200) {
|
||||
this.performanceData = res.data || {}
|
||||
}
|
||||
})
|
||||
},
|
||||
getRegionSelect() {
|
||||
getRegionSelect().then(res => {
|
||||
if (res.code == 200) {
|
||||
|
@ -750,6 +699,8 @@ export default {
|
|||
if (res.code == 200) {
|
||||
this.totalBox = res.data?.totalBox || 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 {
|
||||
padding: 20rpx 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20rpx;
|
||||
}
|
||||
|
||||
.stat-row {
|
||||
.stat-block {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.stat-cards {
|
||||
display: flex;
|
||||
gap: 20rpx;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.stat-card {
|
||||
flex: 1;
|
||||
padding: 20rpx;
|
||||
border-radius: 10rpx;
|
||||
padding: 20rpx 30rpx;
|
||||
border-radius: 16rpx;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
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);
|
||||
}
|
||||
position: relative;
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
.stat-more {
|
||||
margin-left: 20rpx;
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
.stat-block:active {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
.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;
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue