| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |  | <template> | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |   <view class="main"> | 
					
						
							|  |  |  |  |     <view class="top-lists"> | 
					
						
							|  |  |  |  |       <view | 
					
						
							|  |  |  |  |         v-for="(item, index) in navList" | 
					
						
							|  |  |  |  |         :key="index" | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |         :class="navIndex == item.index ? 'styles' : ''" | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |         class="nav-view" | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |         @click="clickHref(item.index)" | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |       > | 
					
						
							|  |  |  |  |         {{ item.name }} | 
					
						
							|  |  |  |  |       </view> | 
					
						
							|  |  |  |  |     </view> | 
					
						
							|  |  |  |  |     <!-- 业绩分布 !--> | 
					
						
							|  |  |  |  |     <template> | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |       <view v-if="navIndex == 0"> | 
					
						
							| 
									
										
										
										
											2025-09-03 13:26:45 +08:00
										 |  |  |  |         <performanceDistribution ref="performanceRef" /> | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |       </view> | 
					
						
							|  |  |  |  |     </template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     <!-- 推荐列表 !--> | 
					
						
							|  |  |  |  |     <template v-if="navIndex == 1"> | 
					
						
							|  |  |  |  |       <view> | 
					
						
							|  |  |  |  |         <directList ref="sgsyData" /> | 
					
						
							|  |  |  |  |       </view> | 
					
						
							|  |  |  |  |     </template> | 
					
						
							|  |  |  |  |   </view> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |  | </template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | <script> | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  | import * as api from '@/config/login.js' | 
					
						
							|  |  |  |  | import * as apis from '@/config/market.js' | 
					
						
							|  |  |  |  | import { setToken } from '@/config/auth.js' | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  | import { MEMBER_SIGN } from '@/util/common' | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  | 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, | 
					
						
							|  |  |  |  |     placementPerformance, | 
					
						
							|  |  |  |  |     realPerformance, | 
					
						
							|  |  |  |  |     directList, | 
					
						
							|  |  |  |  |     recommendTime, | 
					
						
							|  |  |  |  |     gradePerformance, | 
					
						
							|  |  |  |  |     recommendPerformance, | 
					
						
							|  |  |  |  |     performanceDistribution, | 
					
						
							|  |  |  |  |     recommendedCommunity, | 
					
						
							|  |  |  |  |     mounthPvCompare, | 
					
						
							|  |  |  |  |     activeMembers, | 
					
						
							|  |  |  |  |     monthPvDetail, | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  |   data() { | 
					
						
							|  |  |  |  |     return { | 
					
						
							|  |  |  |  |       index: null, | 
					
						
							|  |  |  |  |       userInfo: [], | 
					
						
							|  |  |  |  |       query: { | 
					
						
							|  |  |  |  |         startDate: '', | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       marketList: [ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |           text: '奖金来源', | 
					
						
							|  |  |  |  |           id: 3, | 
					
						
							|  |  |  |  |           path: '/marketDynamics', | 
					
						
							|  |  |  |  |           name: 'bonusSource', | 
					
						
							|  |  |  |  |           isShow: false, | 
					
						
							|  |  |  |  |         }, | 
					
						
							|  |  |  |  |       ], | 
					
						
							|  |  |  |  |       navList: [ | 
					
						
							| 
									
										
										
										
											2025-09-03 13:27:41 +08:00
										 |  |  |  |         // {
 | 
					
						
							| 
									
										
										
										
											2025-09-04 09:25:17 +08:00
										 |  |  |  |         //   name: '业绩列表',
 | 
					
						
							| 
									
										
										
										
											2025-09-03 13:27:41 +08:00
										 |  |  |  |         //   menuKey: '',
 | 
					
						
							|  |  |  |  |         //   value: 'ConsanguinityCheck',
 | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |         //   index: 0
 | 
					
						
							| 
									
										
										
										
											2025-09-03 13:27:41 +08:00
										 |  |  |  |         // },
 | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |           name: '推荐列表', | 
					
						
							|  |  |  |  |           menuKey: '', | 
					
						
							|  |  |  |  |           value: 'recommendList', | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |           index: 1, | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |         }, | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // {
 | 
					
						
							|  |  |  |  |         // 	name: "最末节点",
 | 
					
						
							|  |  |  |  |         // 	menuKey: "",
 | 
					
						
							|  |  |  |  |         // 	value: "placementChart"
 | 
					
						
							|  |  |  |  |         // },
 | 
					
						
							|  |  |  |  |         // {
 | 
					
						
							|  |  |  |  |         // 	name: "月度新增统计",
 | 
					
						
							|  |  |  |  |         // 	menuKey: "",
 | 
					
						
							|  |  |  |  |         // 	value: "monthlyChart"
 | 
					
						
							|  |  |  |  |         // },
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         // {
 | 
					
						
							|  |  |  |  |         // 	name: '推荐平均用时',
 | 
					
						
							|  |  |  |  |         // 	menuKey: "",
 | 
					
						
							|  |  |  |  |         // 	value: "recommendTime"
 | 
					
						
							|  |  |  |  |         // },
 | 
					
						
							|  |  |  |  |       ], | 
					
						
							| 
									
										
										
										
											2025-09-03 13:27:41 +08:00
										 |  |  |  |       navIndex: 1, | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |       page: { | 
					
						
							|  |  |  |  |         pageSize: 50, | 
					
						
							|  |  |  |  |         pageNum: 1, | 
					
						
							|  |  |  |  |       }, | 
					
						
							|  |  |  |  |       ifDetail: '0', | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  |   onLoad(val) { | 
					
						
							|  |  |  |  |     this.query.startDate = this.getStartTime() | 
					
						
							|  |  |  |  |     this.ifDetail = val.ifDetail || '0' | 
					
						
							|  |  |  |  |     // this.query.endDate = this.getEndTime()
 | 
					
						
							| 
									
										
										
										
											2025-09-03 14:03:21 +08:00
										 |  |  |  |     this.getMenuLists() | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2025-09-03 13:26:45 +08:00
										 |  |  |  |   async onPullDownRefresh() { | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |     if (this.navIndex === 1) { | 
					
						
							| 
									
										
										
										
											2025-09-03 13:26:45 +08:00
										 |  |  |  |       this.$refs.sgsyData.refresh() | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     this.$refs.performanceRef.refresh() | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  |   async onReachBottom() { | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |     if (this.navIndex === 1) { | 
					
						
							| 
									
										
										
										
											2025-09-03 13:26:45 +08:00
										 |  |  |  |       this.$refs.sgsyData.nextPageQuery() | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     this.$refs.performanceRef.nextPage() | 
					
						
							|  |  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |   methods: { | 
					
						
							|  |  |  |  |     getStartTime() { | 
					
						
							|  |  |  |  |       let date = new Date() | 
					
						
							|  |  |  |  |       date.setDate(1) // 将当前时间的日期设置成第一天
 | 
					
						
							|  |  |  |  |       let year = date.getFullYear() // 得到当前年份
 | 
					
						
							|  |  |  |  |       let month = date.getMonth() + 1 // 得到当前月份(0-11月份,+1是当前月份)
 | 
					
						
							|  |  |  |  |       month = month > 9 ? month : '0' + month // 补零
 | 
					
						
							|  |  |  |  |       // return year + '-' + month + '-' + day
 | 
					
						
							|  |  |  |  |       return year + '-' + month | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     // getEndTime() {
 | 
					
						
							|  |  |  |  |     // 	var date = new Date();
 | 
					
						
							|  |  |  |  |     // 	var year = date.getFullYear() // 年
 | 
					
						
							|  |  |  |  |     // 	var month = date.getMonth() + 1; // 月
 | 
					
						
							|  |  |  |  |     // 	var day = date.getDate() > 1 ? date.getDate() - 1 : date.getDate(); // 日
 | 
					
						
							|  |  |  |  |     // 	var hour = date.getHours(); // 时
 | 
					
						
							|  |  |  |  |     // 	var minutes = date.getMinutes(); // 分
 | 
					
						
							|  |  |  |  |     // 	var seconds = date.getSeconds() //秒
 | 
					
						
							|  |  |  |  |     // 	// 给一位数的数据前面加 “0”
 | 
					
						
							|  |  |  |  |     // 	if (month >= 1 && month <= 9) {
 | 
					
						
							|  |  |  |  |     // 		month = "0" + month;
 | 
					
						
							|  |  |  |  |     // 	}
 | 
					
						
							|  |  |  |  |     // 	if (day >= 0 && day <= 9) {
 | 
					
						
							|  |  |  |  |     // 		day = "0" + day;
 | 
					
						
							|  |  |  |  |     // 	}
 | 
					
						
							|  |  |  |  |     // 	if (hour >= 0 && hour <= 9) {
 | 
					
						
							|  |  |  |  |     // 		hour = "0" + hour;
 | 
					
						
							|  |  |  |  |     // 	}
 | 
					
						
							|  |  |  |  |     // 	if (minutes >= 0 && minutes <= 9) {
 | 
					
						
							|  |  |  |  |     // 		minutes = "0" + minutes;
 | 
					
						
							|  |  |  |  |     // 	}
 | 
					
						
							|  |  |  |  |     // 	if (seconds >= 0 && seconds <= 9) {
 | 
					
						
							|  |  |  |  |     // 		seconds = "0" + seconds;
 | 
					
						
							|  |  |  |  |     // 	}
 | 
					
						
							|  |  |  |  |     // 	// return year + "-" + month + "-" + day + " "
 | 
					
						
							|  |  |  |  |     // 	return year + "-" + month
 | 
					
						
							|  |  |  |  |     // },
 | 
					
						
							|  |  |  |  |     bindDateChange(e) { | 
					
						
							|  |  |  |  |       this.query.startDate = e.detail.value | 
					
						
							|  |  |  |  |       this.$refs.recommends.upDateCover2(this.query) | 
					
						
							|  |  |  |  |       this.$refs.recommends1.upDateCover2(this.query) | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     bindPickerChange(e) { | 
					
						
							|  |  |  |  |       this.index = e.detail.value | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     clickHref(index) { | 
					
						
							|  |  |  |  |       // let that= this;
 | 
					
						
							|  |  |  |  |       this.navIndex = index | 
					
						
							|  |  |  |  |       this.ifDetail = '0' | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     getMenuLists() { | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |       this.$store.dispatch('GetInfo').then(user => { | 
					
						
							|  |  |  |  |         this.userInfo = user || null | 
					
						
							|  |  |  |  |         if (user.memberSign === MEMBER_SIGN.V5_LEVEL) { | 
					
						
							|  |  |  |  |           this.navList.unshift({ | 
					
						
							| 
									
										
										
										
											2025-09-04 09:25:17 +08:00
										 |  |  |  |             name: '业绩列表', | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |             menuKey: '', | 
					
						
							|  |  |  |  |             value: 'ConsanguinityCheck', | 
					
						
							|  |  |  |  |             index: 0, | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |           }) | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |           this.navIndex = 0 | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |       }) | 
					
						
							| 
									
										
										
										
											2025-09-03 13:55:32 +08:00
										 |  |  |  |       // api.menuList().then(res => {
 | 
					
						
							|  |  |  |  |       //   res.data.forEach(item => {
 | 
					
						
							|  |  |  |  |       //     this.navList.forEach(items => {
 | 
					
						
							|  |  |  |  |       //       if (item.menuKey == items.value) {
 | 
					
						
							|  |  |  |  |       //         items.menuKey = item.menuKey
 | 
					
						
							|  |  |  |  |       //       }
 | 
					
						
							|  |  |  |  |       //     })
 | 
					
						
							|  |  |  |  |       //     if (this.marketList[0].name == item.menuKey) {
 | 
					
						
							|  |  |  |  |       //       this.marketList[0].isShow = true
 | 
					
						
							|  |  |  |  |       //     }
 | 
					
						
							|  |  |  |  |       //   })
 | 
					
						
							|  |  |  |  |       // })
 | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  |     }, | 
					
						
							|  |  |  |  |   }, | 
					
						
							|  |  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |  | </script> | 
					
						
							|  |  |  |  | <style lang="scss"> | 
					
						
							| 
									
										
										
										
											2025-09-02 14:37:13 +08:00
										 |  |  |  | .uni-inputs { | 
					
						
							|  |  |  |  |   color: #333; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | .text_s { | 
					
						
							|  |  |  |  |   font-size: 24rpx; | 
					
						
							|  |  |  |  |   color: #333; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | .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 { | 
					
						
							|  |  |  |  |   display: flex; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | .time1 { | 
					
						
							|  |  |  |  |   width: 158rpx; | 
					
						
							|  |  |  |  |   // height: 75rpx;
 | 
					
						
							|  |  |  |  |   // border-bottom: 1rpx solid #eee;
 | 
					
						
							|  |  |  |  |   margin: 0 20rpx 30rpx 20rpx; | 
					
						
							|  |  |  |  |   color: #999; | 
					
						
							|  |  |  |  |   text-align: center; | 
					
						
							|  |  |  |  |   font-size: 24rpx; | 
					
						
							|  |  |  |  |   /* margin-bottom: 30rpx; */ | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | .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: 30rpx; | 
					
						
							|  |  |  |  |   height: 30rpx; | 
					
						
							|  |  |  |  |   margin: 5rpx 0 0 20rpx; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | page { | 
					
						
							|  |  |  |  |   background-color: #f2f2f2; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | .styles { | 
					
						
							|  |  |  |  |   color: #005bac !important; | 
					
						
							|  |  |  |  |   background: #fff !important; | 
					
						
							|  |  |  |  |   border-bottom: 4rpx solid #005bac !important; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | .top-lists { | 
					
						
							|  |  |  |  |   display: flex; | 
					
						
							|  |  |  |  |   background-color: #fff; | 
					
						
							|  |  |  |  |   border-bottom: 2rpx solid #f0f0f0; | 
					
						
							|  |  |  |  |   margin-bottom: 10rpx; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   .nav-view { | 
					
						
							|  |  |  |  |     flex: 1; | 
					
						
							|  |  |  |  |     padding: 30rpx 20rpx; | 
					
						
							|  |  |  |  |     font-size: 28rpx; | 
					
						
							|  |  |  |  |     text-align: center; | 
					
						
							|  |  |  |  |     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; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  |  | </style> |