328 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			328 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | |
|   <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>
 | |
| 					<view class='line2 bluetext' @click="getMonth(item,1)">{{item.repASumPv|decimalFormat}}</view>
 | |
| 				</view> -->
 | |
|         <!-- <view class="line_box">
 | |
| 					<view class='line1'>{{'右区复购累计业绩'}}</view>
 | |
| 					<view class='line2 bluetext' @click="getMonth(item,2)">{{item.repBSumPv|decimalFormat}}</view>
 | |
| 				</view> -->
 | |
|         <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>
 | |
| 					<view class='line2 bluetext' @click="getMonth(item,0)">{{item.repurchaseAchieve|decimalFormat}}
 | |
| 					</view>
 | |
| 				</view> -->
 | |
|       </view>
 | |
|       <u-loadmore :status="loadStatus" />
 | |
|     </template>
 | |
| 
 | |
|     <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>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import * as sel from '@/config/selfService.js'
 | |
| 
 | |
| 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
 | |
|       })
 | |
|     },
 | |
|   },
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style lang="scss" scoped>
 | |
| .content {
 | |
|   background: #f2f2f2;
 | |
|   padding-bottom: 20rpx;
 | |
| 
 | |
|   .thecontent {
 | |
|     background-color: #ffffff;
 | |
|     margin-top: 20rpx;
 | |
|     padding: 10rpx 23rpx 30rpx 23rpx;
 | |
| 
 | |
|     .line_box {
 | |
|       display: flex;
 | |
|       align-items: center;
 | |
|       justify-content: space-between;
 | |
|       margin-top: 20rpx;
 | |
| 
 | |
|       .line1 {
 | |
|         font-size: 26rpx;
 | |
|         font-family: Source Han Sans CN;
 | |
|         font-weight: 400;
 | |
|         color: #999999;
 | |
|       }
 | |
| 
 | |
|       .line2 {
 | |
|         font-size: 26rpx;
 | |
|         font-family: Source Han Sans CN;
 | |
|         font-weight: 400;
 | |
|         color: #333333;
 | |
|       }
 | |
| 
 | |
|       .line3 {
 | |
|         font-size: 26rpx;
 | |
|         font-family: Source Han Sans CN;
 | |
|         font-weight: 400;
 | |
|         color: rgba(251, 48, 36, 1);
 | |
|       }
 | |
| 
 | |
|       .bluetext {
 | |
|         color: #48b2fd;
 | |
|         text-decoration: underline;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     .bgrightBox {
 | |
|       margin-top: 20rpx;
 | |
|       padding-top: 20rpx;
 | |
|       display: flex;
 | |
|       justify-content: flex-end;
 | |
|       border-top: 1rpx solid #eeeeee;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   .rightPopup {
 | |
|     width: 645rpx;
 | |
|     height: 100%;
 | |
|     overflow: auto;
 | |
| 
 | |
|     .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;
 | |
| 
 | |
|       .top_red {
 | |
|         color: #005bac;
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     .typesBox {
 | |
|       margin-top: 40rpx;
 | |
| 
 | |
|       .typeTitle {
 | |
|         padding: 0 24rpx;
 | |
|         font-size: 30rpx;
 | |
|         font-family: Source Han Sans CN;
 | |
|         font-weight: bold;
 | |
|         color: #333333;
 | |
|       }
 | |
| 
 | |
|       .choiceBox {
 | |
|         padding: 0 12rpx;
 | |
|         display: flex;
 | |
|         margin-top: 17rpx;
 | |
|         align-items: center;
 | |
|         flex-wrap: wrap;
 | |
| 
 | |
|         .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;
 | |
|         }
 | |
| 
 | |
|         .timesbtn {
 | |
|           flex: 1;
 | |
|         }
 | |
| 
 | |
|         .selectbtn {
 | |
|           background-color: #005bac;
 | |
|           color: #ffffff;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     .popup_bottom {
 | |
|       display: flex;
 | |
|       align-items: center;
 | |
|       position: absolute;
 | |
|       left: 0;
 | |
|       bottom: 0;
 | |
|       width: 100%;
 | |
| 
 | |
|       .bottom_btn {
 | |
|         flex: 1;
 | |
|         padding: 20rpx 0;
 | |
|         text-align: center;
 | |
|         font-size: 28rpx;
 | |
|       }
 | |
| 
 | |
|       .thebtn1 {
 | |
|         background-color: rgba(176, 196, 222, 0.45);
 | |
|         color: #333333;
 | |
|       }
 | |
| 
 | |
|       .thebtn2 {
 | |
|         background-color: #005bac;
 | |
|         color: #ffffff;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </style>
 |