| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | <template> | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |   <view class="content"> | 
					
						
							|  |  |  |     <template v-if="tableData.length > 0"> | 
					
						
							|  |  |  |       <view class="thecontent" v-for="(item, index) in tableData" :key="index"> | 
					
						
							|  |  |  |         <view class="line_box"> | 
					
						
							|  |  |  |           <view class="line1">{{ '月份' }}</view> | 
					
						
							|  |  |  |           <view class="line2">{{ item.month }}</view> | 
					
						
							|  |  |  |         </view> | 
					
						
							|  |  |  |         <view class="line_box"> | 
					
						
							|  |  |  |           <view class="line1">{{ '左区首购累计业绩' }}</view> | 
					
						
							|  |  |  |           <view class="line2 bluetext" @click="getMonth(item, 1)">{{ | 
					
						
							|  |  |  |             item.asumPv | decimalFormat | 
					
						
							|  |  |  |           }}</view> | 
					
						
							|  |  |  |         </view> | 
					
						
							|  |  |  |         <view class="line_box"> | 
					
						
							|  |  |  |           <view class="line1">{{ '右区首购累计业绩' }}</view> | 
					
						
							|  |  |  |           <view class="line2 bluetext" @click="getMonth(item, 2)">{{ | 
					
						
							|  |  |  |             item.bsumPv | decimalFormat | 
					
						
							|  |  |  |           }}</view> | 
					
						
							|  |  |  |         </view> | 
					
						
							|  |  |  |         <!-- <view class="line_box"> | 
					
						
							|  |  |  | 					<view class='line1'>{{'左区复购累计业绩'}}</view> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 					<view class='line2 bluetext' @click="getMonth(item,1)">{{item.repASumPv|decimalFormat}}</view> | 
					
						
							|  |  |  | 				</view> --> | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |         <!-- <view class="line_box"> | 
					
						
							|  |  |  | 					<view class='line1'>{{'右区复购累计业绩'}}</view> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 					<view class='line2 bluetext' @click="getMonth(item,2)">{{item.repBSumPv|decimalFormat}}</view> | 
					
						
							|  |  |  | 				</view> --> | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |         <view class="line_box"> | 
					
						
							|  |  |  |           <view class="line1">{{ '血缘首购业绩' }}</view> | 
					
						
							|  |  |  |           <view class="line2 bluetext" @click="getMonth(item, 0)">{{ | 
					
						
							|  |  |  |             item.firstAchieve | decimalFormat | 
					
						
							|  |  |  |           }}</view> | 
					
						
							|  |  |  |         </view> | 
					
						
							|  |  |  |         <!-- <view class="line_box"> | 
					
						
							|  |  |  | 					<view class='line1'>{{'血缘复购业绩'}}</view> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 					<view class='line2 bluetext' @click="getMonth(item,0)">{{item.repurchaseAchieve|decimalFormat}} | 
					
						
							|  |  |  | 					</view> | 
					
						
							|  |  |  | 				</view> --> | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       </view> | 
					
						
							|  |  |  |       <u-loadmore :status="loadStatus" /> | 
					
						
							|  |  |  |     </template> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |     <u-empty | 
					
						
							|  |  |  |       v-else | 
					
						
							|  |  |  |       mode="list" | 
					
						
							|  |  |  |       icon="http://cdn.uviewui.com/uview/empty/list.png" | 
					
						
							|  |  |  |     > | 
					
						
							|  |  |  |     </u-empty> | 
					
						
							|  |  |  |     <u-popup | 
					
						
							|  |  |  |       :show="sxShow" | 
					
						
							|  |  |  |       mode="right" | 
					
						
							|  |  |  |       @close="sxShow = false" | 
					
						
							|  |  |  |       :closeOnClickOverlay="false" | 
					
						
							|  |  |  |     > | 
					
						
							|  |  |  |       <view class="rightPopup"> | 
					
						
							|  |  |  |         <view class="popup_top"> | 
					
						
							|  |  |  |           <view | 
					
						
							|  |  |  |             @click=" | 
					
						
							|  |  |  |               () => { | 
					
						
							|  |  |  |                 getDataList(), (sxShow = false) | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |             " | 
					
						
							|  |  |  |             >筛选</view | 
					
						
							|  |  |  |           > | 
					
						
							|  |  |  |           <view class="top_red" @click="sxShow = false">{{ '返回' }}</view> | 
					
						
							|  |  |  |         </view> | 
					
						
							|  |  |  |         <view class="typesBox"> | 
					
						
							|  |  |  |           <view class="typeTitle"> | 
					
						
							|  |  |  |             {{ '月份' }} | 
					
						
							|  |  |  |           </view> | 
					
						
							|  |  |  |           <view class="choiceBox" @click="riliShow = true"> | 
					
						
							|  |  |  |             <view class="flex_btn" style="width: 100%"> | 
					
						
							|  |  |  |               {{ queryParams.month ? queryParams.month : '请选择' }} | 
					
						
							|  |  |  |             </view> | 
					
						
							|  |  |  |             <u-picker | 
					
						
							|  |  |  |               :show="riliShow" | 
					
						
							|  |  |  |               ref="uPicker" | 
					
						
							|  |  |  |               :columns="yearsColumns" | 
					
						
							|  |  |  |               @confirm="confirm" | 
					
						
							|  |  |  |               @cancel="riliShow = false" | 
					
						
							|  |  |  |             ></u-picker> | 
					
						
							|  |  |  |           </view> | 
					
						
							|  |  |  |         </view> | 
					
						
							|  |  |  |         <view class="popup_bottom"> | 
					
						
							|  |  |  |           <view class="bottom_btn thebtn1" @click="clearAll">清空筛选条件</view> | 
					
						
							|  |  |  |           <view | 
					
						
							|  |  |  |             class="bottom_btn thebtn2" | 
					
						
							|  |  |  |             @click=" | 
					
						
							|  |  |  |               () => { | 
					
						
							|  |  |  |                 getDataList(), (sxShow = false) | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |             " | 
					
						
							|  |  |  |             >{{ '确定' }} | 
					
						
							|  |  |  |           </view> | 
					
						
							|  |  |  |         </view> | 
					
						
							|  |  |  |       </view> | 
					
						
							|  |  |  |     </u-popup> | 
					
						
							|  |  |  |   </view> | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  | import * as sel from '@/config/selfService.js' | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  | export default { | 
					
						
							|  |  |  |   filters: { | 
					
						
							|  |  |  |     decimalFormat(value) { | 
					
						
							|  |  |  |       return Number(value).toFixed(2) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   data() { | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       tableData: [], | 
					
						
							|  |  |  |       queryParams: { | 
					
						
							|  |  |  |         pageNum: 1, | 
					
						
							|  |  |  |         pageSize: 50, | 
					
						
							|  |  |  |         month: null, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       total: 0, | 
					
						
							|  |  |  |       loadStatus: 'loadmore', | 
					
						
							|  |  |  |       sxShow: false, | 
					
						
							|  |  |  |       riliShow: false, | 
					
						
							|  |  |  |       yearsColumns: [ | 
					
						
							|  |  |  |         [2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030], | 
					
						
							|  |  |  |         [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], | 
					
						
							|  |  |  |       ], // 可选的年份
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   onNavigationBarButtonTap() { | 
					
						
							|  |  |  |     this.sxShow = true | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   onLoad() { | 
					
						
							|  |  |  |     this.getDataList() | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   methods: { | 
					
						
							|  |  |  |     confirm(e) { | 
					
						
							|  |  |  |       if (e.value[1] < 10) { | 
					
						
							|  |  |  |         e.value[1] = '0' + e.value[1] | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       this.queryParams.month = e.value[0] + '-' + e.value[1] | 
					
						
							|  |  |  |       this.riliShow = false | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     clearAll() { | 
					
						
							|  |  |  |       this.queryParams = { | 
					
						
							|  |  |  |         pageNum: 1, | 
					
						
							|  |  |  |         pageSize: 50, | 
					
						
							|  |  |  |         month: null, | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       this.riliShow = false | 
					
						
							|  |  |  |       this.getDataList() | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     getMonth(row, index) { | 
					
						
							|  |  |  |       uni.navigateTo({ | 
					
						
							|  |  |  |         url: | 
					
						
							|  |  |  |           '/pages/selfService/monthlyHistory/monthlyHistoryDetail?month=' + | 
					
						
							|  |  |  |           row.month + | 
					
						
							|  |  |  |           '&placeDept=' + | 
					
						
							|  |  |  |           index, | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     //触底触发
 | 
					
						
							|  |  |  |     onReachBottom() { | 
					
						
							|  |  |  |       if (this.queryParams.pageSize * this.queryParams.pageNum < this.total) { | 
					
						
							|  |  |  |         this.loadStatus = 'loading' | 
					
						
							|  |  |  |         this.queryParams.pageSize = this.queryParams.pageSize + 50 | 
					
						
							|  |  |  |         setTimeout(() => { | 
					
						
							|  |  |  |           this.getDataList() | 
					
						
							|  |  |  |           this.loadStatus = 'loadmore' | 
					
						
							|  |  |  |         }, 500) | 
					
						
							|  |  |  |       } else { | 
					
						
							|  |  |  |         this.loadStatus = 'nomore' | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     getDataList() { | 
					
						
							|  |  |  |       sel.getMonthAchieve(this.queryParams).then(res => { | 
					
						
							|  |  |  |         this.tableData = res.rows | 
					
						
							|  |  |  |         this.total = res.total | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <style lang="scss" scoped> | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  | .content { | 
					
						
							|  |  |  |   background: #f2f2f2; | 
					
						
							|  |  |  |   padding-bottom: 20rpx; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |   .thecontent { | 
					
						
							|  |  |  |     background-color: #ffffff; | 
					
						
							|  |  |  |     margin-top: 20rpx; | 
					
						
							|  |  |  |     padding: 10rpx 23rpx 30rpx 23rpx; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |     .line_box { | 
					
						
							|  |  |  |       display: flex; | 
					
						
							|  |  |  |       align-items: center; | 
					
						
							|  |  |  |       justify-content: space-between; | 
					
						
							|  |  |  |       margin-top: 20rpx; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .line1 { | 
					
						
							|  |  |  |         font-size: 26rpx; | 
					
						
							|  |  |  |         font-family: Source Han Sans CN; | 
					
						
							|  |  |  |         font-weight: 400; | 
					
						
							|  |  |  |         color: #999999; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .line2 { | 
					
						
							|  |  |  |         font-size: 26rpx; | 
					
						
							|  |  |  |         font-family: Source Han Sans CN; | 
					
						
							|  |  |  |         font-weight: 400; | 
					
						
							|  |  |  |         color: #333333; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .line3 { | 
					
						
							|  |  |  |         font-size: 26rpx; | 
					
						
							|  |  |  |         font-family: Source Han Sans CN; | 
					
						
							|  |  |  |         font-weight: 400; | 
					
						
							|  |  |  |         color: rgba(251, 48, 36, 1); | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .bluetext { | 
					
						
							|  |  |  |         color: #48b2fd; | 
					
						
							|  |  |  |         text-decoration: underline; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |     .bgrightBox { | 
					
						
							|  |  |  |       margin-top: 20rpx; | 
					
						
							|  |  |  |       padding-top: 20rpx; | 
					
						
							|  |  |  |       display: flex; | 
					
						
							|  |  |  |       justify-content: flex-end; | 
					
						
							|  |  |  |       border-top: 1rpx solid #eeeeee; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |   .rightPopup { | 
					
						
							|  |  |  |     width: 645rpx; | 
					
						
							|  |  |  |     height: 100%; | 
					
						
							|  |  |  |     overflow: auto; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |     .popup_top { | 
					
						
							|  |  |  |       padding: 25rpx; | 
					
						
							|  |  |  |       background-color: rgba(176, 196, 222, 0.45); | 
					
						
							|  |  |  |       display: flex; | 
					
						
							|  |  |  |       justify-content: space-between; | 
					
						
							|  |  |  |       align-items: center; | 
					
						
							|  |  |  |       font-size: 28rpx; | 
					
						
							|  |  |  |       font-family: Source Han Sans CN; | 
					
						
							|  |  |  |       font-weight: 400; | 
					
						
							|  |  |  |       color: #333333; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .top_red { | 
					
						
							|  |  |  |         color: #005bac; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |     .typesBox { | 
					
						
							|  |  |  |       margin-top: 40rpx; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .typeTitle { | 
					
						
							|  |  |  |         padding: 0 24rpx; | 
					
						
							|  |  |  |         font-size: 30rpx; | 
					
						
							|  |  |  |         font-family: Source Han Sans CN; | 
					
						
							|  |  |  |         font-weight: bold; | 
					
						
							|  |  |  |         color: #333333; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .choiceBox { | 
					
						
							|  |  |  |         padding: 0 12rpx; | 
					
						
							|  |  |  |         display: flex; | 
					
						
							|  |  |  |         margin-top: 17rpx; | 
					
						
							|  |  |  |         align-items: center; | 
					
						
							|  |  |  |         flex-wrap: wrap; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |         .flex_btn { | 
					
						
							|  |  |  |           background-color: rgba(176, 196, 222, 0.45); | 
					
						
							|  |  |  |           display: flex; | 
					
						
							|  |  |  |           align-items: center; | 
					
						
							|  |  |  |           justify-content: center; | 
					
						
							|  |  |  |           padding: 14rpx 48rpx; | 
					
						
							|  |  |  |           border-radius: 26rpx; | 
					
						
							|  |  |  |           font-size: 24rpx; | 
					
						
							|  |  |  |           font-family: Source Han Sans CN; | 
					
						
							|  |  |  |           font-weight: 400; | 
					
						
							|  |  |  |           color: #333333; | 
					
						
							|  |  |  |           margin: 17rpx 5rpx; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |         .timesbtn { | 
					
						
							|  |  |  |           flex: 1; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |         .selectbtn { | 
					
						
							|  |  |  |           background-color: #005bac; | 
					
						
							|  |  |  |           color: #ffffff; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |     .popup_bottom { | 
					
						
							|  |  |  |       display: flex; | 
					
						
							|  |  |  |       align-items: center; | 
					
						
							|  |  |  |       position: absolute; | 
					
						
							|  |  |  |       left: 0; | 
					
						
							|  |  |  |       bottom: 0; | 
					
						
							|  |  |  |       width: 100%; | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .bottom_btn { | 
					
						
							|  |  |  |         flex: 1; | 
					
						
							|  |  |  |         padding: 20rpx 0; | 
					
						
							|  |  |  |         text-align: center; | 
					
						
							|  |  |  |         font-size: 28rpx; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .thebtn1 { | 
					
						
							|  |  |  |         background-color: rgba(176, 196, 222, 0.45); | 
					
						
							|  |  |  |         color: #333333; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2025-03-23 09:29:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-28 11:46:27 +08:00
										 |  |  |       .thebtn2 { | 
					
						
							|  |  |  |         background-color: #005bac; | 
					
						
							|  |  |  |         color: #ffffff; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </style> |