瀏覽代碼

停车记录查询,增加区域查询条件

chenwen 1 周之前
父節點
當前提交
f623e42356
共有 2 個文件被更改,包括 78 次插入18 次删除
  1. 8 0
      apis/parkinglog.js
  2. 70 18
      pages/parking/parkinglog.vue

+ 8 - 0
apis/parkinglog.js

@@ -72,3 +72,11 @@ export function restoreManualOut(parkingLogId,callerId){
 	})
 }
 
+
+export function loadMultiParkAreas(parkingIds){
+	return request({
+		method: 'post',
+		data:{parkingIds},
+		url: '/mobileApi/parkingSite/loadMultiAreaInfo'
+	})
+}

+ 70 - 18
pages/parking/parkinglog.vue

@@ -3,38 +3,46 @@
 		<u-navbar title="" :is-back="false" :background="{backgroundColor: '#ffffff'}" class="top-navbar">
 			<text style="position: absolute;z-index: 1;left:40rpx;">停车记录</text>
 			<u-dropdown ref="filterDropdown">
-				<u-dropdown-item v-model="selectedParkIdx"  :title="selectedParkName" :options="myParkSites" @change="changePark">
-					<!--
+				<!-- <u-dropdown-item v-model="selectedParkIdx"  :title="selectedParkName" :options="myParkSites" @change="changePark"> -->
+				<u-dropdown-item  :title="selectedParkName" >
 					<view class="slot-content dropdown-filter-con">
+						<!--
 						<view class="filter-item">
 							<text class="filter-label">出场日期</text>
 							<view class="filter-date" @tap="showCalendar=true">
 								<text>{{filter.endDate.length>0?(filter.startDate+' 至 '+filter.endDate):'请选择'}}</text>
 								<u-icon name="search" style="margin:0rpx 20rpx;"></u-icon>
 							</view>
-						</view>
+						</view>-->
 						
 						<view class="filter-item">
 							<text class="filter-label">停车场</text>
 							<view class="filter-con">
-								<view @tap="selectedParkVal='all'" class="filter-con-item" :class="{'selected-filter':selectedParkVal=='all'}" data-val="all">全部</view>
+								<!-- <view @tap="selectedParkVal='all'" class="filter-con-item" :class="{'selected-filter':selectedParkVal=='all'}" data-val="all">全部</view> -->
 								<block v-for="(item,index) in myParkSites" :key="item.park_id">
-									<view @tap="selectedParkVal=item.park_id" class="filter-con-item"  :class="{'selected-filter':selectedParkVal==item.park_id}" :data-val="item.park_id">{{item.parking_name.length>7?(item.parking_name.substr(0,7)+'...'):item.parking_name}}</view>
+									<view @tap="selectedParkVal=item.park_id;selectedParkIdx=index" class="filter-con-item"  :class="{'selected-filter':selectedParkVal==item.park_id}" :data-val="item.park_id">{{item.parking_name.length>7?(item.parking_name.substr(0,7)+'...'):item.parking_name}}</view>
 								</block>
 								
 							</view>
 						</view>
+						
 						<view class="filter-item">
-							<text class="filter-label">车牌号</text>
-							<view style="background-color:#f2f5fa;height:72rpx;margin-top:15rpx;"><u-input  type="text" v-model="filter.carNum" :border="false" placeholder="请输入车牌号" :custom-style="filterInputCss" :placeholder-style="filterInputCss.phstyle"/></view>
+							<text class="filter-label">区域</text>
+							<view class="filter-con">
+								<view @tap="selectedAreaIdx=null" class="filter-con-item filter-con-item-big" :class="{'selected-filter':selectedAreaIdx==null}" data-val="all">全部</view>
+								<block v-for="(item,index) in areaMapping[selectedParkVal]" :key="index">
+									<view @tap="selectedAreaIdx=index" class="filter-con-item filter-con-item-big"  :class="{'selected-filter':selectedAreaIdx==index}" :data-val="item.area">{{item.areaName.length>10?(item.areaName.substr(0,10)+'...'):item.areaName}}</view>
+								</block>
+								
+							</view>
 						</view>
 						
 						<view class="filter-btn">
-							<view class="filter-btn-reset" @tap="resetFilter">重置</view>
-							<view class="filter-btn-sure" @tap="sureFilter">确定</view>
+							<view class="filter-btn-reset"></view>
+							<view class="filter-btn-sure" @tap="changePark">确定</view>
 						</view>
 						
-					</view>-->
+					</view>
 				</u-dropdown-item>
 			</u-dropdown>
 			
