@@ -1,5 +1,6 @@ | |||||
const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {} | const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {} | ||||
let app = getApp(); | let app = getApp(); | ||||
const format = require("../../utils/util.js"); | |||||
let config = require("../../config/config.js"); | let config = require("../../config/config.js"); | ||||
let Http = require("../../utils/HttpBasics"); | let Http = require("../../utils/HttpBasics"); | ||||
let Util = require("../../utils/util"); | let Util = require("../../utils/util"); | ||||
@@ -31,7 +32,127 @@ Page({ | |||||
stopFees: {}, | stopFees: {}, | ||||
scroll: true, | scroll: true, | ||||
ifHaveCarModular: "", | ifHaveCarModular: "", | ||||
canIUse: wx.canIUse("navigator") | |||||
canIUse: wx.canIUse("navigator"), | |||||
showTicketModal: false, | |||||
ticketList: [], | |||||
noCoupon:imgurl.noCoupon.url, | |||||
loadingUrl: imgurl.loading.url, | |||||
allow_load: true, | |||||
curPageNum: 1, | |||||
curPageSize: 4, | |||||
curTotalpageNum: 0, | |||||
quantitle: '', | |||||
quanid: '', | |||||
gouHr: imgurl.gouHr.url, | |||||
totalTicketNum: 0, | |||||
}, | |||||
getMoreList(e) { | |||||
let totalNum = this.data.ticketList.length; | |||||
if (this.data.curPageNum < this.data.curTotalpageNum) { | |||||
this.setData({ | |||||
curPageNum: this.data.curPageNum+1 | |||||
}) | |||||
this.getTicketList(0 ,this.data.curPageNum); | |||||
} | |||||
}, | |||||
/** | |||||
* 选择使用的优惠券 | |||||
*/ | |||||
choicecoupon: function(e) { | |||||
/* wx.navigateBack(); | |||||
var pages = getCurrentPages(); | |||||
var prevPage = pages[pages.length - 2] //上一个页面 */ | |||||
var that = this; | |||||
var quantitle = e.currentTarget.dataset.title; | |||||
var quanid = e.currentTarget.dataset.id; | |||||
this.setData({ | |||||
quantitle: quantitle, | |||||
quanid: quanid, | |||||
showTicketModal: false, | |||||
}); | |||||
wx.setStorage({ | |||||
key: 'chosed', | |||||
data: 'chosed', | |||||
}) | |||||
}, | |||||
/* | |||||
*/ | |||||
getTicketList(key, pageNum) { | |||||
var that = this; | |||||
if (that.data.allow_load) { | |||||
wx.showLoading({ | |||||
title: "加载中" | |||||
}); | |||||
Http.get({ | |||||
url: config.api.couponOrderCarList, | |||||
data: { | |||||
pageNum: pageNum, | |||||
pageSize: 20, | |||||
couponOrderStatus: key | |||||
} | |||||
}).then(res => { | |||||
that.setData({ | |||||
curTotalpageNum: res.data.pages, | |||||
curPageNum: res.data.pageNum, | |||||
totalTicketNum: res.data.total | |||||
}) | |||||
res.data.list.map(file => { | |||||
file.expiredTime = format.formatTime( | |||||
file.expiredTime, | |||||
"yyyy-MM-dd hh:mm:ss" | |||||
); | |||||
}); | |||||
setTimeout(function () { | |||||
wx.hideLoading(); | |||||
}, 1200); | |||||
if (pageNum >= res.data.pages) { | |||||
that.setData({ | |||||
allow_load: false | |||||
}); | |||||
} | |||||
/** | |||||
* 先赋值后渲染页面 | |||||
* concat 不会改变原数组值 | |||||
* push 会改变原数组值,但不会一条一条插入,而是整个数组插入 | |||||
*/ | |||||
that.data.ticketList = that.data.ticketList.concat(res.data.list); | |||||
that.setData({ | |||||
ticketList: that.data.ticketList | |||||
}); | |||||
this.hideLoading(); | |||||
}) | |||||
.catch(err => { | |||||
setTimeout(function () { | |||||
wx.hideLoading(); | |||||
}, 1200); | |||||
wx.showToast({ | |||||
title: err.errMsg, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
} else { | |||||
} | |||||
}, | |||||
//点击跳转到券详情页面 | |||||
gotouse: function (e) { | |||||
wx.navigateTo({ | |||||
url: `/pages/passCar/couponDetail/couponDetail?quancode=${ | |||||
e.currentTarget.dataset.quancode | |||||
}`, | |||||
success: function (res) { | |||||
// success | |||||
}, | |||||
fail: function () { | |||||
// fail | |||||
}, | |||||
complete: function () { | |||||
// complete | |||||
} | |||||
}); | |||||
}, | }, | ||||
/** | /** | ||||
* 车牌轮播滑动 | * 车牌轮播滑动 | ||||
@@ -135,6 +256,13 @@ Page({ | |||||
addCar: null | addCar: null | ||||
}); | }); | ||||
} | } | ||||
this.setData({ | |||||
ticketList: [], | |||||
curPageNum: 1 | |||||
}) | |||||
this.getTicketList(0, 1); | |||||
}, | }, | ||||
onLoad: function (options) { | onLoad: function (options) { | ||||
@@ -169,6 +297,7 @@ Page({ | |||||
// app.getLocation(); | // app.getLocation(); | ||||
that.userLogin() | that.userLogin() | ||||
} | } | ||||
}, | }, | ||||
/** | /** | ||||
* 用户登录 | * 用户登录 | ||||
@@ -300,7 +429,8 @@ Page({ | |||||
.catch(err => { | .catch(err => { | ||||
console.log(err) | console.log(err) | ||||
wx.showToast({ | wx.showToast({ | ||||
title: err.message, | |||||
// title: err.message, | |||||
title: '未查到', | |||||
icon: 'none', | icon: 'none', | ||||
duration: 2000, | duration: 2000, | ||||
mask: false | mask: false | ||||
@@ -322,6 +452,25 @@ Page({ | |||||
}) | }) | ||||
} | } | ||||
}, | |||||
closeTicketModal: function () { | |||||
this.setData({ | |||||
showTicketModal: false | |||||
}) | |||||
}, | |||||
/** | |||||
* 停车券 弹框 | |||||
*/ | |||||
openTicketModal: function () { | |||||
this.setData({ | |||||
showTicketModal: true, | |||||
allow_load: true, | |||||
}) | |||||
if (!this.data.ticketList.length){ | |||||
this.getTicketList(0, 1); | |||||
} | |||||
}, | }, | ||||
//获取名下停车券列表 | //获取名下停车券列表 | ||||
@@ -331,7 +480,7 @@ Page({ | |||||
url: config.api.couponOrderCarList + "?type=5&couponOrderStatus=0", | url: config.api.couponOrderCarList + "?type=5&couponOrderStatus=0", | ||||
data: { | data: { | ||||
pageNum: 1, | pageNum: 1, | ||||
pageSize: 8, | |||||
pageSize: 20, | |||||
couponOrderStatus: 0 | couponOrderStatus: 0 | ||||
} | } | ||||
}).then(res => { | }).then(res => { | ||||
@@ -38,10 +38,11 @@ | |||||
</view> | </view> | ||||
<view class='coupon clearfix' bindtap='gotoquan' wx:if="{{couponList.length>0}}"> | <view class='coupon clearfix' bindtap='gotoquan' wx:if="{{couponList.length>0}}"> | ||||
<!-- <view class='coupon clearfix' bindtap='openTicketModal' wx:if="{{couponList.length>0}}"> --> | |||||
<text class='fl'><text class='jians'>券</text>优惠券:</text> | <text class='fl'><text class='jians'>券</text>优惠券:</text> | ||||
<view class="fr"> | <view class="fr"> | ||||
<text wx:if="{{quantitle}}">{{quantitle}}</text> | <text wx:if="{{quantitle}}">{{quantitle}}</text> | ||||
<text wx:else>{{couponList.length}}张可用</text> | |||||
<text wx:else>{{totalTicketNum}}张可用</text> | |||||
<image class='jiant' src='{{jianUrl}}' mode='widthFix'></image> | <image class='jiant' src='{{jianUrl}}' mode='widthFix'></image> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -109,4 +110,52 @@ | |||||
<image class="img" src="{{qidaiUrl}}" mode="widthFix"></image> | <image class="img" src="{{qidaiUrl}}" mode="widthFix"></image> | ||||
<text class="txt1">智慧停车即将上线</text> | <text class="txt1">智慧停车即将上线</text> | ||||
<text class="txt2">敬请期待</text> | <text class="txt2">敬请期待</text> | ||||
</view> | |||||
<!-- --> | |||||
<view bindtap="closeTicketModal" class="gray-bg" wx:if="{{showTicketModal}}"></view> | |||||
<view class="ticket-modal" wx:if="{{showTicketModal}}"> | |||||
<view style='padding-top:0;'> | |||||
<view class="nocoupon" wx:if="{{ticketList.length==0}}" style="margin-top:100rpx;"> | |||||
<image src="{{noCoupon}}" mode="widthFix" /> | |||||
<text class="txt001">请您敬请期待</text> | |||||
<text class='txt002'>我们正在筹备一大波优惠活动</text> | |||||
<navigator class='nav' url="/pages/main/index" open-type="switchTab" hover-class="other-navigator-hover"> | |||||
<button hover-class='active'>前往首页看看</button> | |||||
</navigator> | |||||
</view> | |||||
<view wx:if="{{ticketList.length>0}}" class="ticket-title-tip"> | |||||
<text>停车券</text> | |||||
<icon bindtap="closeTicketModal" class="close-icon" type="cancel"></icon> | |||||
</view> | |||||
<scroll-view bindscrolltolower="getMoreList" scroll-y style="height:800rpx;"> | |||||
<view class='section' wx:for='{{ticketList}}' wx:key='{{index}}' bindtap="choicecoupon" data-title="{{item.title}}" data-id="{{item.id}}"> | |||||
<view class='mms'> | |||||
<!-- <text>{{index}}</text> --> | |||||
<image class='gou' wx:if="{{item.id==quanid}}" mode='widthFix' src='{{gouHr}}'></image> | |||||
<view class='detail_msg'> | |||||
<view class='info'> | |||||
<view class='title'> | |||||
<text>{{item.title}}</text> | |||||
</view> | |||||
<view class='subtitle'> | |||||
<text>{{item.subTitle}}</text> | |||||
</view> | |||||
<view class="btns"> | |||||
<text class='yuan' style='margin-right:10rpx;'>售价:{{item.salePrice/100}}元</text><text class='yuan' style='text-decoration:line-through' wx:if="{{item.unit==0}}">{{item.price/100}}元</text> | |||||
<text class='yuan' style='text-decoration:line-through' wx:if="{{item.unit==1}}">{{item.price/100}}小时</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!-- <image class="liness" src='{{linessUrl}}' mode="widthFix"></image> --> | |||||
<view class='expiretime'> | |||||
<text class="txt1">有效期至:</text> | |||||
<text class="txt1">{{item.expiredTime}}</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</scroll-view> | |||||
<view class="loading" wx:if="{{loading}}"> | |||||
<image src="{{loadingUrl}}" mode="widthFix"></image>{{content}} | |||||
</view> | |||||
</view> | |||||
</view> | </view> |
@@ -69,11 +69,7 @@ page { | |||||
font-size: 28rpx; | font-size: 28rpx; | ||||
} | } | ||||
.yuan { | |||||
display: inline-block; | |||||
margin-left: 6rpx; | |||||
color: #333; | |||||
} | |||||
.price { | .price { | ||||
width: 690rpx; | width: 690rpx; | ||||
@@ -632,19 +628,229 @@ button::after { | |||||
} | } | ||||
.txt1 { | .txt1 { | ||||
font-size: 22rpx; | |||||
color: #A6A6A6; | |||||
letter-spacing: 0; | |||||
} | |||||
.txt2 { | |||||
display: block; | |||||
font-size: 28rpx; | |||||
color: #999; | |||||
letter-spacing: 0; | |||||
text-align: center; | |||||
line-height: 40rpx; | |||||
margin-top: 10rpx; | |||||
} | |||||
.gray-bg { | |||||
position: fixed; | |||||
left: 0; | |||||
top: 0; | |||||
width: 100%; | |||||
height: 100%; | |||||
z-index: 1000; | |||||
background: rgba(0,0,0,.2); | |||||
} | |||||
.ticket-modal { | |||||
position: fixed; | |||||
left: 50%; | |||||
top: 50%; | |||||
width: 80%; | |||||
height: 880rpx; | |||||
z-index: 10000; | |||||
transform: translate(-50%, -50%); | |||||
background: #fff; | |||||
} | |||||
.nocoupon image { | |||||
width: 300rpx; | |||||
display: block; | display: block; | ||||
margin: 3% auto 0; | |||||
} | |||||
.txt001 { | |||||
display: block; | |||||
line-height: 48rpx; | |||||
font-size: 34rpx; | font-size: 34rpx; | ||||
color: #333; | color: #333; | ||||
letter-spacing: 0; | letter-spacing: 0; | ||||
text-align: center; | text-align: center; | ||||
} | } | ||||
.txt2 { | |||||
.txt002 { | |||||
display: block; | display: block; | ||||
margin-top: 1%; | |||||
font-size: 28rpx; | font-size: 28rpx; | ||||
color: #999; | color: #999; | ||||
letter-spacing: 0; | letter-spacing: 0; | ||||
text-align: center; | |||||
line-height: 40rpx; | line-height: 40rpx; | ||||
margin-top: 10rpx; | |||||
text-align: center; | |||||
} | } | ||||
.nocoupon button { | |||||
background: linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
color: #fff; | |||||
font-size: 30rpx; | |||||
width: 74%; | |||||
border-radius: 60rpx; | |||||
height: 78rpx; | |||||
line-height: 78rpx; | |||||
margin-top: 100rpx; | |||||
} | |||||
.loading { | |||||
text-align: center; | |||||
height: 80rpx; | |||||
line-height: 80rpx; | |||||
font-size: 26rpx; | |||||
color: #999; | |||||
} | |||||
.loading image { | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
vertical-align: middle; | |||||
margin-right: 10rpx; | |||||
} | |||||
.section { | |||||
position: relative; | |||||
width: 90%; | |||||
margin-left: 5%; | |||||
} | |||||
.mms { | |||||
width: 100%; | |||||
height: 180rpx !important; | |||||
background: #fff; | |||||
/* padding: 30rpx 0 0; */ | |||||
margin: 0 auto 40rpx; | |||||
/* border-radius: 16rpx; */ | |||||
/* border-top: 8rpx solid #02b7ff; */ | |||||
box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.10); | |||||
} | |||||
.detail_msg { | |||||
display: flex; | |||||
padding-top: 16rpx; | |||||
padding-bottom: 16rpx; | |||||
background: linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
} | |||||
.logo { | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
/* border: 1px solid #f8f8f8; */ | |||||
border-radius: 50rpx; | |||||
display: block; | |||||
margin: 15rpx 20rpx 0 20rpx; | |||||
} | |||||
.logo image { | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
border-radius: 50%; | |||||
} | |||||
.info view:nth-child(1) { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
padding: 0 4%; | |||||
margin-top: 15rpx; | |||||
} | |||||
.info { | |||||
width: 100%; | |||||
border-left: 1rpx #FFF dashed; | |||||
} | |||||
.info view:nth-child(1) text { | |||||
font-size: 32rpx; | |||||
line-height: 32rpx; | |||||
height: 32rpx; | |||||
color: #FFFFFF; | |||||
letter-spacing: 0; | |||||
width: 400rpx; | |||||
display: inline-block; | |||||
white-space: nowrap; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
} | |||||
.info view:nth-child(2) { | |||||
padding-left: 4%; | |||||
font-size: 22rpx; | |||||
color: #FFFFFF; | |||||
letter-spacing: 0; | |||||
margin-top: 6rpx; | |||||
display: inline-block; | |||||
white-space: nowrap; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
width: 400rpx; | |||||
} | |||||
.info view:nth-child(3) { | |||||
margin-left: 20rpx; | |||||
} | |||||
.active { | |||||
color: #fff; | |||||
opacity: 0.6; | |||||
/* background: #02c0ff; */ | |||||
} | |||||
.expiretime { | |||||
display: block; | |||||
width: 100%; | |||||
text-align: left; | |||||
text-indent: 1em; | |||||
height: 50rpx; | |||||
line-height: 50rpx; | |||||
font-size: 22rpx; | |||||
color: #A6A6A6; | |||||
letter-spacing: 0; | |||||
} | |||||
.ticket-title-tip { | |||||
position: relative; | |||||
width: 100%; | |||||
height: 76rpx; | |||||
line-height: 76rpx; | |||||
text-align: center; | |||||
color: #353535; | |||||
font-size: 34rpx; | |||||
} | |||||
.close-icon { | |||||
position: absolute; | |||||
right: 10rpx; | |||||
transform: translateY(16rpx); | |||||
} | |||||
.btns { | |||||
position: absolute; | |||||
right: 120rpx; | |||||
top: 50rpx; | |||||
height: 48rpx; | |||||
line-height: 48rpx; | |||||
text-align: right; | |||||
color: #FFF; | |||||
font-size: 40rpx; | |||||
} | |||||
.yuan { | |||||
color: #FFF; | |||||
font-size: 26rpx; | |||||
} | |||||
.gou { | |||||
position: absolute; | |||||
top:45rpx; | |||||
right: 30rpx; | |||||
width: 60rpx; | |||||
} |