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