Explorar o código

停车场管理手机端:增加白名单管理

chenwen %!s(int64=3) %!d(string=hai) anos
pai
achega
42292a6c99

+ 54 - 0
apis/whiteBill.js

@@ -0,0 +1,54 @@
+import request from '../utils/request.js';
+import app from '../utils/app.js'
+
+export function query(param){
+	
+	return request({
+		method: 'post',
+		data:param,
+		url: '/mobileApi/member/query'
+	})
+}
+
+
+
+
+export function getMyParkSites(){
+	return app.takeSetting("myParks");
+}
+
+
+export function getOne(id){
+	
+	return request({
+		method: 'post',
+		data:{memberId:id},
+		url: '/mobileApi/member/get'
+	})
+}
+
+export function saveForUpdate(param){
+	param['updateBy']=app.takeSetting('user_id');
+	return request({
+		method: 'post',
+		data:param,
+		url: '/mobileApi/member/update'
+	})
+}
+
+export function saveForAdd(param){
+	param['createBy']=app.takeSetting('user_id');
+	return request({
+		method: 'post',
+		data:param,
+		url: '/mobileApi/member/add'
+	})
+}
+
+export function del(id){
+	return request({
+		method: 'post',
+		data:{memberId:id},
+		url: '/mobileApi/member/del'
+	})
+}

+ 13 - 10
pages.json

@@ -102,18 +102,11 @@
             "path" : "pages/whiteList/whiteList",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "白名单管理",
+                "navigationBarTitleText": "",
                 "enablePullDownRefresh": false,
 				"app-plus":{
-				   	"titleNView":{
-						"buttons": [{
-						                "color": "#3470f0",
-						                "colorPressed": "#eee",
-						                "float": "right",
-						                "fontSize": "14px",
-						                "text": "新增" // 字体图标\u 开头,加上字体图标unicode后面四位
-						            }]
-					}
+				   	"titleNView":false,
+					"softinputMode":"adjustPan"
 				}
             }
             
@@ -138,6 +131,16 @@
             }
             
         }
