ソースを参照

[停车页面修改][修改]:停车页面修改

tags/2.2.4
meo 6年前
コミット
129a37c6de
13個のファイルの変更1180行の追加372行の削除
  1. +19
    -10
      pages/addPark/addPark.js
  2. +1
    -1
      pages/addPark/addPark.wxml
  3. +29
    -25
      pages/addPark/addPark.wxss
  4. +112
    -2
      pages/managelicenseplate/managelicenseplate.js
  5. +1
    -1
      pages/managelicenseplate/managelicenseplate.json
  6. +23
    -0
      pages/managelicenseplate/managelicenseplate.wxml
  7. +565
    -0
      pages/managelicenseplate/managelicenseplate.wxss
  8. +29
    -28
      pages/passCar/couponList/couponList.wxml
  9. +131
    -91
      pages/passCar/couponList/couponList.wxss
  10. +95
    -99
      pages/passCar/passCar.js
  11. +51
    -47
      pages/passCar/passCar.wxml
  12. +120
    -64
      pages/passCar/passCar.wxss
  13. +4
    -4
      utils/HttpBasics.js

+ 19
- 10
pages/addPark/addPark.js ファイルの表示

@@ -55,8 +55,12 @@ Page({
},


onLoad: function () {

onLoad: function (options) {
console.log(options);
let that = this;
that.setData({
flags:options.flags
})
},
jumpTo: function () {
// 返回
@@ -106,8 +110,6 @@ Page({
}
},
chooseNum: function (e) {
//console.log(this.data.choose)
// console.log(e.target.dataset.msg);
if (e.target.dataset.msg == 'I') {
return
}
@@ -234,10 +236,8 @@ Page({
specShow: false
})
}

break;
}

} else if (e.target.dataset.msg == 'DEL') {
switch (this.data.choose) {
case "carData.title":
@@ -333,7 +333,6 @@ Page({
this.buttonStatus();
},

submit: function () {
if (this.data.title != "" && this.data.numFir != "" && this.data.numSco != "" && this.data.numThr != "" && this.data.numFor != "" && this.data.numFive != "" && this.data.numSix != "") {
var carNumber = ''
@@ -345,11 +344,21 @@ Page({
prevPage.setData({
addCar: carNumber
})
wx.navigateBack({
url: '../passCar/passCar?addcar=' + carNumber,
})
console.log(carNumber);
console.log("carNumber");
if (this.data.flags =='managepalte'){
wx.navigateBack({
url: '/pages/managelicenseplate/managelicenseplate?addcar=' + carNumber,
})
}
else{
wx.navigateBack({
url: '/pages/passCar/passCar?addcar=' + carNumber,
})
}
}
},

buttonStatus: function () {
if (this.data.title != "" && this.data.numFir != "" && this.data.numSco != "" && this.data.numThr != "" && this.data.numFor != "" && this.data.numFive != "" && this.data.numSix != "") {
this.setData({


+ 1
- 1
pages/addPark/addPark.wxml ファイルの表示

@@ -60,6 +60,6 @@
</view>
</view>
</view>
<button class="{{buttonStatus?'addpark-button-submit':'addpark-button-gray'}}" bindtap='submit'> 完成绑定 </button>
<button class="{{buttonStatus?'addpark-button-submit':'addpark-button-gray'}}" bindtap='submit' hover-class='active'> 完成绑定 </button>
<label class="addpark-back" bindtap="jumpTo">返回</label>


+ 29
- 25
pages/addPark/addPark.wxss ファイルの表示

@@ -58,7 +58,8 @@
border: 2rpx solid #12c67a;
border-radius: 10rpx;
}
.newsource{

.newsource {
font-size: 16rpx;
position: absolute;
top: 100rpx;
@@ -71,8 +72,8 @@
border-radius: 14rpx;
text-align: center;
line-height: 30rpx;

}

.addpark-choose {
width: 672rpx;
margin: 34rpx auto;
@@ -96,17 +97,19 @@
border: 1 px solid #f8f8f8;
border-radius: 8rpx;
margin: 5rpx;

}
.addpark-choose-font p{

.addpark-choose-font p {
display: block;
}
.addpark-choose-font p image{
width:5vmin;
height:3.5vmin;

.addpark-choose-font p image {
width: 5vmin;
height: 3.5vmin;
margin-top: -0.8vmin;
vertical-align: middle;
vertical-align: middle;
}

.addpark-choose-num {
width: 672rpx;
margin: 34rpx auto;
@@ -117,41 +120,43 @@
}

.choose {
color:#58abfa;
color: #58abfa;
}
.choose-title{
border:6rpx solid #ffd255;

.choose-title {
border: 6rpx solid #ffd255;
}

.addpark-button-submit{
width: 710rpx;
height: 80rpx;
.addpark-button-submit {
width: 670rpx;
height: 94rpx;
margin: 0 auto;
background: #60b4fc;
color: #ffffff;
border-radius: 10rpx;
line-height: 80rpx;
color: #fff;
border-radius: 60rpx;
line-height: 94rpx;
}
.addpark-button-gray{
.active{
opacity: .6;
}

.addpark-button-gray {
width: 670rpx;
height: 94rpx;
margin: 0 auto;
background: #cbcccd;
color: #ffffff;
color: #fff;
border-radius: 60rpx;
line-height: 94rpx;
}
.addpark-back{

.addpark-back {
font-size: 30rpx;
color: #5aadfb;
float: right;
margin: 25rpx 25rpx;
}





.plaza-parking-info {
box-sizing: border-box;
height: 235rpx;
@@ -493,4 +498,3 @@
.car-outting .car-name {
color: #fff;
}


+ 112
- 2
pages/managelicenseplate/managelicenseplate.js ファイルの表示

@@ -1,10 +1,120 @@
var app = getApp();
let config = require("../../config/config.js");
let Http = require("../../utils/HttpBasics");
let app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
carList: []
},
initUsrCarList: function() {
var that = this;
// 绑定车获取
Http.get({
url: config.api.getUserCarList,
data: {}
}).then(res => {
that.setData({
carList: res.data
});
})
},
unbindCarBtn: function(e) {
console.log(e);
var that = this;
var carNum = e.currentTarget.dataset.car;
that.unbindCar(carNum);
},

unbindCar: function(carNum) {
var that = this;
var postData =
app.globalData.parkVendor == 1 ? {
etcpToken: app.globalData.etcpToken,
carNumber: carNum
} : {
carNumber: carNum
};
Http.post({
url: config.api.unbindCar,
data: postData
})
.then(res => {
console.log(res);
that.initUsrCarList();
wx.showModal({
title: "提示",
showCancel: false,
content: "解绑车牌成功!",
success: function() {}
});
})
.catch(error => {
wx.showModal({
title: "提示",
showCancel: false,
content: "解绑车牌失败!",
});
});
},
bindCar: function(carNum) {
var that = this;
// ETCP
var etcpData = {
etcpToken: app.globalData.etcpToken,
carNumber: carNum
};
var tjdData = {
carNumber: carNum
};
var postData = app.globalData.parkVendor == 1 ? etcpData : tjdData;
Http.post({
url: config.api.bindCar,
data: postData
})
.then(res => {
console.log(res);
that.setData({
addCar: null
});
that.initUsrCarList();
wx.showModal({
title: "提示",
showCancel: false,
content: "绑车牌成功!",
success: function() {}
});
})
.catch(error => {
console.log(error);
wx.showModal({
title: "提示",
showCancel: false,
content: error.data.message,
success: function() {}
});
});
},
jumpToAdd: function() {
wx.navigateTo({
url: `/pages/addPark/addPark?flags=managepalte`
});
},
onShow: function(options) {
var that = this;
that.initUsrCarList();

if (that.data.addCar) {
// 绑车牌
if (app.globalData.carLogin) {
that.bindCar(that.data.addCar);
} else {
that.bindCar(that.data.addCar);
}
that.setData({
addCar: null
});
}
},
})

+ 1
- 1
pages/managelicenseplate/managelicenseplate.json ファイルの表示

@@ -1,3 +1,3 @@
{
"navigationBarTitleText": "管理车牌"
"navigationBarTitleText": "车辆管理"
}

+ 23
- 0
pages/managelicenseplate/managelicenseplate.wxml ファイルの表示

@@ -0,0 +1,23 @@
<view class='title'>30天内最多绑定4辆不同的车</view>
<!-- 车牌 -->
<!-- 有车牌的时候显示 -->
<view class='passUp'>
<view class='addicense_active'>
<block wx:for="{{carList}}" wx:key="unique">
<view class="swiper-item" data-memberKeyword='{{item.carNumber}}'>
<view class='clearfix'>
<text class='txt01'>{{item.carNumber}}</text>
<view class='tche' hover-class='button_active' bindtap='gotopay'>
<button class='btn001' bindtap='unbindCarBtn' data-car='{{item.carNumber}}'>解绑</button>
</view>
</view>
</view>
</block>
</view>
</view>
<!-- 没有车牌的时候显示 -->
<view class='borderUp' hover-class='active' bindtap='jumpToAdd' bindtap='jumpToAdd' wx:if="{{carList.length>=0&&3>=carList.length}}">
<view class="myCars">
<image src='./../../assets/img/add.png' mode="widthFix"></image>我的爱车</view>
<text class='carNumber'>车辆入场后,才能绑车牌</text>
</view>

+ 565
- 0
pages/managelicenseplate/managelicenseplate.wxss ファイルの表示

@@ -0,0 +1,565 @@
@import "../../app.wxss";

.title {
font-size: 26rpx;
color: #999;
letter-spacing: 0;
height: 88rpx;
line-height: 88rpx;
width: 690rpx;
border-bottom:1rpx solid #eee;
margin-bottom: 40rpx;
margin: 0 auto;
}

.title text {
font-size: 26rpx;
color: #02c0ff;
letter-spacing: 0;
line-height: 26rpx;
}

page {
background-color: #fff;
}

.headBox {
margin-top: 13rpx;
width: 750rpx;
height: 210rpx;
box-sizing: border-box;
padding: 30rpx 40rpx;
display: flex;
background-color: white;
}

.headBox image {
width: 150rpx;
height: 150rpx;
margin: 10rpx 30rpx 0 0;
border-radius: 16rpx;
}

.numberBox {
width: 400rpx;
height: 150rpx;
}

.titleName {
line-height: 60rpx;
height: 60rpx;
color: #666;
font-size: 32rpx;
width: 400rpx;
word-break: break-all;
text-align: justify;
margin-bottom: 10rpx;
}

::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
}

.carLocation, .locationNumber {
width: 400rpx;
height: 40rpx;
color: #666;
font-size: 24rpx;
line-height: 30rpx;
}

.price {
font-size: 28rpx;
}

.borderBox {
width: 750rpx;
margin-top: 26rpx;
}

.borderUp {
width: 680rpx;
margin: 0 auto;
font-size: 36rpx;
border: 2rpx dashed #979797;
border-radius: 16rpx;
padding-bottom: 40rpx;
height: 202rpx;
}
.active{
background: #eee;
}
.addicense_active {
width: 690rpx;
/* box-shadow: 0 4rpx 20rpx 0 rgba(153, 153, 153, 0.35); */
border-radius: 12rpx;
/* background: #02c0ff; *//* padding-bottom: 40rpx; */
margin: 0 auto;
}

.myCar {
display: block;
text-align: center;
font-size: 34rpx;
color: #02c0ff;
letter-spacing: 0;
}

.carNumber {
display: block;
height: 50rpx;
line-height: 50rpx;
text-align: center;
font-size: 26rpx;
color: #999;
letter-spacing: 0;
margin-top: 10rpx;
}

.addBox {
width: 750rpx;
position: relative;
background-color: white;
}

.add {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
font-size: 34rpx;
color: #666;
border: 2px dashed #eee;
padding: 30rpx 50rpx;
border-radius: 16rpx;
}

.add text {
font-size: 40rpx;
}

.bottonBox {
width: 750rpx;
margin-top: 30rpx;
}

.textStyle {
background-color: white;
height: 88rpx;
line-height: 88rpx;
padding-left: 92rpx;
border-bottom: 1px #f8f8f8 solid;
position: relative;
font-size: 30rpx;
color: #333;
letter-spacing: 1.16rpx;
}

.textStyle image {
width: 50rpx;
height: 50rpx;
top: 20rpx;
left: 27rpx;
position: absolute;
}

.swiper {
position: relative;
}

.swiper-item {
font-size: 75rpx;
margin: 0 auto;
width: 690rpx;
font-weight: 400;
text-align: center;
color: rgba(255, 255, 255, 1);
margin-bottom: 40rpx;
}

.swiper-item > view {
background: #bbe6ff;
border-radius: 12rpx;
padding: 6rpx;
}

.tche {
width: 157rpx;
height: 180rpx;
line-height: 180rpx;
margin: 0 auto;
float: right;
border-radius: 12rpx;
background: #56bdf8;
border: 3px solid #fff;
position: relative;
}

.txt01 {
width: 497rpx;
height: 180rpx;
line-height: 180rpx;
float: left;
background: #56bdf8;
border-radius: 12rpx;
border: 3px solid #fff;
text-align: center;
}

.passNumberBox {
position: relative;
background-color: white;
/* border-bottom: 1rpx #f8f8f8 solid; */
margin-top: 30rpx;
}

.passNumber {
width: 400rpx;
height: 100rpx;
font-size: 32rpx;
font-weight: 600;
line-height: 100rpx;
left: 55rpx;
position: absolute;
}

.nopay {
height: 80rpx;
line-height: 80rpx;
font-weight: 400;
}

.number {
font-size: 48rpx;
color: #1f2d3d;
letter-spacing: 0;
line-height: 52rpx;
font-weight: 400;
}

.manage_plate {
width: 65%;
border-radius: 80rpx;
margin: 40rpx auto 0;
background: #02c0ff;
color: #fff;
text-align: center;
font-size: 30rpx;
}

.button_active {
opacity: 0.6;
}

.btn001 {
margin: 0 auto;
width: 120rpx;
height: 180rpx;
line-height: 180rpx;
font-size: 32rpx;
font-weight: 400;
color: rgba(255, 255, 255, 1);
background: none;
}

.parkPrice {
font-size: 30rpx;
font-weight: 500;
}

.deleteButton {
font-size: 28rpx;
line-height: 50rpx;
height: 50rpx;
top: 50%;
right: 30rpx;
position: absolute;
transform: translate(0, -50%);
color: white;
background-color: #00c0ff !important;
}

.deleteButton button {
background-color: #00c0ff !important;
}

.detail {
width: 32rpx;
height: 32rpx;
right: 34rpx;
top: 32rpx;
position: absolute;
}

.detail image {
width: 44rpx;
height: 44rpx;
position: absolute;
left: 0;
top: 0;
}

.voucher {
width: 90%;
padding: 0 5%;
background-color: #fff;
/* background-color: #cbcbcb; */
height: 80rpx;
position: relative;
margin: 0 0 12rpx 0;
border-bottom: 2rpx #fff solid;
display: flex;
justify-content: space-between;;
}

.textV1, .textV2 {
height: 58rpx;
width: 100rpx;
padding-top: 26rpx;
text-align: center;
line-height: 80rxp;
font-size: 24rpx;
color: #333;
}

.textV2 {
margin-top: 0rpx;
padding: 0;
/* background-color: rgb(0, 192, 255); */
border-radius: 10rpx;
width: 300rpx;
height: 80rpx;
line-height: 80rpx;
font-size: 20rpx;
border: 4rpx #fff solid;
margin-bottom: 20rpx;
}

.textV3 {
width: 225rpx;
}

/* .textV1{
position: absolute;
left: 10rpx;
top: 22rpx;
} */

/* .textV2{
position: absolute;
top: 22rpx;
right: 80rpx;
} */

.choice {
width: 80rpx;
height: 80rpx;
position: relative;
}

.choice image {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 30rpx;
height: 30rpx;
}

.buy-view {
background: #fff;
position: relative;
padding-top: 10rpx;
height: 98rpx;
bottom: 0rpx;
margin-top: 50rpx;
/* left: 0;
right: 0; */
}

.buy {
background: #00c0ff;
height: 88rpx;
width: 98%;
margin: 0 auto;
color: #fff;
font-size: 36rpx;
line-height: 88rpx;
border-radius: 6rpx;
position: relative;
z-index: 100;
}

.borderBox {
width: 690rpx;
margin: 20rpx auto 0;
}

.carmanage {
position: relative;
width: 690rpx;
margin: 0 auto;
height: 88rpx;
line-height: 88rpx;
border-bottom: 1rpx solid #eee;
}

.carmanage .fr {
font-size: 28rpx;
color: #888;
letter-spacing: 1.16rpx;
text-align: right;
margin-right: 40rpx;
}

.fl {
float: left;
}

.fr {
float: right;
}

.carmanage .fl {
width: 400rpx;
}

.carmanage .fr image {
position: absolute;
top: 0;
right: 0;
bottom: 0;
margin: auto;
width: 44rpx;
height: 44rpx;
}

.carmanage image {
width: 40rpx;
vertical-align: middle;
}

.mycar {
display: inline-block;
margin-left: 20rpx;
font-size: 30rpx;
color: #333;
letter-spacing: 1.16rpx;
}

.num {
display: inline-block;
font-size: 26rpx;
color: #999;
letter-spacing: 0;
margin-left: 20rpx;
}

.orderBox {
width: 100%;
height: 100rpx;
border-top: 1rpx #f8f8f8 solid;
position: relative;
display: flex;
}

.priceBox {
width: 420rpx;
}

.priceBox text {
margin-top: 35rpx;
color: #333;
font-size: 24rpx;
margin-left: 50rpx;
display: block;
}

.payBox {
width: 250rpxpx;
}

.payBox button {
width: 230rpx;
border: 0;
font-size: 32rpx;
margin-top: 13rpx;
margin-right: 20rpx;
background-color: lightgreen;
color: white;
}

input {
outline: none;
border: none;
list-style: none;
}

button::after {
border: none;
}

.right {
width: 328rpx;
}

.textRight {
margin-left: 0;
margin-right: 25rpx;
text-align: right;
font-size: 30rpx !important;
color: red !important;
}

.buyBox {
width: 750rpx;
height: 88rpx;
position: absolute;
left: 0;
top: 0;
z-index: 100000000;
}

.myCars image {
width: 44rpx;
height: 44rpx;
vertical-align: middle;
margin-right: 14rpx;
}

.myCars {
font-size: 34rpx;
color: #02c0ff;
letter-spacing: 0;
text-align: center;
padding-top: 58rpx;
}

.dots {
position: absolute;
left: 0;
right: 0;
bottom: 19rpx;
display: flex;
justify-content: center;
height: 19rpx;
background: #fff;
}

.dots .dot {
margin: 0 8rpx;
width: 32rpx;
height: 14rpx;
background: #fff;
border-radius: 8rpx;
transition: all 0.6s;
}

.dots .dot.active {
width: 49rpx;
height: 4rpx;
background: rgba(86, 189, 248, 1);
border-radius: 6rpx;
}

+ 29
- 28
pages/passCar/couponList/couponList.wxml ファイルの表示

@@ -3,41 +3,42 @@
<i-tabs class='tabs' current="{{ current_scroll }}" scroll bindchange="handleChangeScroll">
<i-tab class='i-tab' wx:for="{{tabs}}" wx:key="unique" key="{{item.key}}" title="{{item.name}}"></i-tab>
</i-tabs>
<view>
<view style='padding-top:120rpx;'>
<view class="nocoupon" wx:if="{{list.length==0}}">
<!-- <image src="./../../../assets/img/cou.png" mode="widthFix" /> -->
<text>暂无优惠券可用</text>
<navigator url="/pages/index/index" open-type="switchTab" hover-class="other-navigator-hover">
<button>去领券</button>
<image src="./../../../assets/img/coupon.png" mode="widthFix" />
<text class="txt001">请您敬请期待</text>
<text class='txt002'>我们正在筹备一大波优惠活动</text>
<navigator class='nav' url="/pages/index/index" open-type="switchTab" hover-class="other-navigator-hover">
<button hover-class='active'>前往首页看看</button>
</navigator>
</view>
<view class='section' wx:for='{{list}}' wx:key='{{index}}' bindtap="gotouse" data-quancode="{{item.id}}" >
<view class='detail_msg'>
<view class='logo'>
<image src='{{item.coverImg}}'></image>
</view>
<view class='info'>
<view>
<text>{{item.title}}</text>

<view class='section' wx:for='{{list}}' wx:key='{{index}}' bindtap="gotouse" data-quancode="{{item.id}}" data-couponorderstatus="{{item.couponOrderStatus}}">
<view class='mms'>
<view class='detail_msg'>
<view class='logo'>
<image mode="aspectFill" src='{{item.coverImg}}'></image>
</view>
<view>
<text class="txt1">有效期至:</text>
<text class="txt2">{{item.expiredTime}}</text>
<view class='info'>
<view class='title'>
<text>{{item.title}}</text>
</view>
<view class='subtitle'>
<text>{{item.subTitle}}</text>
</view>
<view hover-class='active' wx:if="{{item.couponOrderStatus==0}}" class="btns">去使用</view>
<view hover-class='active' wx:elif="{{item.couponOrderStatus==1||item.couponOrderStatus==2||item.couponOrderStatus==3}}" class="btns">查看</view>
</view>
<view wx:if="{{item.couponOrderStatus==0}}" class="btns" bindtap="gotouse" data-quancode="{{item.id}}">查看详情</view>
<view wx:elif="{{item.couponOrderStatus==1||item.couponOrderStatus==2||item.couponOrderStatus==3}}" class="btns">查看</view>
</view>
<image class="liness" src='./../../../assets/img/liness.png' mode="widthFix"></image>
<view class='expiretime'>
<text class="txt1">有效期至:</text>
<text class="txt2">{{item.expiredTime}}</text>
</view>
</view>
</view>
<!-- <view class='imageBox'>
<image src="../../../assets/img/parkCoupon.png"></image>
<text class='text2'>2小时免费停车券</text>
<text class='text5'>京A88888</text>
<text class='text3'>2018-08-30</text>
<text class='text6'>至</text>
<text class='text4'>2018-09-30</text>
<text class='text1'>朝阳大悦城</text>
</view> -->
<view class="loading" wx:if="{{loading}}">
<image src="./../../../assets/img/loading.gif" mode="widthFix"></image>{{content}}
</view>
</view>
</view>

+ 131
- 91
pages/passCar/couponList/couponList.wxss ファイルの表示

@@ -1,12 +1,18 @@
.market {
width: 100%;
height: 100%;
/* background: #f5f5f5; */
}
.tabs {
width: 100% !important;
height: 88rpx;
text-align: center;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100000;
}
.i-tab {
@@ -15,37 +21,61 @@
}
.section {
margin-top: 2%;
position: relative;
}
.section:nth-of-type(1) {
margin-top: 30rpx;
.mms {
width: 690rpx;
height: 170rpx !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 {
width: 92%;
height: 202rpx !important;
background: #fff;
display: flex;
padding: 0 4%;
margin-top: 2%;
border-bottom: 1px solid #ededed;
padding-bottom: 26rpx;
}
.expiretime {
display: block;
width: 100%;
text-align: left;
text-indent: 1em;
height: 40rpx;
line-height: 36rpx;
font-size: 22rpx;
color: #333;
letter-spacing: 0;
}
.liness {
display: block;
width: 100%;
}
.logo {
width: 348rpx;
height: 184rpx;
width: 60rpx;
height: 60rpx;
border: 1px solid #f8f8f8;
border-radius: 50rpx;
display: block;
margin-left: 20rpx;
}
.logo image {
width: 100%;
height: 100%;
border-radius: 15rpx;
width: 60rpx;
height: 60rpx;
border-radius: 50%;
}
.info view:nth-child(1) {
display: flex;
justify-content: space-between;
padding: 0 4%;
padding: 0 2%;
}
.info {
@@ -53,16 +83,29 @@
}
.info view:nth-child(1) text {
font-size: 30rpx;
margin-top: 10rpx;
color: #666;
font-size: 32rpx;
line-height: 32rpx;
height: 32rpx;
color: #333;
letter-spacing: 0;
width: 400rpx;
display: inline-block;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.info view:nth-child(2) {
color: #ff3434;
font-size: 24rpx;
padding-left: 4%;
margin-top: 1%;
padding-left: 2%;
font-size: 22rpx;
color: #333;
letter-spacing: 0;
margin-top: 6rpx;
display: inline-block;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 400rpx;
}
.info view:nth-child(3) {
@@ -70,96 +113,93 @@
}
.btns {
width: 200rpx;
height: 60rpx;
line-height: 60rpx;
position: absolute;
right: 57rpx;
top: 38rpx;
width: 120rpx;
height: 48rpx;
line-height: 48rpx;
text-align: center;
background: #00c0ff;
color: #fff;
float: right;
border-radius: 15rpx;
border: 2rpx solid #02c0ff;
border-radius: 60rpx;
color: #02c0ff;
font-size: 28rpx;
margin-top: 20rpx;
}
.active {
color: #fff;
background: #02c0ff;
}
.txt1 {
font-size: 22rpx;
color: #999;
color: #333;
letter-spacing: 0;
}
.txt2 {
font-size: 22rpx;
color: #f96563;
.nocoupon image {
width: 300rpx;
display: block;
margin: 3% auto 0;
}
.nocoupon image{
width: 203rpx;
.txt001 {
display: block;
margin: 200rpx auto 0;
line-height: 48rpx;
font-size: 34rpx;
color: #333;
letter-spacing: 0;
text-align: center;
}
.nocoupon text{
.txt002 {
display: block;
margin-top: 1%;
font-size: 28rpx;
color: #999;
letter-spacing: 0;
line-height: 40rpx;
text-align: center;
font-size:30rpx;
color: #00C0FF;
}
.nocoupon button{
background: #00C0FF;
.nocoupon button {
background: #00c0ff;
color: #fff;
font-style: 30rpx;
width: 70%;
margin: 30rpx auto 0;
}
.imageBox,imageBox image{
width: 100%;
height: 250rpx;
margin-top: 30rpx;
position: relative;
}
image{
width: 100%;
height: 100%;
}
.text1{
color: white;
font-size: 28rpx;
position: absolute;
top: 32rpx;
left: 50rpx;
border-radius: 60rpx;
}
.text2{
color: white;
font-size: 40rpx;
position: absolute;
top: 90rpx;
left: 50rpx;
.loading {
text-align: center;
height: 80rpx;
line-height: 80rpx;
font-size: 26rpx;
color: #999;
}
.text3{
color: white;
font-size: 32rpx;
position: absolute;
top: 60rpx;
right: 50rpx;
.loading image {
width: 60rpx;
height: 60rpx;
vertical-align: middle;
margin-right: 10rpx;
}
.text4{
color: white;
font-size: 32rpx;
position: absolute;
top: 150rpx;
right: 50rpx;
.active {
opacity: 0.6;
}
.text5{
color: white;
font-size: 28rpx;
.nav {
position: absolute;
bottom: 32rpx;
left: 50rpx;
bottom: 3.3%;
left: 0;
right: 0;
margin: auto;
width: 670rpx;
border-radius: 60rpx;
background: #02c0ff;
font-size: 32px;
color: #fff;
text-align: center;
line-height: 32px;
}
.text6{
color: white;
font-size: 24rpx;
position: absolute;
top: 110rpx;
right: 120rpx;
font-weight: 600;
}

+ 95
- 99
pages/passCar/passCar.js ファイルの表示

@@ -11,19 +11,19 @@ Page({
tcq: 2,
flag: "",
extraData: {},
desc:'',
title:'',
desc: '',
title: '',
indicatorDots: true,
autoplay: false,
interval: 5000,
duration: 1000,
current: 0,
list:[]
list: []
},
/**
* 轮播图
*/
onSlideChangeEnd: function (e) {
* 轮播图
*/
onSlideChangeEnd: function(e) {
var that = this;
console.log(e);
console.log(e.detail.current);
@@ -34,7 +34,7 @@ Page({
})
console.log(that.data.listCardNum);
},
gotomange:function(){
gotomange: function() {
wx.navigateTo({
url: '/pages/managelicenseplate/managelicenseplate',
})
@@ -54,11 +54,11 @@ Page({
var that = this;
that.getList();
Http.get({
url: config.api.getWeapNote,
data: {
appId: config.weapp.AppId,
}
})
url: config.api.getWeapNote,
data: {
appId: config.weapp.AppId,
}
})
.then(res => {
console.log(res.data.weapNote);
let weapNote = JSON.parse(res.data.weapNote);
@@ -72,7 +72,6 @@ Page({

onShow: function(options) {
var that = this;
console.log("车牌号");
if (that.data.addCar) {
// 绑车牌
if (app.globalData.carLogin) {
@@ -111,9 +110,10 @@ Page({
//券绑定车牌
bindCoupon: function(e) {
var that = this;
wx.showLoading({
title: '加载中...',
});
if (that.data.couponList.length > 0) {
console.log("00000000000000");
console.log(e.currentTarget.dataset.checkbind);
/**
* 如果1 已经绑定
* 0 没有绑定
@@ -125,9 +125,9 @@ Page({
}
var etcpData = {
etcpToken: app.globalData.etcpToken,
carNumber: that.data.payList[0].carNumber
? that.data.payList[0].carNumber
: "",
carNumber: that.data.payList[0].carNumber ?
that.data.payList[0].carNumber :
"",
couponOrderId: that.data.couponList[0].id
};
console.log(etcpData);
@@ -138,20 +138,16 @@ Page({
var postCouponData = app.globalData.parkVendor == 1 ? etcpData : tjdData;

Http.post({
url: config.api.getCarCoupon,
data: postCouponData
})
url: config.api.getCarCoupon,
data: postCouponData
})
.then(res => {
that.setData({
flag: "1"
});
// that.initUsrCarList()
wx.showModal({
title: "提示",
showCancel: false,
content: "车牌绑定优免券成功!",
success: function(res) {}
});
that.initUsrCarList();
console.log("loading")
wx.hideLoading();
})
.catch(error => {
console.log(error);
@@ -162,11 +158,10 @@ Page({
}
});
} else {
console.log("1111111111111111111");
wx.hideLoading();
that.setData({
flags: "alreadybind"
});
console.log(that.data.flags);
}
},

@@ -203,9 +198,9 @@ Page({
};
var postData = app.globalData.parkVendor == 1 ? etcpData : tjdData;
Http.post({
url: config.api.bindCar,
data: postData
})
url: config.api.bindCar,
data: postData
})
.then(res => {
console.log(res);
that.setData({
@@ -229,79 +224,82 @@ Page({
});
});
},
unbindCar: function(carNum) {
var that = this;
var postData =
app.globalData.parkVendor == 1
? {
etcpToken: app.globalData.etcpToken,
carNumber: carNum
}
: {
carNumber: carNum
};
Http.post({
url: config.api.unbindCar,
data: postData
})
.then(res => {
console.log(res);
that.initUsrCarList();
wx.showModal({
title: "提示",
showCancel: false,
content: "解绑车牌成功!",
success: function() {}
});
})
.catch(error => {
wx.showModal({
title: "提示",
showCancel: false,
content: "解绑车牌失败!",
success: function() {}
});
});
},
unbindCarBtn: function(e) {
console.log(e);
var that = this;
var carNum = e.currentTarget.dataset.car;
that.unbindCar(carNum);
},
// unbindCar: function(carNum) {
// var that = this;
// var postData =
// app.globalData.parkVendor == 1
// ? {
// etcpToken: app.globalData.etcpToken,
// carNumber: carNum
// }
// : {
// carNumber: carNum
// };
// Http.post({
// url: config.api.unbindCar,
// data: postData
// })
// .then(res => {
// console.log(res);
// that.initUsrCarList();
// wx.showModal({
// title: "提示",
// showCancel: false,
// content: "解绑车牌成功!",
// success: function() {}
// });
// })
// .catch(error => {
// wx.showModal({
// title: "提示",
// showCancel: false,
// content: "解绑车牌失败!",
// success: function() {}
// });
// });
// },
// unbindCarBtn: function(e) {
// console.log(e);
// var that = this;
// var carNum = e.currentTarget.dataset.car;
// that.unbindCar(carNum);
// },
getStopFeeItem: function(carItem, i) {
var that = this;
var postData =
app.globalData.parkVendor == 1
? {
etcpToken: app.globalData.etcpToken,
carNumber: carItem.carNumber
}
: {
carNumber: carItem.carNumber,
outCarId: carItem.outCarId
};
app.globalData.parkVendor == 1 ?
{
etcpToken: app.globalData.etcpToken,
carNumber: carItem.carNumber
} :
{
carNumber: carItem.carNumber,
outCarId: carItem.outCarId
};
var stopFee = "carList[" + i + "].stopFee";
var extraData = "carList[" + i + "].extraData";
console.log(extraData);
var extraDataStr = { params: { CarNumber: carItem.carNumber } };
var extraDataStr = {
params: {
CarNumber: carItem.carNumber
}
};
that.setData({
extraData: extraDataStr
});
Http.post({
url: config.api.getCarStopFee,
data: postData
})
url: config.api.getCarStopFee,
data: postData
})
.then(res => {
/**
* 停车费用
*/
that.setData({
[stopFee]: res.data,
[extraData]: extraDataStr,
buttonBox: res.data.parkingFee
}),
console.log("res>>>" + JSON.stringify(that.data.buttonBox));
[stopFee]: res.data,
[extraData]: extraDataStr,
buttonBox: res.data.parkingFee
})
})
.catch(error => {
console.log(error);
@@ -313,7 +311,6 @@ Page({
for (var i = 0; i < that.data.carList.length; i++) {
that.getStopFeeItem(that.data.carList[i], i);
}
// console.log(JSON.stringify(getStopFeeItem))
},

initPark: function() {
@@ -323,6 +320,7 @@ Page({
url: config.api.getParkInfo,
data: {}
}).then(res => {
console.log(res);
that.setData({
park: res.data
});
@@ -338,12 +336,10 @@ Page({
that.setData({
carList: res.data
});
console.log("aaaa" + JSON.stringify(that.data.carList));
});
},
init: function() {
var that = this;

app.parkInitCallback = token => {
that.initPark();
that.initUsrCarList();
@@ -371,17 +367,17 @@ Page({
}
},
// 用户点击右上角分享
onShareAppMessage: function () {
onShareAppMessage: function() {
return {
title: this.data.title,
desc: this.data.desc,
success: function (res) {
success: function(res) {
wx.showToast({
title: "分享成功",
duration: 1000,
icon: "success"
});
}
}}
});
}
}
});

+ 51
- 47
pages/passCar/passCar.wxml ファイルの表示

@@ -10,40 +10,29 @@
<image src='./../../assets/img/jian.png' mode='widthFix'></image>
</view>
</view>
<!-- <view class='headBox'>
<image src='../../assets/img/timg.jpg'></image>
<view class='headBox'>
<view class='numberBox'>
<view class='titleName'>{{park.addr}}</view>
<view class='carLocation price'>停车费:
<label class='locationNumber'>{{park.stopFee}}</label>
<view class='titleName clearfix'>{{park.addr}}</view>
<view class='price clearfix'>
<text class='fl'>总车位:</text>
<label class='locationNumber fr'>{{park.number}}个</label>
</view>
<view class='carLocation'>总车位:
<label class='locationNumber'> {{park.number}}个</label>
<view class='price clearfix'>
<text class='fl'>停车费:</text>
<label class='locationNumber fr'>{{park.stopFee}}</label>
</view>
</view>
</view> -->


</view>
<view class='borderBox'>
<view class='passNumberBox' wx:for='{{carList}}' wx:key='{{index}}'>
<!-- <view class='passUp'>
<view class='passNumber' bindtap='orderPay'>
<text class='number'>{{item.carNumber}}</text>
</view>
<button class='deleteButton' bindtap='unbindCarBtn' data-car='{{item.carNumber}}'>解绑</button>
</view> -->

<!-- 有车牌的时候显示 -->
<view class='passUp'>
<view class='addicense_active'>
<swiper current="{{current}}" bindchange='onSlideChangeEnd' class='swiper' circular='true' indicator-dots='{{indicatorDots}}' autoplay='{{autoplay}}' interval='2000' duration='2000'>
<block wx:for="{{carList}}" wx:key="unique">
<swiper-item class="swiper-item" data-memberKeyword='{{item.carNumber}}'>
<view class='clearfix'>
<view class='clearfix clearfix1'>
<text class='txt01'>{{item.carNumber}}</text>
<view class='tche' hover-class='button_active' bindtap='gotopay'>
<button class='btn001'>停车缴费</button>
</view>
</view>
</swiper-item>
</block>
@@ -55,23 +44,37 @@
</view>
</view>
</view>
<!-- 没有车牌的时候显示 -->
<view class='borderUp' bindtap='jumpToAdd' wx:if="{{carList.length==0}}">
<view class="myCars">
<image src='./../../assets/img/add.png' mode="widthFix"></image>我的爱车</view>
<text class='carNumber'>车辆入场后,才能绑车牌</text>
</view>
</view>
</view>

<view class='orderBox' wx:if='{{item.stopFee.parkingFee}}'>
<view class='priceBox'>
<text>入场时间:{{item.stopFee.entranceTime}}</text>
</view>
<view class='priceBox right'>
<text class="textRight">停车费用:¥{{item.stopFee.parkingFee}}</text>
</view>
</view>
<!-- <view class='orderBox clearfix' wx:if='{{item.stopFee.parkingFee}}'> -->
<view class='orderBox' wx:key="{{index}}" wx:for="{{carList}}" wx:if="{{carList.length>0&&3>=carList.length}}">
<view class='clearfix'>
<text class="fl">入场时间:</text>
<text class='fr time'>{{item.stopFee.entranceTime}}</text>
</view>
<view class='coupon clearfix'>
<text class='fl'><text class='jians'>惠</text>优免券:</text>
<text class='fr'>2小时优免券</text>
</view>
<view class="clearfix">
<text class="fl">待缴费用:</text>
<text class='fr'>{{item.stopFee.parkingFee}}<text class='yuan'>元</text></text>
</view>

<view bindtap='bindCoupon' class="buy-view" wx:if="{{buttonBox&&carList.length>0&&3>=carList.length}}">
<navigator class='buyBox' target="miniProgram" open-type="navigate" app-id="wx192b7d2e8dcbefd0" path="" extra-data='{{extraData}}' version="release">
</navigator>
<button class='buy' hover-class='active'>立即支付</button>
</view>
</view>

<!-- 没有车牌的时候显示 -->
<view class='borderUp' bindtap='jumpToAdd' wx:if="{{carList.length==0}}">
<view class="myCars">
<image src='./../../assets/img/add.png' mode="widthFix"></image>我的爱车</view>
<text class='carNumber'>车辆入场后,才能绑车牌</text>
</view>
<view class='bottonBox'>
<navigator url="/pages/passCar/couponList/couponList">
<view class='textStyle' bindtap='showquan'>
@@ -82,16 +85,7 @@
</view>
</view>
</navigator>
<!-- <view class='passNumberBox' wx:for='{{couponList}}' wx:key='{{index}}'>
<view class='voucher' wx:if="!{{tcq==1}}">
<text class='textV1 textV3'>{{item.title}}</text>
<text class='textV2'>{{item.merchantName}}</text>
<text class='textV1'>{{'- '+item.price/100+'小时'}}</text>
<view class='choice'>
<image src='../../assets/img/choiced.png'></image>
</view>
</view>
</view> -->

<view class='textStyle' bindtap='passc'>
<image src='../../assets/img/wenti.png'></image>
常见问题
@@ -100,9 +94,19 @@
</view>
</view>
</view>
<view bindtap='bindCoupon' class="buy-view app-border-top" wx:if="{{buttonBox}}">
<view class='passNumberBox' wx:for='{{couponList}}' wx:key='{{index}}'>
<view class='voucher' wx:if="!{{tcq==1}}">
<text class='textV1 textV3'>{{item.title}}</text>
<text class='textV2'>{{item.merchantName}}</text>
<text class='textV1'>{{'- '+item.price/100+'小时'}}</text>
<view class='choice'>
<image src='../../assets/img/choiced.png'></image>
</view>
</view>
</view>
<!-- <view bindtap='bindCoupon' class="buy-view app-border-top" wx:if="{{buttonBox}}">
<navigator wx:if="{{flag==1||flags=='alreadybind'}}" class='buyBox' target="miniProgram" open-type="navigate" app-id="wx192b7d2e8dcbefd0" path="" extra-data='{{extraData}}' version="trial">
</navigator>
<button class='buy'>立即支付</button>
</view>
</view> -->
</view>

+ 120
- 64
pages/passCar/passCar.wxss ファイルの表示

@@ -5,11 +5,9 @@ page {
}

.headBox {
margin-top: 13rpx;
width: 750rpx;
height: 210rpx;
width: 690rpx;
margin: 30rpx auto 0;
box-sizing: border-box;
padding: 30rpx 40rpx;
display: flex;
background-color: white;
}
@@ -21,20 +19,15 @@ page {
border-radius: 16rpx;
}

.numberBox {
width: 400rpx;
height: 150rpx;
}

.titleName {
line-height: 60rpx;
height: 60rpx;
width: 100%;
line-height: 35rpx;
height: 35rpx;
color: #666;
font-size: 32rpx;
width: 400rpx;
word-break: break-all;
text-align: justify;
margin-bottom: 10rpx;
font-weight:bold;
}

::-webkit-scrollbar {
@@ -44,17 +37,48 @@ page {
}

.carLocation, .locationNumber {
width: 400rpx;
display: inline-block;
height: 40rpx;
color: #666;
color: #999;
font-size: 24rpx;
line-height: 30rpx;
}

.price {
.carLocation {
width: 206rpx;
font-size: 28rpx;
}

.yuan {
display: inline-block;
margin-left: 6rpx;
color: #333;
}

.price {
font-size: 28rpx;
color: #999;
width: 100%;
margin-top: 10rpx;
line-height: 40rpx;
}
.time{
color: #999!important;
}
.price .fl{
width: 15%;
color: #666;
}
.price .fr{
width: 85%;
color: #999;
line-height: 40rpx;
font-size: 26rpx;
}
.titleName .fr{
color: #999;
font-size: 27rpx;
}
.borderBox {
width: 750rpx;
margin-top: 26rpx;
@@ -68,6 +92,7 @@ page {
border-radius: 16rpx;
padding-bottom: 40rpx;
height: 202rpx;
margin-top: 47rpx;
}

.addicense_active {
@@ -136,9 +161,9 @@ page {
}

.textStyle image {
width: 50rpx;
height: 50rpx;
top: 20rpx;
width: 40rpx;
height: 40rpx;
top: 27rpx;
left: 27rpx;
position: absolute;
}
@@ -146,6 +171,7 @@ page {
.swiper {
position: relative;
margin: 0 auto;
height: 262rpx;
}

.swiper-item {
@@ -156,41 +182,44 @@ page {
color: rgba(255, 255, 255, 1);
}

.swiper-item > view {
.swiper-item .clearfix1 {
background: #bbe6ff;
border-radius: 12rpx;
padding: 6rpx;
}

.tche {
width: 157rpx;
height: 211rpx;
width: 685rpx;
height: 88rpx;
line-height: 88rpx;
margin: 0 auto;
float: right;
border-radius: 12rpx;
background: #56bdf8;
border: 3px solid #fff;
border-radius: 60rpx;
position: relative;
margin-top: 30rpx;
}

.txt01 {
width: 497rpx;
height: 211rpx;
line-height: 211rpx;
width: 667rpx;
height: 180rpx;
line-height: 180rpx;
float: left;
background: #56bdf8;
border-radius: 12rpx;
border: 3px solid #fff;
text-align: center;
font-size: 60rpx;
}

.passNumberBox {
position: relative;
background-color: white;
/* border-bottom: 1rpx #f8f8f8 solid; */
margin-top: 30rpx;
margin-top: 60rpx;
}
.numberBox{
width: 100%;
}

.passNumber {
width: 400rpx;
height: 100rpx;
@@ -226,19 +255,17 @@ page {
}

.button_active {
opacity: .6;
opacity: 0.6;
}

.btn001 {
height: 88rpx;
line-height: 88rpx;
margin: 0 auto;
width: 120rpx;
height: 75rpx;
font-size: 32rpx;
font-size: 30rpx;
font-weight: 400;
color: rgba(255, 255, 255, 1);
line-height: 38rpx;
color: #fff;
background: none;
margin-top: 67rpx;
}

.parkPrice {
@@ -348,30 +375,40 @@ page {
.buy-view {
background: #fff;
position: relative;
padding-top: 10rpx;
height: 98rpx;
bottom: 0rpx;
height: 88rpx;
margin-top: 50rpx;
/* left: 0;
right: 0; */
}

.buy {
background: #00c0ff;
background: #56bdf8;
height: 88rpx;
width: 98%;
margin: 0 auto;
color: #fff;
font-size: 36rpx;
line-height: 88rpx;
border-radius: 6rpx;
border-radius: 60rpx;
position: relative;
z-index: 100;
}

.buyBox {
height: 88rpx;
width: 98%;
position: absolute;
left: 0;
top: 0;
z-index: 100000000;
border-radius:60rpx;
}

.active {
opacity: 0.6;
}

.borderBox {
width: 690rpx;
margin: 20rpx auto 0;
margin: 50rpx auto 0;
}

.carmanage {
@@ -435,23 +472,20 @@ page {
}

.orderBox {
width: 100%;
height: 100rpx;
border-top: 1rpx #f8f8f8 solid;
padding: 0 20rpx;
position: relative;
display: flex;
}

.priceBox {
width: 420rpx;
display: inline-block;
width: 355rpx;
}

.priceBox text {
margin-top: 35rpx;
color: #333;
font-size: 24rpx;
margin-left: 50rpx;
font-size: 28rpx;
display: block;
text-align: left;
}

.payBox {
@@ -479,24 +513,16 @@ button::after {
}

.right {
display: inline-block;
width: 328rpx;
}

.textRight {
margin-left: 0;
margin-right: 25rpx;
text-align: right;
text-align: left;
font-size: 30rpx !important;
color: red !important;
}

.buyBox {
width: 750rpx;
height: 88rpx;
position: absolute;
left: 0;
top: 0;
z-index: 100000000;
color: #333 !important;
}

.myCars image {
@@ -540,3 +566,33 @@ button::after {
background: rgba(86, 189, 248, 1);
border-radius: 6rpx;
}

.coupon {
font-size: 28rpx;
color: #666;
}

.orderBox .fl {
line-height: 60rpx;
font-size: 28rpx;
color: #333;
}

.orderBox .fr {
line-height: 60rpx;
font-size: 28rpx;
color: #FF4949;
}

.jians {
font-size: 22rpx;
display: inline-block;
width: 34rpx;
height: 34rpx;
text-align: center;
background: orange;
line-height: 34rpx;
color: #fff;
border-radius: 6rpx;
margin-right: 6rpx;
}

+ 4
- 4
utils/HttpBasics.js ファイルの表示

@@ -98,10 +98,10 @@ class HttpBasics {
resolve(res.data);
} else {
// wx.hideLoading();
wx.showToast({
title: res.data.message,
image:'./../../assets/img/fail.png'
});
// wx.showToast({
// title: res.data.message,
// image:'./../../assets/img/fail.png'
// });
reject(res.data);
}
}


読み込み中…
キャンセル
保存