|
@@ -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;
|