3
0
Fork 0

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

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

View File

@ -1,295 +1,127 @@
<template>
<view class="main">
<view class="search-content">
<view class="search-list">
<view v-for="item in dataList" class="search-view">
<view class="flex_s">
<view class="data-left">
{{'会员编号'}}
<view class="container">
<view class="list">
<view class="list-item" v-for="item in list" :key="item.memberCode">
<view class="item-row">
<text class="label">会员编号</text>
<text class="value">{{ item.memberCode }}</text>
</view>
<view class="data-right">
{{item.memberCode}}
<view class="item-row">
<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 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 class="load-more">
<text v-if="status === 'loading'">加载中...</text>
<text v-if="status === 'nomore'">没有更多数据了</text>
</view>
</view>
</template>
<script>
import * as api from '@/config/distribute.js'
import { setToken } from '@/config/auth.js'
import store from '@/store'
import { getDirectPushList } from '@/config/mine'
export default {
name: 'DirectPush',
data() {
return {
getBonusTypeList:[],
index:null,
dataList:[],
userInfo:[],
query:{
startDate:'',
endDate:'',
sourceMemberCode:'',
sourceMemberName:'',
pkBonusItems: ''
},
page:{
pageNum:1,
pageSize:50
list: [],
pageNum: 1,
pageSize: 10,
total: 0,
status: 'loading', // loading, loadmore, nomore
}
}
},
props:["num","checkRule"],
onLoad() {
},
created() {
// this.getType()
// this.getInfo()
this.getDataList()
this.userInfo = uni.getStorageSync('User')
this.getDirectPushList()
},
methods: {
urlTap() {
uni.navigateTo({ url: '/pages/bonusSource/index' })
},
getInfo(){
api.getInfo().then(res => {
if (res) {
this.userInfo = res.data
nextPageQuery() {
if (this.status === 'nomore' || this.status === 'loading') {
return
}
}).catch(error => {
reject(error)
this.pageNum++
this.getDirectPushList()
},
prevPageQuery() {
this.pageNum--
this.getDirectPushList()
},
getDirectPushList() {
this.status = 'loading'
getDirectPushList({
pageNum: this.pageNum,
pageSize: this.pageSize,
})
},
submit() {
this.getDataList()
},
bindPickerChange(e) {
this.index = e.detail.value
},
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)
.then(res => {
this.list = this.list.concat(res.rows)
this.total = res.total
if (this.list.length >= this.total) {
this.status = 'nomore'
} else {
this.status = 'loadmore'
}
}).catch(error => {
reject(error)
})
},
submit() {
.catch(() => {
if (this.pageNum > 1) {
this.pageNum--
}
this.status = 'loadmore'
})
},
},
}
</script>
<style>
.border_s{
border-bottom: 1rpx solid #eee;
height: 10rpx;
}
.button{
padding: 0 30rpx;
/* width: 150rpx; */
height: 52rpx;
line-height: 52rpx;
color: #fff;
font-size: 28rpx;
text-align: center;
background: #005BAC;
margin: 30rpx 0 0 0;
float: right;
border-radius: 24rpx;
}
.type{
color: #005BAC !important;
}
.flex_s{
width: 100%;
<style lang="scss" scoped>
.container {
background-color: #f0f2f5;
min-height: 100vh;
padding-top: 1rpx;
}
.list-item {
background-color: #ffffff;
margin: 16rpx 24rpx;
padding: 16rpx 24rpx;
border-radius: 8rpx;
}
.item-row {
display: flex;
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;
margin: 30rpx 20rpx 0 0;
padding: 12rpx 0;
font-size: 28rpx;
.label {
color: #8c8c8c;
}
.time1{
width: 158rpx;
height: 75rpx;
border-bottom: 1rpx solid #eee;
margin: 0 50rpx 30rpx 50rpx;
color: #999;
.value {
color: #303133;
}
}
.load-more {
text-align: center;
color: #999;
padding: 20rpx 0;
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>

View File

@ -1,90 +1,56 @@
<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 class="text1">血缘业绩</view>
<view class="text2">{{ achieveData.directAchieve || 0 }}</view>
<view class="date-selector-container">
<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 class="listrefor bg2">
<view class="flex_item">
<view class="text1">右区业绩</view>
<view class="text2">{{ achieveData.rightAchieve || 0 }}</view>
</picker>
</view>
<view class="flex_item" style="cursor: pointer;" @click="goDetail(2)">
<view class="text1">右区血缘业绩</view>
<view class="text2">{{ achieveData.rightDirectAchieve || 0 }}</view>
</view>
<view class="flex_item">
<view class="text1">右区人数</view>
<view class="text2">{{ achieveData.rightCount || 0 }}</view>
<view class="date-picker-separator"></view>
<view class="date-picker-item">
<picker
:range="selMounthList"
:value="index"
range-key="label"
@change="bindPickerChange"
>
<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>
</picker>
</view>
</view>
</view>
</view>
<view class="width-auto"> </view>
</view>
</template>
<script>
import {
getPlaceNewAddAchieve,
getYjList
} from "@/config/distribute.js";
export default {
import { getPlaceNewAddAchieve } from '@/config/distribute.js'
export default {
data() {
return {
index: 0,
@ -93,20 +59,23 @@
whatMounth: '',
yjType: 1,
yjName: "全部",
showType: false,
selMounthList: [],
yjTypeList: [],
yearShow:false,
whatYear:"",
selYearList:[{
yearShow: false,
whatYear: '',
selYearList: [
{
value: 0,
label: new Date().getFullYear()-1,
},{
label: new Date().getFullYear() - 1,
},
{
value: 1,
label: new Date().getFullYear(),
}],
mounthList: [{
},
],
mounthList: [
{
value: 1,
label: 1 + '月',
},
@ -152,32 +121,22 @@
},
{
value: 12,
label: 12 + '月'
label: 12 + '月',
},
],
}
},
created() {
this.getMounth()
this.getYjList()
setTimeout(() => {
this.getPlaceNewAddAchieve()
}, 50)
},
methods: {
goDetail(index) {
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.getPlaceNewAddAchieve()
},
@ -185,17 +144,12 @@
this.whatMounth = e.detail.value + 1
this.getPlaceNewAddAchieve()
},
bindType(e) {
this.yjType = e.value[0].value
this.yjName = e.value[0].label
this.showType = false
this.getPlaceNewAddAchieve()
},
// /
getMounth() {
this.whatMounth = new Date().getMonth() + 1
let selMounth = []
this.mounthList.forEach((item) => {
this.mounthList.forEach(item => {
// if (item.value <= this.whatMounth) {
// selMounth.push(item)
// }
@ -203,60 +157,145 @@
})
this.selMounthList = selMounth
this.whatYear = new Date().getFullYear()
},
getPlaceNewAddAchieve() {
getPlaceNewAddAchieve({
monthType: this.whatMounth,
achievementType: this.yjType,
year:this.whatYear
}).then((res) => {
this.achieveData = res.data;
});
}
year: this.whatYear,
}).then(res => {
this.achieveData = res.data
})
},
}
},
}
</script>
<style lang="scss" scoped>
::v-deep .uni-picker {
::v-deep .uni-picker {
width: 100%;
}
}
.select-flexs {
//
.date-selector-container {
// width: 100%;
// margin-bottom: 20rpx;
padding: 10rpx;
}
border: 1rpx solid #EEEEEE;
border-radius: 15rpx;
// width: 232rpx;
padding: 20rpx 19rpx;
.date-selector-wrapper {
background: linear-gradient(135deg, #005bac 0%, #0074d9 100%);
border-radius: 20rpx;
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;
align-items: center;
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;
// justify-content: space-between;
border-radius: 30rpx 30rpx 0 0;
background-color: #fff;
}
flex-direction: column;
align-items: center;
gap: 6rpx;
}
.title {
.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 {
padding: 10rpx 0;
margin-top: 10rpx;
}
}
.width-auto {
.width-auto {
background-color: #fff;
padding: 0 22rpx;
width: 690rpx;
margin: 0 auto;
padding-bottom: 20rpx;
}
}
.listrefor {
color: #FFFFFF;
.listrefor {
color: #ffffff;
border-radius: 10rpx;
padding: 32rpx 21rpx;
margin-top: 25rpx;
@ -284,17 +323,17 @@
font-weight: bold;
margin-top: 30rpx;
}
}
}
.bg1 {
background: linear-gradient(180deg, #FC7C7C 0%, #F65757 100%);
}
.bg1 {
background: linear-gradient(180deg, #fc7c7c 0%, #f65757 100%);
}
.bg2 {
background: linear-gradient(180deg, #FF9354 0%, #FF7F36 100%);
}
.bg2 {
background: linear-gradient(180deg, #ff9354 0%, #ff7f36 100%);
}
.bg3 {
background: linear-gradient(180deg, #677AF9 0%, #697BF2 100%);
}
.bg3 {
background: linear-gradient(180deg, #677af9 0%, #697bf2 100%);
}
</style>

View File

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

View File

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

View File

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

View File

@ -1,167 +1,55 @@
<template>
<view class="main">
<view class="top-lists">
<view v-for="(item, index) in navList" v-show="item.menuKey!=''" :key="index"
:class="navIndex == index ? 'styles' : ''" class="nav-view" @click="clickHref(index)">
<view
v-for="(item, index) in navList"
v-show="item.menuKey != ''"
:key="index"
:class="navIndex == index ? 'styles' : ''"
class="nav-view"
@click="clickHref(index)"
>
{{ item.name }}
</view>
</view>
<view>
</view>
<!-- 业绩分布 !-->
<template>
<view v-if="navIndex==0 && navList[0].menuKey!=''">
<view v-if='ifDetail==0'>
<view>
<view v-if="navIndex == 0 && navList[0].menuKey != ''">
<performanceDistribution />
</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>
<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>
<view v-if="navIndex==3">
<template v-if="navIndex == 1">
<view>
<directList ref="sgsyData" />
</view>
</template>
</view>
</template>
<script>
import * as api from '@/config/login.js'
import * as apis from '@/config/market.js'
import {
setToken
} from '@/config/auth.js'
import store from '@/store'
import placement from '@/components/distribution/placement.vue'
import placementPerformance from '@/components/distribution/placementPerformance.vue'
import fistAddPv from '@/components/distribution/fistAddPv.vue'
import mounthPvCompare from '@/components/distribution/mounthPvCompare.vue'
import activeMembers from '@/components/distribution/activeMembers.vue'
import repAddPv from '@/components/distribution/repAddPv.vue'
import recommendedCommunity from '@/components/distribution/recommendedCommunity.vue'
import firstPv from '@/components/distribution/firstPv.vue'
import secondPv from '@/components/distribution/secondPv.vue'
import realPerformances from '@/components/distribution/realPerformances.vue'
import realPerformance from '@/components/distribution/realPerformance.vue'
import directList from '@/components/distribution/directList.vue'
import recommendTime from '@/components/distribution/recommendTime.vue'
import gradePerformance from '@/components/distribution/gradePerformance.vue'
import recommendPerformance from '@/components/distribution/recommendPerformance.vue'
import performanceDistribution from '@/components/distribution/performanceDistribution.vue'
import monthPvDetail from '@/components/distribution/monthPvDetail.vue'
export default {
import * as api from '@/config/login.js'
import * as apis from '@/config/market.js'
import { setToken } from '@/config/auth.js'
import store from '@/store'
import placement from '@/components/distribution/placement.vue'
import placementPerformance from '@/components/distribution/placementPerformance.vue'
import mounthPvCompare from '@/components/distribution/mounthPvCompare.vue'
import activeMembers from '@/components/distribution/activeMembers.vue'
import repAddPv from '@/components/distribution/repAddPv.vue'
import recommendedCommunity from '@/components/distribution/recommendedCommunity.vue'
import firstPv from '@/components/distribution/firstPv.vue'
import secondPv from '@/components/distribution/secondPv.vue'
import realPerformances from '@/components/distribution/realPerformances.vue'
import realPerformance from '@/components/distribution/realPerformance.vue'
import directList from '@/components/distribution/directList.vue'
import recommendTime from '@/components/distribution/recommendTime.vue'
import gradePerformance from '@/components/distribution/gradePerformance.vue'
import recommendPerformance from '@/components/distribution/recommendPerformance.vue'
import performanceDistribution from '@/components/distribution/performanceDistribution.vue'
import monthPvDetail from '@/components/distribution/monthPvDetail.vue'
export default {
components: {
placement,
realPerformances,
@ -172,14 +60,10 @@
gradePerformance,
recommendPerformance,
performanceDistribution,
fistAddPv,
repAddPv,
recommendedCommunity,
firstPv,
secondPv,
mounthPvCompare,
activeMembers,
monthPvDetail
monthPvDetail,
},
data() {
return {
@ -188,32 +72,25 @@
query: {
startDate: '',
},
marketList: [{
marketList: [
{
text: '奖金来源',
id: 3,
path: "/marketDynamics",
path: '/marketDynamics',
name: 'bonusSource',
isShow: false,
}, ],
navList: [{
},
],
navList: [
{
name: '月度业绩',
menuKey: "",
value: "ConsanguinityCheck"
},
{
name: '数据查询',
menuKey: "",
value: "monthlyPerformance"
},
{
name: '直推业绩',
menuKey: "",
value: "recommendPerformance"
menuKey: '',
value: 'ConsanguinityCheck',
},
{
name: '推荐列表',
menuKey: "",
value: "recommendList"
menuKey: '',
value: 'recommendList',
},
// {
@ -232,20 +109,18 @@
// menuKey: "",
// value: "recommendTime"
// },
],
navIndex: 0,
page: {
pageSize: 50,
pageNum: 1,
},
ifDetail: "0"
ifDetail: '0',
}
},
onLoad(val) {
this.query.startDate = this.getStartTime()
this.ifDetail = val.ifDetail || "0"
this.ifDetail = val.ifDetail || '0'
// this.query.endDate = this.getEndTime()
this.getMenuLists()
},
@ -257,7 +132,7 @@
let month = date.getMonth() + 1 // 0-11+1
month = month > 9 ? month : '0' + month //
// return year + '-' + month + '-' + day
return year + "-" + month
return year + '-' + month
},
// getEndTime() {
// var date = new Date();
@ -293,9 +168,8 @@
},
async onReachBottom() {
if (this.navIndex == 6) {
this.page.pageNum + 1
this.$refs.sgsyData.getDataList(this.page.pageNum += 1);
if (this.navIndex == 1) {
this.$refs.sgsyData.nextPageQuery()
}
},
bindPickerChange(e) {
@ -304,12 +178,12 @@
clickHref(index) {
// let that= this;
this.navIndex = index
this.ifDetail = "0"
this.ifDetail = '0'
},
getMenuLists() {
api.menuList().then((res) => {
res.data.forEach((item) => {
this.navList.forEach((items) => {
api.menuList().then(res => {
res.data.forEach(item => {
this.navList.forEach(items => {
if (item.menuKey == items.value) {
items.menuKey = item.menuKey
}
@ -321,32 +195,32 @@
})
},
},
}
}
</script>
<style lang="scss">
.uni-inputs {
.uni-inputs {
color: #333;
}
}
.text_s {
.text_s {
font-size: 24rpx;
color: #333;
}
}
.height-auto-s {
.height-auto-s {
background-color: #fff;
display: flex;
justify-content: space-between;
margin-top: 20rpx;
padding: 25rpx 60rpx 0 60rpx;
// line-height: 75rpx;
}
}
.flex-ss {
.flex-ss {
display: flex;
}
}
.time1 {
.time1 {
width: 158rpx;
// height: 75rpx;
// border-bottom: 1rpx solid #eee;
@ -355,11 +229,9 @@
text-align: center;
font-size: 24rpx;
/* margin-bottom: 30rpx; */
}
}
.texts {
.texts {
color: #333;
font-size: 26rpx;
overflow: hidden;
@ -367,49 +239,55 @@
text-overflow: ellipsis;
/* width:200rpx; */
text-align: right;
}
}
.select-text {
.select-text {
display: flex;
margin-right: 20rpx;
font-size: 26rpx;
color: #333;
position: relative;
}
}
.selIcon {
.selIcon {
width: 30rpx;
height: 30rpx;
margin: 5rpx 0 0 20rpx;
}
}
page {
page {
background-color: #f2f2f2;
}
}
.styles {
border: none !important;
color: #fff !important;
background: #d61820;
}
.styles {
color: #005bac !important;
background: #fff !important;
border-bottom: 4rpx solid #005bac !important;
}
.top-lists {
.top-lists {
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
background-color: #fff;
padding: 20rpx 0;
margin-bottom: 20rpx;
border-bottom: 2rpx solid #f0f0f0;
margin-bottom: 10rpx;
.nav-view {
min-width: 110rpx;
padding: 5rpx 26rpx;
border-radius: 10rpx;
border: 2rpx solid #999999;
flex: 1;
padding: 30rpx 20rpx;
font-size: 28rpx;
text-align: center;
margin: 0 10rpx;
color: #999;
color: #666;
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>