3
0
Fork 0

feat(directPushList): 直推列表入口变更 添加新字段-团队人数 注册业绩

This commit is contained in:
woody 2025-09-02 14:37:13 +08:00
parent 07e5b98d3c
commit e5c7253123
6 changed files with 711 additions and 963 deletions

View File

@ -1,295 +1,127 @@
<template> <template>
<view class="main"> <view class="container">
<view class="search-content"> <view class="list">
<view class="search-list"> <view class="list-item" v-for="item in list" :key="item.memberCode">
<view v-for="item in dataList" class="search-view"> <view class="item-row">
<view class="flex_s"> <text class="label">会员编号</text>
<view class="data-left"> <text class="value">{{ item.memberCode }}</text>
{{'会员编号'}}
</view> </view>
<view class="data-right"> <view class="item-row">
{{item.memberCode}} <text class="label">会员昵称</text>
<text class="value">{{ item.nickName }}</text>
</view>
<!-- <view class="item-row">
<text class="label">会员手机号</text>
<text class="value">{{ item.phone }}</text>
</view> -->
<view class="item-row">
<text class="label">会员等级</text>
<text class="value">{{ item.settleGradeVal }}</text>
</view>
<view class="item-row">
<text class="label">注册时间</text>
<text class="value">{{ item.creationTime }}</text>
</view>
<view class="item-row">
<text class="label">注册业绩</text>
<text class="value">{{ item.consumeAchieve }}</text>
</view>
<view class="item-row">
<text class="label">团队人数</text>
<text class="value">{{ item.teamCount }}</text>
</view> </view>
</view> </view>
<view class="flex_s">
<view class="data-left">
{{'会员姓名'}}
</view>
<view class="data-right">
{{item.memberName}}
</view>
</view>
<view class="flex_s">
<view class="data-left">
{{'注册等级'}}
</view>
<view class="data-right">
{{item.pkRegisterGradeStr}}
</view>
</view>
<view class="flex_s">
<view class="data-left">
{{'注册日期'}}
</view>
<view class="data-right">
{{item.creationTime}}
</view>
</view>
<view class="flex_s">
<view class="data-left">
{{'累计业绩'}}
</view>
<view class="data-right">
{{item.consumeMoney | numberToCurrency}}
</view>
</view>
<view style="clear: both;"></view>
<view style="height: 20rpx;background-color: #fff;"></view>
</view>
</view> </view>
<view class="load-more">
<text v-if="status === 'loading'">加载中...</text>
<text v-if="status === 'nomore'">没有更多数据了</text>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import * as api from '@/config/distribute.js' import { getDirectPushList } from '@/config/mine'
import { setToken } from '@/config/auth.js'
import store from '@/store'
export default { export default {
name: 'DirectPush',
data() { data() {
return { return {
getBonusTypeList:[], list: [],
index:null,
dataList:[],
userInfo:[],
query:{
startDate:'',
endDate:'',
sourceMemberCode:'',
sourceMemberName:'',
pkBonusItems: ''
},
page:{
pageNum: 1, pageNum: 1,
pageSize:50 pageSize: 10,
total: 0,
status: 'loading', // loading, loadmore, nomore
} }
}
},
props:["num","checkRule"],
onLoad() {
}, },
created() { created() {
// this.getType() this.getDirectPushList()
// this.getInfo()
this.getDataList()
this.userInfo = uni.getStorageSync('User')
}, },
methods: { methods: {
urlTap() { nextPageQuery() {
uni.navigateTo({ url: '/pages/bonusSource/index' }) if (this.status === 'nomore' || this.status === 'loading') {
}, return
getInfo(){
api.getInfo().then(res => {
if (res) {
this.userInfo = res.data
} }
}).catch(error => { this.pageNum++
reject(error) this.getDirectPushList()
},
prevPageQuery() {
this.pageNum--
this.getDirectPushList()
},
getDirectPushList() {
this.status = 'loading'
getDirectPushList({
pageNum: this.pageNum,
pageSize: this.pageSize,
}) })
}, .then(res => {
submit() { this.list = this.list.concat(res.rows)
this.getDataList() this.total = res.total
}, if (this.list.length >= this.total) {
bindPickerChange(e) { this.status = 'nomore'
this.index = e.detail.value } else {
}, this.status = 'loadmore'
bindDateChange(e) {
this.query.startDate = e.detail.value
},
bindDateChange1(e) {
this.query.endDate = e.detail.value
},
getDataList(num) {
this.page.pageNum = num ||1
api.parentList(this.page).then(res => {
if (res) {
this.dataList.push(...res.rows)
} }
}).catch(error => {
reject(error)
}) })
}, .catch(() => {
submit() { if (this.pageNum > 1) {
this.pageNum--
}
this.status = 'loadmore'
})
}, },
}, },
} }
</script> </script>
<style>
.border_s{ <style lang="scss" scoped>
border-bottom: 1rpx solid #eee; .container {
height: 10rpx; background-color: #f0f2f5;
min-height: 100vh;
padding-top: 1rpx;
} }
.button{ .list-item {
padding: 0 30rpx; background-color: #ffffff;
/* width: 150rpx; */ margin: 16rpx 24rpx;
height: 52rpx; padding: 16rpx 24rpx;
line-height: 52rpx; border-radius: 8rpx;
color: #fff;
font-size: 28rpx;
text-align: center;
background: #005BAC;
margin: 30rpx 0 0 0;
float: right;
border-radius: 24rpx;
} }
.type{ .item-row {
color: #005BAC !important;
}
.flex_s{
width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding-bottom: 15rpx;
}
.data-left{
color: #999;
font-size: 26rpx;
}
.data-right{
color: #333;
font-size: 26rpx;
}
.search-view{
/* display: flex; */
/* justify-content: space-between; */
padding: 30rpx 20rpx 0 20rpx;
border-bottom: 20rpx solid #eee;
/* border-bottom: 1px solid #eee; */
margin:0 ;
}
.search-list{
margin-bottom: 25rpx;
background-color: #fff;
}
.search-content{
margin-top: 25rpx;
}
.text_s{
color: #333;
font-size: 26rpx;
}
.search-icon-s{
width: 22rpx;
height: 22rpx;
}
.search-icons{
width: 47rpx;
height: 47rpx;
background: #005BAC;
border-radius: 50%;
margin-left: 20rpx;
display: flex;
justify-content: center;
align-items: center; align-items: center;
margin: 30rpx 20rpx 0 0; padding: 12rpx 0;
font-size: 28rpx;
.label {
color: #8c8c8c;
} }
.time1{ .value {
width: 158rpx; color: #303133;
height: 75rpx; }
border-bottom: 1rpx solid #eee; }
margin: 0 50rpx 30rpx 50rpx; .load-more {
color: #999;
text-align: center; text-align: center;
color: #999;
padding: 20rpx 0;
font-size: 24rpx; font-size: 24rpx;
/* margin-bottom: 30rpx; */
}
.time-text{
color: #999;
font-size: 26rpx;
}
.search-bottom{
height: 100rpx;
line-height: 100rpx;
display: flex;
margin-left: 20rpx;
}
.texts{
color: #333;
font-size: 26rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
/* width:200rpx; */
text-align: right;
}
.select-text{
display: flex;
margin-right: 20rpx;
font-size: 26rpx;
color: #333;
position: relative;
}
.selIcon{
width: 20rpx;
height: 20rpx;
margin-top: 10rpx;
margin-left: 5rpx;
}
.text-s{
font-size: 26rpx;
color: #999;
margin-right: 10rpx;
}
.place{
font-size: 26rpx;
color: #999;
}
.border-colors{
border: none;
font-size: 26rpx;
color: #333;
margin-left:30rpx;
}
page{
background-color: #f2f2f2;
}
.search-icon{
width: 25rpx;
height: 25rpx;
position: absolute;
left: 30rpx;
top: 12rpx;
image{
}
}
.search-bg{
}
.top{
/* height: 200rpx; */
background-color: #fff;
padding: 20rpx 0 20rpx 0;
}
.search-tops{
display: flex;
justify-content: space-between;
height: 65rpx;
line-height: 65rpx;
padding-bottom: 40rpx;
border-bottom: 1px solid #eee;
}
.search-bg{
width: 432rpx;
height:35rpx;
background: #F5F6F8;
border-radius: 33rpx;
display: flex;
position: relative;
padding: 20rpx 50rpx;
margin-left: 20rpx;
} }
</style> </style>

View File

@ -1,90 +1,56 @@
<template> <template>
<view class="width-auto">
<view class="flexs">
<view class="select-flexs">
<picker :range="selYearList" :value="index" range-key="label" @change="changeYear">
<view style="display: flex; align-items: center;justify-content: space-between;">
<view style="margin-right:40rpx;">{{whatYear}}</view>
<u-icon name="arrow-down" color="#999"></u-icon>
</view>
</picker>
</view>
<view class="select-flexs">
<picker :range="selMounthList" :value="index" range-key="label" @change="bindPickerChange">
<view style="display: flex; align-items: center;justify-content: space-between;">
<view style="margin-right:40rpx;">{{whatMounth}}</view>
<u-icon name="arrow-down" color="#999"></u-icon>
</view>
</picker>
</view>
<view class="select-flexs" style="margin-left: 20rpx;" @click="showType=true">
<view style="display: flex; align-items: center;justify-content: space-between;">
<view style="margin-right:40rpx;">{{yjName}}</view>
<u-icon name="arrow-down" color="#999"></u-icon>
</view>
<!-- <picker :range="yjTypeList" :value="index2" range-key="label" @confirm="bindType"></picker> -->
<u-picker @cancel='showType=false' :show="showType" ref="uPicker" :columns="yjTypeList"
@confirm="bindType" keyName='label'></u-picker>
</view>
<!-- <view class="title">
导出明细
</view> -->
</view>
<view class="listrefor bg2">
<view class="flex_item">
<view class="text1">左区业绩</view>
<view class="text2">{{ achieveData.leftAchieve || 0 }}</view>
</view>
<view class="flex_item" style="cursor: pointer;" @click="goDetail(1)">
<view class="text1">左区血缘业绩</view>
<view class="text2">{{ achieveData.leftDirectAchieve || 0 }}</view>
</view>
<view class="flex_item">
<view class="text1">左区人数</view>
<view class="text2">{{ achieveData.leftCoun || 0 }}</view>
</view>
</view>
<view class="listrefor bg3">
<view> <view>
<view class="text1">血缘业绩</view> <view class="date-selector-container">
<view class="text2">{{ achieveData.directAchieve || 0 }}</view> <view class="date-selector-wrapper">
<view class="date-selector-header">
<text class="date-selector-title">选择查询时间</text>
</view>
<view class="date-selector-content">
<view class="date-picker-item">
<picker
:range="selYearList"
:value="index"
range-key="label"
@change="changeYear"
>
<view class="date-picker-display">
<view class="date-picker-label">年份</view>
<view class="date-picker-value">
<text class="date-text">{{ whatYear }}</text>
<text class="date-unit"></text>
<u-icon name="arrow-down" color="#005BAC" size="24"></u-icon>
</view> </view>
</view> </view>
<view class="listrefor bg2"> </picker>
<view class="flex_item">
<view class="text1">右区业绩</view>
<view class="text2">{{ achieveData.rightAchieve || 0 }}</view>
</view> </view>
<view class="date-picker-separator"></view>
<view class="flex_item" style="cursor: pointer;" @click="goDetail(2)"> <view class="date-picker-item">
<view class="text1">右区血缘业绩</view> <picker
<view class="text2">{{ achieveData.rightDirectAchieve || 0 }}</view> :range="selMounthList"
</view> :value="index"
<view class="flex_item"> range-key="label"
<view class="text1">右区人数</view> @change="bindPickerChange"
<view class="text2">{{ achieveData.rightCount || 0 }}</view> >
<view class="date-picker-display">
<view class="date-picker-label">月份</view>
<view class="date-picker-value">
<text class="date-text">{{ whatMounth }}</text>
<text class="date-unit"></text>
<u-icon name="arrow-down" color="#005BAC" size="24"></u-icon>
</view> </view>
</view> </view>
</picker>
</view>
</view>
</view>
</view>
<view class="width-auto"> </view>
</view> </view>
</template> </template>
<script> <script>
import { import { getPlaceNewAddAchieve } from '@/config/distribute.js'
getPlaceNewAddAchieve,
getYjList
} from "@/config/distribute.js";
export default { export default {
data() { data() {
return { return {
index: 0, index: 0,
@ -93,20 +59,23 @@
whatMounth: '', whatMounth: '',
yjType: 1, yjType: 1,
yjName: "全部",
showType: false, showType: false,
selMounthList: [], selMounthList: [],
yjTypeList: [], yjTypeList: [],
yearShow: false, yearShow: false,
whatYear:"", whatYear: '',
selYearList:[{ selYearList: [
{
value: 0, value: 0,
label: new Date().getFullYear() - 1, label: new Date().getFullYear() - 1,
},{ },
{
value: 1, value: 1,
label: new Date().getFullYear(), label: new Date().getFullYear(),
}], },
mounthList: [{ ],
mounthList: [
{
value: 1, value: 1,
label: 1 + '月', label: 1 + '月',
}, },
@ -152,31 +121,21 @@
}, },
{ {
value: 12, value: 12,
label: 12 + '月' label: 12 + '月',
}, },
], ],
} }
}, },
created() { created() {
this.getMounth() this.getMounth()
this.getYjList()
setTimeout(() => {
this.getPlaceNewAddAchieve()
}, 50)
}, },
methods: { methods: {
goDetail(index) { goDetail(index) {
uni.navigateTo({ uni.navigateTo({
url:'/pages/performanceEchart/index?ifDetail='+index url: '/pages/performanceEchart/index?ifDetail=' + index,
})
},
getYjList() {
getYjList().then(res => {
this.yjTypeList = [res.data]
}) })
}, },
changeYear(e) { changeYear(e) {
this.whatYear = this.selYearList[e.detail.value].label this.whatYear = this.selYearList[e.detail.value].label
this.getPlaceNewAddAchieve() this.getPlaceNewAddAchieve()
@ -185,17 +144,12 @@
this.whatMounth = e.detail.value + 1 this.whatMounth = e.detail.value + 1
this.getPlaceNewAddAchieve() this.getPlaceNewAddAchieve()
}, },
bindType(e) {
this.yjType = e.value[0].value
this.yjName = e.value[0].label
this.showType = false
this.getPlaceNewAddAchieve()
},
// / // /
getMounth() { getMounth() {
this.whatMounth = new Date().getMonth() + 1 this.whatMounth = new Date().getMonth() + 1
let selMounth = [] let selMounth = []
this.mounthList.forEach((item) => { this.mounthList.forEach(item => {
// if (item.value <= this.whatMounth) { // if (item.value <= this.whatMounth) {
// selMounth.push(item) // selMounth.push(item)
// } // }
@ -203,18 +157,16 @@
}) })
this.selMounthList = selMounth this.selMounthList = selMounth
this.whatYear = new Date().getFullYear() this.whatYear = new Date().getFullYear()
}, },
getPlaceNewAddAchieve() { getPlaceNewAddAchieve() {
getPlaceNewAddAchieve({ getPlaceNewAddAchieve({
monthType: this.whatMounth, monthType: this.whatMounth,
achievementType: this.yjType, achievementType: this.yjType,
year:this.whatYear year: this.whatYear,
}).then((res) => { }).then(res => {
this.achieveData = res.data; this.achieveData = res.data
}); })
} },
}, },
} }
</script> </script>
@ -224,22 +176,109 @@
width: 100%; width: 100%;
} }
.select-flexs { //
.date-selector-container {
// width: 100%;
// margin-bottom: 20rpx;
padding: 10rpx;
}
border: 1rpx solid #EEEEEE; .date-selector-wrapper {
border-radius: 15rpx; background: linear-gradient(135deg, #005bac 0%, #0074d9 100%);
// width: 232rpx; border-radius: 20rpx;
padding: 20rpx 19rpx; padding: 20rpx 20rpx;
box-shadow: 0 6rpx 24rpx rgba(0, 91, 172, 0.12);
position: relative;
overflow: hidden;
}
.date-selector-wrapper::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="30" r="1.5" fill="rgba(255,255,255,0.08)"/><circle cx="60" cy="80" r="2.5" fill="rgba(255,255,255,0.06)"/></svg>')
no-repeat;
background-size: cover;
pointer-events: none;
}
.date-selector-header {
margin-bottom: 16rpx;
}
.date-selector-title {
color: #ffffff;
font-size: 24rpx;
font-weight: 600;
opacity: 0.9;
}
.date-selector-content {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
position: relative;
z-index: 1;
} }
.flexs { .date-picker-item {
flex: 1;
background: rgba(255, 255, 255, 0.95);
border-radius: 12rpx;
padding: 16rpx 16rpx;
backdrop-filter: blur(10rpx);
transition: all 0.3s ease;
}
.date-picker-item:active {
transform: scale(0.98);
background: rgba(255, 255, 255, 0.9);
}
.date-picker-separator {
width: 20rpx;
height: 2rpx;
background: rgba(255, 255, 255, 0.6);
margin: 0 12rpx;
border-radius: 1rpx;
}
.date-picker-display {
display: flex; display: flex;
// justify-content: space-between; flex-direction: column;
border-radius: 30rpx 30rpx 0 0; align-items: center;
background-color: #fff; gap: 6rpx;
}
.date-picker-label {
font-size: 22rpx;
color: #666666;
font-weight: 500;
margin-bottom: 2rpx;
}
.date-picker-value {
display: flex;
align-items: center;
justify-content: center;
gap: 4rpx;
}
.date-text {
font-size: 32rpx;
font-weight: 700;
color: #005bac;
line-height: 1;
}
.date-unit {
font-size: 22rpx;
color: #005bac;
font-weight: 500;
margin-right: 6rpx;
} }
.title { .title {
@ -256,7 +295,7 @@
} }
.listrefor { .listrefor {
color: #FFFFFF; color: #ffffff;
border-radius: 10rpx; border-radius: 10rpx;
padding: 32rpx 21rpx; padding: 32rpx 21rpx;
margin-top: 25rpx; margin-top: 25rpx;
@ -287,14 +326,14 @@
} }
.bg1 { .bg1 {
background: linear-gradient(180deg, #FC7C7C 0%, #F65757 100%); background: linear-gradient(180deg, #fc7c7c 0%, #f65757 100%);
} }
.bg2 { .bg2 {
background: linear-gradient(180deg, #FF9354 0%, #FF7F36 100%); background: linear-gradient(180deg, #ff9354 0%, #ff7f36 100%);
} }
.bg3 { .bg3 {
background: linear-gradient(180deg, #677AF9 0%, #697BF2 100%); background: linear-gradient(180deg, #677af9 0%, #697bf2 100%);
} }
</style> </style>

View File

@ -19,7 +19,7 @@ module.exports = vm => {
//#ifdef DEV_SERVER //#ifdef DEV_SERVER
console.log('DEV_SERVER') console.log('DEV_SERVER')
config.baseURL = 'http://192.168.0.86:8080' config.baseURL = 'https://t-bl.beida777.com/prod-api'
//#endif //#endif
//#ifdef QA_SERVER //#ifdef QA_SERVER

View File

@ -161,14 +161,6 @@
"enablePullDownRefresh": true "enablePullDownRefresh": true
} }
}, },
{
"path": "pages/mine/directPush/index",
"style": {
"navigationBarTitleText": "直推列表",
"navigationBarBackgroundColor": "#fff",
"enablePullDownRefresh": true
}
},
{ {
"path": "pages/performanceEchart/index", "path": "pages/performanceEchart/index",
"style": { "style": {

View File

@ -300,6 +300,13 @@ export default {
payNum: '', payNum: '',
awards: {}, awards: {},
otherMenuList: [ otherMenuList: [
{
url: '/pages/performanceEchart/index',
name: '数据查询',
imgurl: '../../static/images/mark1.png',
menuKey: 'marketDynamics',
ifshow: true,
},
{ {
url: '1', url: '1',
name: '我的钱包', name: '我的钱包',
@ -350,13 +357,13 @@ export default {
menuKey: 'addressList', menuKey: 'addressList',
ifshow: true, ifshow: true,
}, },
{ // {
url: '/pages/mine/directPush/index', // url: '/pages/mine/directPush/index',
name: '直推列表', // name: '',
imgurl: '../../static/images/mark5.png', // imgurl: '../../static/images/mark5.png',
menuKey: 'directPush', // menuKey: 'directPush',
ifshow: false, // ifshow: false,
}, // },
{ {
url: '/pages/pickupArea/pickupArea', url: '/pages/pickupArea/pickupArea',
name: '提货专区', name: '提货专区',

View File

@ -1,151 +1,40 @@
<template> <template>
<view class="main"> <view class="main">
<view class="top-lists"> <view class="top-lists">
<view v-for="(item, index) in navList" v-show="item.menuKey!=''" :key="index" <view
:class="navIndex == index ? 'styles' : ''" class="nav-view" @click="clickHref(index)"> v-for="(item, index) in navList"
v-show="item.menuKey != ''"
:key="index"
:class="navIndex == index ? 'styles' : ''"
class="nav-view"
@click="clickHref(index)"
>
{{ item.name }} {{ item.name }}
</view> </view>
</view>
<view>
</view> </view>
<!-- 业绩分布 !--> <!-- 业绩分布 !-->
<template> <template>
<view v-if="navIndex == 0 && navList[0].menuKey != ''"> <view v-if="navIndex == 0 && navList[0].menuKey != ''">
<view v-if='ifDetail==0'>
<view>
<performanceDistribution /> <performanceDistribution />
</view> </view>
<!-- 安置图 -->
<view>
<placement />
</view>
</view>
<view v-else>
<!-- 月度业绩详情 -->
<view>
<monthPvDetail :placeDept='ifDetail' />
</view>
</view>
</view>
</template>
<!-- 安置图 !-->
<!-- <template>
<view v-if="navIndex==1">
</view>
</template> -->
<!-- 月度新增统计 !-->
<template>
<!-- <view v-if="navIndex==1">
</view> -->
</template>
<!-- 月度新增业绩 / 数据查询 !-->
<template>
<view v-if="navIndex==1" style="padding-bottom: 20rpx;">
<!-- 首购新增业绩 !-->
<view>
<fistAddPv />
</view>
<!-- 首购业绩分布 !-->
<view>
<firstPv></firstPv>
</view>
<!-- 复购新增业绩 !-->
<!-- <view>
<repAddPv />
</view> -->
<!-- 复购业绩分布 !-->
<!-- <view>
<secondPv></secondPv>
</view> -->
<!-- 奖衔业绩分布 !-->
<!-- <view>
<placementPerformance />
</view> -->
<!-- 真实业绩分布 !-->
<!-- <view>
<realPerformances />
</view> -->
<!-- 首购新增业绩对比 !-->
<view>
<mounthPvCompare />
</view>
<!-- 活跃会员对比 !-->
<view>
<activeMembers></activeMembers>
</view>
<!-- 推荐小区分布 !-->
<!-- <view>
<recommendedCommunity />
</view> -->
<!-- 推荐平均用时 -->
<!-- <view>
<recommendTime />
</view> -->
</view>
</template> </template>
<!-- 直推业绩 !-->
<template>
<view v-if="navIndex==2">
<view class="height-auto-s">
<view style="font-size: 28rpx;">{{'直推业绩'}}</view>
<view class="flex-ss">
<view class="time1">
<picker :value="query.startDate" fields='month' mode="date" @change="bindDateChange">
<view v-if="query.startDate!=''" class="uni-inputs">{{query.startDate}}</view>
<view v-else class="uni-input">{{'开始日期'}}</view>
</picker>
</view>
<!-- <view class="text_s">{{'至'}}</view>
<view class="time1" style="margin-right: 0;">
<picker :value="query.endDate" mode="date" @change="bindDateChange1">
<view v-if="query.endDate!=''" class="uni-inputs">{{query.endDate}}</view>
<view v-else class="uni-input">{{'结束日期'}}</view>
</picker>
</view> -->
</view>
</view>
<!-- 推荐业绩分布 !-->
<view>
<recommendPerformance ref="recommends" />
</view>
<!-- 等级业绩 !-->
<view>
<gradePerformance ref="recommends1" />
</view>
</view>
</template>
<!-- 推荐列表 !--> <!-- 推荐列表 !-->
<template> <template v-if="navIndex == 1">
<view v-if="navIndex==3"> <view>
<directList ref="sgsyData" /> <directList ref="sgsyData" />
</view> </view>
</template> </template>
</view> </view>
</template> </template>
<script> <script>
import * as api from '@/config/login.js' import * as api from '@/config/login.js'
import * as apis from '@/config/market.js' import * as apis from '@/config/market.js'
import { import { setToken } from '@/config/auth.js'
setToken
} from '@/config/auth.js'
import store from '@/store' import store from '@/store'
import placement from '@/components/distribution/placement.vue' import placement from '@/components/distribution/placement.vue'
import placementPerformance from '@/components/distribution/placementPerformance.vue' import placementPerformance from '@/components/distribution/placementPerformance.vue'
import fistAddPv from '@/components/distribution/fistAddPv.vue'
import mounthPvCompare from '@/components/distribution/mounthPvCompare.vue' import mounthPvCompare from '@/components/distribution/mounthPvCompare.vue'
import activeMembers from '@/components/distribution/activeMembers.vue' import activeMembers from '@/components/distribution/activeMembers.vue'
import repAddPv from '@/components/distribution/repAddPv.vue' import repAddPv from '@/components/distribution/repAddPv.vue'
@ -161,7 +50,6 @@
import performanceDistribution from '@/components/distribution/performanceDistribution.vue' import performanceDistribution from '@/components/distribution/performanceDistribution.vue'
import monthPvDetail from '@/components/distribution/monthPvDetail.vue' import monthPvDetail from '@/components/distribution/monthPvDetail.vue'
export default { export default {
components: { components: {
placement, placement,
realPerformances, realPerformances,
@ -172,14 +60,10 @@
gradePerformance, gradePerformance,
recommendPerformance, recommendPerformance,
performanceDistribution, performanceDistribution,
fistAddPv,
repAddPv,
recommendedCommunity, recommendedCommunity,
firstPv,
secondPv,
mounthPvCompare, mounthPvCompare,
activeMembers, activeMembers,
monthPvDetail monthPvDetail,
}, },
data() { data() {
return { return {
@ -188,32 +72,25 @@
query: { query: {
startDate: '', startDate: '',
}, },
marketList: [{ marketList: [
{
text: '奖金来源', text: '奖金来源',
id: 3, id: 3,
path: "/marketDynamics", path: '/marketDynamics',
name: 'bonusSource', name: 'bonusSource',
isShow: false, isShow: false,
}, ], },
navList: [{ ],
navList: [
{
name: '月度业绩', name: '月度业绩',
menuKey: "", menuKey: '',
value: "ConsanguinityCheck" value: 'ConsanguinityCheck',
},
{
name: '数据查询',
menuKey: "",
value: "monthlyPerformance"
},
{
name: '直推业绩',
menuKey: "",
value: "recommendPerformance"
}, },
{ {
name: '推荐列表', name: '推荐列表',
menuKey: "", menuKey: '',
value: "recommendList" value: 'recommendList',
}, },
// { // {
@ -232,20 +109,18 @@
// menuKey: "", // menuKey: "",
// value: "recommendTime" // value: "recommendTime"
// }, // },
], ],
navIndex: 0, navIndex: 0,
page: { page: {
pageSize: 50, pageSize: 50,
pageNum: 1, pageNum: 1,
}, },
ifDetail: "0" ifDetail: '0',
} }
}, },
onLoad(val) { onLoad(val) {
this.query.startDate = this.getStartTime() this.query.startDate = this.getStartTime()
this.ifDetail = val.ifDetail || "0" this.ifDetail = val.ifDetail || '0'
// this.query.endDate = this.getEndTime() // this.query.endDate = this.getEndTime()
this.getMenuLists() this.getMenuLists()
}, },
@ -257,7 +132,7 @@
let month = date.getMonth() + 1 // 0-11+1 let month = date.getMonth() + 1 // 0-11+1
month = month > 9 ? month : '0' + month // month = month > 9 ? month : '0' + month //
// return year + '-' + month + '-' + day // return year + '-' + month + '-' + day
return year + "-" + month return year + '-' + month
}, },
// getEndTime() { // getEndTime() {
// var date = new Date(); // var date = new Date();
@ -293,9 +168,8 @@
}, },
async onReachBottom() { async onReachBottom() {
if (this.navIndex == 6) { if (this.navIndex == 1) {
this.page.pageNum + 1 this.$refs.sgsyData.nextPageQuery()
this.$refs.sgsyData.getDataList(this.page.pageNum += 1);
} }
}, },
bindPickerChange(e) { bindPickerChange(e) {
@ -304,12 +178,12 @@
clickHref(index) { clickHref(index) {
// let that= this; // let that= this;
this.navIndex = index this.navIndex = index
this.ifDetail = "0" this.ifDetail = '0'
}, },
getMenuLists() { getMenuLists() {
api.menuList().then((res) => { api.menuList().then(res => {
res.data.forEach((item) => { res.data.forEach(item => {
this.navList.forEach((items) => { this.navList.forEach(items => {
if (item.menuKey == items.value) { if (item.menuKey == items.value) {
items.menuKey = item.menuKey items.menuKey = item.menuKey
} }
@ -357,8 +231,6 @@
/* margin-bottom: 30rpx; */ /* margin-bottom: 30rpx; */
} }
.texts { .texts {
color: #333; color: #333;
font-size: 26rpx; font-size: 26rpx;
@ -388,28 +260,34 @@
} }
.styles { .styles {
border: none !important; color: #005bac !important;
color: #fff !important; background: #fff !important;
background: #d61820; border-bottom: 4rpx solid #005bac !important;
} }
.top-lists { .top-lists {
display: flex; display: flex;
flex-wrap: nowrap;
overflow-x: auto;
background-color: #fff; background-color: #fff;
padding: 20rpx 0; border-bottom: 2rpx solid #f0f0f0;
margin-bottom: 20rpx; margin-bottom: 10rpx;
.nav-view { .nav-view {
min-width: 110rpx; flex: 1;
padding: 5rpx 26rpx; padding: 30rpx 20rpx;
border-radius: 10rpx;
border: 2rpx solid #999999;
font-size: 28rpx; font-size: 28rpx;
text-align: center; text-align: center;
margin: 0 10rpx; color: #666;
color: #999; position: relative;
border-bottom: 4rpx solid transparent;
transition: all 0.3s ease;
&:not(:last-child) {
border-right: 1rpx solid #f0f0f0;
}
&:active {
background-color: #f8f8f8;
}
} }
} }
</style> </style>