+		,{
+		    "path" : "pages/whiteList/viewWhite",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "查看白名单车辆",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
+		
     ],
 	"tabBar":{
 			"color":"#8a8a8a",

+ 8 - 6
pages/me/me.vue

@@ -50,14 +50,14 @@
 					code:''
 				},
 				menus:[
-					/* {
+					{
 					    value: 'whiteBill',
 					    name: '白名单管理',
 					    icon: 'order',
 						size:36,
 						url:'../whiteList/whiteList'
 					},
-					{
+					/* {
 					    value: 'alarmSet',
 					    name: '警报通知设置',
 					    icon: 'setting-fill',
@@ -104,13 +104,15 @@
 				}) 
 			},
 			clickMenu(index){
-				console.log(index)
-				/* uni.navigateTo({
-					url:this.menus[index].url
-				}) */
+				
 				if(this.menus[index].value=="quit"){
 					this.confirmwin={show:true,content:'确定要退出吗?',code:'quit'};
 				}
+				else if(this.menus[index].url){
+					uni.navigateTo({
+						url:this.menus[index].url
+					})
+				}
 			},
 			confirmHandle(){
 				if(this.confirmwin.code=='quit'){

+ 1 - 1
pages/parking/parkinglog.vue

@@ -155,7 +155,7 @@
 					
 				};
 				this.filter=resetObj;
-				
+				this.selectedParkVal='all';
 			},
 			sureFilter(){
 				this.$refs.filterDropdown.close();

+ 202 - 76
pages/whiteList/editWhite.vue

@@ -1,125 +1,251 @@
 <template>
 	<view class="container">
 		<u-form :model="white" ref="uForm" style="background-color: #ffffff;" :label-style="formLabelCss" label-width="180">
-			<u-form-item label="*车牌号码"><u-input v-model="white.carNum" /></u-form-item>
-			<u-form-item label="*所属停车场">
-				<u-input v-model="white.parkingSite" type="select" @click="parkSelShow = true"/>
+			<u-form-item label="持有人"><u-input v-model="white.memberName" placeholder="姓名或单位名"/></u-form-item>
+			<u-form-item label="持有人电话*" prop="memberPhone"><u-input v-model="white.memberPhone" placeholder="联系电话"/></u-form-item>
+			<u-form-item label="车牌号码*" prop="memberCarNum"><u-input v-model="white.memberCarNum" placeholder="完整车牌号码"/></u-form-item>
+			<u-form-item label="使用场所*" prop="parkingName">
+				<u-input v-model="white.parkingName" type="select" @click="parkSelShow = true" placeholder="选择可使用的停车场"/>
 			</u-form-item>
-			<u-form-item label="*使用期限">
-				<u-input v-model="white.expireDate" type="select" @click="showAcSheet = true;actips.text='使用期限设置';crtSettingAtr='expireDate'"/>
+			<u-form-item label="使用期限*">
+				<!-- <u-input :value="expireDateRange" type="select" @click="showCalendar = true;" placeholder="选择起始截止日期"/> -->
 			</u-form-item>
-			<u-form-item label="*使用时段">
-				<u-input v-model="white.usTimes" type="select" @click="showAcSheet = true;actips.text='使用时段设置';crtSettingAtr='usTimes'"/>
+			
+			<u-form-item prop="memberStartTime">
+			   <u-input  type="select" @click="timePickShow = true;timePickFor='memberStartTime';" placeholder="选择起始时间" :value="white.memberStartTime"/>
+			</u-form-item>
+			
+			<u-form-item  prop="memberEndTime">
+			   <u-input  type="select" @click="timePickShow = true;timePickFor='memberEndTime';" placeholder="选择截止时间" :value="white.memberEndTime"/>
 			</u-form-item>
 			
+			<u-form-item label="类型">
+				<text>{{white.memberType==0?'充电附赠':(white.memberType==1?'正式会员':'')}}</text>
+			</u-form-item>	
+			
 			
 		</u-form>
 		
-		<u-picker mode="selector" v-model="parkSelShow"   :range="parkOpts" range-key="pName" @confirm="confirmPark"></u-picker>
+		<u-picker mode="selector" v-model="parkSelShow"   :range="myParkSites" range-key="parking_name" @confirm="confirmPark"></u-picker>
 		
-		<u-picker v-model="datePicShow" mode="time" :params="datepicfmt" @confirm="confirmDatePic"></u-picker>
+		<u-picker mode="time" v-model="timePickShow" :params="timePickParams" @confirm="confirmTimePick"></u-picker>
 		
-		<u-select v-model="timeSelShow" :list="timeSelOpts" mode="mutil-column" @confirm="confirmTimeSel"></u-select>
+		<u-calendar v-model="showCalendar" mode="range" @change="changeCalendar"></u-calendar>
 		
-		<u-action-sheet :list="actionSheetList" v-model="showAcSheet" @click="actionSheetCallback" :cancel-btn="false" :tips="actips" border-radius="25"></u-action-sheet>
 		
 		<view class="btn-bar">
-			<u-button type="primary" style="flex:2;" :disabled="!(white.carNum&&white.parkingSite&&white.expireDate&&white.usTimes)">保存</u-button>
+			<u-button type="primary" style="flex:2;" :disabled="!(white.memberCarNum&&white.parkingName&&white.memberPhone&&white.memberStartTime)" @click="saveData">保存</u-button>
 		</view>
 	</view>
 </template>
 
 <script>
+	import * as api from '@/apis/whiteBill.js'
+	
 	export default {
 		data() {
 			return {
 				formLabelCss:{
 					'color':'#7d7d7d'
 				},
-				crtSettingAtr:'',
+				isUpdate:false,
 				white:{
-					carNum:'',
-					parkingSite:'',
-					expireDate:'',
-					usTimes:''
+					memberName:'',
+					memberPhone:'',
+					memberCarNum:'',
+					parkingName:'',
+					memberStartTime:'',
+					memberEndTime:'',
+					parkId:'',
+					memberType:null
 				},
+				timePickShow:false,
 				parkSelShow:false,
-				parkOpts:[
-					{
-						pName:'玉桥停车场',
-						pId:'1'
-					},
-					{
-						pName:'荆鹏停车场',
-						pId:'2'
-					}
-				],
-				showAcSheet:false,
-				actips:{
-					text: '设置',
-					color: '#909399',
-					fontSize: 28
-				},
-				actionSheetList:[
-					{
-						text:'无限制'
-					},
-					{
-						text:'手动设置'
-					}
-				],
-				datePicShow:false,
-				datepicfmt:{
-					year:true,
-					month:true,
-					day:true
+				myParkSites:[],
+				showCalendar:false,
+				timePickFor:'',
+				timePickParams:{
+					year: true,
+					month: true,
+					day: true,
+					hour: true,
+					minute: true,
+					second: true
 				},
-				timeSelShow:false,
-				timeSelOpts:[
-					[],
-					[]
-				]
+				rules:{
+					memberPhone:[
+						{
+							pattern: /\d{11}/,
+							message: '请输入有效的持有人电话',
+							trigger: 'blur'
+					   }
+					],
+					memberCarNum:[
+						{
+							required:true,
+							message: '请输入有效的车牌号码',
+							trigger: 'blur'
+						}
+					],
+					parkingName:[
+						{
+							required:true,
+							message: '请选择一个停车场',
+							trigger: 'blur'
+						}
+					],
+					memberStartTime:[
+						{
+							required:true,
+							message: '请选择一个起始时间',
+							trigger: 'blur'
+						}
+					],
+					memberEndTime:[
+						{
+							required:true,
+							message: '请选择一个截止时间',
+							trigger: 'blur'
+						}
+					]
+				}
 			}
 		},
-		onLoad(){
-			//console.log(this.$mp.page)
-			//this.$scope.$getAppWebview()
-			//var currentWebview = this.$mp.page.$getAppWebview();
-			let times=[];
-			for(let i=0;i<=24;i++){
-				times.push({label:(i<10?('0'+i):i.toString())+':00'});
+		onReady() {
+				this.$refs.uForm.setRules(this.rules);
+				if(!this.isUpdate){
+									document.querySelectorAll('.uni-page-head .uni-page-head-ft .uni-page-head-btn')[0].querySelector('.uni-btn-icon').innerText='';
+				}
+		},
+		onLoad(opts){
+			this.myParkSites=api.getMyParkSites();
+			if(opts.id!=null){
+				this.loadDate(opts.id);
+				this.isUpdate=true;
+			}
+			else{
+				
+
+				
+
 			}
-			//console.log(times);
-			this.timeSelOpts=[times,times];
+			
 			
 		},
 		onNavigationBarButtonTap(e){
-			
+			//console.log(this.white.id)
+			if(this.white.id){
+				this.del(this.white.id);
+			}
 		},
 		methods: {
 			
 			confirmPark(data){
-				this.white.parkingSite=this.parkOpts[data[0]].pName;
+				let sel=this.myParkSites[data[0]];
+				this.white.parkingName=sel.parking_name;
+				this.white.parkId=sel.park_id;
 			},
-			confirmDatePic(data){
-				console.log(data)
+			confirmTimePick(date){
+				console.log(date)
+				if(this.timePickFor&&this.timePickFor!=''){
+					this.white[this.timePickFor]=date.year+"-"+date.month+'-'+date.day+" "+date.hour+":"+date.minute+":"+date.second;
+				}
+				
 			},
-			confirmTimeSel(datas){
-				this.white.usTimes=datas[0].label+'-'+datas[1].label;
+			changeCalendar(e){
+				this.white.memberStartTime=e.startDate;
+				this.white.memberEndTime=e.endDate;
 			},
-			actionSheetCallback(index){
-				if(index==0){
-					this.white[this.crtSettingAtr]=this.actionSheetList[index].text;
-				}
-				else if(this.crtSettingAtr=='expireDate'){
-					this.datePicShow=true;
-				}
-				else if(this.crtSettingAtr=='usTimes'){
-					this.timeSelShow=true;
-				}
+			loadDate(id){
+				uni.showLoading({
+					title:'加载中...'
+				});
 				
+				api.getOne(id).then(resp => {
+					console.log(resp)
+					uni.hideLoading();
+					if(!resp.success){
+						return;
+					}
+					
+					//this.memberRecord=resp.data;
+					let {memberName,memberPhone,memberCarNum,parkingName,memberStartTime,memberEndTime,parkId,memberType,id}=resp.data;
+					this.white={memberName,memberPhone,memberCarNum,parkingName,memberStartTime,memberEndTime,parkId,memberType,id};
+					console.log(this.white);
+					
+				}).catch(error => {
+					uni.hideLoading();
+				});
+			},
+			saveData(){
+				this.$refs.uForm.validate(valid => {
+					if(!valid){
+						console.log('验证失败');
+						return;
+					}
+				});	
+				
+				let apifun=this.isUpdate?api.saveForUpdate:api.saveForAdd;		
+				uni.showLoading({
+					title:'保存中...'
+				});
+				let submitData={...this.white};
+				delete submitData['memberType'];
+				console.log(this.isUpdate);
+				apifun(submitData).then(resp => {
+					console.log(resp)
+					uni.hideLoading();
+					if(!resp.success){
+						uni.showToast({
+							title: resp.msg||'操作失败',
+							icon:'none'
+						});
+					}
+					else{
+						uni.showToast({
+							title: '操作成功',
+							icon:'success'
+						});
+						setTimeout(function(){
+							uni.$emit('reloadWhiteList');
+							uni.navigateBack();
+						},1000);
+						
+					}
+				}).catch(error => {
+					uni.hideLoading();
+				});
+			},
+			del(id){
+				api.del(id).then(resp => {
+					if(!resp.success){
+						uni.showToast({
+							title: resp.msg||'操作失败',
+							icon:'none'
+						});
+					}
+					else{
+						uni.showToast({
+							title: '操作成功',
+							icon:'success'
+						});
+						setTimeout(function(){
+							uni.$emit('reloadWhiteList');
+							uni.navigateBack();
+						},1000);
+					}
+					
+				}).catch(error => {
+					
+				});
 			}
 		}
+		
+		/* computed:{
+			expireDateRange(){
+				return this.white.memberStartTime?(this.white.memberStartTime+' 至 '+this.white.memberEndTime):'';
+			}
+		} */
 	}
 </script>
 

+ 130 - 0
pages/whiteList/viewWhite.vue

@@ -0,0 +1,130 @@
+<template>
+	<view class="container">
+		<u-form :model="white" ref="uForm" style="background-color: #ffffff;" :label-style="formLabelCss" label-width="180">
+			<u-form-item label="持有人">{{white.memberName}}</u-form-item>
+			<u-form-item label="持有人电话" prop="memberPhone">{{white.memberPhone}}</u-form-item>
+			<u-form-item label="车牌号码" prop="memberCarNum">{{white.memberCarNum}}</u-form-item>
+			<u-form-item label="使用场所" prop="parkingName">
+				{{white.parkingName}}
+			</u-form-item>
+			<u-form-item label="使用期限">
+				<!-- <u-input :value="expireDateRange" type="select" @click="showCalendar = true;" placeholder="选择起始截止日期"/> -->
+			</u-form-item>
+			
+			<u-form-item prop="memberStartTime">
+			   {{white.memberStartTime}}
+			</u-form-item>
+			
+			<u-form-item  prop="memberEndTime">
+			   {{white.memberEndTime}}
+			</u-form-item>
+			
+			<u-form-item label="类型">
+				<text>{{white.memberType==0?'充电附赠':(white.memberType==1?'正式会员':'')}}</text>
+			</u-form-item>	
+			
+			
+		</u-form>
+		
+		
+		
+	</view>
+</template>
+
+<script>
+	import * as api from '@/apis/whiteBill.js'
+	
+	export default {
+		data() {
+			return {
+				formLabelCss:{
+					'color':'#7d7d7d'
+				},
+				isUpdate:false,
+				white:{
+					memberName:'',
+					memberPhone:'',
+					memberCarNum:'',
+					parkingName:'',
+					memberStartTime:'',
+					memberEndTime:'',
+					parkId:'',
+					memberType:null
+				},
+				timePickShow:false,
+				parkSelShow:false,
+				myParkSites:[],
+				showCalendar:false,
+				timePickFor:'',
+				timePickParams:{
+					year: true,
+					month: true,
+					day: true,
+					hour: true,
+					minute: true,
+					second: true
+				}
+			}
+		},
+		
+		onLoad(opts){
+			this.loadDate(opts.id);
+			
+		},
+		
+		methods: {
+			
+			
+			loadDate(id){
+				uni.showLoading({
+					title:'加载中...'
+				});
+				
+				api.getOne(id).then(resp => {
+					console.log(resp)
+					uni.hideLoading();
+					if(!resp.success){
+						return;
+					}
+					
+					//this.memberRecord=resp.data;
+					let {memberName,memberPhone,memberCarNum,parkingName,memberStartTime,memberEndTime,parkId,memberType,id}=resp.data;
+					this.white={memberName,memberPhone,memberCarNum,parkingName,memberStartTime,memberEndTime,parkId,memberType,id};
+					console.log(this.white);
+					
+				}).catch(error => {
+					uni.hideLoading();
+				});
+			}
+		}
+		
+	}
+</script>
+
+<style>
+	page{
+			
+			background-color: #f4f4f4;
+			font-family: '华文行楷';
+			height: 100%;
+		}
+	.u-form-item{
+		padding:10rpx 20rpx;
+	}
+	.btn-bar{
+		margin:40rpx 0rpx;
+		padding:0rpx 20rpx;
+		display: flex;
+		flex-flow: row nowrap;
+		justify-content: center;
+		align-items: center;
+	}
+	
+	.custom-btn{
+		flex:1;
+		border-top-right-radius: 20rpx !important;
+		border-bottom-right-radius: 0rpx;
+	}
+	
+	
+</style>

+ 304 - 47
pages/whiteList/whiteList.vue

@@ -1,72 +1,217 @@
 <template>
 	<view class="container">
-		<view class="white-card">
-			<view class="car-num">鄂D12345</view>
-			<view class="us-time">使用时段:无限制</view>
-			<view class="parking-site">所属停车场:玉桥公园停车场</view>
-			<view class="us-expire">使用期限:2023-01-01</view>
-			<view class="edit-btn" @tap="openEdit">编辑</view>
+		<u-navbar title="" :is-back="false"  class="top-navbar">
+			
+			<view  class="navbar-left">
+				<u-icon name="arrow-left" color="#2979ff" size="32" label=""  @click="backClose" style="margin-right: 30rpx;"></u-icon>
+				<u-icon name="plus" color="#2979ff" size="32" label="增加"  @click="openEdit"></u-icon>
+				<text style="flex:1;text-align: center;">白名单管理</text>
+			</view>
+			<u-dropdown ref="filterDropdown">
+				<u-dropdown-item  title="筛选">
+					<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 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>
+						</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>
+								<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>
+								</block>
+								
+							</view>
+						</view>
+						
+					    <view class="filter-btn">
+							<view class="filter-btn-reset" @tap="resetFilter">重置</view>
+							<view class="filter-btn-sure" @tap="sureFilter">确定</view>
+						</view>
+						
+					</view>
+				</u-dropdown-item>
+			</u-dropdown>
+		</u-navbar>
+		<u-calendar v-model="showCalendar" mode="range" @change="changeCalendar"></u-calendar>
+		<view class="white-card" :class="{'white-card-invalid':item.cloud_del_flag==1}" v-for="(item,index) in pagedData.records" :key="item.id">
+			<view class="car-num">{{item.member_car_num}}{{item.member_type==0?'  [充电附赠]':''}}</view>
+			<!-- <view class="us-time">使用时段:无限制</view> -->
+			<view class="parking-site"><text style="color:#888;">使用场所:</text>{{item.parking_name}}</view>
+			<view class="us-expire">使用期限:
+			 <text v-if="item.cloud_del_flag==1" style="font-size:26rpx;font-weight: bold;">
+				 已失效
+			 </text>
+			 <text v-else>
+				 {{item.start_time+' 至 '+item.end_time}}
+			 </text>
+			</view>
+			<view class="edit-btn" @tap="openEdit(item)">{{item.cloud_del_flag||item.member_type==0?'查看':'编辑'}}</view>
 		</view>
 		
-		<view class="white-card">
-			<view class="car-num">鄂D12345</view>
-			<view class="us-time">使用时段:无限制</view>
-			<view class="parking-site">所属停车场:玉桥公园停车场</view>
-			<view class="us-expire">使用期限:2023-01-01</view>
-			<view class="edit-btn">编辑</view>
-		</view>
 		
-		<view class="white-card">
-			<view class="car-num">鄂D12345</view>
-			<view class="us-time">使用时段:无限制</view>
-			<view class="parking-site">所属停车场:玉桥公园停车场</view>
-			<view class="us-expire">使用期限:2023-01-01</view>
-			<view class="edit-btn">编辑</view>
-		</view>
 		
-		<view class="white-card">
-			<view class="car-num">鄂D12345</view>
-			<view class="us-time">使用时段:无限制</view>
-			<view class="parking-site">所属停车场:玉桥公园停车场</view>
-			<view class="us-expire">使用期限:2023-01-01</view>
-			<view class="edit-btn">编辑</view>
+		<view v-show="showMoreTip">
+			<u-loadmore :status="loadMoreStat" :load-text="loadMoreText"/>
 		</view>
 		
-		<view class="white-card">
-			<view class="car-num">鄂D12345</view>
-			<view class="us-time">使用时段:无限制</view>
-			<view class="parking-site">所属停车场:玉桥公园停车场</view>
-			<view class="us-expire">使用期限:2023-01-01</view>
-			<view class="edit-btn">编辑</view>
-		</view>
-		
-		<view class="white-card">
-			<view class="car-num">鄂D12345</view>
-			<view class="us-time">使用时段:无限制</view>
-			<view class="parking-site">所属停车场:玉桥公园停车场</view>
-			<view class="us-expire">使用期限:2023-01-01</view>
-			<view class="edit-btn">编辑</view>
-		</view>
+		<view v-show="pagedData.records.length==0" style="margin:50rpx;text-align: center;">未找到相关数据</view>
 	</view>
 </template>
 
 <script>
+	import * as api from '@/apis/whiteBill.js'
+	
 	export default {
 		data() {
 			return {
+				showCalendar:false,
+				myParkSites:[],
+				selectedParkVal:'all',
+				allParkIds:'',
+				filter:{
+					carNum:'',
+					startDate:'',
+					endDate:''
+				},
+				filterInputCss:{
+					'background-color':'#f2f5fa',
+					
+					'padding-left':'10rpx',
+					'phstyle':'font-size:24rpx;'
+				},
 				
+				loadMoreStat:'loadmore',
+				showMoreTip:false,
+				loadMoreText: {
+					loadmore: '轻轻上拉',
+					loading: '努力加载中',
+					nomore: '实在没有了'
+				},
+				pagedData:{
+					records:[]
+				}
 			}
 		},
-		onNavigationBarButtonTap(e){
-			console.log(e);
+		
+		onLoad(){
+			this.myParkSites=api.getMyParkSites();
+			
+			let ids=[];
+			this.myParkSites.forEach(function(item){
+				ids.push(item.park_id);
+			});
+			this.allParkIds=ids.join(",");
+			
+			this.loadPageData(this.getLoadParams(1));
+			
+			uni.$on('reloadWhiteList',(param) =>{
+				this.loadPageData(this.getLoadParams(1));
+			});
+		},
+	    
+		onReachBottom(){
+			this.showMoreTip=true;
+			if(!this.checkHadMore()){  //没有更多数据
+				return;
+			}
+			this.loadMoreStat = 'loading';
+			this.loadPageData(this.getLoadParams(),true);
 			
-			 
 		},
 		methods: {
-			openEdit(){
+			getLoadParams(pnum){
+				let parkarg=this.selectedParkVal=="all"?this.allParkIds:this.selectedParkVal;
+				if(!pnum){
+					pnum=this.pagedData.pageNum!=null?(this.pagedData.pageNum+1):1;
+				}
+				return {parkingIds:parkarg,carNum:this.filter.carNum,queryStart:this.filter.startDate,queryEnd:this.filter.endDate,pageNum:pnum,pageSize:10};
+			},
+			checkHadMore(){
+				let rst=this.pagedData.pageNum<this.pagedData.pageCount;
+				this.loadMoreStat=rst?'loadmore':'nomore';
+				return rst;
+			},
+			openEdit(item){
+				let urlArg='editWhite';
+				if(item){
+					if(item.cloud_del_flag||item.member_type==0){
+						urlArg='viewWhite?id='+item.id;
+					}
+					else{
+						urlArg='editWhite?id='+item.id;
+					}
+				}
+				
 				uni.navigateTo({
-					url:'editWhite'
+					url:urlArg
+				})
+			},
+			backClose(){
+				//uni.navigateBack();
+				uni.switchTab({
+					url:'../me/me'
 				})
+			},
+			changeCalendar(e){
+				this.filter.startDate=e.startDate;
+				this.filter.endDate=e.endDate;
+			},
+			resetFilter(){
+				let resetObj={
+					startDate:'',
+					endDate:'',
+					carNum:''
+					
+				};
+				this.filter=resetObj;
+				this.selectedParkVal='all';
+			},
+			sureFilter(){
+				this.$refs.filterDropdown.close();
+				this.loadPageData(this.getLoadParams(1));
+			},
+			loadPageData(param,moreLoad){
+				uni.showLoading({
+					title:'加载中...'
+				});
+				if(!moreLoad){   //全新查询重置该值
+					this.showMoreTip=false;
+				}
+				
+				api.query(param).then(resp => {
+					console.log(resp)
+					uni.hideLoading();
+					if(!resp.success){
+						return;
+					}
+					
+					this.parseDatas(resp.data);
+					if(moreLoad){  //附加以前的数据
+						resp.data.records=resp.data.records?this.pagedData.records.concat(resp.data.records):this.pagedData.records;
+					}
+					this.pagedData=resp.data;
+					this.checkHadMore();
+					
+				}).catch(error => {
+					uni.hideLoading();
+				});
+			},
+			parseDatas(respData){
+				respData['pageNum']=respData.current;
+				respData['pageCount']=respData.pages;
+				respData['pageSize']=respData.size;
 			}
 		}
 	}
@@ -80,7 +225,108 @@
 			font-family: '华文行楷';
 			/* height: 100%; */
 		}
+	.top-navbar/deep/ .u-slot-content{
+		justify-content: space-between;
+		padding:0rpx;
+		
+	}
+	
+	.top-navbar/deep/ .u-dropdown__menu{
+		justify-content: flex-end;
+	}
+	.top-navbar/deep/ .u-dropdown__menu .u-dropdown__menu__item{
+		flex:none;
+		margin-right: 40rpx;
+		
+	}
+	
+	.top-navbar .navbar-left{
+		position: absolute;
+		z-index: 20;
+		left:20rpx;
+		display: flex;
+		flex-flow: row nowrap;
+		align-items: center;
+		width:calc(100vw - 220rpx);
+	}
 	
+	.dropdown-filter-con{
+		display: flex;
+		flex-direction: column;
+		align-items: flex-start;
+		justify-content: center;
+		padding:20rpx 0rpx 0rpx;
+		box-sizing: border-box;
+		background-color: #fafafa;
+		font-size: 26rpx;
+	}
+	
+	.filter-item{
+		width:100%;
+		padding:0rpx 20rpx 30rpx;
+	}
+	.filter-item .filter-label{
+		/* font-family: '楷体'; */
+		
+	}
+	.filter-date{
+		width:100%;
+		height:55rpx;
+		line-height: 55rpx;
+		background-color: #f2f5fa;
+		margin-top: 20rpx;
+		display: flex;
+		align-items:center;
+		
+	}
+	.filter-date text{
+		flex:1;
+	}
+	
+	.filter-con{
+		display: flex;
+		flex-flow: row wrap;
+		justify-content:flex-start;
+		align-items: center;
+		margin-top: 20rpx;
+	}
+	.filter-con .filter-con-item{
+		padding:10rpx 10rpx;
+		text-align: center;
+		background-color: #f2f5fa;
+		/* color:#ffffff; */
+		/* height: 45rpx; */
+		width:28vw;
+		margin-right: 3vw;
+		margin-bottom: 20rpx;
+	}
+	.filter-con .selected-filter{
+		background-color: #185ac6;
+		color:#ffffff;
+	}
+	
+	.filter-btn{
+		display: flex;
+		flex-flow: row wrap;
+		justify-content:flex-start;
+		align-items: center;
+		height: 80rpx;
+		width:100vw;
+		border-top:1px solid #f2f2f2;
+	}
+	.filter-btn-reset{
+		flex:1;
+		text-align: center;
+		line-height: 80rpx;
+		background-color: #f2f2f2;
+	}
+	.filter-btn-sure{
+		flex:2;
+		text-align: center;
+		background-color: #185ac6;
+		color:#ffffff;
+		line-height: 80rpx;
+	}
 	.white-card{
 		border-radius: 10rpx;
 		/* padding:30rpx; */
@@ -88,6 +334,10 @@
 		background: linear-gradient(90deg,#fbe09e,#fada8a);
 		position: relative;
 	}
+	
+	.white-card-invalid{
+		background: linear-gradient(90deg,#d0d0d0,#b4b4b4);
+	}
 		
 	.white-card .car-num{
 		font-size:30rpx;
@@ -111,7 +361,10 @@
 		border-top:1px solid #c5c145;
 		font-size:24rpx;
 		padding:15rpx 30rpx;
-		text-align: right;
+		text-align: left;
+	}
+	.white-card-invalid .us-expire{
+		border-top:1px solid #a1a1a1;
 	}
 	
 	.white-card .edit-btn{
@@ -127,4 +380,8 @@
 		line-height: 50rpx;
 		font-size:24rpx;
 	}
+	
+	.white-card-invalid .edit-btn{
+		background-color: #a2a2a2;
+	}
 </style>