Browse Source

完善收费明细、统计数据查询显示

chenwen 1 năm trước cách đây
mục cha
commit
328ac01450
1 tập tin đã thay đổi với 42 bổ sung56 xóa
  1. 42 56
      pages/charge/charge.vue

+ 42 - 56
pages/charge/charge.vue

@@ -82,7 +82,7 @@
 		</view>
 		
 		<view class="charge-list">
-			<block v-for="(item,index) in pagedPayLog" :key="item.dayDate">
+			<block v-for="(item,index) in pagedPayLog" :key="index">
 				<view class="charge-date">
 					<view class="charge-date-left">{{item.dayDate}}</view>
 					<view class="charge-date-right">当日收费 {{item.dayTotal}}元</view>
@@ -144,9 +144,7 @@
 				myParkSites:[],
 				selectedParkVal:'all',
 				allParkIds:'',
-				pagedPayLog:{
-					datas:[]
-				},
+				pagedPayLog:[],
 				loadParams:{}
 				
 			}
@@ -181,27 +179,27 @@
 					if(crtParams.pageNum<crtParams.pageCount){
 						crtParams.pageNum+=1;				 
 					}
-					else{ //更换日期,重置页码,其它参数不变
+					/* else{ //更换日期,重置页码,其它参数不变
 						crtParams.chargeDate=api.addDate(crtParams.chargeDate,-1);
 						crtParams.pageNum=1;
 						crtParams.pageCount=0;
-					}
+					} */
 				}
 				else{//全新查询
-					 crtParams.chargeDate=this.filter.endDate;
 					 crtParams.pageNum=1;
 					 crtParams.pageCount=0;
 					 let parkarg=this.selectedParkVal=="all"?this.allParkIds:this.selectedParkVal;
 					 crtParams.parkingIds=parkarg;
 					 crtParams.chargeStart=this.filter.startDate;
 					 crtParams.chargeEnd=this.filter.endDate;
-					 crtParams.pageSize=10;
+					 crtParams.pageSize=15;
 				}
 				
 				return crtParams;
 			},
 			checkHadMore(){
-				let rst=this.loadParams.pageNum<this.loadParams.pageCount||this.loadParams.chargeDate>this.loadParams.chargeStart;
+				//let rst=this.loadParams.pageNum<this.loadParams.pageCount||this.loadParams.chargeDate>this.loadParams.chargeStart;
+				let rst=this.loadParams.pageNum<this.loadParams.pageCount
 				this.loadMoreStat=rst?'loadmore':'nomore';
 				return rst;
 			},