@@ -213,7 +221,10 @@
 					carNum:''
 				},
 				myParkSites:[],
+				parkAreas:[],
+				areaMapping:{},
 				selectedParkVal:'all',
+				selectedAreaIdx:null,
 				allParkIds:'',
 				selectedParkIdx:null,
 				filterInputCss:{
@@ -239,7 +250,17 @@
 		computed:{
 			selectedParkName(){
 				let chk=this.myParkSites && this.selectedParkIdx!=null
-				return chk ? this.myParkSites[this.selectedParkIdx].label:'选择停车场'
+				if(chk){
+					let dropWinTit=this.myParkSites[this.selectedParkIdx].label
+					if(this.areaMapping[this.selectedParkVal] && this.selectedAreaIdx!=null){
+						dropWinTit+="-"+this.areaMapping[this.selectedParkVal][this.selectedAreaIdx].areaName
+					}
+					return dropWinTit
+				}
+				else{
+					return '选择停车场'
+				}
+			
 			},
 			tablist(){
 				return [
@@ -251,6 +272,7 @@
 		methods: {
 			getLoadParams(pnum){
 				let selParkId=this.myParkSites[this.selectedParkIdx].park_id
+				let selArea=this.areaMapping[selParkId] && this.selectedAreaIdx!=null ? this.areaMapping[selParkId][this.selectedAreaIdx].area:''
 				let status=this.currentTab==0?"off":"in"
 				let {carNum,startDate:queryStart,endDate:queryEnd}=this.filter
 				
@@ -262,7 +284,7 @@
 					return {parkId:selParkId,status,carNum,queryStart,queryEnd,pageNum:pnum,pageSize:10}
 				}*/
 				
-				return {parkId:selParkId,status,carNum,queryStart,queryEnd,pageNum:pnum,pageSize:10}
+				return {area:selArea,parkId:selParkId,status,carNum,queryStart,queryEnd,pageNum:pnum,pageSize:10}
 				
 			},
 			checkHadMore(offType){
@@ -285,8 +307,11 @@
 				return rst;
 				
 			},
-			changePark(val){
-				//console.log(val)
+			changePark(){
+				if(this.$refs.filterDropdown){
+					this.$refs.filterDropdown.close();
+				}
+				
 				//切换停车场时,清空之前的时间条件
 				this.filter.startDate=null;
 				this.filter.endDate=null;
@@ -345,7 +370,7 @@
 				
 				
 			},
-			loadMyParkSites(){
+			async loadMyParkSites(){
 				//本地缓存中获取停车场,需刷新首页才能更新
 				let pks=api.getMyParkSites();
 				if(!pks){
@@ -359,7 +384,29 @@
 				});
 				this.allParkIds=ids.join(",");
 				this.myParkSites=pks;
+				
+				//默认选中第1个
 				this.selectedParkIdx=0;
+				this.selectedParkVal=pks[this.selectedParkIdx].park_id
+				
+				//加载区域信息
+				let resp=await api.loadMultiParkAreas(this.allParkIds).catch(err=>{
+					console.log(err)
+				})
+				
+				if(resp && resp.success && resp.data){
+					console.log(resp)
+					let areaMap={}
+					resp.data.forEach(item=>{
+						if(!areaMap[item.parkId]){
+							areaMap[item.parkId]=[]
+						}
+						areaMap[item.parkId].push(item)
+					})
+					
+					this.areaMapping=areaMap
+					//console.log(areaMap)
+				}
 				
 			},
 			loadMarked(param,moreLoad){
@@ -858,7 +905,7 @@
 	}
 	.filter-item .filter-label{
 		/* font-family: '楷体'; */
-		
+		font-weight: bold;
 	}
 	.filter-item .uni-input-wrapper{
 		background-color: #f2f5fa;
@@ -881,9 +928,10 @@
 	.filter-con{
 		display: flex;
 		flex-flow: row wrap;
-		justify-content:flex-start;
+		justify-content:space-between;
+		/* justify-self: center; */
 		align-items: center;
-		margin-top: 20rpx;
+		margin: 20rpx auto 0rpx;
 	}
 	.filter-con .filter-con-item{
 		padding:10rpx 10rpx;
@@ -895,6 +943,10 @@
 		margin-right: 3vw;
 		margin-bottom: 20rpx;
 	}
+	.filter-con .filter-con-item-big{
+		width:24vw;
+		height:88rpx;
+	}
 	.filter-con .selected-filter{
 		background-color: #185ac6;
 		color:#ffffff;