ソースを参照

[门店][修改]:[修改门店的列表展示]

newMall
meo 5年前
コミット
f7e4ac512c
22個のファイルの変更500行の追加156行の削除
  1. +1
    -0
      app.json
  2. +7
    -0
      components/store/index.js
  3. +11
    -2
      components/store/index.wxml
  4. +43
    -0
      components/store/index.wxss
  5. +1
    -153
      index/passCar.wxml
  6. +66
    -0
      index/store/index.js
  7. +66
    -0
      index/store/index.js.js
  8. +3
    -0
      index/store/index.js.json
  9. +2
    -0
      index/store/index.js.wxml
  10. +1
    -0
      index/store/index.js.wxss
  11. +3
    -0
      index/store/index.json
  12. +2
    -0
      index/store/index.wxml
  13. +1
    -0
      index/store/index.wxss
  14. +1
    -1
      pages/coupon/detail/index.wxml
  15. +66
    -0
      pages/index/store/index.js
  16. +3
    -0
      pages/index/store/index.json
  17. +2
    -0
      pages/index/store/index.wxml
  18. +1
    -0
      pages/index/store/index.wxss
  19. +74
    -0
      pages/store/index.js
  20. +8
    -0
      pages/store/index.json
  21. +19
    -0
      pages/store/index.wxml
  22. +119
    -0
      pages/store/index.wxss

+ 1
- 0
app.json ファイルの表示

@@ -3,6 +3,7 @@
"pages/index/index",
"index/index",
"index/searchbar",
"pages/store/index",
"index/passCar",
"index/user",
"pages/searchbar/searchbar",


+ 7
- 0
components/store/index.js ファイルの表示

@@ -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 () {


+ 11
- 2
components/store/index.wxml ファイルの表示

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

+ 43
- 0
components/store/index.wxss ファイルの表示

@@ -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
- 153
index/passCar.wxml ファイルの表示

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

+ 66
- 0
index/store/index.js ファイルの表示

@@ -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 () {

}
})

+ 66
- 0
index/store/index.js.js ファイルの表示

@@ -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 () {

}
})

+ 3
- 0
index/store/index.js.json ファイルの表示

@@ -0,0 +1,3 @@
{
"usingComponents": {}
}

+ 2
- 0
index/store/index.js.wxml ファイルの表示

@@ -0,0 +1,2 @@
<!--index/store/index.js.wxml-->
<text>index/store/index.js.wxml</text>

+ 1
- 0
index/store/index.js.wxss ファイルの表示

@@ -0,0 +1 @@
/* index/store/index.js.wxss */

+ 3
- 0
index/store/index.json ファイルの表示

@@ -0,0 +1,3 @@
{
"usingComponents": {}
}

+ 2
- 0
index/store/index.wxml ファイルの表示

@@ -0,0 +1,2 @@
<!--index/store/index.wxml-->
<text>index/store/index.wxml</text>

+ 1
- 0
index/store/index.wxss ファイルの表示

@@ -0,0 +1 @@
/* index/store/index.wxss */

+ 1
- 1
pages/coupon/detail/index.wxml ファイルの表示

@@ -93,7 +93,7 @@
</view>
</view>
<!-- 适用门店 -->
<store merchantVoList="{{merchantVoList}}"></store>
<store merchantVoList="{{merchantVoList}}"></store>
<view class='notes'>
<view>
<text>购买须知</text>


+ 66
- 0
pages/index/store/index.js ファイルの表示

@@ -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 () {

}
})

+ 3
- 0
pages/index/store/index.json ファイルの表示

@@ -0,0 +1,3 @@
{
"usingComponents": {}
}

+ 2
- 0
pages/index/store/index.wxml ファイルの表示

@@ -0,0 +1,2 @@
<!--pages/index/store/index.wxml-->
<text>pages/index/store/index.wxml</text>

+ 1
- 0
pages/index/store/index.wxss ファイルの表示

@@ -0,0 +1 @@
/* pages/index/store/index.wxss */

+ 74
- 0
pages/store/index.js ファイルの表示

@@ -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'
})
}
}
}
}
})

+ 8
- 0
pages/store/index.json ファイルの表示

@@ -0,0 +1,8 @@
{
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#F4F5F9",
"navigationBarTextStyle": "black",
"usingComponents": {
"navbar": "../../../../components/navbar/navbar"
}
}

+ 19
- 0
pages/store/index.wxml ファイルの表示

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

+ 119
- 0
pages/store/index.wxss ファイルの表示

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

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