@@ -3,6 +3,7 @@ | |||
"pages/index/index", | |||
"index/index", | |||
"index/searchbar", | |||
"pages/store/index", | |||
"index/passCar", | |||
"index/user", | |||
"pages/searchbar/searchbar", | |||
@@ -57,6 +57,13 @@ Component({ | |||
wx.makePhoneCall({ | |||
phoneNumber: e.target.dataset.merchantlinkphone | |||
}); | |||
}, | |||
gotoDoorLists(){ | |||
console.log(this.properties.merchantVoList) | |||
let merchantVoList = JSON.stringify(this.properties.merchantVoList); | |||
wx.navigateTo({ | |||
url: '/pages/store/index?merchantVoList=' + merchantVoList, | |||
}) | |||
} | |||
}, | |||
ready: function () { | |||
@@ -1,4 +1,4 @@ | |||
<view class='applyshop'>适用门店</view> | |||
<!-- <view class='applyshop'>适用门店</view> | |||
<view class='posi' style='overflow:{{hidden}};height:{{height}}'> | |||
<view class='posi_logo' wx:for="{{merchantVoList}}" wx:key="index"> | |||
<view bindtap='gotoDetail' data-id='{{item.id}}'> | |||
@@ -16,4 +16,13 @@ | |||
<image wx:if="{{item.linkLinePhone}}" bindtap='phone' data-merchantLinkPhone='{{item.linkLinePhone}}' class="tel" src="{{teljpgUrl}}" mode="widthFix" /> | |||
</view> | |||
</view> | |||
<view class='bottom' bindtap='more' wx:if="{{showMore}}">{{more}}</view> | |||
<view class='bottom' bindtap='more' wx:if="{{showMore}}">{{more}}</view> --> | |||
<view class='notes'> | |||
<view> | |||
<text>适用门店</text> | |||
</view> | |||
<view> | |||
<text bindtap='gotoDoorLists'>查看</text> | |||
</view> | |||
</view> |
@@ -73,4 +73,47 @@ | |||
margin: auto; | |||
width: 50rpx; | |||
height: 50rpx; | |||
} | |||
.notes view:nth-child(1) { | |||
height: 87rpx; | |||
line-height: 87rpx; | |||
background: #fff; | |||
border-top: 1px solid #f9f9f9; | |||
} | |||
.notes { | |||
width:100%; | |||
background: #FFF; | |||
padding-bottom: 30rpx; | |||
} | |||
.active { | |||
opacity: 0.6; | |||
} | |||
.notes view:nth-child(1) text { | |||
color: #333; | |||
letter-spacing: 0; | |||
font-size: 30rpx; | |||
height: 70rpx; | |||
line-height: 70rpx; | |||
} | |||
.notes view:nth-child(1) { | |||
width: 92%; | |||
margin: 0 auto; | |||
} | |||
.notes view:nth-child(2) { | |||
display: flex; | |||
flex-direction: column; | |||
width: 92%; | |||
margin: 0 auto; | |||
} | |||
.notes view:nth-child(2)>text { | |||
font-size: 24rpx; | |||
color: #919191; | |||
letter-spacing: 0; | |||
line-height: 42rpx; | |||
} |
@@ -1,157 +1,5 @@ | |||
<navbar text="停车"></navbar> | |||
<view class='container' wx:if="{{ifHaveCarModular == 1}}" style="padding-top:{{navigationBarHeight}}"> | |||
<view class='top'> | |||
<view class='header'> | |||
<image src='{{parkUrl}}' mode="widthFix"></image>{{park.addr}} | |||
(<text style='color:#f86661;'>{{park.number}}</text>车位)</view> | |||
</view> | |||
<view class='borderBox'> | |||
<view class='passNumberBox'> | |||
<!-- 有车牌的时候显示 --> | |||
<view class='passUp'> | |||
<view class='addicense_active' wx:if='{{carList.length>0}}'> | |||
<swiper current="{{current}}" bindchange='onSlideChangeEnd' class='swiper swiper-box' circular='true' indicator-dots='{{indicatorDots}}' autoplay='{{autoplay}}' interval='1500' duration='1500'> | |||
<block wx:for='{{carList}}' wx:key="unique"> | |||
<swiper-item class="swiper-item" data-memberKeyword='{{item.carNumber}}'> | |||
<view class='clearfix clearfix1'> | |||
<text class='txt01'>{{item.carNumber}}</text> | |||
</view> | |||
</swiper-item> | |||
</block> | |||
</swiper> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class='orderBox' wx:if="{{stopFees.orderId&&carList.length>0&&3>=carList.length}}"> | |||
<view class='clearfix'> | |||
<text class="fl">入场时间:</text> | |||
<text class='fr time'>{{stopFees.entranceTime}}</text> | |||
</view> | |||
<view class='clearfix'> | |||
<text class="fl">停车时长:</text> | |||
<text class='fr time'>{{timecha}}</text> | |||
</view> | |||
<!-- <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> | |||
<view class="fr"> | |||
<text wx:if="{{quantitle}}">{{quantitle}}</text> | |||
<text wx:else>{{totalTicketNum}}张可用</text> | |||
<image class='jiant' src='{{jianUrl}}' mode='widthFix'></image> | |||
</view> | |||
</view> | |||
<view class="clearfix"> | |||
<text class="fl">待缴费用:</text> | |||
<text class='fr' style='color:#ff4949;'>{{stopFees.remainingFee}}元</text> | |||
</view> | |||
<!-- 停车费用大于0 --> | |||
<view class="buy-view" wx:if="{{stopFees.orderId&&stopFees.remainingFee>0}}"> | |||
<navigator bindfail="bindfail" path="pages/pay/order-pay-open/main" wx:if="{{canIUse}}" class='buy' target="miniProgram" open-type="navigate" app-id="{{etcpAppId}}" extra-data='{{extraData}}' version="{{etcpVersion}}"> | |||
立即支付 | |||
</navigator> | |||
<view wx:if="{{!canIUse}}" class='buy' bindtap='gotoetcp'>立即支付</view> | |||
</view> | |||
<!-- 停车费用为0 --> | |||
<view wx:if="{{stopFees.remainingFee==0}}" class='buy' bindtap='paySuccess'>立即支付</view> | |||
</view> | |||
<!-- 没有车牌的时候显示 --> | |||
<view class='borderUp' bindtap='jumpToAdd' wx:if="{{carList.length==0}}"> | |||
<view class="myCars"> | |||
<!-- <image src='{{addUrl}}' mode="widthFix"></image> --> | |||
添加车牌 | |||
</view> | |||
<text class='carNumber'>车辆入场后,才能绑车牌</text> | |||
</view> | |||
<view class='bottonBox'> | |||
<view class='textStyle' bindtap='showquan'> | |||
<image src='{{tingcheHr}}'></image> | |||
我的停车券 | |||
<view class='detail'> | |||
<image src='{{jianUrl}}'></image> | |||
</view> | |||
</view> | |||
<view class='textStyle' bindtap='gotomange'> | |||
<image src='{{guanliHr}}'></image> | |||
车辆管理 | |||
<view class='detail'> | |||
<image src='{{jianUrl}}'></image> | |||
</view> | |||
</view> | |||
<view class='textStyle' bindtap='gotodetail' data-rule='{{park.stopFee}}'> | |||
<image src='{{jiaofei}}'></image> | |||
缴费规则 | |||
<view class='detail'> | |||
<image src='{{jianUrl}}'></image> | |||
</view> | |||
</view> | |||
<view class='textStyle' bindtap='passc'> | |||
<image src='{{wentiHr}}'></image> | |||
常见问题 | |||
<view class='detail'> | |||
<image src='{{jianUrl}}'></image> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="con" wx:if="{{ifHaveCarModular == 0}}" style="padding-top:{{navigationBarHeight}}"> | |||
<view class="con" style="padding-top:{{navigationBarHeight}}"> | |||
<image class="img" src="{{parkUrl}}" mode="widthFix"></image> | |||
<text class="txt1">智慧停车即将上线</text> | |||
<text class="txt2">敬请期待</text> | |||
</view> | |||
<!-- --> | |||
<view bindtap="closeTicketModal" class="gray-bg" catchtouchmove="cancelMove" 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="/index/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> |
@@ -0,0 +1,66 @@ | |||
// index/store/index.js | |||
Page({ | |||
/** | |||
* 页面的初始数据 | |||
*/ | |||
data: { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面加载 | |||
*/ | |||
onLoad: function (options) { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面初次渲染完成 | |||
*/ | |||
onReady: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面显示 | |||
*/ | |||
onShow: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面隐藏 | |||
*/ | |||
onHide: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面卸载 | |||
*/ | |||
onUnload: function () { | |||
}, | |||
/** | |||
* 页面相关事件处理函数--监听用户下拉动作 | |||
*/ | |||
onPullDownRefresh: function () { | |||
}, | |||
/** | |||
* 页面上拉触底事件的处理函数 | |||
*/ | |||
onReachBottom: function () { | |||
}, | |||
/** | |||
* 用户点击右上角分享 | |||
*/ | |||
onShareAppMessage: function () { | |||
} | |||
}) |
@@ -0,0 +1,66 @@ | |||
// index/store/index.js.js | |||
Page({ | |||
/** | |||
* 页面的初始数据 | |||
*/ | |||
data: { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面加载 | |||
*/ | |||
onLoad: function (options) { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面初次渲染完成 | |||
*/ | |||
onReady: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面显示 | |||
*/ | |||
onShow: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面隐藏 | |||
*/ | |||
onHide: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面卸载 | |||
*/ | |||
onUnload: function () { | |||
}, | |||
/** | |||
* 页面相关事件处理函数--监听用户下拉动作 | |||
*/ | |||
onPullDownRefresh: function () { | |||
}, | |||
/** | |||
* 页面上拉触底事件的处理函数 | |||
*/ | |||
onReachBottom: function () { | |||
}, | |||
/** | |||
* 用户点击右上角分享 | |||
*/ | |||
onShareAppMessage: function () { | |||
} | |||
}) |
@@ -0,0 +1,3 @@ | |||
{ | |||
"usingComponents": {} | |||
} |
@@ -0,0 +1,2 @@ | |||
<!--index/store/index.js.wxml--> | |||
<text>index/store/index.js.wxml</text> |
@@ -0,0 +1 @@ | |||
/* index/store/index.js.wxss */ |
@@ -0,0 +1,3 @@ | |||
{ | |||
"usingComponents": {} | |||
} |
@@ -0,0 +1,2 @@ | |||
<!--index/store/index.wxml--> | |||
<text>index/store/index.wxml</text> |
@@ -0,0 +1 @@ | |||
/* index/store/index.wxss */ |
@@ -93,7 +93,7 @@ | |||
</view> | |||
</view> | |||
<!-- 适用门店 --> | |||
<store merchantVoList="{{merchantVoList}}"></store> | |||
<store merchantVoList="{{merchantVoList}}"></store> | |||
<view class='notes'> | |||
<view> | |||
<text>购买须知</text> | |||
@@ -0,0 +1,66 @@ | |||
// pages/index/store/index.js | |||
Page({ | |||
/** | |||
* 页面的初始数据 | |||
*/ | |||
data: { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面加载 | |||
*/ | |||
onLoad: function (options) { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面初次渲染完成 | |||
*/ | |||
onReady: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面显示 | |||
*/ | |||
onShow: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面隐藏 | |||
*/ | |||
onHide: function () { | |||
}, | |||
/** | |||
* 生命周期函数--监听页面卸载 | |||
*/ | |||
onUnload: function () { | |||
}, | |||
/** | |||
* 页面相关事件处理函数--监听用户下拉动作 | |||
*/ | |||
onPullDownRefresh: function () { | |||
}, | |||
/** | |||
* 页面上拉触底事件的处理函数 | |||
*/ | |||
onReachBottom: function () { | |||
}, | |||
/** | |||
* 用户点击右上角分享 | |||
*/ | |||
onShareAppMessage: function () { | |||
} | |||
}) |
@@ -0,0 +1,3 @@ | |||
{ | |||
"usingComponents": {} | |||
} |
@@ -0,0 +1,2 @@ | |||
<!--pages/index/store/index.wxml--> | |||
<text>pages/index/store/index.wxml</text> |
@@ -0,0 +1 @@ | |||
/* pages/index/store/index.wxss */ |
@@ -0,0 +1,74 @@ | |||
const imgurl = require("../../utils/imgurl"); | |||
const navigationBarHeight = (getApp().statusBarHeight + 44) + 'px' | |||
Page({ | |||
/** | |||
* 组件的初始数据 | |||
*/ | |||
data: { | |||
navigationBarHeight, | |||
teljpgUrl: imgurl.teljpg.url, | |||
showMore: true, | |||
more: "点击查看更多", | |||
hidden: "hidden", | |||
height: "", | |||
merchantVoList:[] | |||
}, | |||
/** | |||
* 跳转到门店列表的详情页面 | |||
*/ | |||
gotoDetail(e) { | |||
wx.navigateTo({ | |||
url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}` | |||
}) | |||
}, | |||
// 点击查看更多 | |||
more: function () { | |||
let that = this; | |||
if (that.data.more == '点击查看更多') { | |||
this.setData({ | |||
hidden: "", | |||
height: 'auto!important', | |||
more: "点击收起", | |||
showMore: true | |||
}) | |||
} else { | |||
that.setData({ | |||
hidden: "hidden", | |||
height: 4 * 140 + 'rpx', | |||
more: "点击查看更多", | |||
showMore: true | |||
}) | |||
} | |||
}, | |||
phone: function (e) { | |||
let that = this; | |||
wx.makePhoneCall({ | |||
phoneNumber: e.target.dataset.merchantlinkphone | |||
}); | |||
}, | |||
/** | |||
* 生命周期函数--监听页面加载 | |||
*/ | |||
onLoad: function (options) { | |||
if (options.merchantVoList){ | |||
this.setData({ | |||
merchantVoList: JSON.parse(options.merchantVoList) | |||
}) | |||
let merchantVoList = this.data.merchantVoList; | |||
if (merchantVoList.length > 0) { | |||
if (merchantVoList.length <= 4) { | |||
this.setData({ | |||
height: merchantVoList.length * 140 + 'rpx', | |||
showMore: false, | |||
hidden: "hidden" | |||
}) | |||
} else if (merchantVoList && merchantVoList.length > 4) { | |||
this.setData({ | |||
height: 4 * 140 + 'rpx' | |||
}) | |||
} | |||
} | |||
} | |||
} | |||
}) |
@@ -0,0 +1,8 @@ | |||
{ | |||
"navigationBarTitleText": "", | |||
"navigationBarBackgroundColor": "#F4F5F9", | |||
"navigationBarTextStyle": "black", | |||
"usingComponents": { | |||
"navbar": "../../../../components/navbar/navbar" | |||
} | |||
} |
@@ -0,0 +1,19 @@ | |||
<navbar back home text="适用门店"></navbar> | |||
<view class='posi' style="padding-top:{{navigationBarHeight}};"> | |||
<view class='posi_logo' wx:for="{{merchantVoList}}" wx:key="index"> | |||
<view bindtap='gotoDetail' data-id='{{item.id}}'> | |||
<image src='{{item.merchantImgUrl}}'></image> | |||
</view> | |||
<view bindtap='gotoDetail' data-id='{{item.id}}'> | |||
<view class='name'>{{item.merchantName}}</view> | |||
<view class='shopVoList'> | |||
<view wx:for="{{item.shopVoList}}" wx:key="{{index}}" wx:for-item="itemName"> | |||
<text>{{itemName.buildingName}}{{itemName.floorName}}--{{itemName.shopNumber}}</text> | |||
<text class='douhao' wx:if="{{item.shopVoList.length>1}}">,</text> | |||
</view> | |||
</view> | |||
</view> | |||
<image wx:if="{{item.linkLinePhone}}" bindtap='phone' data-merchantLinkPhone='{{item.linkLinePhone}}' class="tel" src="{{teljpgUrl}}" mode="widthFix" /> | |||
</view> | |||
</view> | |||
<view class='bottom' bindtap='more' wx:if="{{showMore}}">{{more}}</view> |
@@ -0,0 +1,119 @@ | |||
.applyshop { | |||
font-size: 30rpx; | |||
height: 70rpx; | |||
line-height: 70rpx; | |||
text-indent: 1em; | |||
color: #333; | |||
background: #fff; | |||
} | |||
.posi { | |||
position: relative; | |||
width: 100%; | |||
background: #FFF; | |||
} | |||
.posi_logo { | |||
position: relative; | |||
width: 92%; | |||
display: flex; | |||
padding: 20rpx 0; | |||
background: #fff; | |||
margin: 0 auto; | |||
} | |||
.posi_logo view:nth-child(1) { | |||
border-radius: 16rpx; | |||
} | |||
.posi_logo view:nth-child(1) image { | |||
display: block; | |||
width: 100rpx; | |||
height: 100rpx; | |||
border-radius: 16rpx; | |||
margin-right: 16rpx; | |||
border: 1px solid #e5e5e5; | |||
} | |||
.name{ | |||
font-size: 32rpx; | |||
color: #333; | |||
letter-spacing: 0; | |||
width: 500rpx; | |||
white-space: nowrap; | |||
text-overflow: ellipsis; | |||
overflow: hidden; | |||
} | |||
.posi_logo view:nth-child(2) view { | |||
font-size: 32rpx; | |||
color: #333; | |||
letter-spacing: 0; | |||
} | |||
.shopVoList { | |||
display: flex !important; | |||
padding-left: 0 !important; | |||
flex-direction: row !important; | |||
} | |||
.shopVoList text { | |||
font-size: 20rpx !important; | |||
color: #b8b8b8 !important; | |||
} | |||
.bottom{ | |||
background: #fff; | |||
color: #666; | |||
text-align: center; | |||
padding: 20rpx 0; | |||
font-size: 32rpx; | |||
} | |||
.tel { | |||
position: absolute; | |||
right: 0; | |||
top: 0; | |||
bottom: 0; | |||
margin: auto; | |||
width: 50rpx; | |||
height: 50rpx; | |||
} | |||
.notes view:nth-child(1) { | |||
height: 87rpx; | |||
line-height: 87rpx; | |||
background: #fff; | |||
border-top: 1px solid #f9f9f9; | |||
} | |||
.notes { | |||
width:100%; | |||
background: #FFF; | |||
padding-bottom: 30rpx; | |||
} | |||
.active { | |||
opacity: 0.6; | |||
} | |||
.notes view:nth-child(1) text { | |||
color: #333; | |||
letter-spacing: 0; | |||
font-size: 30rpx; | |||
height: 70rpx; | |||
line-height: 70rpx; | |||
} | |||
.notes view:nth-child(1) { | |||
width: 92%; | |||
margin: 0 auto; | |||
} | |||
.notes view:nth-child(2) { | |||
display: flex; | |||
flex-direction: column; | |||
width: 92%; | |||
margin: 0 auto; | |||
} | |||
.notes view:nth-child(2)>text { | |||
font-size: 24rpx; | |||
color: #919191; | |||
letter-spacing: 0; | |||
line-height: 42rpx; | |||
} |