|
@@ -57,7 +57,7 @@
|
|
|
|
|
|
</view>
|
|
|
<view class="tab-con-body">
|
|
|
- <scroll-view style="padding:20rpx;height:calc(100vh - 170px)" scroll-y="true" @scrolltolower="scrollbtm('off')" v-show="currentTab==0">
|
|
|
+ <scroll-view style="padding:20rpx;height:calc(100vh - 170px)" scroll-y="true" lower-threshold="0.5" @scrolltolower="scrollbtm('off')">
|
|
|
|
|
|
<view class="tab-con-item" v-for="(item,index) in offPageData.records" :key="index">
|
|
|
<view class="item-top">
|
|
@@ -69,7 +69,7 @@
|
|
|
<view v-if="item.release_status=='1'">离场时间:{{item.out_parking_time}}</view>
|
|
|
<view>停车时长:{{item.parking_time_txt}}</view>
|
|
|
<view>离场方式:{{item.out_type_name}}</view>
|
|
|
- <view>缴费金额:{{item.pay_amount?(item.pay_amount+'元'):''}}</view>
|
|
|
+ <view v-if="item.out_type=='3'">缴费金额:{{item.pay_amount?(item.pay_amount+'元'):''}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -98,7 +98,7 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="tab-con-body">
|
|
|
- <scroll-view style="padding:20rpx;height:calc(100vh - 340rpx)" scroll-y="true" @scrolltolower="scrollbtm('in')">
|
|
|
+ <scroll-view style="padding:20rpx;height:calc(100vh - 340rpx)" scroll-y="true" lower-threshold="0.5" @scrolltolower="scrollbtm('in')">
|
|
|
|
|
|
<view class="tab-con-item" v-for="(item,index) in inPageData.records" :key="index">
|
|
|
<view class="item-top">
|
|
@@ -142,14 +142,14 @@
|
|
|
<!--已标记列表 start-->
|
|
|
<view class="tab-con-wrap" v-show="currentTab==2">
|
|
|
<view class="tab-con-header">
|
|
|
- <view style="display: flex;align-items: center;padding:10rpx 0rpx;">
|
|
|
- <u-button type="primary" size="medium" style="margin:0rpx 10rpx;" @tap="batchOff" v-show="true">批量出场</u-button>
|
|
|
+ <view style="display: flex;align-items: center;padding:10rpx 10rpx;">
|
|
|
+ <u-button type="primary" size="medium" style="margin:0rpx 10rpx;" @tap="batchOff" v-show="false">批量出场</u-button>
|
|
|
<u-search shape="round" border-color="#72b2ff" placeholder="输入车牌号模糊查找" v-model="filter.carNum" @search="searchHandler('marked')" @custom="searchHandler('marked')"></u-search>
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
<view class="tab-con-body">
|
|
|
- <scroll-view style="padding:20rpx;height:calc(100vh - 340rpx);" scroll-y="true" @scrolltolower="scrollbtm('marked')">
|
|
|
+ <scroll-view style="padding:20rpx;height:calc(100vh - 340rpx);" scroll-y="true" lower-threshold="0.5" @scrolltolower="scrollbtm('marked')">
|
|
|
<view class="tab-con-item" v-for="(item,index) in markedPageData.records" :key="index">
|
|
|
<view class="item-top">
|
|
|
<u-image width="200rpx" height="160rpx" :src="item.car_img" border-radius="5rpx" @click="previewCarPhoto(item.car_img)"></u-image>
|
|
@@ -207,6 +207,7 @@
|
|
|
loading: '努力加载中',
|
|
|
nomore: '实在没有了'
|
|
|
},
|
|
|
+ loadingMore:false,
|
|
|
filter:{
|
|
|
startDate:'',
|
|
|
endDate:'',
|
|
@@ -302,22 +303,28 @@
|
|
|
this.loadPageData(this.getLoadParams(1),false,"off");
|
|
|
},
|
|
|
scrollbtm(offType){
|
|
|
- console.log('scroll btm')
|
|
|
+ //console.log('scroll btm')
|
|
|
+ //触底事件会反复触发,会导致同时发出多个相同请求,需要同步控制
|
|
|
+ /*if(this.loadingMore){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.loadingMore=true;
|
|
|
+ */
|
|
|
if(!this.checkHadMore(offType)){
|
|
|
return;
|
|
|
}
|
|
|
let pnum=1;
|
|
|
- if(offType=="off"){
|
|
|
+ if(offType=="off" && this.offPageData.loadMoreStat!='loading'){
|
|
|
this.offPageData.loadMoreStat='loading';
|
|
|
pnum=this.offPageData.pageNum+1;
|
|
|
this.loadPageData(this.getLoadParams(pnum),true,offType)
|
|
|
}
|
|
|
- else if(offType=="in"){
|
|
|
+ else if(offType=="in" && this.inPageData.loadMoreStat!='loading'){
|
|
|
this.inPageData.loadMoreStat='loading';
|
|
|
pnum=this.inPageData.pageNum+1;
|
|
|
this.loadPageData(this.getLoadParams(pnum),true,offType)
|
|
|
}
|
|
|
- else if(offType=="marked"){
|
|
|
+ else if(offType=="marked" && this.markedPageData.loadMoreStat!='loading'){
|
|
|
this.markedPageData.loadMoreStat='loading';
|
|
|
pnum=this.markedPageData.pageNum+1;
|
|
|
this.loadMarked(this.getLoadParams(pnum),true)
|
|
@@ -345,6 +352,9 @@
|
|
|
loadMarked(param,moreLoad){
|
|
|
//加载已标记记录
|
|
|
let offType='marked'
|
|
|
+ if(!moreLoad){
|
|
|
+ this.markedPageData.records=[] //避免加载失败后旧数据还在显示
|
|
|
+ }
|
|
|
uni.showLoading({
|
|
|
title:'加载中...'
|
|
|
});
|
|
@@ -367,9 +377,10 @@
|
|
|
pagedData.loadMoreStat=this.markedPageData.loadMoreStat
|
|
|
this.markedPageData=pagedData
|
|
|
|
|
|
+ this.checkHadMore(offType);
|
|
|
this.renderSortTab(pagedData,offType);
|
|
|
|
|
|
- this.checkHadMore(offType);
|
|
|
+
|
|
|
|
|
|
}).catch(err=>{
|
|
|
console.log(err)
|
|
@@ -583,34 +594,80 @@
|
|
|
},
|
|
|
|
|
|
batchOff(){
|
|
|
- if(!this.selectedParkVal || this.selectedParkVal=='all' || this.selectedParkVal==''){
|
|
|
- uni.showModal({
|
|
|
- title:'操作提示',
|
|
|
- content:'请先选择1个停车场(不可多选),再继续',
|
|
|
- showCancel:false
|
|
|
+ let markedCount=this.markedPageData ? this.markedPageData.total :0
|
|
|
+ if(markedCount<=0){
|
|
|
+ uni.showToast({
|
|
|
+ title:'还未标记任何车辆',
|
|
|
+ icon:'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let selPark=this.myParkSites?this.myParkSites[this.selectedParkIdx]:null
|
|
|
+ if(!selPark){
|
|
|
+ uni.showToast({
|
|
|
+ title:'还未选择停车场',
|
|
|
+ icon:'none'
|
|
|
})
|
|
|
-
|
|
|
return
|
|
|
}
|
|
|
- else{
|
|
|
- let parkObj=this.myParkSites.find(itm=>itm.park_id==this.selectedParkVal)
|
|
|
+
|
|
|
+ if(this.markedPageData.records[0].park_id != selPark.park_id){
|
|
|
uni.showModal({
|
|
|
title:'操作提示',
|
|
|
- content:`提交前请确认选择的停车场【${parkObj.parking_name}】,且已完成该停车场的标记`,
|
|
|
- showCancel:true,
|
|
|
- success:(res)=>{
|
|
|
- if (res.confirm) {
|
|
|
- this.batchOffSubmit();
|
|
|
- } else if (res.cancel) {
|
|
|
- console.log('用户点击取消');
|
|
|
- }
|
|
|
- }
|
|
|
+ content:'标记车辆所在停车场与选择的停车场不一致',
|
|
|
+ showCancel:false
|
|
|
})
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ uni.showModal({
|
|
|
+ title:'批量出场确认',
|
|
|
+ content:`请确认信息:停车场【${selPark.parking_name}】,已完成标记数【${markedCount}】`,
|
|
|
+ showCancel:true,
|
|
|
+ success:(res)=>{
|
|
|
+ if (res.confirm) {
|
|
|
+ this.batchOffSubmit(selPark.park_id);
|
|
|
+ } else if (res.cancel) {
|
|
|
+ console.log('用户点击取消');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
},
|
|
|
|
|
|
- batchOffSubmit(){
|
|
|
-
|
|
|
+ batchOffSubmit(parkId){
|
|
|
+ uni.showLoading({
|
|
|
+ title:'处理中...',
|
|
|
+ mask:true
|
|
|
+ });
|
|
|
+ api.batchOffUnmarked(parkId).then(resp=>{
|
|
|
+ uni.hideLoading()
|
|
|
+ if(!resp.success){
|
|
|
+ uni.showToast({
|
|
|
+ title:resp.msg||'批量出场失败',
|
|
|
+ icon:'none'
|
|
|
+ })
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ uni.showToast({
|
|
|
+ title:'批量出场成功',
|
|
|
+ icon:'success'
|
|
|
+ })
|
|
|
+
|
|
|
+ setTimeout(()=>{
|
|
|
+ this.changePark()
|
|
|
+ },1000)
|
|
|
+
|
|
|
+ }).catch(err=>{
|
|
|
+ uni.hideLoading()
|
|
|
+ console.log(err)
|
|
|
+ uni.showToast({
|
|
|
+ title:'批量出场失败',
|
|
|
+ icon:'none'
|
|
|
+ })
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
|