@@ -214,8 +212,8 @@
 				this.filter.endDate=e.endDate;
 			},
 			selectFilter(filterSort,e){
-				console.log(filterSort);
-				console.log(e);
+				//console.log(filterSort);
+				//console.log(e);
 				if(e.target.dataset.val!=null){
 					this.filter[filterSort]=e.target.dataset.val;
 				}
@@ -243,11 +241,13 @@
 				})
 			},
 			loadPageData(param){  //全新查询,按chargeStart-chargeEnd  先查chargeEnd的
+				this.pagedPayLog=[] //新查先清空之前结果
+				this.rptPay={}
 				uni.showLoading({
 					title:'加载中...'
 				});
 				this.reachbtm=false; //全新查询重置该值
-				console.log(param)
+				//console.log(param)
 				api.loadPageData(param).then(resp => {
 					//console.log(resp)
 					uni.hideLoading();
@@ -263,17 +263,13 @@
 						this.rptPay=tmp;
 					}
 					
-					if(resp.data.maxValiDate){ //实际查询的最大日期
-						param.chargeDate=resp.data.maxValiDate
-					}
 					this.pagedPayLog=this.parsePayLog(param,resp.data.payLogs.pagedData,resp.data.payLogs.dayGrp);
 					this.loadParams=param; //更新查询参数
 					
-					//console.log(this.pagedPayLog)
-					
+					/*
 					if(!this.reachbtm&&this.checkHadMore()){  //未到底且还有数据,自动再加载一次
 						this.loadMoreData(this.getLoadParams(true));
-					}
+					}*/
 					
 				}).catch(error => {
 					uni.hideLoading();
@@ -286,41 +282,41 @@
 				param.pageCount=pagedObj.pages;
 				//let viewObj={pageNum:pagedObj.current,pageCount:pagedObj.pages,pageSize:pagedObj.size};
 				if(datas==null||datas.length==0){
-					//viewObj['datas']=[];
 					return [];
 				}
 				else{
-					let dateMap={},mapItem=null,tmp=null,pkh=null;
-					let listDatas=[];
-					listDatas.push({dayDate:dayGrp.pay_date,dayTotal:(dayGrp.day_pay_amount||0).toFixed(2),dayDatas:[]});
 					
-					datas.forEach(function(item,index){
-						/* if(dateMap[item.pay_date]==null){
-							listDatas.push({dayDate:item.pay_date,dayTotal:0,dayDatas:[]});
-							dateMap[item.pay_date]=listDatas.length-1;
-						} */
+					let dayGrpMap={}
+					let preListDatas=dayGrp.map( (grp,idx) =>{
+						dayGrpMap[grp.pay_date]={dayDatas:[],dayDate:grp.pay_date,dayTotal:(grp.day_pay_amount||0).toFixed(2)}
+						return dayGrpMap[grp.pay_date]
+					})
+					
+					//在dayGrpMap中填充每日明细记录
+					let tmp=null,pkh=null;
+					datas.forEach((item,index)=>{
+						
 						item["pay_mode"]={"wechat":"微信","alipay":"支付宝"}[item.pay_name]||'其它';
 						
 						tmp=item.parking_time;
 						pkh=Math.floor(tmp/60);
 						item['parking_time_txt']=pkh>0?(pkh.toFixed(0)+"小时"+(tmp-pkh*60)+"分钟"):(tmp+"分钟");
 						
-						//mapItem=listDatas[dateMap[item.pay_date]];
-						//mapItem.dayTotal+=parseFloat((item.pay_amount||0).toFixed(2));
-						//mapItem.dayDatas.push(item);
-						listDatas[0].dayDatas.push(item);
+						if(dayGrpMap[item['pay_date']]){
+							dayGrpMap[item['pay_date']].dayDatas.push(item)
+						}
+						
 						
 					});
 					
-					//viewObj['datas']=listDatas;
-					return listDatas;
+					return preListDatas;
 				}
 				
 				
 				
 			},
-			loadMoreData(param){   //按chargeDate参数查询
-				console.log(param);
+			loadMoreData(param){   
+				//console.log(param);
 				api.queryChargeLog(param).then(resp => {
 					//console.log(resp)
 					if(!resp.success){
@@ -328,32 +324,22 @@
 					}
 					let newDatas=this.parsePayLog(param,resp.data.pagedData,resp.data.dayGrp);
 					this.loadParams=param; //更新查询参数
-					
-					
-					if(newDatas&&newDatas.length>0){
-						/* let preLastItm=this.pagedPayLog.datas[this.pagedPayLog.datas.length-1];
-						let newFirstItm=newDatas.datas[0];  
-						if(preLastItm.dayDate==newFirstItm.dayDate){  //新旧数据有同日期的先合并再附加新数据
-							preLastItm.dayTotal+=newFirstItm.dayTotal;
-							preLastItm.dayDatas=preLastItm.dayDatas.concat(newFirstItm.dayDatas);
-							newDatas.datas.shift(); //合并后删除避免重复
-						}
-						this.pagedPayLog.datas=this.pagedPayLog.datas.concat(newDatas.datas); */
-						//新旧数据有同日期的先合并再附加新数据
-						 let preLastItm=this.pagedPayLog[this.pagedPayLog.length-1];
-						 
-						if(preLastItm.dayDate==newDatas[0].dayDate){
-							preLastItm.dayDatas=preLastItm.dayDatas.concat(newDatas[0].dayDatas);
-						}
-						else{
-							this.pagedPayLog=this.pagedPayLog.concat(newDatas);
-						}
-						
+					if(newDatas==null || newDatas.length==0){
+						return
 					}
+					//新旧数据拼接(只会发生在旧尾新首间 同日期合并明细记录)
+					let oldLastGrp=this.pagedPayLog.pop()
+					let newFirstGrp=newDatas.shift()
+					if(oldLastGrp['dayDate']==newFirstGrp['dayDate']){
+						oldLastGrp['dayDatas']=oldLastGrp['dayDatas'].concat(newFirstGrp['dayDatas'])
+					}
+					
+					this.pagedPayLog.push(oldLastGrp,...newFirstGrp)
 					
 					this.checkHadMore();
 					
 				}).catch(error =>{
+					console.log('load more data error',error)
 				});
 			}