Browse Source

博物馆预约 弹窗

master
nige 3 years ago
parent
commit
6882a26ad1
  1. 3
      pages/component/myCalendar/index.js
  2. 4
      pages/component/myCalendar/index.wxml
  3. 9
      pages/order/components/date/index.wxml
  4. 22
      pages/order/movie/index.js
  5. 27
      pages/order/movie/index.wxml
  6. 99
      pages/order/movie/index.wxss
  7. 1
      pages/order/orderList/index.wxss
  8. 24
      pages/user/cartlist/list.js
  9. 21
      pages/user/cartlist/list.wxml
  10. 65
      pages/user/cartlist/list.wxss
  11. 17
      utils/filter.wxs

3
pages/component/myCalendar/index.js

@ -144,6 +144,9 @@ Component({
onTapDay:function(e){ onTapDay:function(e){
let date = e.currentTarget.dataset.date; let date = e.currentTarget.dataset.date;
console.log(date) console.log(date)
if (date.stock==-1||date.stock==null) {
return
}
if(!date || date.price===null || date.stock==null || date.stock==0) return; if(!date || date.price===null || date.stock==null || date.stock==0) return;
this.triggerEvent("onTapDay",date) this.triggerEvent("onTapDay",date)
}, },

4
pages/component/myCalendar/index.wxml

@ -14,8 +14,8 @@
<view class='date-head{{(!dates[item.date] || dates[item.date].stock<=0 || dates[item.date].stock==null || dates[item.date].price==null)?" disable":""}}'> <view class='date-head{{(!dates[item.date] || dates[item.date].stock<=0 || dates[item.date].stock==null || dates[item.date].price==null)?" disable":""}}'>
<view>{{item.dateNum}}</view> <view>{{item.dateNum}}</view>
</view> </view>
<view class="date-tip" wx:if="{{dates[item.date] && dates[item.date].price!==null && dates[item.date].stock!=0 && dates[item.date].stock!==null}}">¥{{dates[item.date].price==0 || isKj?'免费':(dates[item.date].price/100)}}</view> <view class="date-tip" wx:if="{{dates[item.date] && dates[item.date].price!==null && dates[item.date].stock!=0 && dates[item.date].stock!==null&& dates[item.date].stock!==-1}}">¥{{dates[item.date].price==0 || isKj?'免费':(dates[item.date].price/100)}}</view>
<!-- <view class="date-tip disable" wx:if="{{dates[item.date] && (dates[item.date].stock==null || dates[item.date].price==null)}}">不可定</view> --> <!-- <view class="date-tip disable" wx:if="{{dates[item.date] && (dates[item.date].stock==null || dates[item.date].stock==-1)}}">不可定</view> -->
<view class="date-tip disable" wx:if="{{dates[item.date] && dates[item.date].stock==0}}">{{dates[item.date].tipText?dates[item.date].tipText:'售罄'}}</view> <view class="date-tip disable" wx:if="{{dates[item.date] && dates[item.date].stock==0}}">{{dates[item.date].tipText?dates[item.date].tipText:'售罄'}}</view>
<!-- <view class='date-weight'>{{item.weight}}</view> --> <!-- <view class='date-weight'>{{item.weight}}</view> -->
</view> </view>

9
pages/order/components/date/index.wxml

@ -1,10 +1,11 @@
<!--pages/order/components/date/index.wxml--> <!--pages/order/components/date/index.wxml-->
<wxs src="../../../../utils/filter.wxs" module="tool" />
<view class="date-box"> <view class="date-box">
<view class="box-title">使用日期</view> <view class="box-title">使用日期</view>
<view class="dates-boxes"> <view class="dates-boxes">
<view bindtap="changeDate" data-date="{{item}}" class="date-item{{activeDate.date==item.date?' active':''}}{{(item.stock<=0 || item.stock==null || item.price==null)?' disable':''}}" wx:for="{{threeDays}}"> <view bindtap="changeDate" data-date="{{item}}" class="date-item{{activeDate.date==item.date?' active':''}}{{(item.stock<=0 || item.stock==null || item.price==null)?' disable':''}}" wx:for-index="index" wx:for="{{threeDays}}">
<view>{{item.date}}</view> <view>{{tool.showAllSeldDate(item.date,index)}}</view>
<view class="price" wx:if="{{ !isTeam && item.stock==-1}}">不可定</view> <view class="price" wx:if="{{ !isTeam && item.stock==-1 || item.stock==null}}">不可定</view>
<view class="price" wx:elif="{{ !isTeam && item.stock!=0 && item.stock!=null && item.price!=null}}">{{item.price==0 || kjIdCom?'免费':('¥'+item.price/100)}}</view> <view class="price" wx:elif="{{ !isTeam && item.stock!=0 && item.stock!=null && item.price!=null}}">{{item.price==0 || kjIdCom?'免费':('¥'+item.price/100)}}</view>
<!-- <view class="price" wx:if="{{item.stock==null || item.price==null}}">不可定</view> --> <!-- <view class="price" wx:if="{{item.stock==null || item.price==null}}">不可定</view> -->
<view class="price" wx:if="{{item.stock==0}}">{{item.tipText?item.tipText:'售罄'}}</view> <view class="price" wx:if="{{item.stock==0}}">{{item.tipText?item.tipText:'售罄'}}</view>
@ -18,7 +19,7 @@
</view> </view>
</view> </view>
<view class="date-times" wx:if="{{timelist.length>0}}"> <view class="date-times" wx:if="{{timelist.length>0}}">
<view bindtap="selectTime" data-index="{{index}}" wx:for="{{timelist}}" class="textOver date-time{{timeIndex==index?' active':''}}{{item.stock_number>0?'':' disable'}}">{{item.start_time}}-{{item.end_time}}<text wx:if="{{(item.stock_number>=10)}}"> 有票</text><text wx:elif="{{item.stock_number<=0}}"> 售罄</text><text wx:elif="{{item.stock_number==-1}}">不可定</text><text wx:else>({{'余票'+item.stock_number}})</text></view> <view bindtap="selectTime" data-index="{{index}}" wx:for="{{timelist}}" class="textOver date-time{{timeIndex==index?' active':''}}{{item.stock_number>0?'':' disable'}}">{{item.start_time}}-{{item.end_time}}<text wx:if="{{(item.stock_number>=10)}}"> 有票</text><text wx:elif="{{item.stock_number==0}}"> 售罄</text><text wx:elif="{{item.stock_number==-1}}"> 不可定</text><text wx:else>({{'余票'+item.stock_number}})</text></view>
</view> </view>
<!-- <view class="date-times" wx:elif="{{activeDate.is_time_stock}}"> <!-- <view class="date-times" wx:elif="{{activeDate.is_time_stock}}">
<view>已售罄</view> <view>已售罄</view>

22
pages/order/movie/index.js

@ -17,7 +17,9 @@ Page({
prizeId:null, prizeId:null,
num:0, num:0,
sPrice:0, sPrice:0,
hideMx:false hideMx:false,
showModel:false,
agree:false
}, },
/** /**
@ -65,6 +67,13 @@ Page({
}, },
order:function(){ order:function(){
if (!this.data.agree) {
wx.showToast({
title: '请您先同意购票退改规则',
icon:'none'
})
return
}
if(!this.data.tel){ if(!this.data.tel){
wx.showToast({ wx.showToast({
title: '请输入手机号', title: '请输入手机号',
@ -127,6 +136,17 @@ Page({
hideMx:!this.data.hideMx hideMx:!this.data.hideMx
}) })
}, },
closeModel(){
this.setData({
showModel:!this.data.showModel,
agree:false
})
},
changeAgree(){
this.setData({
agree:!this.data.agree
})
},
//获取最高优惠券 //获取最高优惠券
getNewCoupon(e){ getNewCoupon(e){
this.setData({ this.setData({

27
pages/order/movie/index.wxml

@ -32,8 +32,6 @@
<input value="{{tel}}" type="number" bindinput="changeTel" placeholder="输入您的手机号"></input> <input value="{{tel}}" type="number" bindinput="changeTel" placeholder="输入您的手机号"></input>
</view> </view>
<coupon bind:getNewCoupon='getNewCoupon' money="{{price}}" sku="{{product.product.sku_info.id}}"></coupon> <coupon bind:getNewCoupon='getNewCoupon' money="{{price}}" sku="{{product.product.sku_info.id}}"></coupon>
<view class="fix-info {{!hideMx?'hide':''}}"> <view class="fix-info {{!hideMx?'hide':''}}">
<view class="info-item"> <view class="info-item">
<view> <view>
@ -74,5 +72,28 @@
<view>总计优惠{{coupon?coupon.activity.money/100:0}}元</view> <view>总计优惠{{coupon?coupon.activity.money/100:0}}元</view>
</view> </view>
<view class="tip" bindtap="mingxi">明细</view> <view class="tip" bindtap="mingxi">明细</view>
<view class="btn" bindtap="order">立即付款</view> <view class="btn" bindtap="closeModel">立即付款</view>
</view>
<view class="mask" wx:if="{{showModel}}">
<view class="model">
<image bindtap="closeModel" class="close-img" src="https://static.ticket.sz-trip.com/uploads/20230725/e63b0a4ec4063bb92767690bbf857bb9.png" mode="" />
<view class="model-title">
退改须知
</view>
<view class="model-content">
<text>该产品一经购买,不支持退票/改签,</text> 您的订单页面会显示【不支持退票】【不支持改签】提示,此时 <text>平台无法为您处理退。</text> 请您提前规划好出行时间,按时观影。
</view>
<view class="select-btn" bindtap="changeAgree">
<image src="{{agree?'https://static.ticket.sz-trip.com/uploads/20230725/9eda0f72b566f904b40c1a493b3c4c44.png':'https://static.ticket.sz-trip.com/uploads/20230725/0f6634ada1fc348a10a818b6f77239cd.png'}}" mode="aspectFill" />
<view class="select-text">
我已认可此规则
</view>
</view>
<view class="btn-send {{agree?'send':''}}" bindtap="order">
继续购票
</view>
<view class="btn-close" bindtap="closeModel">
暂不购票
</view>
</view>
</view> </view>

99
pages/order/movie/index.wxss

@ -184,3 +184,102 @@ page {
.fix-info.hide{ .fix-info.hide{
bottom:-300rpx; bottom:-300rpx;
} }
.mask {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
}
.model{
width: 600rpx;
min-height: 667rpx;
background: #FFFFFF;
border-radius: 20rpx;
position: absolute;
box-sizing: border-box;
}
.model-title{
text-align: center;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
margin-top: 40rpx;
box-sizing: border-box;
}
.model-content{
margin-top:44rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: rgba(102, 102, 102, 1);
padding: 0 45rpx;
line-height: 51rpx;
}
.btn-send{
width: 440rpx;
height: 87rpx;
color: #FFFFFF;
background: #CCCCCC;
border-radius: 43rpx;
margin: 0 auto;
margin-top: 40rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
line-height: 87rpx;
text-align: center;
}
.model-content text{
color: #D62828;
font-weight: bold;
}
.select-btn{
display: flex;
align-items: center;
justify-content: center;
margin-top:90rpx;
}
.select-btn image{
width: 33.33rpx;
height: 33.33rpx;
}
.select-text{
margin-left: 19rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #666666;
}
.btn-close{
position: absolute;
bottom: -70rpx;
text-align: center;
width: 100%;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
.close-img{
width: 33.33rpx;
height: 33.33rpx;
position: absolute;
right: 32rpx;
top: 30rpx;
}
.btn-send.send{
background: #D62828;
color: #FFFFFF;
}

1
pages/order/orderList/index.wxss

@ -61,5 +61,4 @@ page{
align-items: center; align-items: center;
background-color: #fff; background-color: #fff;
margin: 30rpx 25rpx; margin: 30rpx 25rpx;
} }

24
pages/user/cartlist/list.js

@ -23,7 +23,8 @@ Page({
flag: false, //判断订单是否同时有商品和票 flag: false, //判断订单是否同时有商品和票
isCar: 'single', //判断是否购物车 isCar: 'single', //判断是否购物车
showQrCode: false, showQrCode: false,
wxqrcode: null wxqrcode: null,
showModel:false
}, },
/** /**
@ -222,6 +223,27 @@ Page({
}) })
}, },
checkOrder(){
console.log(this.data.list);
let list = this.data.list,product = []
list.map(item => {
if (item.checked) {
product.push(item)
}
})
if (product.length>1) {
this.setData({
showModel:true
})
}else{
this.order()
}
},
closeModel(){
this.setData({
showModel:false
})
},
touchStart(e) { //移动前点击的位置 touchStart(e) { //移动前点击的位置
console.log(e) console.log(e)
// 在开始触摸时将所有startTouchMove设置为flase,对当前的为true // 在开始触摸时将所有startTouchMove设置为flase,对当前的为true

21
pages/user/cartlist/list.wxml

@ -34,7 +34,7 @@
<view class="bottom-price">¥{{allPrice/100}} </view> <view class="bottom-price">¥{{allPrice/100}} </view>
<view style="margin-right: 10rpx; font-size: 29rpx;color: #000;">起</view> <view style="margin-right: 10rpx; font-size: 29rpx;color: #000;">起</view>
<view style="flex:1"></view> <view style="flex:1"></view>
<view class="btn" bindtap="order">去下单</view> <view class="btn" bindtap="checkOrder">去下单</view>
</view> </view>
<view class="fixed-bottom" wx:if="{{list.length>0&&manageFlag===true}}"> <view class="fixed-bottom" wx:if="{{list.length>0&&manageFlag===true}}">
@ -44,3 +44,22 @@
</view> </view>
<code showModel="{{showQrCode}}" qrcode = "{{wxqrcode}}"> <code showModel="{{showQrCode}}" qrcode = "{{wxqrcode}}">
</code> </code>
<view class="mask" wx:if="{{showModel}}">
<view class="model">
<view class="model-title">
购买须知
</view>
<view class="model-content">
<view>多产品订单一经购买</view>
<view style="color:rgba(196, 0, 0, 1);margin-top: 10rpx;">不支持部分退改</view>
</view>
<view class="btn-list">
<view class="model-btn" bindtap="closeModel">
取消
</view>
<view class="model-btn" style="color:#0B898E;border-left:#D8D8D8 solid 1rpx;" bindtap="order">
确定
</view>
</view>
</view>
</view>

65
pages/user/cartlist/list.wxss

@ -175,3 +175,68 @@ page {
background: white; background: white;
margin-right:40rpx ; margin-right:40rpx ;
} }
.mask {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
}
.model{
width: 561rpx;
min-height: 449rpx;
background: #FFFFFF;
border-radius: 13rpx;
position: absolute;
box-sizing: border-box;
}
.model-title{
text-align: center;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
margin-top: 32rpx;
box-sizing: border-box;
}
.model-content{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
flex-wrap: wrap;
margin-top: 100rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
}
.btn-list{
height: 106rpx;
width: 100%;
position: absolute;
bottom: 0;
border-top: 1rpx solid rgba(216, 216, 216, .99);
padding: 10rpx;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: center;
}
.model-btn{
width: 50%;
text-align: center;
height: 86rpx;
line-height: 86rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
}

17
utils/filter.wxs

@ -25,11 +25,26 @@ var gotoUrl = function(item){
str += "/index?id="+item.id; str += "/index?id="+item.id;
return str; return str;
} }
// 价格日历显示返回
var showAllSeldDate = function (date, index) {
// return date.substring(5, 10)
switch (index) {
case 0:
return '今天' + date.substring(5, 10)
case 1:
return '明天' + date.substring(5, 10)
case 2:
return '后天' + date.substring(5, 10)
default:
return date.substring(5, 10)
}
}
var toFix = function(value) { var toFix = function(value) {
return (value / 100).toFixed(2); return (value / 100).toFixed(2);
}; };
module.exports = { module.exports = {
formateRichText:formateRichText, formateRichText:formateRichText,
gotoUrl:gotoUrl, gotoUrl:gotoUrl,
toFix:toFix toFix:toFix,
showAllSeldDate:showAllSeldDate
}; };
Loading…
Cancel
Save