| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | <template> | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |   <view class="main"> | 
					
						
							|  |  |  |     <view class="totals-summary-bar"> | 
					
						
							|  |  |  |       <view class="total-item"> | 
					
						
							|  |  |  |         <text class="total-label">本月合计</text> | 
					
						
							|  |  |  |         <text class="total-amount primary-amount">{{ | 
					
						
							|  |  |  |           formatCurrency(monthIncomeTotal) | 
					
						
							|  |  |  |         }}</text> | 
					
						
							|  |  |  |       </view> | 
					
						
							|  |  |  |       <view class="total-separator"></view> | 
					
						
							|  |  |  |       <view class="total-item"> | 
					
						
							|  |  |  |         <text class="total-label">昨日合计</text> | 
					
						
							|  |  |  |         <text class="total-amount secondary-amount">{{ | 
					
						
							|  |  |  |           formatCurrency(toSum) | 
					
						
							|  |  |  |         }}</text> | 
					
						
							|  |  |  |       </view> | 
					
						
							|  |  |  |     </view> | 
					
						
							|  |  |  |     <template> | 
					
						
							|  |  |  |       <sgsy | 
					
						
							|  |  |  |         v-if="navIndex == 0" | 
					
						
							|  |  |  |         ref="sgsyData" | 
					
						
							|  |  |  |         :checkRule="marketList[0].isShow" | 
					
						
							|  |  |  |         :num="page.pageNum" | 
					
						
							|  |  |  |       /> | 
					
						
							|  |  |  |       <fgsy | 
					
						
							|  |  |  |         v-if="navIndex == 1" | 
					
						
							|  |  |  |         ref="sgsyData" | 
					
						
							|  |  |  |         :checkRule="marketList[0].isShow" | 
					
						
							|  |  |  |       /> | 
					
						
							| 
									
										
										
										
											2025-07-25 10:46:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |       <fgqsy | 
					
						
							|  |  |  |         v-if="navIndex == 5" | 
					
						
							|  |  |  |         ref="sgsyData" | 
					
						
							|  |  |  |         :checkRule="marketList[0].isShow" | 
					
						
							|  |  |  |       /> | 
					
						
							|  |  |  |     </template> | 
					
						
							|  |  |  |   </view> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  | import * as api from '@/config/login.js' | 
					
						
							|  |  |  | import * as apis from '@/config/market.js' | 
					
						
							|  |  |  | import * as api1 from '@/config/bonus.js' | 
					
						
							|  |  |  | import { setToken } from '@/config/auth.js' | 
					
						
							|  |  |  | import store from '@/store' | 
					
						
							|  |  |  | import sgsy from '@/components/bonus/sgsy.vue' | 
					
						
							|  |  |  | import fgsy from '@/components/bonus/fgsy.vue' | 
					
						
							|  |  |  | import fgqsy from '@/components/bonus/fgqsy.vue' | 
					
						
							|  |  |  | export default { | 
					
						
							|  |  |  |   data() { | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       toSum: 0, | 
					
						
							|  |  |  |       index: null, | 
					
						
							|  |  |  |       userInfo: [], | 
					
						
							|  |  |  |       marketList: [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           text: '奖金来源', | 
					
						
							|  |  |  |           id: 3, | 
					
						
							|  |  |  |           path: '/marketDynamics', | 
					
						
							|  |  |  |           name: 'bonusSource', | 
					
						
							|  |  |  |           isShow: false, | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |       ], | 
					
						
							|  |  |  |       navList: [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           name: '首购收益', | 
					
						
							|  |  |  |           path: 0, | 
					
						
							|  |  |  |           value: 'firstPurchase', | 
					
						
							|  |  |  |           menuKey: '', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           name: '复购收益', | 
					
						
							|  |  |  |           path: 1, | 
					
						
							|  |  |  |           value: 'repurchaseEarnings', | 
					
						
							|  |  |  |           menuKey: '', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           name: '海粉收益', | 
					
						
							|  |  |  |           path: 2, | 
					
						
							|  |  |  |           value: 'hignFans', | 
					
						
							|  |  |  |           menuKey: '', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           name: '海粉收益', | 
					
						
							|  |  |  |           path: 3, | 
					
						
							|  |  |  |           value: 'seaFans', | 
					
						
							|  |  |  |           menuKey: '', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         // { name: '圣宝云代收益',path:4,value:"sbyd",menuKey:''},
 | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           name: '复购券收益', | 
					
						
							|  |  |  |           path: 5, | 
					
						
							|  |  |  |           value: 'repurchaseTicket', | 
					
						
							|  |  |  |           menuKey: '', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         // {
 | 
					
						
							|  |  |  |         // 	name: '创客空间收益',
 | 
					
						
							|  |  |  |         // 	path: 6,
 | 
					
						
							|  |  |  |         // 	value: "markerSpaceEarnings",
 | 
					
						
							|  |  |  |         // 	menuKey: ''
 | 
					
						
							|  |  |  |         // },
 | 
					
						
							|  |  |  |       ], | 
					
						
							|  |  |  |       navIndex: 0, | 
					
						
							|  |  |  |       page: { | 
					
						
							|  |  |  |         pageSize: 50, | 
					
						
							|  |  |  |         pageNum: 1, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       monthIncomeTotal: 0, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   components: { | 
					
						
							|  |  |  |     sgsy, | 
					
						
							|  |  |  |     fgsy, | 
					
						
							|  |  |  |     fgqsy, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   onLoad() { | 
					
						
							|  |  |  |     // this.getMenuLists()
 | 
					
						
							|  |  |  |     this.getSum() | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   methods: { | 
					
						
							|  |  |  |     formatCurrency(value) { | 
					
						
							|  |  |  |       let num = parseFloat(value) | 
					
						
							|  |  |  |       if (isNaN(num)) { | 
					
						
							|  |  |  |         num = 0 | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       const fixedNum = num.toFixed(2) | 
					
						
							|  |  |  |       const parts = fixedNum.split('.') | 
					
						
							|  |  |  |       parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') | 
					
						
							|  |  |  |       return parts.join('.') | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     getSum() { | 
					
						
							|  |  |  |       api1.queryBonusTotal({}).then(res => { | 
					
						
							|  |  |  |         this.toSum = res.rows[0].realIncomeTotal | 
					
						
							|  |  |  |         this.monthIncomeTotal = res.rows[0].monthIncomeTotal | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     bindPickerChange(e) { | 
					
						
							|  |  |  |       this.index = e.detail.value | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     clickHref(index) { | 
					
						
							|  |  |  |       let that = this | 
					
						
							|  |  |  |       this.navIndex = index | 
					
						
							|  |  |  |       this.page.pageNum = 1 | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     getMenuLists() { | 
					
						
							|  |  |  |       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 | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     // async onReachBottom() {
 | 
					
						
							|  |  |  |     // 	this.page.pageNum+1
 | 
					
						
							|  |  |  |     // 	this.$refs.sgsyData.getDataList(this.page.pageNum+=1);
 | 
					
						
							|  |  |  |     // },
 | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | </script> | 
					
						
							|  |  |  | <style lang="scss"> | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  | .totals-summary-bar { | 
					
						
							|  |  |  |   display: flex; | 
					
						
							|  |  |  |   justify-content: space-around; | 
					
						
							|  |  |  |   align-items: center; | 
					
						
							|  |  |  |   background-color: #ffffff; | 
					
						
							|  |  |  |   padding: 24rpx 20rpx; | 
					
						
							|  |  |  |   border-radius: 16rpx; | 
					
						
							|  |  |  |   box-shadow: 0 6rpx 18rpx rgba(0, 0, 0, 0.06); | 
					
						
							|  |  |  |   margin-top: 16rpx; | 
					
						
							|  |  |  |   margin-bottom: 20rpx; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |   .total-item { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     flex-direction: column; | 
					
						
							|  |  |  |     align-items: center; | 
					
						
							|  |  |  |     flex: 1; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |     .total-label { | 
					
						
							|  |  |  |       font-size: 26rpx; | 
					
						
							|  |  |  |       color: #777777; | 
					
						
							|  |  |  |       margin-bottom: 8rpx; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |     .total-amount { | 
					
						
							|  |  |  |       font-size: 36rpx; | 
					
						
							|  |  |  |       font-weight: 600; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |     .primary-amount { | 
					
						
							|  |  |  |       color: #005bac; // Theme color
 | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |     .secondary-amount { | 
					
						
							|  |  |  |       color: #333333; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  |   .total-separator { | 
					
						
							|  |  |  |     width: 1rpx; | 
					
						
							|  |  |  |     height: 60rpx; // Adjust as needed
 | 
					
						
							|  |  |  |     background-color: #e0e0e0; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  | /*左侧分类视图*/ | 
					
						
							|  |  |  | .left_scrol_style { | 
					
						
							|  |  |  |   white-space: nowrap; | 
					
						
							|  |  |  |   width: 100%; | 
					
						
							|  |  |  |   background: #fff; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-05 14:15:01 +08:00
										 |  |  | .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 { | 
					
						
							|  |  |  |   border: none !important; | 
					
						
							|  |  |  |   color: #fff !important; | 
					
						
							|  |  |  |   background: #005bac; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .top-lists { | 
					
						
							|  |  |  |   width: fit-content; | 
					
						
							|  |  |  |   display: flex; | 
					
						
							|  |  |  |   padding: 30rpx 30rpx 0 0; | 
					
						
							|  |  |  |   background-color: #fff; | 
					
						
							|  |  |  |   height: 80rpx; | 
					
						
							|  |  |  |   line-height: 80rpx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .nav-view { | 
					
						
							|  |  |  |     width: 200rpx; | 
					
						
							|  |  |  |     cursor: pointer; | 
					
						
							|  |  |  |     padding: 0 26rpx; | 
					
						
							|  |  |  |     height: 44rpx; | 
					
						
							|  |  |  |     border-radius: 10rpx; | 
					
						
							|  |  |  |     border: 1rpx solid #999999; | 
					
						
							|  |  |  |     font-size: 14rpx; | 
					
						
							|  |  |  |     text-align: center; | 
					
						
							|  |  |  |     line-height: 44rpx; | 
					
						
							|  |  |  |     margin-left: 20rpx; | 
					
						
							|  |  |  |     color: #999; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </style> |