Commit 9977ede34dd39fa5291b359c1bb992fae0f041dc

Authored by pengye
1 parent 601161d2

新版样式页面、样式调整

Showing 90 changed files with 4198 additions and 814 deletions
... ... @@ -64,7 +64,14 @@
"pages/customer/detail_owner_invitation_new",
"pages/me/invitation",
"pages/reserve/index_new",
"pages/reserve/sellerGift"
"pages/reserve/sellerGift",
"pages/reserveNew/collect",
"pages/reserveNew/index",
"pages/reserveNew/my",
"pages/reserveNew/itinerary",
"pages/reserveNew/personInfo",
"pages/reserveNew/verifyPhone",
"pages/reserveNew/coupon_sellerList"
],
"requiredPrivateInfos": [
"getLocation",
... ... @@ -177,6 +184,36 @@
"navigationBarTitleText": "周到安排",
"navigationBarTextStyle": "black"
},
"tabBar": {
"color": "#696969",
"selectedColor": "#ff5a0b",
"list": [
{
"pagePath": "pages/reserveNew/index",
"iconPath": "./pages/image/shop.png",
"selectedIconPath": "./pages/image/shopActive.png",
"text": "找店"
},
{
"pagePath": "pages/reserveNew/collect",
"iconPath": "./pages/image/collect.png",
"selectedIconPath": "./pages/image/collectActive.png",
"text": "收藏"
},
{
"pagePath": "pages/reserveNew/itinerary",
"iconPath": "./pages/image/itinerary.png",
"selectedIconPath": "./pages/image/itineraryActive.png",
"text": "行程"
},
{
"pagePath": "pages/reserveNew/my",
"iconPath": "./pages/image/my.png",
"selectedIconPath": "./pages/image/myActive.png",
"text": "我的"
}
]
},
"networkTimeout": {
"request": 10000,
"downloadFile": 10000
... ...
... ... @@ -5,23 +5,23 @@
<view class="view round margin-right-sm"
style="width: 60rpx;height: 60rpx; background-image: url('{{seller.seller_image}}');">
</view>
<view class="view text-cut flex-treble">
<view class="view text-lg text-cut Medium">{{seller.sellername}}</view>
<view class="view text-cut flex-treble text-bold">
<view class="view text-lg text-cut Medium text-bold">{{seller.sellername}}</view>
</view>
<view class="view margin-left-sm text-blue text-lg Medium">
<!-- <view class="view margin-left-sm text-blue text-lg Medium">
<image src="http://nosqn.colorcun.com/detail/x%20%2815%29.png" style="width:28rpx;height: 30rpx;"></image>
</view>
</view> -->
</view>
<view class="view margin-top">
<view class="view flex align-center" style="margin-bottom: 44rpx;">
<view class="view flex-sub bg-white Medium">预订时间</view>
<view class="view flex-treble text-bold" style="font-size: 36rpx;">
<view class="value">{{reserve.ddateStr}},{{ddate_Str}}</view>
<view class="view flex-sub bg-white Medium text-df">预订时间</view>
<view class="view flex-treble text-bold">
<view class="value text-df">{{reserve.ddateStr}},{{ddate_Str}}</view>
</view>
</view>
<view class="view flex align-center">
<view class="view flex-sub bg-white Medium" style="min-width: 140rpx;">包间类型</view>
<view class="view flex-treble text-bold text-cut" style="font-size: 36rpx;">
<view class="view flex-sub bg-white Medium text-df" style="min-width: 140rpx;">包间类型</view>
<view class="view flex-treble text-bold text-cut text-df">
{{util.replace(reserve.tables,',',',')}}
</view>
</view>
... ...
... ... @@ -129,7 +129,7 @@ Component({
if(action.type=="tap"){
if(res.data==0){
wx.navigateTo({
url:'/pages/pinglun/create?sid='+this.data.reserve.seller.id+'&oid='+this.data.reserve.id+'&sellername='+this.data.reserve.seller.sellername
url:'/pages/pinglun/createOpinion?sellid='+this.data.reserve.seller.id+'&oid='+this.data.reserve.id+'&sellerName='+this.data.reserve.seller.sellername+'&types=1'
})
}else{
wx.showToast({
... ...
<!--components/2.0/reserve/card.wxml-->
<wxs src="../../../../utils/util.wxs" module="util" />
<view class="view margin-lr-lg margin-top-lg solid radius padding padding-bottom-lg" style="box-shadow: 0px 0px 20rpx 0px #EEF0F2;">
<view class="view margin-lr-lg margin-top-lg solid padding padding-bottom-lg backF">
<view class="view flex padding-bottom solid-bottom align-start">
<view class="view round margin-right-sm"
style="width: 60rpx;height: 60rpx; background-image: url('{{reserve.seller.seller_image}}');">
</view>
<view class="view text-cut flex-treble">
<view class="view text-lg text-cut Medium" style="margin-bottom: 16rpx;">{{reserve.seller.sellername}}</view>
<view class="view text-lg text-cut text-bold" style="margin-bottom: 16rpx;">{{reserve.seller.sellername}}</view>
<view class="view text-df bg-white text-cut">{{reserve.seller.map_address}}</view>
</view>
<view class="view margin-left-sm text-blue text-lg Medium flex justify-end"
bindtap="asPhone"
style="min-width: 100rpx;">
<image src="http://nosqn.colorcun.com/detail/x%20%2811%29.png" style="width: 40rpx;height: 40rpx;"></image>
<image src="https://qn.colorcun.com/phoneIcon.png" style="width: 52rpx;height: 52rpx;"></image>
</view>
</view>
<view class="view">
<view class="view flex align-center margin-top">
<view class="view flex-sub bg-white Medium" style="min-width: 172rpx;">预订时间</view>
<view class="view flex-treble text-bold text-lg">
<view class="view flex-sub bg-white Medium texts">预订时间</view>
<view class="view flex-treble text-bold text-df heiView">
<view class="value" wx:if="{{reserve.hasOnlineReserve || reserve.hasUpdateDate || reserve.type==0}}">
<text wx:if="{{reserve.ddate>0}}">{{util.unixtoTime(reserve.ddate||'','MM月DD日')}} {{ddate_Str}}</text>
<text wx:if="{{reserve.ddate>0}}" class="font28r">{{util.unixtoTime(reserve.ddate||'','MM月DD日')}} {{ddate_Str}}</text>
</view>
<view class="value" wx:else="">{{reserve.rdateStr}}</view>
</view>
</view>
<view class="view flex align-center margin-top">
<view class="view flex-sub bg-white Medium" style="min-width: 172rpx;">包间类型</view>
<view class="view flex-treble text-bold text-cut text-lg">
<view class="view flex-sub bg-white Medium texts">包间类型</view>
<view class="view flex-treble text-bold text-cut text-df heiView font28r">
{{reserve.tableFirst||util.getRoomName(reserve.room_demand)}}
</view>
</view>
<view class="view flex align-center margin-top">
<view class="view flex-sub bg-white Medium" style="min-width: 172rpx;">预订人</view>
<view class="view flex-treble text-cut text-lg">
<view class="view flex-sub bg-white Medium texts">预订人</view>
<view class="view flex-treble text-cut text-df heiView font28r text1">
{{reserve.rname}}
</view>
</view>
<view class="view flex align-center margin-top">
<view class="view flex-sub bg-white Medium" style="min-width: 172rpx;">联系电话</view>
<view class="view flex-treble text-cut text-lg">
<view class="view flex-sub bg-white Medium texts">电话</view>
<view class="view flex-treble text-cut text-df heiView font28r text1">
{{reserve.phone?reserve.phoneMask:''}}
</view>
</view>
<view class="view flex align-center margin-top" wx:if="{{reserve.cusdem}}">
<view class="view flex-sub bg-white Medium" style="min-width: 172rpx;">备注信息</view>
<view class="view flex-treble text-cut text-lg">
<view class="view flex-sub bg-white Medium texts">备注</view>
<view class="view flex-treble text-cut text-df heiView font28r text1">
{{reserve.cusdem}}
</view>
</view>
... ...
/* components/2.0/reserve/card.wxss */
@import "/colorui/main.wxss";
.backF {
background: #fff;
margin: 12rpx;
border-radius: 10rpx;
}
.texts {
width: 112rpx;
text-align: justify;
height: 76rpx;
line-height: 76rpx;
margin-right: 40rpx;
}
.heiView,.heiView view {
height: 76rpx;
line-height: 76rpx;
}
.texts:after {
content: '';
display: inline-block;
width: 100%;
}
.text1 {
color: #696969;
}
\ No newline at end of file
... ...
... ... @@ -2,43 +2,43 @@
const STATUS=[
//'待确认',//0:待确认
{
icon:'http://nosqn.colorcun.com/detail/s%20%281%29.png',//http://nosqn.colorcun.com/detail/s%20%284%29.png
icon:'https://qn.colorcun.com/processingIcon.png',
title:'提交成功,商家处理中',//商家休息中
msg:'预计10分钟左右短信或微信告知您结果',//预计{rec_stime}左右营业并告知您结果
},
//'已预订',//1:已定座
{
icon:'http://nosqn.colorcun.com/detail/s%20%283%29.png',
icon:'https://qn.colorcun.com/bookSuccess.png',
title:'订座成功',
msg:'选择通知好友将订座信息分享给朋友',
},
//'已完成',//2:确认到店(到店)
{
icon:'http://nosqn.colorcun.com/detail/s%20%283%29.png',
icon:'https://qn.colorcun.com/bookSuccess.png',
title:'订座成功',
msg:'选择通知好友将订座信息分享给朋友',
},
//'已完成',//3:用餐完成(离店)
{
icon:'http://nosqn.colorcun.com/detail/s%20%283%29.png',
icon:'https://qn.colorcun.com/bookSuccess.png',
title:'已完成',
msg:'您的订单已完成',
},
//'已取消',//4:取消预定
{
icon:'http://nosqn.colorcun.com/detail/s%20%282%29.png',
icon:'https://qn.colorcun.com/bookCancel.png',
title:'已取消',
msg:'订单已取消,如有需要请重新预订',
},
//'已预订',//5:C端在线预定(分配包间)
{
icon:'http://nosqn.colorcun.com/detail/s%20%283%29.png',
icon:'https://qn.colorcun.com/bookSuccess.png',
title:'订座成功',
msg:'选择通知好友将订座信息分享给朋友',
},
//'已拒绝'//6:拒单
{
icon:'http://nosqn.colorcun.com/detail/s%20%282%29.png',
icon:'https://qn.colorcun.com/detail/bookCancel.png',
title:'包间已订满',
msg:'周到安排可帮您抢订,并推荐更多优质餐厅',
},
... ...
<!--components/2.0/reserve/detail/status.wxml-->
<view class="view padding-lg flex align-center">
<view class="view padding-lg flex align-center backF">
<image src="{{icon}}" style="width:88rpx;height: 88rpx;"></image>
<view class="view flex-treble margin-left">
<view class="txt-44-h text-bold">{{title}}</view>
... ...
/* components/2.0/reserve/detail/status.wxss */
@import "/colorui/main.wxss";
\ No newline at end of file
@import "/colorui/main.wxss";
.backF {
background: #fff;
margin: 12rpx;
border-radius: 10rpx;
}
\ No newline at end of file
... ...
... ... @@ -12,4 +12,6 @@
-webkit-tap-highlight-color: transparent;
color: inherit;
width: 100%;
position: relative;
top: -20rpx;
}
\ No newline at end of file
... ...
... ... @@ -42,19 +42,19 @@ Component({
type: String,
value: '',
},
top: {
modalTop: {
type: String,
value: ''
},
bottom: {
modalBottom: {
type: String,
value: ''
},
left: {
modaLeft: {
type: String,
value: ''
},
right: {
modalRight: {
type: String,
value: ''
},
... ...
... ... @@ -2,7 +2,7 @@
<!--遮罩层-->
<view class='mask' wx:if="{{showModalStatus}}" style="opacity:{{opacity}}"></view>
<!--弹出模态框-->
<view class='mymodal' wx:if="{{showModalStatus}}" style='width:{{width}};height:{{height}};top:{{top}};bottom:{{bottom}};left:{{left}};right:{{right}}'>
<view class='mymodal' wx:if="{{showModalStatus}}" style="width:{{width}};height:{{height}};top:{{modalTop}};bottom:{{modalBottom}};left:{{modaLeft}};right:{{modalRight}}">
<!-- 模态框title -->
<view class='mymodal-title'>
<slot name="modalName"></slot>
... ...
... ... @@ -21,7 +21,7 @@
<block wx:for="{{daylist}}" wx:for-item="itemlist" wx:for-index="indexlist" wx:key="{{indexlist}}">
<view class="calendar-week-day flex-lr">
<block wx:for="{{itemlist.list}}" wx:key="{{index}}">
<view class="{{item.overdate ? 'txt-e5e5e5' : ('font-font color-'+(index%6))}} calendar-day flex-cc font30r {{item.istoday ? 'today' : ''}} {{item.isselected ? 'bg-yellow white-font' : ''}}" data-date="{{item.date}}" catchtap="{{item.overdate ? '' : 'selectdate'}}">{{item.mark ? item.mark : item.day}}</view>
<view class="{{item.overdate ? 'txt-e5e5e5' : ('font-font color-'+(index%6))}} calendar-day flex-cc font30r {{item.istoday ? 'today' : ''}} {{item.isselected ? 'backColor white-font' : ''}}" data-date="{{item.date}}" catchtap="{{item.overdate ? '' : 'selectdate'}}">{{item.mark ? item.mark : item.day}}</view>
</block>
</view>
</block>
... ...
... ... @@ -58,13 +58,19 @@
box-sizing: border-box;
}
.calendar-day.today{
border:2rpx solid #42A5FF;
border:2rpx solid #fe6806;
}
.calendar-day.bg-yellow{
background: linear-gradient(180deg, #3BBFF5 0%, #57A0FF 100%);
border-width:0;
color: #ffffff!important;
}
.color-0{
color:#42A5FF;
.calendar-day.backColor {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
border-width:0;
color: #ffffff!important;
}
.color-0 {
color:#fe6806;
}
... ...
... ... @@ -2,7 +2,7 @@
<block wx:for="{{roomlist}}" wx:key="{{index}}">
<block wx:if="{{item.status==1}}">
<view class="room-item black-font {{((item.isFull && item.isFull==1) || (item.isorderFull && item.isorderFull==1)) && false ? 'bg-gray' : 'bg-yellow'}} {{item.selectnum>0?'border-yellow':''}} flex-vl" style="justify-content:center;" data-id="{{item.id}}" data-index="{{index}}" data-selectnum="{{item.selectnum ? item.selectnum : 0}}" data-fid="{{item.fid ? item.fid : null}}" catchtap="selectroom">
<view class="font30r font-bold" style="width:100%;padding-right:62rpx;box-sizing:border-box; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item.name}}</view>
<view class="font28r font-bold" style="text-align: center;width:100%;padding-right:62rpx;box-sizing:border-box; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{item.name}}</view>
<block wx:if="{{item.max && item.max!=0}}">
<view class="font24r room-more">最多可坐{{item.max}}人</view>
</block>
... ...
... ... @@ -18,7 +18,7 @@
border:2rpx solid #cccccc;
}
.border-yellow{
border:2rpx solid #42A5FF;
border:2rpx solid #fe6806;
}
.bg-yellow{
background: #ffffff;
... ... @@ -30,7 +30,7 @@
background: #F5F5F5;
}
.room-more{
margin-top: 10rpx;
margin-top: 10rpx;
}
.room-consume{
margin-top:6rpx;
... ... @@ -51,16 +51,15 @@
min-width:92rpx;
height:40rpx;
position: absolute;
right:0;
top:0;
border-bottom-left-radius: 10rpx;
right:8rpx;
top:8rpx;
border-radius: 10rpx;
padding:0 4rpx;
box-sizing: border-box;
}
.room-select.yellow {
background: #F4FAFF;
border: 2rpx solid #42A5FF;
color: #42A5FF;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
font-weight: bold;
}
.room-select.gray{
... ...
<view class="section flex-lr">
<block wx:for="{{sectionlist}}" wx:key="{{index}}">
<view class="flex-vc section-single {{item.isselected ? 'bg-yellow' : ''}}" style="width:{{690/sectionlist.length}}rpx;" data-section="{{item.section}}" data-index="{{index}}" catchtap="{{item.overdate ? '' : 'selectsection'}}">
<view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'blue-font' : '')}} font30r Semibold">{{item.showmark}}</view>
<view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'blue-font' : '')}} font24r" style="line-height:34rpx;">{{item.sectiondur}}</view>
<view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'checkView' : '')}} font28r Semibold">{{item.showmark}}</view>
<view class="{{item.overdate ? 'gray-font' : (item.isselected ? 'checkView' : '')}} font28r" style="line-height:34rpx;">{{item.sectiondur}}</view>
</view>
</block>
</view>
\ No newline at end of file
... ...
... ... @@ -14,8 +14,8 @@
box-sizing: border-box;
}
.section-single.bg-yellow{
background: #F4FAFF;
border: 2rpx solid #42A5FF;
background: #FFF7F5;
border: 2rpx solid #fe6806;
}
.Semibold {
overflow: hidden;
... ... @@ -28,6 +28,12 @@
height: 40rpx;
}
.checkView {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.blue-font {
overflow: hidden;
word-break: break-all;
... ...
<view class="select-rooms flex-rs">
<view class="select-rooms-title black-font font-bold font36r flex-ll">已选包间</view>
<view class="select-rooms-title black-font font-bold font28r flex-ll">已选包间</view>
<block wx:for="{{seletroomlist}}" wx:key="{{index}}">
<view class="select-rooms-item flex-vc" data-index="{{index}}" data-id="{{item.id}}" catchtap="cancelroom">
<view class="font-bold font30r" style="width:100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;text-align:center; color:#42A5FF;">{{item.name}}</view>
<view class="font-bold font28r selectRoom" style="width:100%;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;text-align:center;">{{item.name}}</view>
<image src="http://nosqn.colorcun.com/detail/x%20%2814%29.png" class="select-rooms-close"></image>
</view>
</block>
... ...
... ... @@ -13,14 +13,18 @@
width:150rpx;
height:70rpx;
margin-right:20rpx;
background: #F4FAFF;
border: 2rpx solid #42A5FF;
background: #FFF7F5;
border: 2rpx solid #fe6806;
border-radius:10rpx;
position: relative;
margin-bottom:20rpx;
padding:0 12rpx;
box-sizing: border-box;
}
.selectRoom {
background-color: #FFF7F5;
color: #fe6806;
}
.select-rooms-close{
width:36rpx;
height:36rpx;
... ...
<wxs src="../../../utils/util.wxs" module="util" />
<view class="padding-lr-lg padding-top-lg">
<view class="flex justify-between align-center margin-bottom" catchtap="clickmore">
<view class="txt-36-h text-bold">预订日期</view>
<view class="txt-28-h text-bold">预订日期</view>
<view class="flex align-center txt-24-h">
更多
<view class="more margin-left-xs"></view>
... ...
... ... @@ -7,7 +7,7 @@
height:100rpx;
line-height: 100rpx;
border-radius:10rpx;
border:2rpx solid #fffff;
border:2rpx solid #fff;
font-size:28rpx;
font-weight:400;
color:#353535;
... ... @@ -17,8 +17,10 @@
.tabs .item.active{
background: #F4FAFF;
border-radius: 10rpx;
border: 2rpx solid #42A5FF;
color:#42A5FF;
border: 2rpx solid #fe6806;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
font-weight: bold;
}
.date .item{
... ... @@ -27,7 +29,7 @@
}
.item .name{
height: 36rpx;
font-size: 26rpx;
font-size: 28rpx;
line-height: 36rpx;
}
.item .mmdd{
... ...
... ... @@ -107,7 +107,7 @@
总计:<text>¥{{totalize}}</text>元
</view>
<button
class="font32r {{(dataStr>(detail.etime*1) || detail.grant_last=='0' || (this.data.detail.grant_last && (detail.grant_last*1)<(num*1)))?'btns btnsDisabled':'btns'}}"
class="font32r {{(dataStr>(detail.etime*1) || detail.grant_last=='0' || (detail.grant_last && (detail.grant_last*1)<(num*1)))?'btns btnsDisabled':'btns'}}"
bindtap="submitOrder">提交订单
</button>
</view>
\ No newline at end of file
... ...
... ... @@ -11,9 +11,12 @@ Page({
dataStr: Date.now() * 1 / 1000,
detail: {},
exp_date: {},
couponType:'',//1代金券 2折扣券 3菜品券
resultCoupon: '', //0未领取 1已领取
seller: {},
distance: '',
num: 1,
totalize: '',
},
myModal: '',
myToast:'',
... ... @@ -132,9 +135,12 @@ Page({
id: this.data.opt.id
}).then(res => {
if (res.data.length > 0) {
let couponType = '';
let detail = res.data[0];
let exp_date = util.determine(detail.exp_date);
detail.arule = detail.arule ? util.determine(detail.arule) : '';
detail.use = detail.use ? util.determine(detail.use) : '';
detail.exp_date = exp_date;
detail.expiration_date = detail.expiration_date ? util.determine(detail.expiration_date) : '';
detail.aexpiration = detail.aexpiration ? util.determine(detail.aexpiration) : '';
detail.cdate = detail.cdate * 1;
... ... @@ -175,16 +181,54 @@ Page({
detail.noonText = noon;
detail.nigText = nig;
}
if(detail.is_type!='3'){
detail.useStime = util.unixtoTime(detail.etime, 'YYYY-MM-DD');
detail.useEtime = util.unixtoTime(detail.etime, 'YYYY-MM-DD');
}
// is_cash 代金券 is_discount折扣券 is_dish菜品券 只有代金券有几折显示
if(detail.use){
couponType = detail.use.is_cash=='1'?'1':detail.use.is_discount=='1'?'2':detail.use.is_dish=='1'?'3':'1';
detail.use.images = detail.use.images ? util.determine(detail.use.images) : '';
}else{
couponType = '1'
}
if (detail.arule && detail.arule.is_share_lose == '0') {
wx.hideShareMenu()
}
let price = detail.price * 1;
let num = this.data.num * 1;
this.setData({
detail,
exp_date,
totalize: (price * num).toFixed(2),
couponType,
})
}
})
},
// 点击减号
subtraction() {
let price = this.data.detail.price * 1;
let num = this.data.num * 1;
let num1 = num - 1
if (num == '1') {
return false
}
this.setData({
num: num1,
totalize: (price * num1).toFixed(2)
})
},
// 点击加号
addition() {
let price = this.data.detail.price * 1;
let num = this.data.num * 1;
let num1 = num + 1
this.setData({
num: num1,
totalize: (price * num1).toFixed(2)
})
},
// 获取店铺名称
getSellerDetail() {
let that = this;
... ...
<!--pack-activity/pack/receiveCoupon.wxml-->
<wxs src="../../utils/util.wxs" module="util" />
<nav>代金券详情</nav>
<nav>优惠券详情</nav>
<view class="top_box">
<image src="https://qn.colorcun.com/voucherIcon1.png" mode="" />
<view class="texts">
<image src="https://qn.colorcun.com/{{couponType=='1'?'voucherIcon1':couponType=='2'?'coupon2':'coupon3'}}.png" mode="" />
<view class="texts" wx:if="{{detail.is_type == '3'}}">
<view class="font32r textName">{{detail.aname}}</view>
<view class="font24r threshold">¥<text class="priceText">{{detail.price}}</text><text class="font28r" wx:if="{{detail.desc!='0'}}">满{{detail.desc}}元可用</text></view>
</view>
<view class="texts texts{{couponType}}" wx:if="{{detail.is_type != '3'}}">
<view class="flex-lr">
<view class="font28r textName">{{detail.aname}}</view>
<view class="font20r">¥<text class="font32r">{{detail.price}}</text></view>
</view>
<view class="flex-lr">
<view class="font20r threshold">
<text class="priceText font36r" wx:if="{{detail.use.discount}}">{{detail.use.discount}}折</text>
<text class="font20r" wx:else>¥<text class="priceText font36r">{{detail.price}}</text></text>
{{detail.desc}}
</view>
<view class="operation">
<image class="countimgs" src="https://qn.colorcun.com/WechatIMG699.png" bindtap="subtraction" />
<input type="number" model:value="{{num}}" bindinput="bindKeyNameInput" />
<image class="countimgs" src="https://qn.colorcun.com/WechatIMG698.png" bindtap="addition" mode="" />
</view>
</view>
</view>
<view class="font28r receive" wx:if="{{resultCoupon == '1'}}">已领取</view>
</view>
<view class="center_box">
<view class="centerMain dishMain" wx:if="{{couponType == '3' && detail.use}}">
<view class="title">
<image src="https://qn.colorcun.com/voucherUnion_6.png" mode="" />
<text class="font32r">菜品</text>
</view>
<text space="nbsp" class="info font28r">{{detail.use.dish}}</text>
<image wx:for="{{detail.use.images}}" src="{{item}}" mode="widthFix"/>
</view>
<view class="centerMain">
<view class="title">
<image src="https://qn.colorcun.com/voucherUnion_1.png" mode="" />
<text class="font32r">有效期</text>
</view>
<view class="info font28r" wx:if="{{detail.aexpiration.valid_forever == '0' && detail.useStime && detail.useEtime}}"><text>券有效期:</text>{{detail.useStime}} <text> 至 </text> {{detail.useEtime}}</view>
<view class="info font28r" wx:if="{{detail.aexpiration.valid_forever == '1'}}"><text>券有效期:</text> 永久有效</view>
<block wx:if="{{detail.is_type == '3'}}">
<view class="info font28r" wx:if="{{detail.aexpiration.valid_forever == '0' && detail.useStime && detail.useEtime}}"><text>券有效期:</text>{{detail.useStime}} <text> 至 </text> {{detail.useEtime}}</view>
<view class="info font28r" wx:if="{{detail.aexpiration.valid_forever == '1'}}"><text>券有效期:</text> 永久有效</view>
</block>
<block wx:else>
<view class="info font28r" wx:if="{{detail.useStime && detail.useEtime}}"><text>活动期限:</text>{{detail.useStime}} <text> 至 </text> {{detail.useEtime}}</view>
</block>
</view>
<view class="centerMain">
<view class="title" wx:if="{{detail.morText || detail.noonText || detail.nigText}}">
<view class="centerMain" wx:if="{{detail.morText || detail.noonText || detail.nigText}}">
<view class="title">
<image src="https://qn.colorcun.com/voucherUnion_2.png" mode="" />
<text class="font32r">不可用日期</text>
<text class="font32r">{{detail.is_type=='3'?'不':''}}可用日期</text>
</view>
<view wx:if="{{detail.morText}}" class="info font28r">{{detail.morText}}</view>
<view wx:if="{{detail.noonText}}" class="info font28r">{{detail.noonText}}</view>
<view wx:if="{{detail.nigText}}" class="info font28r">{{detail.nigText}}</view>
</view>
<view class="centerMain centerMain3" wx:if="{{detail.aexpiration}}">
<view class="centerMain" wx:if="{{detail.is_type!='3' && exp_date.is_none=='1'}}">
<view class="title">
<image src="https://qn.colorcun.com/voucherUnion_1.png" mode="" />
<text class="font32r">可用日期</text>
</view>
<view wx:if="{{exp_date.is_none=='1'}}" class="info font28r" >
无限制
</view>
</view>
<view class="centerMain centerMain3" wx:if="{{detail.aexpiration && detail.is_type == '3'}}">
<view class="title">
<image src="https://qn.colorcun.com/voucherUnion_3.png" mode="" />
<text class="font32r">使用规则</text>
... ... @@ -48,7 +88,16 @@
<view class="drop"></view>{{detail.arule.is_appointment == '1' ? '需要提前预约' : '不需要提前预约'}}
</view>
</view>
<view class="centerMain">
<view class="centerMain centerMain3" wx:if="{{exp_date && exp_date.is_birthday=='1' && detail.is_type != '3'}}">
<view class="title">
<image src="https://qn.colorcun.com/voucherUnion_3.png" mode="" />
<text class="font32r">使用限制</text>
</view>
<view class="info font28r">
顾客生日当天可用
</view>
</view>
<view class="centerMain" wx:if="{{detail.is_type == '3'}}">
<view class="title">
<image src="https://qn.colorcun.com/voucherUnion_4.png" mode="" />
<text class="font32r">分享规则</text>
... ... @@ -98,20 +147,30 @@
</view>
</view>
</view>
<view class="sharewidth" wx:if="{{resultCoupon == '0' || detail.arule.is_share_lose == '1'}}">
<button wx:if="{{detail.arule.is_share_lose == '1'}}" class="shareBtn" open-type="share">
<image src="https://qn.colorcun.com/voucherIcon2.png" mode="" />
<text class="font24r">分享</text>
</button>
<view class="btns">
<view class="btn1 font36r" wx:if="{{seller.is_online_reserve == '1'}}">
<navigator url="/pages/reserve/reserve?id={{opt.sid}}&activeTab=reserve" class="book-item-font second-book-button flex-cc font30r" style="position: relative;">预订包间</navigator>
</view>
<view class="btn font36r" wx:if="{{seller.is_online_reserve == '0' && seller.phone}}">
<view bindtap="callPhone">预订包间</view>
</view>
<view wx:if="{{resultCoupon == '0' && detail.grant_last>0}}" class="btn font36r" bindtap="submitOrder">领取到卡包</view>
</view>
<view class="sharewidth {{detail.is_type != '3'?'sharewidth1':''}}" wx:if="{{resultCoupon == '0' || detail.arule.is_share_lose == '1'}}">
<block wx:if="{{detail.is_type == '3'}}">
<button wx:if="{{detail.arule.is_share_lose == '1'}}" class="shareBtn" open-type="share">
<image src="https://qn.colorcun.com/voucherIcon2.png" mode="" />
<text class="font24r">分享</text>
</button>
<view class="btns">
<view class="btn1 font36r" wx:if="{{seller.is_online_reserve == '1'}}">
<navigator url="/pages/reserve/reserve?id={{opt.sid}}&activeTab=reserve" class="book-item-font second-book-button flex-cc font30r" style="position: relative;">预订包间</navigator>
</view>
<view class="btn font36r" wx:if="{{seller.is_online_reserve == '0' && seller.phone}}">
<view bindtap="callPhone">预订包间</view>
</view>
<view wx:if="{{resultCoupon == '0' && detail.grant_last>0}}" class="btn font36r" bindtap="submitOrder">领取到卡包</view>
</view>
</block>
<block wx:else>
<view class="leftBox">
<view class="news font24r">
合计<text class="font28r">¥<text class="priceInfo">{{totalize}}</text></text>
</view>
</view>
<button bindtap="submitOrder" class="font32r {{(dataStr>(detail.etime*1) || detail.grant_last=='0' || (detail.grant_last && (detail.grant_last*1)<(num*1)))?'submitBtns btnsDisabled':'submitBtns'}}">提交订单</button>
</block>
</view>
<toast id="myToast"></toast>
<my-modal id="myModal" fadeStyle="slideUp" height="240px">
... ...
... ... @@ -26,6 +26,10 @@ page {
margin-right: 12rpx;
}
.texts2 .priceText {
font-size: 36rpx;
}
.top_box .texts {
flex: 1;
margin-left: 32rpx;
... ... @@ -70,7 +74,7 @@ page {
}
.centerMain {
margin-bottom: 40rpx;
margin-bottom: 30rpx;
}
.centerMain .drop {
... ... @@ -190,15 +194,15 @@ page {
}
#myModal .titleModal2 {
margin-top: 80%;
margin-top: 80%;
}
#myModal .titleModal3 {
margin-top: 60%;
margin-top: 60%;
}
#myModal .titleModal4 {
margin-top: 30%;
margin-top: 30%;
}
#myModal .mymodal {
... ... @@ -219,7 +223,7 @@ page {
.modalText1 {
color: #dfdfdf;
font-family: PingFang SC;
font-family: PingFang SC;
font-weight: 600;
font-size: 52rpx;
text-align: center;
... ... @@ -227,7 +231,7 @@ page {
.modalText2 {
color: #dfdfdf;
font-family: PingFang SC;
font-family: PingFang SC;
font-weight: 500;
text-align: center;
margin: 0 40rpx;
... ... @@ -237,12 +241,12 @@ page {
width: 80%;
margin: 0 auto;
border-radius: 42rpx;
background: linear-gradient(90.98deg, #f41919 0.25%, #ff7426 120.07%);
background: linear-gradient(90.98deg, #f41919 0.25%, #ff7426 120.07%);
font-weight: 400;
color: #fff;
text-align: center;
border: 4rpx solid #fff;
padding: 12rpx 0;
padding: 12rpx 0;
margin: 80rpx auto 20rpx auto;
}
... ... @@ -306,11 +310,11 @@ page {
.info_name {
color: #000;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
font-weight: 600;
}
... ... @@ -326,4 +330,79 @@ page {
background: #FFE8D7;
color: #fb4e21;
border-radius: 4rpx;
}
.operation {
display: flex;
align-items: center;
border: 2rpx solid #CBCBCB;
border-radius: 198rpx;
height: 52rpx;
}
.operation input {
width: 64rpx;
border-left: 2rpx solid #CBCBCB;
border-right: 2rpx solid #CBCBCB;
border-radius: 10rpx;
text-align: center;
height: 52rpx;
}
.top_box .countimgs {
width: 32rpx;
height: 32rpx;
padding: 16rpx;
}
.dishMain .info {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
}
.dishMain image {
margin-bottom: 12rpx;
width: 100%;
}
.dishMain .title image {
width: 26rpx;
}
.leftBox {
display: flex;
align-items: center;
justify-content: space-between;
font-family: PingFang SC;
}
.news {
color: #000;
}
.news text {
color: #FD4D59;
}
.priceInfo {
font-weight: 600;
font-size: 60rpx;
}
.submitBtns {
margin: 0;
border-radius: 42rpx;
padding: 0 56rpx;
color: #fff;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.btnsDisabled {
background: #999999 !important;
color: #fff !important;
}
.sharewidth1 {
justify-content: space-between;
}
\ No newline at end of file
... ...
<!--pages/customer/cancel.wxml-->
<nav hasHome>取消订座</nav>
<view class="pages" style="padding-bottom: {{paddingBottom+70}}px;">
<view class="flex align-center">
<image src="http://nosqn.colorcun.com/jiujiajingicon08%403x.png" style="width: 82rpx;height: 72rpx;"></image>
<nav hasHome>取消预订</nav>
<view class="pages">
<view class="flex align-center justify-center">
<image src="https://qn.colorcun.com/bookCancel.png" style="width: 72rpx;height: 72rpx;"></image>
<view class="margin-left-lg text-bold text-black">
<view class="txt-32-h">请告知取消原因</view>
<view class="txt-32-h">以便为您提供更好的服务</view>
<view class="txt-40-h">请告知取消原因</view>
<view class="txt-24-h">以便为您提供更好的服务</view>
</view>
</view>
<view class="reasons-title">取消原因(必选)</view>
<view class="reasons-title">请选择取消原因(必选)</view>
<radio-group class="radio-group reasons-group" bindchange="radioChange">
<radio class="reasons-radio"
wx:for="{{reasons}}" wx:key="reasons" value="{{index}}" checked="{{index==radioIndex}}">
<text class="reasons-radio-text">{{item}}</text>
</radio>
<!-- <block wx:for="{{reasons}}" wx:key="reasons">
<radio class="reasons-radio"
value="{{index}}" checked="{{index==radioIndex}}">
<text class="reasons-radio-text">{{item}}</text>
</radio>
</block> -->
<label class="reasons-radio" wx:for="{{reasons}}" wx:key="{{item}}">
<view class="reasons-radio-text">{{item}}</view>
<radio class="reasons-radio" value="{{index}}" checked="{{index==radioIndex}}"/>
</label>
</radio-group>
<textarea class="cancel-input" placeholder="请输入其他原因(不超过30字)" hidden="{{!inputFouce}}"
bindinput="cancelInput" focus="{{inputFouce}}"
... ... @@ -25,7 +32,9 @@
adjust-position="{{false}}" bindfocus="textareaFocus"
bindinput="textareaInput"
placeholder-class="input-pl" maxlength="30"></textarea>
<view class="cancel-button round bg-blue-blue"
<view class="btns">
<view class="cancel-button round"
bindtap="cancelSubmit"
style="bottom:{{paddingBottom}}px;">申请取消</view>
</view>
</view>
... ...
/* pages/customer/cancel.wxss */
@import "/colorui/icon.wxss";
@import "/colorui/main.wxss";
page{
background: #F5F5F5;
}
.pages{
width: calc(100% - 80rpx);
padding-left: 40rpx;
margin: 20rpx;
box-sizing: border-box;
padding: 40rpx;
font-size:28rpx;
color:rgba(153,153,153,1);
padding-top: 60rpx;
background: #fff;
border-radius: 10rpx;
}
.cancel-button{
height:84rpx;
line-height: 84rpx;
height:72rpx;
line-height: 72rpx;
box-sizing: border-box;
width: calc(100% - 80rpx);
text-align: center;
font-size:36rpx;
font-weight:600;
color:rgba(254,254,254,1);
margin: 0 auto;
position: fixed;
bottom: 20rpx;
position: relative;
top: -20rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
}
.cancel-input{
border: 2rpx solid #F5F5F5;
border: 2rpx solid #CBCBCB;
height: 208rpx;
width: 100%;
box-sizing: border-box;
... ... @@ -33,25 +43,25 @@
.reasons-title{
height:40rpx;
font-size:28rpx;
font-weight:500;
color:rgba(153,153,153,1);
color:#000;
line-height:40rpx;
margin-top: 60rpx;
margin-bottom: 60rpx;
margin: 40rpx 0;
font-weight: 600;
}
.reasons-group{
font-size: 30rpx;
width: 100%;
}
.reasons-radio{
height: 102rpx;
line-height: 102rpx;
font-size:30rpx;
height: 90rpx;
line-height: 90rpx;
font-size:28rpx;
font-weight:500;
color:rgba(53,53,53,1);
width: 100%;
border-top: 2rpx solid #F5F5F5;
box-sizing: border-box;
display: flex;
justify-content: space-between;
}
radio::before
{
... ... @@ -75,10 +85,29 @@ radio.radio[checked]::after {
}
radio.reasons-radio[checked] .wx-radio-input {
border-color: transparent !important;
background: linear-gradient(180deg, #3BBFF5 0%, #57A0FF 100%);
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: var(--white) !important;
}
.reasons-radio-text{
padding-left: 20rpx;
flex: 1;
color: #000;
font-weight: 400;
font-size: 28rpx;
}
.btns {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: #fff;
height: 200rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 40rpx;
box-sizing: border-box;
}
\ No newline at end of file
... ...
... ... @@ -24,36 +24,36 @@
<detail-status detail="{{detail}}" ></detail-status>
<detail-card detail="{{detail}}"></detail-card>
<view class="flex padding justify-end align-center margin-top text-black">
<service id="service" class="split view">
<view class="min-but flex align-center justify-center txt-30-h solid">联系客服</view>
<view class="flex justify-end align-center margin-top text-black btns">
<block wx:if="{{customerCancel && customerCancel == '1'}}">
<navigator url="./cancel?id={{detail.id}}"
wx:if="{{(detail.hasRunning || detail.status==0) && checkout.status!=3}}"
class="split btnBox">
<view class="min-but flex align-center justify-center txt-30-h btn1">取消预订</view>
</navigator>
</block>
<service id="service" class="split view btnBox">
<view class="min-but flex align-center justify-center txt-30-h btn1 {{(detail.status=='4' || detail.status=='2' || detail.status=='3')?'':'btn2'}}">联系客服</view>
</service>
<block wx:if="{{detail.seller.is_online_reserve == '1'}}">
<navigator url="/pages/reserve/reserve?id={{detail.sid}}&activeTab=reserve"
wx:if="{{detail.hasCancel || detail.status==6}}"
class="split">
<view class="min-but flex align-center justify-center txt-30-h solid">再次预订</view>
class="split btnBox">
<view class="min-but flex align-center justify-center txt-30-h btn1 btn2">再次预订</view>
</navigator>
</block>
<block wx:if="{{customerCancel && customerCancel == '1'}}">
<navigator url="./cancel?id={{detail.id}}"
wx:if="{{(detail.hasRunning || detail.status==0) && checkout.status!=3}}"
class="split">
<view class="min-but flex align-center justify-center txt-30-h solid">取消预订</view>
</navigator>
<block>
<view bindtap="gotoInvitation"
wx:if="{{detail.hasRunning}}"
class="split btnBox">
<view class="min-but flex align-center justify-center txt-30-h line-blue">通知好友</view>
</view>
</block>
<block>
<view bindtap="gotoInvitation"
wx:if="{{detail.hasRunning}}"
class="split">
<view class="min-but flex align-center justify-center txt-30-h solid line-blue">通知好友</view>
</view>
</block>
<navigator url="/pages/pinglun/create?sid={{detail.seller.id}}&oid={{detail.id}}&sellername={{detail.seller.sellername}}"
<navigator url="/pages/pinglun/createOpinion?sellid={{detail.seller.id}}&oid={{detail.id}}&sellerName={{detail.seller.sellername}}&types=1"
wx:if="{{detail.hasFinished && hasComment}}"
class="split">
<view class="min-but flex align-center justify-center txt-30-h solid line-blue">评价</view>
class="split btnBox">
<view class="min-but flex align-center justify-center txt-30-h line-blue btn1 btn2">评价</view>
</navigator>
</view>
<view class="margin-lr-lg padding-tb-lg view solid-top" wx:if="{{detail.customers.length>1}}">
... ... @@ -71,21 +71,22 @@
</view>
<view class="fixed-buttons flex justify-between align-center padding-lg view bg-white">
<view wx:if="{{detail.hasRunning && detail.seller.is_open_order==1}}"
class="view flex-treble big-but flex align-center justify-center txt-34-h solid line-blue round">
class="view flex-treble big-but flex align-center justify-center txt-34-h line-blue round btnBox">
<userinfo
binduserinfo="cookbook"
bindshare="share"
share="{{detail}}"
share-act="invitation">
<view wx:if="{{detail.order && detail.order.cookbooklist.length>0}}">
share-act="invitation"
>
<view wx:if="{{detail.order && detail.order.cookbooklist.length>0}}" class="btn1">
查看菜品
</view>
<view wx:else="">提前点餐</view>
<view wx:else="" class="btn1">提前点餐</view>
</userinfo>
</view>
<block wx:if="{{detail.status==6}}">
<view bindtap="gotoList"
class="view flex-treble big-but flex align-center justify-center txt-34-h solid line-blue round">
class="view flex-treble big-but flex align-center justify-center txt-34-h line-blue round btn1 btn2">
帮我推荐餐厅
</view>
<!-- <chatbot class="big-but view flex-treble align-center justify-center" params="{{chatbotParams}}">
... ... @@ -98,13 +99,13 @@
</chatbot> -->
</block>
<view class="view flex-treble big-but flex align-center justify-center txt-34-h solid line-blue round"
<view class="view flex-treble big-but flex align-center justify-center txt-34-h line-blue round btnBox"
wx:if="{{detail.hasRunning && detail.seller.isopen_md==1}}">
<userinfo
binduserinfo="checkout"
share="{{detail}}"
share-act="invitation">
<view style="position: relative;">
<view style="position: relative;" class="btn1 btn2">
在线买单
<seller-discount id="seller-discount" seller="{{detail.seller}}" wx:if="{{detail.seller}}"
cla="money-tips detail_owner"></seller-discount>
... ...
/* pages/customer/detail_owner.wxss */
@import "../../colorui/main.wxss";
page {
background: #F5F5F5;
}
.fixed-buttons{
position: fixed;
bottom: 0;
... ... @@ -18,7 +22,10 @@
border-radius: 20rpx;
}
.split+.split{
width: 45%;
margin-left: 40rpx;
position: relative;
top: -20rpx;
}
.big-but{
height: 84rpx;
... ... @@ -365,4 +372,48 @@
height: 48rpx;
margin-right: 6rpx;
margin-left: 6rpx;
}
.btns {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: #fff;
height: 200rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 40rpx;
box-sizing: border-box;
}
.btn1 {
height: 72rpx;
box-sizing: border-box;
line-height: 72rpx;
border-radius: 198rpx !important;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
text-align: center;
}
.btn2 {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
-webkit-text-fill-color: #fff;
text-align: center;
}
.btnBox {
width: 45%;
position: relative;
top: -20rpx;
border-radius: 198rpx;
}
userinfo {
width: 100%;
}
\ No newline at end of file
... ...
... ... @@ -2,13 +2,15 @@ import util from '../../utils/util';
import App from '../../utils/api';
Page({
data:{
loading:0,
loading:0,
activeId:'',
},
onLoad(opt){
console.log(opt)
this.action=opt.action ? opt.action : null,
this.setData({
action:this.action
action:this.action,
activeId:opt.activeId || '',
})
console.log('新用户openid',wx.getStorageSync('customer_openid'))
},
... ... @@ -21,7 +23,7 @@ Page({
if(json.ret==200){
this.setData({
concatlist:json.data,
loading:1,
loading:1,
})
}
})
... ... @@ -33,7 +35,9 @@ Page({
let pages = getCurrentPages();
this.data.concatlist[index].remark='';
pages[pages.length-2].setData({
user:this.data.concatlist[index]
user:this.data.concatlist[index],
activeSex:this.data.concatlist[index].sex*1-1,
activeId:this.data.concatlist[index].id
})
pages[pages.length-2].user=this.data.concatlist[index];
wx.navigateBack();
... ...
... ... @@ -5,11 +5,12 @@
<view class="flex item font30r black-font margin-bottom-sm justify-between align-center padding-left padding-right-lg" data-index="{{index}}" catchtap="edit">
<view>
<view class="flex align-center">
<viwe class="txt-38-h text-bold">{{item.name}}</viwe>
<viwe class="txt-32-h text-bold">{{item.name}}</viwe>
<viwe wx:if="{{item.is_default==1}}" class="default margin-left-sm">默认</viwe>
</view>
<view class="txt-38-h" style="margin-top: 16rpx;">{{item.phone}}</view>
<view class="txt-32-h" style="margin-top: 16rpx;">{{item.phone}}</view>
</view>
<image wx:if="{{action && activeId == item.id}}" class="imgs" src="https://qn.colorcun.com/checkImgIcon.png" mode=""/>
<image src="http://nosqn.colorcun.com/detail/x%20%2815%29.png"
wx:if="{{!action}}"
style="width: 28rpx;height: 30rpx;"></image>
... ... @@ -22,7 +23,7 @@
<view class="txt-28-h margin-top-lg">暂无常用预订人哦</view>
</view>
<view class="add-cover flex-cc">
<view class="white-font font36r text-bold add-button flex-cc bg-blue-blue round" catchtap="add">新建联系人</view>
<view class="white-font font36r text-bold add-button flex-cc btn round" catchtap="add">新建预订人</view>
</view>
<menu></menu>
<service></service>
... ...
@import "../../colorui/main.wxss";
page {
background: #F5F5F5;
}
.concat-list{
width:100%;
padding:40rpx 40rpx 150rpx;
box-sizing: border-box;
padding:12rpx 12rpx 150rpx;
box-sizing: border-box;
}
.item{
width: 100%;
height: 204rpx;
height: 188rpx;
background: #FFFFFF;
box-shadow: 0px 0px 20rpx 0px #EEF0F2;
border-radius: 20rpx;
border-radius: 10rpx;
box-sizing: border-box;
}
.add-cover{
... ... @@ -27,16 +30,25 @@
margin:0 auto;
}
.default{
width: 96rpx;
height: 60rpx;
background: #F8F8F8;
width: 64rpx;
height: 34rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
border-radius: 10rpx;
font-size: 28rpx;
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
line-height: 60rpx;
text-align: center;
color: #fff;
line-height: 34rpx;
text-align: center;
}
.btn {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
height: 72rpx;
line-height: 72rpx;
}
.imgs {
width: 42rpx;
height: 42rpx;
}
\ No newline at end of file
... ...
... ... @@ -5,17 +5,12 @@
<block wx:if="{{list.length>0}}">
<view wx:for="{{list}}" bindtap="todetail" data-item="{{item}}" wx:if="{{item.recharge_name || item.aname}}" class="preferentialItems {{item.noShow == '0' ? 'noStyle':''}}">
<view class="itemLeft">
<text wx:if="{{item.discount!='0.00' && (item.use.is_cash=='1' || item.use.is_cash) && item.discount}}" class="discountText font24r">{{item.discount}}折</text>
<view class="discountText1 font20r {{item.arule.is_accumulation == '1'?'discountText2':'discountText3'}}" wx:if="{{item.is_type == '3'}}">{{item.arule.is_accumulation == '1' ? '可' : '不可'}}叠加</view>
<view class="priceText" wx:if="{{item.price}}">
<view class="icons font24r">¥</view><text class="font40r">{{item.price}}</text>
</view>
<view class="icons font20r" wx:if="{{item.is_type == '3' && item.desc!='0'}}">消费满{{item.desc}}元可用</view>
<image src="https://qn.colorcun.com/{{item.couponType=='1'?'voucherIcon1':item.couponType=='2'?'coupon2':'coupon3'}}.png" mode="" />
</view>
<view class="couponLine"></view>
<view class="itemRight">
<view class="btns">
<text class="font40r">{{item.recharge_name || item.aname}}</text>
<text class="font28r">{{item.recharge_name || item.aname}}</text>
<text wx:if="{{item.discount!='0.00' && (item.use.is_cash=='1' || item.use.is_cash) && item.discount}}" class="discountText font24r">{{item.discount}}折</text>
<block wx:if="{{item.is_type == '1' || item.is_type == '2' || item.type == '1' || item.type == '2'}}">
<view wx:if="{{item.exp_date.is_week=='1' || item.exp_date.is_week===true}}" class="bottom font24r">{{item.exp_date.week_show?item.exp_date.week_show+'可用':''}}{{item.desc?','+item.desc+'。':'。'}}</view>
<view wx:if="{{item.exp_date.is_none=='1' || item.exp_date.is_none===true}}" class="bottom font24r">
... ... @@ -36,7 +31,12 @@
</block>
</view>
<view class="btnBox">
<view class="priceText" wx:if="{{item.price}}">
<view class="icons font24r">¥</view><text>{{item.price}}</text>
</view>
<view class="icons font20r" wx:if="{{item.is_type == '3' && item.desc!='0'}}">满{{item.desc}}元可用</view>
<view class="font24r orderingFood" wx:if="{{item.is_type!='3'&&item.is_examine=='0' && item.is_expire=='0' && item.is_examine=='0' && item.status!='4' && item.status!='5'}}">去核销</view>
<view class="font24r orderingFood" wx:if="{{item.is_type=='3'&&item.is_examine=='0' && item.is_expire=='0' && item.is_examine=='0' && item.status!='4' && item.status!='5'}}">去使用</view>
<view class="font24r orderingFood" wx:if="{{item.is_examine=='1' && item.is_expire=='0' && item.status!='4' && item.status!='5' && item.is_comment!='1'}}">去评价</view>
<view class="font24r orderingFood" wx:if="{{!(item.is_examine=='1' && item.is_expire=='0' && item.status!='4' && item.status!='5' && item.is_comment!='1') && item.noShowTetxt}}">{{item.noShowTetxt}}</view>
</view>
... ...
/* pages/me/coupon_news.wxss */
@import "../../app.wxss";
page {
background: #F5F5F5;
}
.font-siny {
color: #0143a3;
... ... @@ -183,20 +186,25 @@
.preferentialItems {
display: flex;
background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%);
background: #fff;
min-height: 160rpx;
padding-bottom: 10rpx;
border-radius: 20rpx;
margin: 0 40rpx 20rpx;
margin: 12rpx;
}
.itemLeft {
width: 27%;
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
align-items: center;
margin-left: 24rpx;
}
.itemLeft image {
width: 140rpx;
height: 140rpx;
}
.discountText {
... ... @@ -212,28 +220,6 @@
top: 12rpx;
}
.discountText1 {
text-align: center;
border-radius: 6rpx;
font-family: PingFang SC;
background: transparent;
width: max-content;
padding: 2rpx 8rpx;
position: absolute;
left: 16rpx;
top: 12rpx;
}
.discountText2 {
background: #FD4D59;
color: #fff;
}
.discountText3 {
color: #FD4D59;
border: 2rpx solid #FD4D59;
}
.priceText {
display: flex;
align-items: baseline;
... ... @@ -249,6 +235,10 @@
color: #F6231B;
}
.icons text {
font-size: 56rpx;
}
.priceText .icons {
color: #FD4D59;
}
... ... @@ -261,14 +251,9 @@
padding-left: 20rpx;
}
.couponLine {
margin: 24rpx 0;
border-right: 2rpx dashed #f6231b;
}
.itemRight {
padding-right: 10rpx;
margin-left: 14rpx;
margin-left: 16rpx;
width: 74%;
display: flex;
align-items: center;
... ... @@ -291,9 +276,8 @@
height: 44rpx;
width: max-content;
flex-shrink: 0;
border: 2rpx solid #fa4b20;
background: transparent;
color: #fa4b20;
color: #fff;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.btns {
... ... @@ -313,7 +297,7 @@
.bottom {
margin-top: 4rpx;
width: 100%;
color: #C36607;
color: #696969;
font-family: PingFang SC;
font-weight: 500;
display: -webkit-box;
... ...
... ... @@ -17,7 +17,9 @@ Page({
*/
user: _u,
data: {
user: _u
user: _u,
array:['先生','女士','公司'],
activeSex:0,
},
/**
* 生命周期函数--监听页面加载
... ... @@ -88,16 +90,18 @@ Page({
console.log(e)
let key = util.attr(e, 'key');
let val = ''
if (key == 'sex' || key == 'is_default') {
val = util.attr(e, 'val');
console.log(val)
} else {
val = util.val(e);
if (key == 'sex') {
val = e.detail.value*1+1;
} else if (key == 'is_default'){
val = util.attr(e, 'val');
}else{
val = util.val(e);
}
this.user[key] = val;
if (key == 'sex' || key == 'is_default') {
this.setData({
user: this.user
user: this.user,
activeSex:e.detail.value,
})
}
},
... ...
<!--pages/me/setting.wxml-->
<nav hasHome>{{user.id ? '编辑联系人' : '新建联系人'}}</nav>
<view class="page padding-top">
<view class="padding-lr-lg">
<view class="view flex align-center justify-between " style="height: 100rpx;">
<image src="http://nosqn.colorcun.com/detail/x%20%2816%29.png" style="width: 40rpx;height: 40rpx;"></image>
<view class="view flex-treble flex align-center margin-left-sm solid-bottom" style="height: 100rpx;">
<view class="page padding-top-xs">
<view class="padding-lr-lg backF">
<view class="view flex align-center justify-between solid-bottom" style="height: 100rpx;">
<image src="https://qn.colorcun.com/detail/bookPeople.png" style="width: 32rpx;height: 32rpx;"></image>
<view class="view flex-treble flex align-center margin-left-sm" style="height: 100rpx;">
<input class="name flex-treble" placeholder="请填写预订人姓名"
bindinput="changeInput"
data-key="name"
... ... @@ -12,7 +12,13 @@
bindkeyboardheightchange="keyboardheightchange"
adjust-position="{{false}}"
placeholder-class="input-pl" maxlength="10"/>
<view class="flex text-30 sex">
<picker bindchange="changeInput" data-key="sex" value="{{activeSex}}" range="{{array}}">
<view class="pickerBox font28r">
{{array[activeSex]}}
<image src="https://qn.colorcun.com/arrowBottom.png" mode=""/>
</view>
</picker>
<!-- <view class="flex text-30 sex">
<view bindtap="changeInput"
data-key="sex"
data-val="1"
... ... @@ -25,12 +31,12 @@
data-key="sex"
data-val="3"
class="text-bold margin-left-sm {{user.sex==3?'checked':''}}">公司</view>
</view>
</view> -->
</view>
</view>
<view class="view flex align-center justify-between " style="height: 100rpx;">
<image src="http://nosqn.colorcun.com/detail/x%20%2817%29.png" style="width: 40rpx;height: 40rpx;"></image>
<view class="view flex-treble flex align-center margin-left-sm solid-bottom" style="height: 100rpx;">
<view class="view flex align-center justify-between solid-bottom" style="height: 100rpx;">
<image src="https://qn.colorcun.com/detail/bookPhoneIcon.png" style="width: 32rpx;height: 32rpx;"></image>
<view class="view flex-treble flex align-center margin-left-sm" style="height: 100rpx;">
<input class="phone flex-treble" placeholder="请填写联系方式"
bindinput="changeInput"
data-key="phone"
... ... @@ -38,26 +44,28 @@
value="{{user.phone}}"
adjust-position="{{false}}"
placeholder-class="input-pl" maxlength="11"/>
<phone bindgetphone="getphone">
<!-- <phone bindgetphone="getphone">
<view class="txt-28-h text-blue">一键录入</view>
</phone>
</phone> -->
</view>
</view>
<view class="flex align-center justify-between" style="height: 108rpx;">
<view class="txt-34-h text-bold">设置默认联系人</view>
<switch color="#42A5FF"
<view class="txt-28-h text-bold">设置默认联系人</view>
<switch color="#fe6806"
checked="{{user.is_default==1 ? true : false}}"
data-key="is_default"
data-val="{{user.is_default==1 ? 0 : 1}}"
bindchange="changeInput"/>
</view>
<view class="gray-font font28r margin-bottom" style="line-height:40rpx;">提醒:每次预订时,自动将默认联系人作为预订联系人,如有需要,商家将联系预订联系人</view>
<view class="gray-font font24r margin-bottom" style="line-height:40rpx;padding-bottom: 30rpx;">提醒:每次预订时,自动将默认联系人作为预订联系人,如有需要,商家将联系预订联系人</view>
<view class="txt-30-h text-red padding-top"
wx:if="{{user.id}}" bindtap="confirm">删除联系人</view>
</view>
<view class="save-button round bg-blue-blue" bindtap="saved">
<view class="share-but text-bold">保存</view>
</view>
<view class="btns">
<view class="save-button round" bindtap="saved">
<view class="share-but text-bold">保存</view>
</view>
</view>
</view>
<confirm id="confirm" cancelText="取消" cancelColor="#42A5FF"
confirmText="删除" confirmColor="#FFFFFF"
... ...
/* pages/me/setting.wxss */
@import "../../colorui/main.wxss";
page {
background: #F5F5F5;
}
.sex .checked{
position: relative;
color:var(--blue);
... ... @@ -14,11 +17,6 @@
bottom:-18rpx;
left:calc(50% - 12rpx);
}
.page{
width: 100%;
color:#353535;
}
.tip{
margin-top: 62rpx;
font-size: 26rpx;
... ... @@ -71,19 +69,32 @@ input.input{
background-color:#C0A369;
color: #FEFEFE;
}
.save-button{
.btns {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: #fff;
height: 200rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 40rpx;
box-sizing: border-box;
}
.save-button {
width:calc(100% - 80rpx);
height:84rpx;
position: fixed;
left:0;
right:0;
bottom:40rpx;
margin:0 auto;
height: 72rpx;
margin:0 auto;
position: relative;
top: -20rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.share-but{
color:#FEFEFE;
color:#fff;
width: 100%;
line-height: 84rpx;
line-height: 72rpx;
height: 72rpx;
font-size: 36rpx;
text-align: center;
}
... ... @@ -96,4 +107,26 @@ input.input{
.userinfo-setting{
padding: 60rpx 0 30rpx 0;
border-bottom: 2rpx solid #F5F5F5;
}
.pickerBox {
display: flex;
align-items: center;
font-family: PingFang SC;
font-weight: 400;
}
.pickerBox image {
width: 24rpx;
height: 24rpx;
}
.wx-switch-input {
zoom: .8;
}
.backF {
background: #fff;
margin: 12rpx;
border-radius: 10rpx;
}
\ No newline at end of file
... ...
... ... @@ -14,7 +14,6 @@ Page({
tablesText:'',
detail:{},
tableNum:'',
cusdem:'',
coupon:'',
couponId:'',
price:'',
... ... @@ -22,7 +21,8 @@ Page({
is_user_comments:'',
showLoading:false,
couponData: '', //评价赠送优惠券数据
dataStr: Date.now() * 1 / 1000,
dataStr: Date.now() * 1 / 1000,
seller:{},
},
text: '',
/**
... ... @@ -36,12 +36,11 @@ Page({
console.log('options', {
...options
});
this.getDetail()
this.getDetailFun()
}
},
getDetail() {
getDetailFun() {
App.Reserve.Detail({
openid: getApp().openid,
rid: this.data.options.oid
}).then(res => {
let tablesText = '', //桌子信息
... ... @@ -51,21 +50,34 @@ Page({
tablesText+=t.rname+t.name+(i==(res.data.tables.length-1)?'':'、');
})
let reserev = RS.reserve(res.data)
let dateSmart = util.unixtoTime(reserev.ddate, 'YYYY/MM/DD 星期WW HH:II');
let dateSmart = util.unixtoTime(reserev.ddate, 'YYYY年MM月DD日 星期WW HH:II');
this.setData({
dateSmart,
tablesText,
is_user_comments:res.data.is_user_comments,
tableNum:res.data.actual_pum?res.data.actual_pum:tableNum,
cusdem:res.data.cusdem,
})
setTimeout(() => {
this.getSellerTemplateConfFun(reserev.sid);
this.getSellerTemplateConfFun(reserev.sid);
this.getDetail(reserev.sid)
}, 0);
}).catch(res=>{
console.log(res,'详情请求失败');
})
},
},
getDetail(sid){
App.Customer.GetSellerDetail({
openid: getApp().openid,
sid
}).then(res => {
this.setData({
seller:{
img:res.data.share_image || '',
sellername:res.data.sellername,
}
})
})
},
getSellerTemplateConfFun(sid) {
console.log('sidsidsidsid',sid);
App.Seller.GetSellerTemplateConf({
... ... @@ -160,7 +172,7 @@ Page({
// 有券
if (this.data.coupon == '1' && this.data.couponData.showCoupon == '1') {
url = util.http_build_query({
sellerName: options.sellerName,
sellerName: this.data.seller.sellername,
coupon: '1',
couponId: this.data.couponId,
price: this.data.price,
... ... @@ -170,7 +182,7 @@ Page({
}, './opinionSuccess')
} else { //没券
url = util.http_build_query({
sellerName: options.sellerName,
sellerName: this.data.seller.sellername,
coupon: '0', //1有券 0没有券
couponId: this.data.couponId || '',
sellid: options.sellerid,
... ...
<!--pages/pinglun/createOpinion.wxml 填写意见反馈页面-->
<nav color="#515151" hasHome="{{options.previousPage!='1'}}">{{options.sellerName}}</nav>
<nav color="#515151" hasHome="{{options.previousPage!='1'}}">意见反馈</nav>
<view class="box">
<view class="sellerBox">
<image src="{{seller.img}}" mode="aspectFill"/>
<view class="text1 font32r">{{seller.sellername}}</view>
</view>
<view class="info">
<view class="texts font28r">就餐时间:</view>
<view class="texts font28r">就餐时间</view>
<view class="texts_right font28r">{{dateSmart}}</view>
</view>
<view class="info">
<view class="texts font28r">桌位台号:</view>
<view class="texts font28r">桌位台号</view>
<view class="texts_right font28r">{{tablesText}}</view>
</view>
<view class="info">
<view class="texts font28r">就餐人数:</view>
<view class="texts font28r">就餐人数</view>
<view class="texts_right font28r">{{tableNum}}</view>
</view>
<view class="info">
<view class="texts font28r">备注信息:</view>
<view wx:if="{{cusdem}}" class="texts_right font28r">{{cusdem}}</view>
</view>
<textarea class="margin-top-lg text-df textarea" bindinput="textareaInput" cols="30" rows="10" placeholder="请填写您的意见和建议,帮助我们持续改进" placeholder-style="color:#999999;font-size:30rpx;"></textarea>
<view class="uploadBox">
<tpupload bind:tpupload="tpupload" tpNum='6'></tpupload>
</view>
</view>
<view class="main">
<textarea class="margin-top-lg text-df textarea" bindinput="textareaInput" cols="30" rows="10" placeholder="麻烦点这里输入您的意见反馈。\n\n\n可以帮助我们持续改进,给您带来更好的服务品质,谢谢啦!" placeholder-style="color:#999999;font-size:30rpx;"></textarea>
<tpupload bind:tpupload="tpupload" tpNum='6'></tpupload>
<view class="btns">
<button class="btn" bindtap="submit" disabled="{{is_user_comments}}">{{is_user_comments?'该订单已提交!':'提交'}}</button>
</view>
<button class="btn" bindtap="submit" disabled="{{is_user_comments}}">{{is_user_comments?'该订单已提交!':'提交'}}</button>
<view class="loading-container" wx:if="{{showLoading}}">
<view class="loading-mask"></view>
<view class="loading-content">
... ...
/* pages/pinglun/createOpinion.wxss */
page {
background: #F5F5F5;
}
.box {
padding: 24rpx 0 30rpx 0;
margin: 0 40rpx;
border-bottom: 2rpx solid #515151;
background: #fff;
margin: 12rpx;
padding: 40rpx;
border-radius: 10rpx;
}
.info {
margin-bottom: 16rpx;
display: flex;
justify-content: space-between;
display: flex;
padding-bottom: 20rpx;
}
.texts {
font-weight: 500;
font-weight: 400;
color: #696969;
font-family: PingFang SC;
}
.texts_right {
font-weight: 500;
text-align: right;
width: 79%;
font-family: PingFang SC;
font-weight: 600;
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
word-break: break-all;
word-break: break-all;
margin-left: 40rpx;
flex: 1;
}
.textarea {
width: 100%;
height: 370rpx;
height: 240rpx;
font-size: 30rpx;
line-height: 42rpx;
margin-top: 36rpx 0 20rpx 0;
word-wrap: break-word;
white-space: pre-line
white-space: pre-line;
border-radius: 10rpx;
border: 2rpx solid #cbcbcb;
box-sizing: border-box;
padding: 40rpx;
margin-bottom: 40rpx;
}
.textarea-placeholder {
... ... @@ -43,18 +55,19 @@
line-height: 42rpx;
}
.main {
padding: 0 40rpx;
margin: 36rpx 0 42rpx 0;
}
.btn {
height: 72rpx;
line-height: 72rpx;
box-sizing: border-box;
margin: 0 40rpx;
font-weight: 500;
font-size: 32rpx;
color: #f8f9fd;
border-radius: 42rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
border-radius: 42rpx;
width: 100%;
position: relative;
top: -20rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
button[disabled]:not([type]) {
color: #fff !important;
... ... @@ -104,4 +117,42 @@ button[disabled]:not([type]) {
margin-top: 10rpx;
font-size: 28rpx;
color: #333;
}
.sellerBox {
display: flex;
align-items: center;
padding-bottom: 40rpx;
margin-bottom: 40rpx;
border-bottom: 2rpx solid #F7F7F7;
}
.sellerBox image {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
margin-right: 20rpx;
}
.btns {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: #fff;
height: 200rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 40rpx;
box-sizing: border-box;
}
.uploadBox {
position: relative;
left: -20rpx;
}
.text1 {
font-weight: 600;
}
\ No newline at end of file
... ...
... ... @@ -20,6 +20,7 @@ Page({
},
selectlabel(e){
let name=e.currentTarget.dataset.name;
let idx=e.currentTarget.dataset.idx;
if(this.remark!=''){
let str=this.remark+','+name
if(str.length>25){
... ... @@ -31,11 +32,13 @@ Page({
duration:1500
})
}
}
}
let labellist = this.data.labellist;
labellist[idx].check = true;
this.setData({
remark:this.remark=='' ? name : this.remark+','+name
})
remark:this.remark=='' ? name : this.remark+','+name,
labellist,
})
this.remark=this.remark=='' ? name : this.remark+','+name
console.log(this.remark,this.remark.length)
},
... ...
... ... @@ -2,19 +2,21 @@
<nav>备注</nav>
<view class="contain" style="height: minheight+'px';overflow-y: scroll;">
<view class="bg_white textarea-cover">
<textarea placeholder="请输入您的要求,我们会尽量安排" placeholder-class="gray-font font28r" class="black-font font28r" value="{{remark}}" maxlength="25" show-confirm-bar="{{false}}" auto-focus bindinput="inputremark" bindblur="inputblur" adjust-position cursor-spacing="130" bindkeyboardheightchange="getboardheight"></textarea>
<textarea placeholder="请输入您的要求,我们会尽量安排" placeholder-class="gray-font font28r" class="black-font font24r" value="{{remark}}" maxlength="25" show-confirm-bar="{{false}}" auto-focus bindinput="inputremark" bindblur="inputblur" adjust-position cursor-spacing="130" bindkeyboardheightchange="getboardheight"></textarea>
<view class="gray-font font28r flex-rr" style="padding-top: 20rpx;">{{remark.length}}/25</view>
</view>
<view class="label">
<view class="gray-font font30r">快捷标签</view>
<view class="label-list flex-rs">
<block wx:for="{{labellist}}">
<view class="black-font font28r label-single bg-gray" data-name="{{item.remark}}" bindtap="selectlabel">{{item.remark}}</view>
<view class="font24r label-single bg-gray {{item.check ? 'checkItem' : ''}}" data-idx="{{index}}" data-name="{{item.remark}}" bindtap="selectlabel">{{item.remark}}</view>
</block>
</view>
</view>
</view>
<view class="save-button white-font flex-cc font32r Semibold" bindtap="save" style="bottom:{{buttonbottom}}px;">保存</view>
<view class="btns">
<view class="save-button white-font flex-cc font32r Semibold" bindtap="save" style="bottom:{{buttonbottom}}px;">保存</view>
</view>
</page>
<menu></menu>
<service></service>
... ...
page{
background: #F9F9F9;
background: #F5F5F5;
}
.contain{
width:100%;
padding:10rpx 0 180rpx;
padding:10rpx 0 20rpx;
background: #fff;
margin: 12rpx;
border-radius: 10rpx;
}
.textarea-cover{
width: calc(100% - 80rpx);
... ... @@ -11,12 +13,14 @@ page{
box-sizing: border-box;
border-radius: 16rpx;
overflow: hidden;
margin: 0 auto 60rpx;
margin: 40rpx auto;
border: 2rpx solid #cbcbcb;
}
textarea,input{
width: 100%;
height: 120rpx;
line-height: 40rpx;
line-height: 40rpx;
font-weight: 400;
}
input{
display: block;
... ... @@ -30,23 +34,42 @@ input{
margin-top: 40rpx;
}
.label-single{
height: 64rpx;
height: 42rpx;
background: #F1F1F1;
border-radius: 32rpx;
line-height: 64rpx;
line-height: 42rpx;
margin-right: 30rpx;
margin-bottom: 20rpx;
padding: 0 30rpx;
padding: 0 30rpx;
color: #696969;
}
.save-button{
width: calc(100% - 80rpx);
height: 84rpx;
background: linear-gradient(90deg, #3BBFF5 0%, #57A0FF 100%);
height: 72rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
border-radius: 42rpx;
margin: 0 auto;
position: fixed;
left:0;
right:0;
bottom:40rpx;
/* transition: bottom .05s ease; */
position: relative;
top: -20rpx;
}
.checkItem {
background: #FFF7F5;
color: #fe6806;
border: 2rpx solid #fe6806;
box-sizing: border-box;
}
.btns {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: #fff;
height: 200rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 40rpx;
box-sizing: border-box;
}
\ No newline at end of file
... ...
... ... @@ -8,7 +8,7 @@
</view>
<view class="padding-lr-lg" >
<view class="flex justify-between align-center margin-bottom margin-top">
<view class="txt-36-h text-bold">预订时段</view>
<view class="txt-28-h text-bold">预订时段</view>
</view>
<view>
<section seller="{{seller}}" date="{{reserveDate}}" bind:selectsection="selectsection" section="{{reserveSection}}"></section>
... ... @@ -32,8 +32,10 @@
</view>
</view>
-->
<view class="reserve-button-cover {{seletroomlist.length>0?'bg-blue-blue':'bg-cccccc'}} flex justify-center align-center round" catchtap="complete">
<view class="reserve-button txt-36-h">选好了</view>
<view class="btns">
<view class="reserve-button-cover {{seletroomlist.length>0?'colorBtn':'bg-cccccc'}} flex justify-center align-center round" catchtap="complete">
<view class="reserve-button txt-36-h">选好了</view>
</view>
</view>
</page>
<menu></menu>
... ...
... ... @@ -11,7 +11,23 @@
.reserve-button-cover{
width:calc(100% - 80rpx);
height:84rpx;
position: relative;
top: -20rpx;
}
.colorBtn {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
}
.btns {
background: #fff;
height: 200rpx;
position: fixed;
left:40rpx;
bottom:40rpx;
bottom: 0;
left: 0;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
\ No newline at end of file
... ...
<!--pages/reserve/home.wxml-->
<nav backgroundColor="{{navborder ? '#ffffff' : 'transparent'}}" place="{{false}}"></nav>
<view class="view header">
<image src="http://nosqn.colorcun.com/search/s%20%281%29.png"
<image src="https://qn.colorcun.com/processingIcon.png"
style="z-index: 1"
mode="widthFix" class="bg-img"></image>
<taocan-notice pos="{{taocanpos}}"></taocan-notice>
... ...
... ... @@ -37,6 +37,7 @@ Page({
StyleType:'',
couponArr: [],//待领取的优惠券列表
couponList:[],//优惠券列表
distance: '',
},
couponModal: '',
/**
... ... @@ -73,22 +74,56 @@ Page({
},
// 获取店铺详情
getDetail(sid) {
let that = this;
App.Customer.GetSellerDetail({
openid: getApp().openid,
sid
}).then(res => {
let reserev = res.data;
let cate = [];
let latitude = '';
let longitude = '';
let distance = '';
if(reserev.cate && reserev.cate.length>0){
cate = reserev.cate.join(' | ')
}
this.setData({
seller: {
sellName: reserev.sellername,
date: reserev.daily.morning + ' ' + reserev.daily.night + ' ' + reserev.daily.noon,
seller_tel: reserev.seller_tel.split(','),
daily: reserev.daily.morning + ' ' + reserev.daily.noon + ' ' + reserev.daily.night,
seller_tel: reserev.phone,
address: reserev.map_address,
lat: reserev.lat,
long: reserev.long,
is_online_reserve: reserev.is_online_reserve,
is_parking:reserev.is_parking,
cate,
average:reserev.average,
}
})
wx.getLocation({
type: 'wgs84', // 返回可以用于 wx.openLocation 的经纬度
success: function (res) {
latitude = res.latitude; // 纬度
longitude = res.longitude; // 经度
console.log(`当前的纬度: ${latitude}, 当前的经度: ${longitude}`);
if (latitude && longitude) {
distance = that.getDistance(latitude, longitude, reserev.lat, reserev.long);
distance = parseInt(distance)
if (distance > 1000) {
distance = (distance / 1000).toFixed(2) + 'km'
} else {
distance += 'm';
}
that.setData({
distance
})
}
},
fail: function (err) {
console.error('获取位置失败:', err);
}
});
console.log('sellerseller', {
...this.data.seller
});
... ... @@ -99,6 +134,22 @@ Page({
console.log(res, '详情请求失败');
})
},
// 计算2点之间的距离
getDistance(lat1, lon1, lat2, lon2) {
const R = 6371e3; // 地球半径(米)
// 将经纬度转换为弧度
const φ1 = lat1 * Math.PI / 180; // 纬度1
const φ2 = lat2 * Math.PI / 180; // 纬度2
const Δφ = (lat2 - lat1) * Math.PI / 180; // 纬度差
const Δλ = (lon2 - lon1) * Math.PI / 180; // 经度差
// Haversine 公式
const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
Math.cos(φ1) * Math.cos(φ2) *
Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
const distance = R * c; // 计算距离(米)
return distance; // 返回距离
},
// 获取商家版本,不是超能版或者没有开通对应模块,不显示
getSellerVersionFun(sellerid) {
App.SellerVersion.GetSellerVersion({
... ...
... ... @@ -4,7 +4,6 @@
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav",
"titleStyle":"/components/titleStyle/titleStyle",
"my-modal": "/components/modal/modal",
"scroll-number": "/components/scroll-number/index"
}
... ...
<!--pages/reserve/shopHome.wxml-->
<nav hasHome class="navhome" backgroundColor="#0143a3" color="#fff" place="{{true}}">{{seller.sellName}}</nav>
<view>
<view class="flex-vc {{home.image?'sellBox':'sellBox sellBox1'}}">
<image wx:if="{{home.image}}" class="imgs" src="{{home.image}}" mode="widthFix" />
<view class="info flex-vl" style="background:#fff;">
<view class="flex-lr">
<view class="colorText font32r">{{seller.sellName}}</view>
<image bindtap="follow" wx:if="{{IsCollectionSeller}}" class="img1" src="https://qn.colorcun.com/heartFilledBlue.png" />
<image bindtap="follow" wx:else class="img1" src="https://qn.colorcun.com/heartBlue.png" />
</view>
<view class="colorFive text1 font28r">营业时间:{{seller.date}}</view>
<view class="colorFive text2 font28r">
电话:<text class="colorText" wx:for="{{seller.seller_tel}}" bindtap="call" data-info="{{item}}">{{item}}{{(seller.seller_tel.length-1)!=index?',':''}}</text>
</view>
<view class="colorFive font28r" bindtap="looklocation">
<text>地址:{{seller.address}}</text>
<image class="img2" src="https://qn.colorcun.com/address.png" />
</view>
</view>
</view>
<view class="preferential" wx:if="{{hasValueCertificate && marketing && coupon_dataList.length>0}}">
<block wx:for="{{coupon_dataList}}" wx:key="index" wx:for-index="index">
<navigator wx:if="{{item.resultCoupon == '1' || item.is_type != '3'}}" url="/pack-activity/pack/{{item.is_type == '3'?'receiveCoupon':'buyCoupon'}}?id={{item.id}}&name={{seller.sellName}}&use={{item.stringifyUse}}&sid={{sid}}&types=3&StyleType={{StyleType}}" hover-class="navigator-hover">
<view class="flex-vc {{home.image?'sellBox':'sellBox sellBox1'}}">
<image wx:if="{{home.image}}" class="imgs" src="{{home.image}}" mode="widthFix" />
<view class="info flex-vl" style="background:#fff;">
<view class="flex-lr">
<view class="colorText font32r">{{seller.sellName}}</view>
<view class="park font20r" wx:if="{{seller.is_parking == '1'}}">可停车</view>
</view>
<view class="flex-lr distanceMar">
<view class="flex-lr">
<view class="news font24r">{{seller.cate}}</view>
<view class="news font24r" wx:if="{{seller.average && seller.average>0}}">人均{{seller.average}}</view>
</view>
<view class="font24r news">{{distance}}</view>
</view>
<view class="bottom_btns">
<view class="book font24r">订过</view>
<view class="book font24r">去过</view>
<view class="book font24r">好友订过</view>
<view class="book font24r">我有券</view>
</view>
<view class="bottom_btns font24r">
营业时间:{{seller.daily}}
</view>
<view class="colorFive font28r flex-lr">
<text class="font28r">{{seller.address}}</text>
<view class="">
<image class="img2" bindtap="call" data-info="{{seller.seller_tel}}" src="https://qn.colorcun.com/phoneIcon.png" />
<image class="img2" bindtap="looklocation" src="https://qn.colorcun.com/navigationIcon.png" />
</view>
</view>
</view>
</view>
<view class="preferential" wx:if="{{hasValueCertificate && marketing && coupon_dataList.length>0}}">
<block wx:for="{{coupon_dataList}}" wx:key="index" wx:for-index="index">
<navigator wx:if="{{item.resultCoupon == '1' || item.is_type != '3'}}" url="/pack-activity/pack/receiveCoupon?id={{item.id}}&name={{seller.sellName}}&use={{item.stringifyUse}}&sid={{sid}}&types=3&StyleType={{StyleType}}" hover-class="navigator-hover">
<view class="couponWrap">
<view class="itemLeft">
<text wx:if="{{item.discount!='0.00' && (item.use.is_cash=='1' || item.use.is_cash) && item.discount}}" class="discountText font24r">{{item.discount}}折</text>
... ... @@ -55,7 +69,7 @@
<view wx:if="{{item.is_type == '4' && item.desc!='0'}}" class="bottom font24r">消费满{{item.desc}}元可用</view>
</block>
</view>
<view class="btnBox" wx:if="{{item.is_type == '3'}}" >
<view class="btnBox" wx:if="{{item.is_type == '3'}}">
<view class="font24r orderingFood orderingFood1">已领取</view>
<view class="grantNum" wx:if="{{item.receiveNumText}}">
<view class="font24r">已被领取</view>
... ... @@ -68,169 +82,152 @@
</view>
</view>
</navigator>
</block>
</view>
<!-- 餐厅介绍 -->
<block wx:if="{{marketing.logo || home.image || ((store.introduce && (!store.is_introduce || store.is_introduce!='0')) || (store.images.length>0 && (!store.is_images || store.is_images!='0')) || (store.content && store.content.length>0))}}">
<view class="introduceBox">
<block wx:if="{{(marketing && marketing.logo && (!marketing.is_logo || marketing.is_logo!='0')) || (store.introduce && (!store.is_introduce || store.is_introduce!='0')) || (home.image && (!home.id_first_image || home.id_first_image!='0'))}}">
<view wx:if="{{titleType}}" class="chefText font36r">
<titleStyle isWhite="pearlWhite" titleStyleType="{{titleType}}" titleText="{{store.title ? store.title : '餐厅介绍'}}"></titleStyle>
</view>
<image wx:if="{{marketing.logo}}" src="{{marketing.logo}}" bindtap="lookImgs" data-url="{{marketing.logo}}" mode="widthFix" />
<image wx:if="{{home.image}}" src="{{home.image}}" bindtap="lookImgs" data-url="{{home.image}}" class="homeImage" mode="widthFix"></image>
<view class="labelBox" wx:if="{{!store.content && store.introduce && (!store.is_introduce || store.is_introduce!='0')}}">
<text space="nbsp" class="texts">{{store.introduce}}</text>
</view>
<block wx:if="{{store.images.length>0 && (!store.is_images || store.is_images!='0')}}">
<block wx:for="{{store.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{store.images}}" mode="widthFix" />
</block>
</block>
<view class="contentBox" wx:if="{{store.content && store.content.length>0}}">
<block wx:for="{{store.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</block>
</view>
</block>
<!-- 主厨介绍 -->
<block wx:if="{{chef && ((chef.introduce && (!chef.is_introduce || chef.is_introduce!='0')) || (chef.image && (!chef.is_images || chef.is_images!='0')) || (chef.content && chef.content.length>0))}}">
<view class="introduceBox famousChefBox" wx:if="{{chef && ((!chef.is_introduce || chef.is_introduce!='0') || (!chef.is_images || chef.is_images!='0'))}}">
<view wx:if="{{titleType}}" class="chefText font36r">
<titleStyle isWhite="pearlWhite" titleStyleType="{{titleType}}" titleText="{{chef.title ? chef.title : '主厨介绍'}}"></titleStyle>
</view>
<view class="labelBox" wx:if="{{(chef.introduce && (!chef.is_introduce || chef.is_introduce!='0'))}}">
<text space="nbsp" class="texts">{{chef.introduce}}</text>
</view>
<image wx:if="{{(!chef.is_images || chef.is_images!='0') && chef.image}}" src="{{chef.image}}"bindtap="lookImgs" data-url="{{chef.image}}" mode="widthFix" />
<view class="contentBox" wx:if="{{chef.content && chef.content.length>0}}">
<block wx:for="{{chef.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</view>
</block>
<!-- 特色菜品 -->
<view class="introduceBox vegetableBox" wx:if="{{signboard && ((signboard.swich=='1' && signboard.images && signboard.images.length>0) || (signboard.content && signboard.content.length>0))}}">
<view wx:if="{{titleType}}" class="chefText font36r">
<titleStyle isWhite="pearlWhite" titleStyleType="{{titleType}}" titleText="{{signboard.title ? signboard.title : '特色菜品'}}"></titleStyle>
</view>
<block wx:for="{{signboard.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{signboard.images}}" mode="widthFix" />
</block>
<view class="contentBox" wx:if="{{signboard.content && signboard.content.length>0}}">
<block wx:for="{{signboard.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</view>
<!-- 停车指引 -->
<view class="introduceBox stopBox" wx:if="{{reserve && (reserve.swich_park=='1' && (reserve.park_info || reserve.park_info_images) || (reserve.content && reserve.content.length>0))}}">
<view wx:if="{{titleType}}" class="chefText font36r">
<titleStyle isWhite="pearlWhite" titleStyleType="{{titleType}}" titleText="{{reserve.title ? reserve.title : '停车指引'}}"></titleStyle>
</view>
<view class="labelBox" wx:if="{{reserve.park_info}}">
<text space="nbsp" class="texts">{{reserve.park_info}}</text>
</view>
<block wx:for="{{reserve.park_info_images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" mode="widthFix" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{reserve.park_info_images}}"/>
</block>
<view class="contentBox" wx:if="{{reserve.content && reserve.content.length>0}}">
<block wx:for="{{reserve.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</view>
<view class="preferential" wx:if="{{hasValueRecharge && marketing && marketing.is_recharge=='1' && recharge_data && recharge_data.id}}">
<view wx:if="{{titleType}}" class="chefText font36r">
<titleStyle isWhite="pearlWhite" titleStyleType="{{titleType}}" titleText="会员招募"></titleStyle>
</view>
<navigator url="/pack-activity/pack/vipRecharge?id={{recharge_data.id}}&name={{seller.sellName}}&sid={{sid}}&types=3&StyleType={{StyleType}}" hover-class="navigator-hover">
<view class="preferentialItems">
<view class="itemLeft">
<view class="itemTop font28r">
<text>{{recharge_data.rname}}</text>
</view>
<view class="font24r" wx:if="{{priceInfo}}">
{{priceInfo}}{{(recharge_data.recharge_list.is_coupons=='0' && recharge_data.recharge_list.is_score=='0')?'。':';'}}
</block>
</view>
<!-- 餐厅介绍 -->
<block wx:if="{{marketing.logo || home.image || ((store.introduce && (!store.is_introduce || store.is_introduce!='0')) || (store.images.length>0 && (!store.is_images || store.is_images!='0')) || (store.content && store.content.length>0))}}">
<view class="introduceBox">
<block wx:if="{{(marketing && marketing.logo && (!marketing.is_logo || marketing.is_logo!='0')) || (store.introduce && (!store.is_introduce || store.is_introduce!='0')) || (home.image && (!home.id_first_image || home.id_first_image!='0'))}}">
<view class="chefText font28r">
<text></text>{{store.title ? store.title : '餐厅介绍'}}
</view>
<image wx:if="{{marketing.logo}}" src="{{marketing.logo}}" bindtap="lookImgs" data-url="{{marketing.logo}}" mode="widthFix" />
<image wx:if="{{home.image}}" src="{{home.image}}" bindtap="lookImgs" data-url="{{home.image}}" class="homeImage" mode="widthFix"></image>
<view class="labelBox" wx:if="{{!store.content && store.introduce && (!store.is_introduce || store.is_introduce!='0')}}">
<text space="nbsp" class="texts">{{store.introduce}}</text>
</view>
<block wx:if="{{store.images.length>0 && (!store.is_images || store.is_images!='0')}}">
<block wx:for="{{store.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{store.images}}" mode="widthFix" />
</block>
</block>
<view class="contentBox" wx:if="{{store.content && store.content.length>0}}">
<block wx:for="{{store.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font24r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video object-fit="contain" autoplay="{{true}}" loop="{{true}}" muted="{{true}}" show-mute-btn="{{true}}" vslide-gesture-in-fullscreen="{{true}}" src="{{item.content}}"></video>
</view>
</block>
</view>
</block>
</view>
</block>
<!-- 主厨介绍 -->
<block wx:if="{{chef && ((chef.introduce && (!chef.is_introduce || chef.is_introduce!='0')) || (chef.image && (!chef.is_images || chef.is_images!='0')) || (chef.content && chef.content.length>0))}}">
<view class="introduceBox famousChefBox" wx:if="{{chef && ((!chef.is_introduce || chef.is_introduce!='0') || (!chef.is_images || chef.is_images!='0'))}}">
<view class="chefText font28r">
<text></text>{{chef.title ? chef.title : '主厨介绍'}}
</view>
<view class="labelBox" wx:if="{{(chef.introduce && (!chef.is_introduce || chef.is_introduce!='0'))}}">
<text space="nbsp" class="texts">{{chef.introduce}}</text>
</view>
<image wx:if="{{(!chef.is_images || chef.is_images!='0') && chef.image}}" src="{{chef.image}}" bindtap="lookImgs" data-url="{{chef.image}}" mode="widthFix" />
<view class="contentBox" wx:if="{{chef.content && chef.content.length>0}}">
<block wx:for="{{chef.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font24r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video object-fit="contain" autoplay="{{true}}" loop="{{true}}" muted="{{true}}" show-mute-btn="{{true}}" vslide-gesture-in-fullscreen="{{true}}" src="{{item.content}}"></video>
</view>
<view class="bottom font24r" wx:if="{{scoreInfo}}">
{{scoreInfo}}{{recharge_data.recharge_list.is_coupons=='0'?'。':';'}}
</block>
</view>
</view>
</block>
<!-- 特色菜品 -->
<view class="introduceBox vegetableBox" wx:if="{{signboard && ((signboard.swich=='1' && signboard.images && signboard.images.length>0) || (signboard.content && signboard.content.length>0))}}">
<view class="chefText font28r">
<text></text>{{signboard.title ? signboard.title : '主厨介绍'}}
</view>
<block wx:for="{{signboard.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{signboard.images}}" mode="widthFix" />
</block>
<view class="contentBox" wx:if="{{signboard.content && signboard.content.length>0}}">
<block wx:for="{{signboard.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font24r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video object-fit="contain" autoplay="{{true}}" loop="{{true}}" muted="{{true}}" show-mute-btn="{{true}}" vslide-gesture-in-fullscreen="{{true}}" src="{{item.content}}"></video>
</view>
</block>
</view>
</view>
<!-- 停车指引 -->
<view class="introduceBox stopBox" wx:if="{{reserve && (reserve.swich_park=='1' && (reserve.park_info || reserve.park_info_images) || (reserve.content && reserve.content.length>0))}}">
<view class="chefText font28r">
<text></text>{{reserve.title ? reserve.title : '主厨介绍'}}
</view>
<view class="labelBox" wx:if="{{reserve.park_info}}">
<text space="nbsp" class="texts">{{reserve.park_info}}</text>
</view>
<block wx:for="{{reserve.park_info_images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" mode="widthFix" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{reserve.park_info_images}}" />
</block>
<view class="contentBox" wx:if="{{reserve.content && reserve.content.length>0}}">
<block wx:for="{{reserve.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font24r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video object-fit="contain" autoplay="{{true}}" loop="{{true}}" muted="{{true}}" show-mute-btn="{{true}}" vslide-gesture-in-fullscreen="{{true}}" src="{{item.content}}"></video>
</view>
</block>
</view>
</view>
<view class="vipRechargeBox" wx:if="{{hasValueRecharge && marketing && marketing.is_recharge=='1' && recharge_data && recharge_data.id}}">
<view class="chefText font28r">
<text></text>会员招募
</view>
<navigator url="/pack-activity/pack/vipRecharge?id={{recharge_data.id}}&name={{seller.sellName}}&sid={{sid}}&types=3&StyleType={{StyleType}}" hover-class="navigator-hover">
<view class="couponWrap">
<view class="itemLeft font20r">
<view class="priceText"><view class="icons font24r">¥</view><text class="font48r">{{recharge_data.recharge_money}}</text></view>
</view>
<view class="couponLine"></view>
<view class="itemRight">
<view class="btns">
<view class="bottom font24r" wx:if="{{priceInfo}}">
{{priceInfo}}{{(recharge_data.recharge_list.is_coupons=='0' && recharge_data.recharge_list.is_score=='0')?'。':';'}}
</view>
<view class="bottom font24r" wx:if="{{scoreInfo}}">
{{scoreInfo}}{{recharge_data.recharge_list.is_coupons=='0'?'。':';'}}
</view>
<view class="bottom font24r" wx:if="{{recharge_data.recharge_list.is_coupons=='1'}}">
{{recharge_data.recharge_list.is_coupons=='1'?'会员充值满'+recharge_data.recharge_money+'元赠送'+certificate:''}}。
</view>
</view>
<view class="bottom font24r" wx:if="{{recharge_data.recharge_list.is_coupons=='1'}}">
{{recharge_data.recharge_list.is_coupons=='1'?'会员充值满'+recharge_data.recharge_money+'元赠送'+certificate:''}}。
<view class="btnBox">
<view class="font24r orderingFood">
充值
</view>
</view>
</view>
<view class="font24r orderingFood">
抢购
</view>
</view>
</navigator>
</view>
<view class="vips">
<view wx:if="{{hasValueRecharge && marketing.is_link=='1'}}" class="font24r favouredPolicy" bindtap="gotoFavourableList">
点击了解更多会员优惠政策
</view>
<text class="businessBox">
周到安排提供技术支持<text bindtap="callPhone" data-phone="4000009690">4000009690</text>,餐厅入驻请点击<text bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</text>
</text>
</view>
<view class="all-button flex-lr between">
<button class="book-item-font flex-cc font30r shareItem" open-type="share">转发给朋友</button>
</view>
<view class="vips">
<view wx:if="{{hasValueRecharge && marketing.is_link=='1'}}" class="font24r favouredPolicy" bindtap="gotoFavourableList">
点击了解更多会员优惠政策
</view>
<text class="businessBox">
周到安排提供技术支持<text bindtap="callPhone" data-phone="4000009690">4000009690</text>,餐厅入驻请点击<text bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</text>
</text>
</view>
<view class="all-button flex-lr between">
<view class="leftBtn">
<button class="btn1" bindtap="follow">
<image wx:if="{{IsCollectionSeller}}" class="img1" src="https://qn.colorcun.com/collect.png" />
<image wx:else class="img1" src="https://qn.colorcun.com/collectSelect.png" />
<view class="font24r">收藏</view>
</button>
<button class="shareItem btn1" open-type="share">
<image src="https://qn.colorcun.com/voucherIcon2.png" mode="" />
<view class="font24r">分享</view>
</button>
</view>
<block wx:if="{{seller.is_online_reserve == '1'}}">
<navigator url="/pages/reserve/reserve?id={{sid}}&activeTab=reserve" class="book-item-font second-book-button flex-cc font30r" style="position: relative;">预订包间</navigator>
</block>
</view>
</view>
</view>
<my-modal id="couponModal" fadeStyle="slideUp" height="240px">
<view slot="modalName" class="titleModal">
... ... @@ -242,7 +239,7 @@
<text class="counterText1">元</text>代金券
</view>
</view>
<view slot="modalContent">
<view slot="modalContent">
<!-- <view class="couponBox">
<view wx:for="{{couponArr}}" class="couponItems">
<view class="couponNum font20r">×{{item.number}}</view>
... ... @@ -254,5 +251,5 @@
</view> -->
<view class="couponInfo font24r">您到店扫码支付即可自动使用</view>
<view bindtap="closeCouponModal" class="couponBtn font36r">我知道了</view>
</view>
</view>
</my-modal>
\ No newline at end of file
... ...
/* pages/reserve/shopHome.wxss */
page {
background: #F5F5F5;
}
.imgs {
width: 100%;
position: absolute;
left: 0;
top: 0;
width: 100%;
position: absolute;
left: 0;
top: 0;
}
.my_canvas {
position: relative;
padding-bottom: 200rpx;
position: relative;
padding-bottom: 200rpx;
}
.sellBox {
width: 100%;
position: relative;
height: 562rpx;
margin-bottom: 200rpx;
width: 100%;
position: relative;
height: 562rpx;
margin-bottom: 200rpx;
}
.sellBox1{
min-height: 330rpx;
height: auto;
margin-bottom: 130rpx;
.sellBox1 {
min-height: 210rpx;
height: auto;
margin-bottom: 140rpx;
}
.info {
width: 90%;
padding: 44rpx 26rpx 26rpx 20rpx;
position: absolute;
bottom: -30%;
box-sizing: border-box;
background: #fff;
background-color: #fff;
border-radius: 16rpx;
border: 2rpx solid #0143A3;
width: 100%;
padding: 24rpx;
position: absolute;
bottom: -60%;
box-sizing: border-box;
background: #fff;
background-color: #fff;
border-radius: 40rpx 40rpx 0 0;
}
.img1 {
width: 50rpx;
height: 50rpx;
width: 40rpx;
height: 40rpx;
}
.img2 {
width: 30rpx;
height: 38rpx;
margin-left: 10rpx;
position: relative;
width: 30rpx;
height: 38rpx;
margin-left: 10rpx;
position: relative;
top: 8rpx;
flex-shrink: 0;
}
.colorText {
color: #0143A3;
color: #000;
font-family: PingFang SC;
font-weight: 600;
}
.text1 {
margin: 40rpx 0 10rpx 0;
.colorFive {
display: flex;
align-items: baseline;
padding: 10rpx 0;
}
.text2 {
margin-bottom: 10rpx;
.colorFive {
color: #000;
font-family: PingFang SC;
font-weight: 600;
}
.colorFive {
color: #515151;
display: flex;
align-items: baseline;
.img2 {
width: 52rpx;
height: 52rpx;
}
.colorFive text {
... ... @@ -75,256 +83,315 @@
}
.introduce {
box-sizing: border-box;
box-sizing: border-box;
}
.imgMask {
margin: 0 40rpx;
margin: 0 40rpx;
}
.lines {
height: 2rpx;
margin: 20rpx 20rpx 20rpx 0;
background-color: #0143A3;
height: 2rpx;
margin: 20rpx 20rpx 20rpx 0;
background-color: #0143A3;
}
.mtnone {
margin-top: 0;
margin-top: 0;
}
.famousChefBox .labelBox {
border-bottom: none;
border-bottom: none;
}
.labelBox {
margin: 20rpx 20rpx 0 20rpx;
display: flex;
position: relative;
padding-bottom: 20rpx;
margin: 20rpx 20rpx 0 20rpx;
display: flex;
position: relative;
padding-bottom: 20rpx;
}
.labelBox .texts {
width: 100%;
line-height: 40rpx;
color: #515151;
font-family: PingFang SC;
font-size: 32rpx;
font-weight: 500;
width: 100%;
line-height: 40rpx;
color: #515151;
font-family: PingFang SC;
font-size: 32rpx;
font-weight: 500;
}
.contentBox {
width: 100%;
margin-top: 20rpx;
width: 100%;
margin-top: 20rpx;
}
.contentBox .texts {
line-height: 40rpx;
margin: 0 20rpx;
color: #515151;
font-family: PingFang SC;
font-weight: 500;
display: block;
line-height: 40rpx;
margin: 0 24rpx 24rpx 24rpx;
color: #000;
font-family: PingFang SC;
font-weight: 500;
display: block;
}
.contentBox view,.contentBox text,.contentBox image{
margin-bottom: 20rpx !important;
.introduceBox {
background: #fff;
padding-bottom: 20rpx;
}
.introduceBox image {
width: 100%;
margin-bottom: 20rpx;
display: block !important;
vertical-align: top;
padding: 0 20rpx;
box-sizing: border-box;
width: 100%;
margin-bottom: 20rpx;
display: block !important;
vertical-align: top;
padding: 0 24rpx;
box-sizing: border-box;
border-radius: 10rpx;
}
.labelBox .line1 {
margin: 0 0 0 16rpx;
margin: 0 0 0 16rpx;
}
.imgMask image {
width: 100%;
display: block;
margin-bottom: 20rpx;
width: 100%;
display: block;
margin-bottom: 20rpx;
}
.famousChefBox,
.vegetableBox {
position: relative;
margin-top: 20rpx;
position: relative;
margin-top: 20rpx;
}
.vegetableBox .chefText {
margin-top: 0;
.chefText {
font-family: PingFang SC;
margin: 20rpx 20rpx 20rpx 0;
font-weight: 500;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
display: flex;
align-items: center;
font-family: PingFang SC;
padding: 24rpx 0 12rpx 24rpx;
}
.chefText {
font-family: PingFang SC;
margin: 20rpx 20rpx 20rpx 0;
font-weight: 500;
color: #0143A3;
.chefText text {
display: block;
width: 8rpx;
height: 32rpx;
margin-right: 16rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.between {
justify-content: space-between;
justify-content: space-between;
}
.all-button {
background: #FAFAFA;
height: 160rpx;
padding: 0 40rpx;
box-sizing: border-box;
z-index: 100;
justify-content: flex-end;
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background: #fff;
height: 160rpx;
padding: 0 40rpx;
box-sizing: border-box;
z-index: 100;
justify-content: space-between;
position: fixed;
left: 0;
bottom: 0;
width: 100%;
}
.book-item-font {
width: 100%;
height: 46%;
border-radius: 42rpx;
font-weight: 600;
width: 40%;
height: 46%;
border-radius: 42rpx;
font-weight: 600;
}
.second-book-button {
margin-left: 20rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
color: #fff;
margin-left: 20rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
}
.shareItem {
width: 46%;
margin: 0;
border: 2rpx solid #0143A3;
color: #0143A3;
.leftBtn {
display: flex;
justify-content: space-between;
background: #fff;
}
.leftBtn button {
background: #fff;
}
.btn1 {
margin: 0;
display: flex;
align-items: center;
flex-direction: column;
}
.btn1 view {
margin-top: -10%;
}
.shareItem image {
width: 40rpx;
height: 40rpx;
}
.preferential {
margin-top: 28rpx;
margin-top: 48%;
background: #fff;
padding: 24rpx;
}
.vipRechargeBox {
background: #fff;
padding: 0 24rpx 24rpx 24rpx;
margin-top: 24rpx;
}
.vipRechargeBox .couponWrap .itemLeft {
width: 22%;
}
.vipRechargeBox .couponWrap .itemLeft {
padding: 0 30rpx;
}
.vipRechargeBox .couponWrap .orderingFood {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.rubric1 {
margin-bottom: 20rpx;
margin-bottom: 20rpx;
}
.couponWrap .nodate{
.couponWrap .nodate {
padding-left: 20rpx;
}
.preferentialItems {
padding: 20rpx 30rpx 20rpx 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
background: url('https://qn.colorcun.com/certificateBj.png') no-repeat;
background-size: 100% 100%;
margin: 0 20rpx 20rpx 20rpx;
min-height: 160rpx;
padding-bottom: 10rpx;
border-right: 20rpx;
display: flex;
justify-content: space-between;
align-items: center;
background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%);
background-size: 100% 100%;
margin: 0 20rpx 20rpx 20rpx;
}
.itemLeft {
width: 75%;
width: 75%;
}
.itemTop {
display: flex;
width: 100%;
align-items: center;
margin-bottom: 20rpx;
height: 100%;
display: flex;
align-items: center;
margin-bottom: 20rpx;
color: #F6231B;
border-right: 2rpx dashed #f6231b;
}
.itemBottom {
color: #515151;
font-family: PingFang SC;
font-weight: 500;
display: -webkit-box;
word-break: break-all;
word-wrap: break-word;
overflow: hidden;
text-align: left;
color: #515151;
font-family: PingFang SC;
font-weight: 500;
display: -webkit-box;
word-break: break-all;
word-wrap: break-word;
overflow: hidden;
text-align: left;
}
.itemTop text:nth-of-type(1) {
max-width: 65%;
font-weight: 600;
color: #515151;
max-width: 65%;
font-weight: 600;
color: #515151;
}
.itemTop .discountText {
text-align: center;
color: #E34D59;
border: 2rpx solid #E34D59;
border-radius: 6rpx;
margin: 0 10rpx 0 20rpx;
font-family: PingFang SC;
padding: 0 10rpx;
text-align: center;
color: #E34D59;
border: 2rpx solid #E34D59;
border-radius: 6rpx;
margin: 0 10rpx 0 20rpx;
font-family: PingFang SC;
padding: 0 10rpx;
}
.itemTop .priceText {
color: #E34D59;
font-weight: 500;
color: #E34D59;
font-weight: 500;
}
.priceText {
display: flex;
align-items: center;
justify-content: center;
display: flex;
align-items: center;
justify-content: center;
}
.priceText .icons {
margin-left: 18rpx;
color: #E34D59;
font-size: 20rpx;
margin-left: 18rpx;
color: #E34D59;
font-size: 20rpx;
}
.orderingFood {
padding: 0 26rpx;
border-radius: 22rpx;
text-align: center;
color: #fff;
border-radius: 32rpx;
margin: 10rpx 0;
line-height: 44rpx;
height: 44rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
padding: 0 26rpx;
border-radius: 22rpx;
text-align: center;
color: #fff;
border-radius: 32rpx;
margin: 10rpx 0;
line-height: 44rpx;
height: 44rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
width: max-content;
flex-shrink: 0;
}
.vips {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding-bottom: 240rpx;
margin-top: 20rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding-bottom: 240rpx;
margin-top: 20rpx;
}
.businessBox {
color: #515151;
font-size: 24rpx;
font-family: PingFang SC;
color: #515151;
font-size: 24rpx;
font-family: PingFang SC;
}
.businessBox text {
color: #0143A3;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.favouredPolicy {
width: 45%;
color: #5C95D7;
font-family: PingFang SC;
font-weight: 500;
border: 2rpx solid #5C95D7;
border-radius: 22rpx;
text-align: center;
padding: 10rpx;
width: 45%;
font-family: PingFang SC;
font-weight: 500;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
border-radius: 22rpx;
text-align: center;
padding: 10rpx;
}
.videoBox{
.videoBox {
display: flex;
flex-wrap: wrap;
align-items: center;
... ... @@ -332,41 +399,40 @@
margin: 0 20rpx;
}
.videoBox video{
.videoBox video {
width: 100%;
box-sizing: border-box;
}
.couponWrap {
display: flex;
background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%);
min-height: 160rpx;
padding-bottom: 10rpx;
background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%);
min-height: 160rpx;
padding-bottom: 10rpx;
border-radius: 20rpx;
border: 2rpx solid #ff7e06;
margin: 0 20rpx 20rpx 20rpx;
margin-bottom: 16rpx;
}
.couponWrap .itemRight {
width: 74%;
display: flex;
align-items: center;
flex-direction:row;
flex-direction: row;
padding-right: 10rpx;
margin-left: 18rpx;
}
.couponWrap .bottom {
margin-top: 4rpx;
width: 100%;
color: #C36607;
font-family: PingFang SC;
font-weight: 500;
display: -webkit-box;
word-break: break-all;
word-wrap: break-word;
overflow: hidden;
text-align: left;
margin-top: 4rpx;
width: 100%;
color: #C36607;
font-family: PingFang SC;
font-weight: 500;
display: -webkit-box;
word-break: break-all;
word-wrap: break-word;
overflow: hidden;
text-align: left;
}
.couponWrap .itemLeft {
... ... @@ -379,7 +445,7 @@
border-bottom-left-radius: 20rpx;
}
.couponWrap .couponLine{
.couponWrap .couponLine {
margin: 24rpx 0 4rpx 0;
border-right: 2rpx dashed #f6231b;
}
... ... @@ -396,6 +462,7 @@
flex-shrink: 0;
background: linear-gradient(94.4deg, #f41919 2.72%, #ff7426 122.17%);
}
.couponWrap .icons {
color: #F6231B !important;
text-align: center;
... ... @@ -418,13 +485,14 @@
.couponWrap .btns {
flex: 1;
margin: 24rpx 20rpx 0 0;
display: flex;
justify-content: space-evenly;
align-items: baseline;
margin: 24rpx 20rpx 0 0;
display: flex;
justify-content: space-evenly;
align-items: baseline;
flex-direction: column;
height: 90%;
}
.couponWrap .btnBox {
display: flex;
flex-direction: column;
... ... @@ -455,55 +523,55 @@
.couponWrap .discountText {
background: #F6231B;
text-align: center;
color: #FFEFC5;
border-radius: 6rpx;
font-family: PingFang SC;
background: #FD4D59;
width: max-content;
padding: 6rpx;
position: absolute;
left: 16rpx;
top: 12rpx;
}
.couponWrap .discountText1{
text-align: center;
border-radius: 6rpx;
font-family: PingFang SC;
width: max-content;
padding: 2rpx 8rpx;
position: absolute;
left: 16rpx;
top: 12rpx;
}
.discountText2{
text-align: center;
color: #FFEFC5;
border-radius: 6rpx;
font-family: PingFang SC;
background: #FD4D59;
width: max-content;
padding: 6rpx;
position: absolute;
left: 16rpx;
top: 12rpx;
}
.couponWrap .discountText1 {
text-align: center;
border-radius: 6rpx;
font-family: PingFang SC;
width: max-content;
padding: 2rpx 8rpx;
position: absolute;
left: 16rpx;
top: 12rpx;
}
.discountText2 {
background: #FD4D59;
color: #fff;
}
.discountText3{
.discountText3 {
color: #FD4D59;
border: 2rpx solid #FD4D59;
}
#couponModal .titleModal {
margin-top: 60%;
margin-top: 60%;
position: relative;
width: 100%;
}
#couponModal .titleModal2 {
margin: 80% auto 0 auto;
margin: 80% auto 0 auto;
}
#couponModal .titleModal3 {
margin-top: 60%;
margin-top: 60%;
}
#couponModal .titleModal4 {
margin-top: 30%;
margin-top: 30%;
}
#couponModal .mymodal {
... ... @@ -515,7 +583,7 @@
}
.nameInfo {
font-family: PingFang SC;
font-family: PingFang SC;
font-weight: 400;
font-size: 52rpx;
line-height: 56rpx;
... ... @@ -527,7 +595,7 @@
.couponTotal {
color: #dfdfdf;
font-family: PingFang SC;
font-family: PingFang SC;
font-weight: 400;
font-size: 40rpx;
line-height: 48rpx;
... ... @@ -588,7 +656,7 @@
font-weight: 500;
}
.couponLines{
.couponLines {
width: 80%;
margin: 0 auto;
height: 2rpx;
... ... @@ -613,12 +681,12 @@
width: 80%;
margin: 0 auto;
border-radius: 42rpx;
background: linear-gradient(90.98deg, #f41919 0.25%, #ff7426 120.07%);
background: linear-gradient(90.98deg, #f41919 0.25%, #ff7426 120.07%);
font-weight: 400;
color: #fff;
text-align: center;
border: 4rpx solid #fff;
padding: 12rpx 0;
padding: 12rpx 0;
margin: 16rpx auto 20rpx auto;
}
... ... @@ -634,4 +702,41 @@
position: absolute;
right: 5%;
top: -10%;
}
.park {
background: #FFEEDF;
color: #B56737;
padding: 8rpx 12rpx 0 12rpx;
border-radius: 4rpx;
height: 30rpx;
line-height: 30rpx;
flex-shrink: 0;
}
.distanceMar {
margin: 10rpx 0;
}
.news {
color: #696969;
font-family: PingFang SC;
font-weight: 400;
}
.bottom_btns {
display: flex;
padding: 12rpx 0;
border-bottom: 2rpx solid #F7F7F7;
color: #696969;
}
.book {
margin-right: 8rpx;
padding: 4rpx 12rpx;
background: #FFF7F5;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border-radius: 4rpx;
}
\ No newline at end of file
... ...
... ... @@ -19,6 +19,9 @@ Page({
detail:null,
user:_u,
loading:0,
array:['先生','女士','公司'],
activeSex:0,
activeId:'',//选中预订人的id
},
hasSubmit:true,
/**
... ... @@ -37,8 +40,10 @@ Page({
if(v.is_default==1){
this.user = v
v.remark=wx.getStorageSync('remark') ? wx.getStorageSync('remark') : '';
this.setData({
this.setData({
user: v,
activeSex:this.user.sex*1-1,
activeId:v.id,
})
return;
}
... ... @@ -107,21 +112,22 @@ Page({
},
selectconcat(){
wx.navigateTo({
url:'/pages/me/concat?action=select'
url:'/pages/me/concat?action=select&activeId='+this.data.activeId
})
},
changeInput(e) {
let key = util.attr(e, 'key');
let val = ''
if (key == 'sex') {
val = util.attr(e, 'val');
val = e.detail.value*1+1;
} else {
val = util.val(e);
val = util.val(e);
}
this.user[key] = val;
if (key == 'sex') {
this.setData({
user: this.user
user: this.user,
activeSex:e.detail.value,
})
}
},
... ...
<!--pages/reserve/submit.wxml-->
<page loading="{{loading}}">
<nav hasBack>预订详情</nav>
<view bindtap="editorReserve">
<view>
<card seller="{{seller}}" detail="{{detail}}"></card>
</view>
<view class="view margin bg-white padding-lr text-df text-666666 userinfo">
<view class="view flex align-center justify-between solid-bottom" style="height: 100rpx;">
<view>填写信息</view>
<view class="text-blue" catchtap="selectconcat">选择预订人</view>
<view class="font28r">填写信息</view>
<view class="textColor" catchtap="selectconcat">
<image src="https://qn.colorcun.com/liaisonIcon.png" mode=""/>
选择预订人</view>
</view>
<view class="view flex align-center justify-between " style="height: 100rpx;">
<image src="http://nosqn.colorcun.com/detail/x%20%2816%29.png" style="width: 40rpx;height: 40rpx;"></image>
<view class="view flex-treble flex align-center margin-left-sm solid-bottom" style="height: 100rpx;">
<view class="view flex align-center justify-between solid-bottom" style="height: 100rpx;">
<view class="title font28r">预订人</view>
<view class="view flex-treble flex align-center margin-left-lg" style="height: 100rpx;">
<input class="name flex-treble" placeholder="请填写预订人姓名"
bindinput="changeInput"
data-key="name"
... ... @@ -20,7 +22,13 @@
bindkeyboardheightchange="keyboardheightchange"
adjust-position="{{false}}"
placeholder-class="input-pl" maxlength="10"/>
<view class="flex text-30 sex">
<picker bindchange="changeInput" data-key="sex" value="{{activeSex}}" range="{{array}}">
<view class="pickerBox font28r">
{{array[activeSex]}}
<image src="https://qn.colorcun.com/arrowBottom.png" mode=""/>
</view>
</picker>
<!-- <view class="flex text-30 sex">
<view bindtap="changeInput"
data-key="sex"
data-val="1"
... ... @@ -33,12 +41,12 @@
data-key="sex"
data-val="3"
class="text-bold margin-left-sm {{user.sex==3?'checked':''}}">公司</view>
</view>
</view> -->
</view>
</view>
<view class="view flex align-center justify-between " style="height: 100rpx;">
<image src="http://nosqn.colorcun.com/detail/x%20%2817%29.png" style="width: 40rpx;height: 40rpx;"></image>
<view class="view flex-treble flex align-center margin-left-sm solid-bottom" style="height: 100rpx;">
<view class="view flex align-center justify-between solid-bottom" style="height: 100rpx;">
<view class="title font28r">电话</view>
<view class="view flex-treble flex align-center margin-left-lg" style="height: 100rpx;">
<input class="phone flex-treble" placeholder="请填写联系方式"
bindinput="changeInput"
data-key="phone"
... ... @@ -55,18 +63,21 @@
</view>
</view>
</view>
<view class="view flex align-start justify-between padding-tb">
<image src="http://nosqn.colorcun.com/detail/x%20%2818%29.png" style="width: 40rpx;height: 40rpx;"></image>
<view bindtap="toremark" class="view flex-treble flex align-center margin-left-sm {{user.remark?'text-black':''}}">
<view class="view flex align-start justify-between" style="height: 100rpx;">
<view class="title font28r">备注</view>
<view bindtap="toremark" class="view flex-treble flex align-center margin-left-lg {{user.remark?'text-black':''}}" style="height: 100rpx;">
{{user.remark && user.remark!='' ? user.remark : '您的备注,我们会尽量安排'}}
</view>
</view>
</view>
<subscribe ids="{{[0,1]}}" bindevent="saved">
<view class="view share-but bg-blue-blue round margin-lr-lg flex align-center justify-center">
<view class="txt-36-h text-bold">提交预订</view>
</view>
</subscribe>
<view class="btns share-but">
<view class="checkBtn text-bold font28r" bindtap="editorReserve">重新选择</view>
<view class="view round margin-lr-lg flex align-center justify-center">
<subscribe ids="{{[0,1]}}" bindevent="saved">
<view class="txt-36-h text-bold font28r">提交预订</view>
</subscribe>
</view>
</view>
</page>
<menu></menu>
<service></service>
\ No newline at end of file
... ...
... ... @@ -10,7 +10,9 @@ page{
}
.sex .checked{
position: relative;
color:var(--blue);
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.sex .checked:after{
width: 24rpx;
... ... @@ -28,6 +30,94 @@ page{
height: 84rpx;
width: calc(100% - 80rpx);
}
.textColor {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
}
.textColor image {
width: 40rpx;
height: 40rpx;
margin-right: 8rpx;
}
.btns {
display: flex;
align-items: center;
justify-content: space-between;
background: #fff;
padding: 34rpx 40rpx 20rpx 40rpx;
}
.checkBtn {
width: 43%;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
height: 70rpx;
line-height: 70rpx;
border-radius: 198rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: 600;
}
.round {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
width: 43%;
height: 72rpx;
line-height: 72rpx;
border-radius: 198rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
}
.round view {
width: 100%;
height: 70rpx;
line-height: 70rpx;
border-radius: 198rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
}
.title {
width: 112rpx;
text-align: justify;
height: 100rpx;
line-height: 100rpx;
}
.title:after {
content: '';
display: inline-block;
width: 100%;
}
.pickerBox {
display: flex;
align-items: center;
font-family: PingFang SC;
font-weight: 400;
}
.pickerBox image {
width: 24rpx;
height: 24rpx;
}
/*
.pages{
padding: 30rpx;
... ...
// pages/reserveNew/collect.js
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
barHeight: '', //状态栏+导航栏高度
checkType: '', //城市筛选1 美食筛选2
cateList: [], //美食列表
seachList: [{
id: '1',
title: '全部城市',
check: false,
},
{
id: '2',
title: '美食筛选',
check: false,
}
],
cityList: [{
id: '1',
name: '全部城市',
check: true,
},
{
id: '2',
name: '北京市',
check: false,
},
{
id: '3',
name: '天津市',
check: false,
},
{
id: '4',
name: '唐山市',
check: false,
}
],
sellerInfo: [{
"id": "8",
"sellername": "石府大酒店",
"is_parking": "1",
"average": "85",
"cate": [
"中餐",
"京菜鲁菜",
"淮扬菜"
],
"juli": '300m',
'shoucang': '0',
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
}]
},
modal: '',
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.modal = this.selectComponent("#seachModal");
this.getCates()
},
// 选择筛选
checkDish(e) {
let activeId = e.currentTarget.dataset['id'];
const {
data
} = this;
const list = data.checkType == '1' ? data.cityList : data.cateList;
const idx = list.findIndex(item => item.id === activeId);
if (idx !== -1) {
if (data.checkType == '1') {
list.forEach((item, i) => {
if (i != idx) {
item.check = false;
} else {
item.check = true;
}
})
let seachList = data.seachList
seachList[0].title = data.cityList[idx].name;
this.setData({
seachList
})
this.modal.closeModal()
} else {
list[idx].check = !list[idx].check;
}
}
this.setData({
[data.checkType === '1' ? 'cityList' : 'cateList']: list,
});
},
// 重置
resetFun() {
let cateList = this.data.cateList;
cateList.forEach(i => {
i.check = false;
})
this.setData({
cateList,
});
},
// 筛选点确定
submitFun() {
const result1 = this.data.cateList.filter(item => item.check).map(item => item.id).join(',');
console.log('选择的菜品id', result1);
this.modal.closeModal()
},
// 切换筛选
checkSeachFun(e) {
let type = e.currentTarget.dataset['type'];
let seachList = this.data.seachList;
let i = type == '1' ? 0 : 1;
let idx = type == '1' ? 1 : 0
let check = seachList[i].check
if (check) {
seachList[i].check = false
seachList[idx].check = false
this.modal.closeModal()
} else {
seachList[i].check = true
seachList[idx].check = false
this.modal.showModal()
}
this.setData({
checkType: type,
seachList
})
},
// 获取美食列表
getCates() {
App.Reserve.GetCustomerConfig().then(res => {
let cateList = res.data.cate;
cateList.forEach(i => {
i.check = false;
})
this.setData({
cateList,
})
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
//导航栏自适应
let systemInfo = wx.getSystemInfoSync();
let reg = /ios/i;
let pt = 20; //导航状态栏上内边距
let h = 44; //导航状态栏高度
if (reg.test(systemInfo.system)) {
pt = systemInfo.statusBarHeight;
h = 44;
} else {
pt = systemInfo.statusBarHeight;
h = 48;
}
this.setData({
barHeight: pt + h,
})
this.modal.closeModal()
this.getCates()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
\ No newline at end of file
... ...
{
"navigationBarBackgroundColor": "#ddd",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav",
"my-modal": "/components/modal/modal"
}
}
\ No newline at end of file
... ...
<!--pages/reserveNew/collect.wxml-->
<nav backgroundColor="#fff" place="{{false}}" class="navhome">
我的收藏
</nav>
<view class="topBox" style="position: fixed;top:{{barHeight}}px;left: 0;z-index: 100;">
<view class="seachInfo seachInfo{{item.id}}" bindtap="checkSeachFun" data-type="{{item.id}}" wx:for="{{seachList}}" wx:key="{{item.id}}">
<text class="{{item.check ? 'checkTitle':''}}">{{item.title}}</text>
<image src="https://qn.colorcun.com/{{item.check?'arrowTop':'arrowBottom'}}.png" mode="" />
</view>
</view>
<view class="mian" style="padding-top:{{barHeight+20}}px;">
<view class="sellerBox">
<view class="sellerItems" wx:for="{{sellerInfo}}" wx:key="{{item.id}}">
<image class="sellerimage" src="{{item.seller_image}}" mode="scaleToFill" />
<view class="info">
<view class="news">
<text class="info_name font28r">{{item.sellername}}</text>
<text wx:if="{{item.is_parking == '1'}}" class="park font20r">可停车</text>
</view>
<view class="news">
<view>
<text wx:if="{{item.cate}}" class="texts cateText font24r">{{item.cate}}</text>
<text class="texts font24r" wx:if="{{item.average && item.average>0}}">¥{{item.average}}</text>
</view>
<view class="texts font24r">{{item.juli}}</view>
</view>
<view class="bottom_btns">
<view class="book font24r">订过</view>
<view class="book font24r">去过</view>
<view class="book font24r">好友订过</view>
<view class="book font24r">我有券</view>
</view>
<view class="onLineBtn">
<view class="onLineBtn font24r">领券预订</view>
</view>
</view>
</view>
</view>
</view>
<my-modal id="seachModal" fadeStyle="slideDown" height="52%" modalTop="{{barHeight+20}}px">
<view slot="modalContent">
<view class="cityBox" wx:if="{{checkType == '1'}}">
<view class="city font24r" bindtap="checkDish" data-id="{{item.id}}" data-check="{{item.check}}" wx:for="{{cityList}}" wx:key="{{item.id}}">
{{item.name}}
<image wx:if="{{item.check}}" src="https://qn.colorcun.com/checkIcon.png" mode="" />
</view>
</view>
<viw class="titleBox font28r" wx:if="{{checkType == '2'}}">菜系(可多选)</viw>
<view class="dishBox" wx:if="{{checkType == '2'}}">
<view class="dish font24r {{item.check?'dishCheck':''}}" bindtap="checkDish" data-id="{{item.id}}" data-check="{{item.check}}" wx:for="{{cateList}}" wx:key="{{item.id}}">
{{item.name}}
</view>
</view>
<view class="btns" wx:if="{{checkType == '2'}}">
<button class="font28r btn reset" bindtap="resetFun">重置</button>
<button class="font28r btn sure" bindtap="submitFun">确定</button>
</view>
</view>
</my-modal>
\ No newline at end of file
... ...
/* pages/reserveNew/collect.wxss */
page {
background: #F5F5F5;
}
.topBox {
width: 100%;
display: flex;
align-items: center;
background: #fff;
height: 40rpx;
}
.seachInfo {
display: flex;
align-items: center;
justify-content: center;
}
.seachInfo1 {
padding: 0 20rpx 0 32rpx;
}
.seachInfo image {
width: 24rpx;
height: 24rpx;
margin-left: 4rpx;
}
.seachInfo text {
font-family: PingFang SC;
color: #000;
font-size: 28rpx;
}
.seachInfo .checkTitle {
height: 60rpx;
line-height: 60rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.sellerBox {
display: flex;
flex-direction: column;
margin: 0 12rpx;
}
.sellerItems {
margin-top: 12rpx;
background: #fff;
border-radius: 10rpx;
display: flex;
padding: 24rpx;
}
.sellerimage {
width: 200rpx;
height: 200rpx;
position: relative;
border-radius: 10rpx;
}
.cateText {
margin-right: 40rpx;
}
.info {
margin-left: 16rpx;
flex: 1;
}
.news {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10rpx;
}
.park {
background: #FFEEDF;
color: #B56737;
padding: 8rpx 12rpx 0 12rpx;
border-radius: 4rpx;
height: 30rpx;
line-height: 30rpx;
flex-shrink: 0;
}
.news text,
.news view {
font-family: PingFang SC;
}
.info_name {
color: #000;
font-weight: 600;
}
.onLineBtn {
margin-top: 24rpx;
display: flex;
justify-content: flex-end;
}
.onLineBtn view {
width: 158rpx;
height: 42rpx;
line-height: 42rpx;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
border-radius: 198rpx;
font-weight: 600;
font-family: PingFang SC;
position: relative;
}
.bottom_btns {
display: flex;
padding-bottom: 12rpx;
border-bottom: 2rpx solid #F7F7F7;
}
.book {
margin-right: 8rpx;
padding: 4rpx 12rpx;
background: #fff7f5;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border-radius: 4rpx;
}
#seachModal .mymodal {
width: 100% !important;
margin: 0 auto !important;
left: 0 !important;
right: 0 !important;
z-index: 250 !important;
border-radius: 0 !important;
}
#seachModal .mask {
top: 30% !important;
}
.mymodal .mymodal-content {
height: auto !important;
max-height: 87% !important;
}
.mymodal-content {
padding: 22rpx !important;
}
.dishBox {
width: 100%;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 28rpx;
}
.dish {
width: 22%;
height: 62rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10rpx;
border: 2rpx solid #CBCBCB;
margin-bottom: 12rpx;
}
.cityBox {
width: 100%;
display: flex;
align-items: center;
flex-direction: column;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 28rpx;
}
.city {
width: 100%;
height: 62rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-radius: 10rpx;
margin-bottom: 12rpx;
padding: 0 40rpx 0 32rpx;
box-sizing: border-box;
}
.city image {
width: 28rpx;
height: 28rpx;
}
.titleBox {
color: #000;
font-weight: 600;
font-family: PingFang SC;
}
.dishCheck {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
}
.btns {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin: 34rpx 0;
}
.btn {
width: 40%;
display: flex;
align-items: center;
justify-content: center;
border-radius: 198rpx;
font-family: PingFang SC;
}
.reset {
border: 2rpx solid #CBCBCB;
background: #fff;
font-weight: 400;
}
.sure {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
}
\ No newline at end of file
... ...
// pages/reserveNew/coupon_sellerList.js
Page({
/**
* 页面的初始数据
*/
data: {
list: [{
"sid": '8',
"sellername": "石府大酒店",
'price': '1500',
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
}, ]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
gotoCoupon() {
wx.navigateTo({
url: '/pages/me/coupon_news',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
\ No newline at end of file
... ...
{
"navigationBarBackgroundColor": "#ddd",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pages/reserveNew/coupon_sellerList.wxml-->
<nav>我的卡券</nav>
<view class="couponBox">
<view class="items" bindtap="gotoCoupon" wx:for="{{list}}" wx:key="{{item.sid}}">
<image class="img1" src="{{item.seller_image}}" mode="aspectFill" />
<view class="info">
<view class="topText font28r">{{item.sellername}}</view>
<view class="checkBox font24r">查看
<image src="https://qn.colorcun.com/arrowRightIcon.png" mode="" />
</view>
<view class="priceText font24r">
价值<text>{{item.price}}</text>元
</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
/* pages/reserveNew/coupon_sellerList.wxss */
page {
background: #F5F5F5;
}
.couponBox {
margin: 12rpx;
border-radius: 10rpx;
}
.items {
background: #fff;
display: flex;
align-items: center;
padding: 24rpx;
margin-bottom: 12rpx;
}
.img1 {
width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
}
.info {
display: flex;
flex-direction: column;
flex: 1;
margin-left: 16rpx;
}
.info image {
width: 24rpx;
height: 24rpx;
margin-left: 4rpx;
}
.topText {
font-weight: 600;
font-family: Sinter;
}
.checkBox {
display: flex;
align-items: center;
justify-content: flex-end;
font-family: PingFang SC;
margin: 20rpx 0;
color: #696969;
font-weight: 400;
}
.priceText {
font-family: PingFang SC;
display: flex;
align-items: baseline;
font-weight: 400;
color: #696969;
}
.priceText text {
color: #FD4D59;
font-size: 56rpx;
position: relative;
bottom: -6rpx;
margin: 0 8rpx;
font-weight: 600;
}
\ No newline at end of file
... ...
// pages/reserveNew/index.js
import App from '../../utils/api';
Page({
/**
* 页面的初始数据
*/
data: {
displayModal: false, //更多的弹框
customItem: '全部',
region: ['北京市', '北京市', '东城区'],
activeId: '1', //选择的tab
barHeight: '', //状态栏+导航栏高度
checkType: '1',
cateList: [],
seachList: [{
id: '1',
title: '美食筛选',
check: true,
},
{
id: '2',
title: '包间筛选',
check: false,
}
],
roomList: [{
id: '1',
name: '2人间',
check: false,
},
{
id: '2',
name: '4人间',
check: false,
},
{
id: '3',
name: '6人间',
check: false,
},
{
id: '4',
name: '8人间',
check: false,
},
{
id: '5',
name: '10人间',
check: false,
},
{
id: '6',
name: '12人间',
check: false,
},
{
id: '7',
name: '15人间',
check: false,
},
{
id: '8',
name: '20人间',
check: false,
},
{
id: '9',
name: '特大包间',
check: false,
}
],
tabList: [{
title: '订过',
id: '1'
},
{
title: '去过',
id: '2'
},
{
title: '好友订过',
id: '3'
},
{
title: '我有券',
id: '4'
},
{
title: '更多',
id: '5'
}
],
sellerInfo: [{
"id": "8",
"sellername": "石府大酒店",
"is_parking": "1",
"average": "85",
"cate": [
"中餐",
"京菜鲁菜",
"淮扬菜"
],
"juli": '300m',
'shoucang': '0',
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
{
"id": "8",
"sellername": "石府大酒店",
"is_parking": "1",
"average": "85",
"cate": [
"中餐",
"京菜鲁菜",
"淮扬菜"
],
"juli": '300m',
'shoucang': '1',
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
{
"id": "8",
"sellername": "石府大酒店",
"is_parking": "1",
"average": "85",
"cate": [
"中餐",
"京菜鲁菜",
"淮扬菜"
],
"juli": '300m',
'shoucang': '1',
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
{
"id": "8",
"sellername": "石府大酒店",
"is_parking": "1",
"average": "85",
"cate": [
"中餐",
"京菜鲁菜",
"淮扬菜"
],
"juli": '300m',
'shoucang': '1',
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
}
]
},
modal: '',
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.modal = this.selectComponent("#seachModal"); //通过给组件所起的id调用组件
},
// 选择筛选
checkDish(e) {
let activeId = e.currentTarget.dataset['id'];
const {
data
} = this;
const list = data.checkType == '1' ? data.cateList : data.roomList;
const idx = list.findIndex(item => item.id === activeId);
if (idx !== -1) {
list[idx].check = !list[idx].check;
}
this.setData({
[data.checkType === '1' ? 'cateList' : 'roomList']: list,
checkList: list,
});
},
// 重置
resetFun() {
let data = this.data;
let list = data.checkType == '1' ? data.cateList : data.roomList;
list.forEach(i => {
i.check = false;
})
this.setData({
[data.checkType === '1' ? 'cateList' : 'roomList']: list,
checkList: list,
});
},
// 筛选点确定
submitFun() {
const result1 = this.data.cateList.filter(item => item.check).map(item => item.id).join(',');
const result2 = this.data.roomList.filter(item => item.check).map(item => item.id).join(',');
console.log('result1result1result1-------', result1);
console.log('result2result2-----------', result2);
this.modal.closeModal()
},
// 切换tab
checkTabFun(e) {
let activeId = e.currentTarget.dataset['id'];
let displayModal = this.data.displayModal
if (activeId == '5') {
if (displayModal) {
this.modal.closeModal()
} else {
this.modal.showModal()
}
}
this.setData({
activeId,
displayModal: !displayModal
})
},
checkSeachFun(e) {
let type = e.currentTarget.dataset['type'];
let checkList = type == '1' ? this.data.cateList : this.data.roomList
this.setData({
checkType: type,
checkList
})
},
// 获取美食列表
getCates() {
App.Reserve.GetCustomerConfig().then(res => {
let cateList = res.data.cate;
cateList.forEach(i => {
i.check = false;
})
this.setData({
cateList,
checkList: cateList
})
})
},
bindRegionChange(e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
region: e.detail.value
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
//导航栏自适应
let systemInfo = wx.getSystemInfoSync();
let reg = /ios/i;
let pt = 20; //导航状态栏上内边距
let h = 44; //导航状态栏高度
if (reg.test(systemInfo.system)) {
pt = systemInfo.statusBarHeight;
h = 44;
} else {
pt = systemInfo.statusBarHeight;
h = 48;
}
this.setData({
barHeight: pt + h,
})
this.modal.closeModal()
this.getCates()
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
\ No newline at end of file
... ...
{
"navigationBarBackgroundColor": "#ddd",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav",
"my-modal": "/components/modal/modal"
}
}
\ No newline at end of file
... ...
<!--pages/reserveNew/index.wxml-->
<nav backgroundColor="#fff" place="{{false}}" class="navhome">
<view class="seachBox">
<picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}">
<view class="picker">
<view class="area font28r">{{region[2]}}
<image src="https://qn.colorcun.com/editIcon.png" mode="" />
</view>
</view>
</picker>
<view class="seachSeller font24r">
<image src="https://qn.colorcun.com/seachIcon.png" mode="" /> 输入商户名、地点、菜系
</view>
</view>
</nav>
<view class="mian" style="padding-top:{{barHeight}}px;">
<view class="tabBox" style="top:{{barHeight}}px;">
<view bindtap="checkTabFun" data-id="{{item.id}}" class="tabItems font28r tabItems{{item.id}} {{activeId == item.id ? 'activeTab':''}}" wx:for="{{tabList}}">
{{item.title}}
</view>
</view>
<view class="sellerBox">
<view class="sellerItems" wx:for="{{sellerInfo}}" wx:key="{{item.id}}">
<view class="sellerImg">
<image class="sellerimage" src="{{item.seller_image}}" mode="scaleToFill" />
<image class="collectImg" src="https://qn.colorcun.com/{{item.shoucang == '1'?'selectCollectSellerIcon' : 'collectSellerIcon'}}.png" mode="" />
</view>
<view class="info">
<view class="news">
<view class="aboutInfo">
<text wx:if="{{item.is_parking == '1'}}" class="park font20r">可停车</text>
<text class="info_name font28r">{{item.sellername}}</text>
</view>
<view class="texts font24r">{{item.juli}}</view>
</view>
<view class="texts book font24r">订过 去过 好友订过 我有券</view>
<view class="news">
<view>
<text wx:if="{{item.cate}}" class="texts cateText font24r">{{item.cate}}</text>
<text class="texts font24r" wx:if="{{item.average && item.average>0}}">¥{{item.average}}</text>
</view>
<view class="getCoupons font24r">领券</view>
</view>
</view>
</view>
</view>
</view>
<my-modal id="seachModal" fadeStyle="slideDown" height="68%" modalTop="{{barHeight+41}}px">
<view slot="modalName" class="titleModal">
<view class="seachInfo" bindtap="checkSeachFun" data-type="{{item.id}}" wx:for="{{seachList}}" wx:key="{{item.id}}">
<text class="{{item.id == checkType ? 'checkTitle':''}}">{{item.title}}</text>
<image src="https://qn.colorcun.com/{{item.id == checkType?'arrowTop':'arrowBottom'}}.png" mode="" />
</view>
</view>
<view slot="modalContent">
<viw class="title font28r">{{checkType == '1'?'菜系(可多选)':'包间类型(可多选)'}}</viw>
<view class="dishBox">
<view class="dish font24r {{item.check?'dishCheck':''}}" bindtap="checkDish" data-id="{{item.id}}" data-check="{{item.check}}" wx:for="{{checkList}}" wx:key="{{item.id}}">
{{item.name}}
</view>
</view>
<view class="btns">
<button class="font28r btn reset" bindtap="resetFun">重置</button>
<button class="font28r btn sure" bindtap="submitFun">确定</button>
</view>
</view>
</my-modal>
\ No newline at end of file
... ...
/* pages/reserveNew/index.wxss */
page {
background: #F5F5F5;
}
.seachBox {
display: flex;
align-items: center;
margin-left: 24rpx;
font-family: PingFang SC;
}
.area {
color: #363642;
font-weight: 600;
font-family: PingFang SC;
}
.area image {
width: 20rpx;
height: 20rpx;
margin: 0 20rpx 0 4rpx;
}
.seachSeller {
padding: 0 50rpx 0 20rpx;
border: 2rpx solid #CBCBCB;
border-radius: 198rpx;
height: 64rpx;
line-height: 64rpx;
color: #696969;
font-family: PingFang SC;
font-weight: 400;
}
.seachSeller image {
width: 24rpx;
height: 24rpx;
}
.navhome {
position: relative;
}
.seachBox {
position: absolute;
left: -188rpx;
}
.tabBox {
color: #000;
display: flex;
align-items: center;
justify-content: space-evenly;
background: #fff;
padding-bottom: 24rpx;
position: fixed;
z-index: 100;
width: 100%;
}
.tabItems {
font-weight: 600;
font-family: PingFang SC;
position: relative;
padding: 10rpx;
}
.activeTab {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.activeTab::after {
content: '';
display: block;
position: absolute;
bottom: 0;
left: 25%;
right: 0;
width: 40rpx;
height: 8rpx;
border-radius: 198rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.tabItems3::after {
left: 35%;
}
.tabItems4::after {
left: 32%;
}
.sellerBox {
display: flex;
flex-direction: column;
padding-top: 84rpx;
}
.sellerItems {
margin: 12rpx;
background: #fff;
border-radius: 10rpx;
}
.cateText {
margin-right: 40rpx;
}
.sellerImg {
width: 100%;
height: 410rpx;
position: relative;
}
.sellerimage {
width: 100%;
height: 100%;
}
.info {
padding: 16rpx 24rpx 24rpx 24rpx;
}
.news {
display: flex;
align-items: center;
justify-content: space-between;
}
.park {
background: #FFEEDF;
color: #B56737;
padding: 8rpx 12rpx 0 12rpx;
border-radius: 4rpx;
height: 30rpx;
line-height: 30rpx;
flex-shrink: 0;
}
.news text,
.news view {
font-family: PingFang SC;
}
.info_name {
color: #000;
font-weight: 600;
margin-left: 8rpx;
}
.texts {
color: #696969;
font-weight: 400;
}
.aboutInfo {
margin-bottom: 14rpx;
}
.book {
margin-bottom: 8rpx;
}
.getCoupons {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
border-radius: 198rpx;
font-weight: 600;
padding: 4rpx 32rpx;
}
.collectImg {
width: 48rpx;
height: 48rpx;
position: absolute;
right: 24rpx;
top: 24rpx;
}
#seachModal .mymodal {
width: 100% !important;
margin: 0 auto !important;
left: 0 !important;
right: 0 !important;
z-index: 250 !important;
border-radius: 0 !important;
}
#seachModal .mask {
top: 30% !important;
}
.mymodal .mymodal-content {
height: auto !important;
max-height: 87% !important;
}
.titleModal {
width: 100%;
height: 60rpx;
display: flex;
}
.seachInfo {
width: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.seachInfo image {
width: 24rpx;
height: 24rpx;
margin-left: 4rpx;
}
.seachInfo text {
font-family: PingFang SC;
color: #000;
font-size: 28rpx;
}
.seachInfo .checkTitle {
height: 60rpx;
line-height: 60rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.dishBox {
width: 100%;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 28rpx;
}
.dish {
width: 22%;
height: 62rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 10rpx;
border: 2rpx solid #CBCBCB;
margin-bottom: 12rpx;
}
.mymodal-content {
padding: 22rpx !important;
}
.title {
color: #000;
font-weight: 600;
font-family: PingFang SC;
}
.dishCheck {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
}
.btns {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin: 34rpx 0;
}
.btn {
width: 40%;
display: flex;
align-items: center;
justify-content: center;
border-radius: 198rpx;
font-family: PingFang SC;
}
.reset {
border: 2rpx solid #CBCBCB;
background: #fff;
font-weight: 400;
}
.sure {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
}
\ No newline at end of file
... ...
// pages/reserveNew/itinerary.js
Page({
/**
* 页面的初始数据
*/
data: {
barHeight: '', //状态栏+导航栏高度
activeId: '2', //选择的tab
tabList: [{
title: '我的受邀',
id: '1'
},
{
title: '我的预订',
id: '2'
}
],
bookList: [{
id: "1439387",
mname: "晚餐",
week: '周二',
ddate: "2024年8月25日",
ddate1: "8月25日",
tableinfo: "吉祥",
rname: '王先生',
status: '0',
statusTitle: '待确认',
"sellername": "石府大酒店",
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
{
id: "1439387",
mname: "晚餐",
week: '周二',
ddate: "2024年8月25日",
ddate1: "8月25日",
tableinfo: "吉祥",
rname: '王先生',
status: '1',
statusTitle: '待赴约',
"sellername": "石府大酒店",
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
{
id: "1439387",
mname: "晚餐",
week: '周二',
ddate: "2024年8月25日",
ddate1: "8月25日",
tableinfo: "吉祥",
rname: '王先生',
status: '3',
statusTitle: '待反馈',
isPj: '0',
"sellername": "石府大酒店",
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
{
id: "1439387",
mname: "晚餐",
week: '周二',
ddate: "2024年8月25日",
ddate1: "8月25日",
tableinfo: "吉祥",
rname: '王先生',
status: '3',
statusTitle: '已结束',
isPj: '1',
"sellername": "石府大酒店",
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
{
id: "1439387",
mname: "晚餐",
week: '周二',
ddate: "2024年8月25日",
ddate1: "8月25日",
tableinfo: "吉祥",
rname: '王先生',
status: '4',
statusTitle: '已取消',
"sellername": "石府大酒店",
"seller_image": "http://libpc.colorcun.com/20250313162436_f5f597ea863038dbfbe3ee31287a915a",
},
]
},
// 切换tab
checkTabFun(e) {
let activeId = e.currentTarget.dataset['id'];
this.setData({
activeId,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
//导航栏自适应
let systemInfo = wx.getSystemInfoSync();
let reg = /ios/i;
let pt = 20; //导航状态栏上内边距
let h = 44; //导航状态栏高度
if (reg.test(systemInfo.system)) {
pt = systemInfo.statusBarHeight;
h = 44;
} else {
pt = systemInfo.statusBarHeight;
h = 48;
}
this.setData({
barHeight: pt + h,
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
\ No newline at end of file
... ...
{
"navigationBarBackgroundColor": "#ddd",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pages/reserveNew/itinerary.wxml-->
<nav backgroundColor="#fff" place="{{false}}" class="navhome">
我的行程
</nav>
<view class="tabBox" style="top:{{barHeight}}px;">
<view bindtap="checkTabFun" data-id="{{item.id}}" class="tabItems font28r {{activeId == item.id ? 'activeTab':''}}" wx:for="{{tabList}}">
{{item.title}}
</view>
</view>
<view class="mian" style="padding-top:{{barHeight+40}}px;">
<view class="booking" wx:for="{{bookList}}" wx:key="{{item.id}}">
<view class="imgs">
<image class="sellerImg" src="{{item.seller_image}}" mode="scaleToFill" />
<view class="info">
<view class="font28r infoDate">{{item.ddate1}}</view>
<view class="font28r">{{item.week}}<text>{{item.mname}}</text></view>
</view>
</view>
<view class="bookInfo">
<view class="text1 font24r" wx:if="{{activeId == '1'}}">
<text class="text3">{{item.rname}}</text>邀请您
</view>
<view class="text2 font24r {{activeId =='2'?'text3':''}}">{{item.sellername}}</view>
<view class="text2 font24r">{{item.ddate}} {{item.mname}}</view>
<view class="text3 font24r">
<text>{{item.tableinfo}}</text>
</view>
<view class="statusBtn font24r statusBtn{{item.status}} {{item.status=='3' && item.isPj=='1'?'statusBtnPj':''}}" wx:if="{{activeId == '2'}}">
<image wx:if="{{item.status!='3'}}" src="https://qn.colorcun.com/iconStatus{{item.status}}.png" mode="" />
<image wx:if="{{item.status=='3'}}" src="https://qn.colorcun.com/{{item.isPj=='1'?'iconStatus3':'iconStatus3_1'}}.png" mode="" />
<text>{{item.statusTitle}}</text>
</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
/* pages/reserveNew/itinerary.wxss */
page {
background: #F5F5F5;
}
.tabBox {
color: #000;
display: flex;
align-items: center;
justify-content: space-evenly;
background: #fff;
padding-bottom: 24rpx;
position: fixed;
z-index: 100;
width: 100%;
height: 46rpx;
}
.tabItems {
font-weight: 600;
font-family: PingFang SC;
position: relative;
padding: 10rpx;
}
.activeTab {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.activeTab::after {
content: '';
display: block;
position: absolute;
bottom: 0;
left: 35%;
right: 0;
width: 40rpx;
height: 8rpx;
border-radius: 198rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.imgs {
width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
background: rgba(0, 0, 0, 0.6);
position: relative;
}
.sellerImg {
width: 100%;
height: 100%;
border-radius: 10rpx;
}
.booking {
background: #fff;
padding: 24rpx;
border-radius: 10rpx;
margin: 12rpx 12rpx 0 12rpx;
display: flex;
align-items: center;
}
.info {
position: absolute;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #FFE8D7;
font-weight: 600;
font-family: PingFang SC;
top: 0;
bottom: 0;
left: 0;
right: 0;
letter-spacing: 2rpx;
}
.info text {
margin-left: 10rpx;
}
.infoDate {
margin-bottom: 16rpx;
}
.bookInfo {
color: #000;
font-family: PingFang SC;
font-weight: 400;
margin-left: 16rpx;
flex: 1;
position: relative;
height: 100%;
}
.text2 {
color: #696969;
font-family: PingFang SC;
font-weight: 400;
line-height: 34rpx;
margin: 10rpx 0;
}
.text3 {
font-size: 28rpx;
font-weight: 600;
margin-right: 8rpx;
color: #000;
}
.statusBtn image {
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
.statusBtn {
width: 164rpx;
height: 42rpx;
border-radius: 198rpx;
display: flex;
align-items: center;
justify-content: center;
font-family: PingFang SC;
font-weight: 600;
position: absolute;
right: 0;
bottom: -20%;
}
.statusBtn1 {
border: 2rpx solid #4EAD5D;
color: #4EAD5D;
}
.statusBtn0 {
border: 2rpx solid #DE1800;
color: #DE1800;
}
.statusBtn3 {
border: 2rpx solid #4D8EF1;
color: #4D8EF1;
}
.statusBtnPj,
.statusBtn4 {
border: 2rpx solid #696969;
color: #696969;
}
.statusBtnPj image {
width: 36rpx;
height: 34rpx;
}
\ No newline at end of file
... ...
// pages/reserveNew/my.js
Page({
/**
* 页面的初始数据
*/
data: {
moduleList: [{
id: '1',
title: '卡券',
url: '/pages/reserveNew/coupon_sellerList',
img: 'https://qn.colorcun.com/couponsIcon.png'
},
{
id: '2',
title: '受邀函',
img: 'https://qn.colorcun.com/harvestIcon.png'
},
{
id: '3',
title: '我的预订',
img: 'https://qn.colorcun.com/myReservation.png'
},
{
id: '4',
title: '常用预订人',
img: 'https://qn.colorcun.com/contactsIcon.png'
},
{
id: '5',
title: '浏览记录',
img: 'https://qn.colorcun.com/historyIcon.png'
},
{
id: '6',
title: '我的评价',
img: 'https://qn.colorcun.com/evaluateIcon.png'
}
]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
gotoInfo() {
wx.navigateTo({
url: '/pages/reserveNew/personInfo',
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
gotoPage(e) {
const url = e.currentTarget.dataset['url'];
wx.navigateTo({
url,
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
\ No newline at end of file
... ...
{
"navigationBarBackgroundColor": "#ddd",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pages/reserveNew/my.wxml-->
<nav class="navhome" place="{{true}}">周到安排</nav>
<view class="person" bindtap="gotoInfo">
<view class="leftInfo">
<image class="imgs" src="https://qn.colorcun.com/headPicture.png" mode="" />
<view class="info">
<view class="font32r">点击登录</view>
<view class="font20r colorSix">登录更精彩</view>
</view>
</view>
<view class="rightInfo">
<text class="font24r colorSix">个人信息</text>
<image src="https://qn.colorcun.com/arrowIcon.png" mode="" />
</view>
</view>
<view class="centerBox">
<view class="items" wx:for="{{moduleList}}" wx:key="{{item.id}}" data-url="{{item.url}}" bindtap="gotoPage">
<image src="{{item.img}}" mode="" />
<text class="font24r">{{item.title}}</text>
</view>
</view>
<view class="btns">
<button class="flexBtn" open-type="contact">
<button class="font28r">联系客服</button>
<image src="https://qn.colorcun.com/arrowIcon.png" mode="" />
</button>
<view class="line"></view>
<navigator url="/pages/reserve/index_new" hover-class="navigator-hover">
<button class="font28r">商家入驻</button>
<image src="https://qn.colorcun.com/arrowIcon.png" mode="" />
</navigator>
</view>
\ No newline at end of file
... ...
/* pages/reserveNew/my.wxss */
page {
background: #F5F5F5;
}
.person {
display: flex;
background: #fff;
margin: 12rpx;
padding: 40rpx;
border-radius: 10rpx;
}
.leftInfo {
flex: 1;
display: flex;
align-items: center;
}
.info {
font-family: PingFang SC;
}
.info view:nth-of-type(1) {
font-family: PingFang SC;
color: #000;
font-weight: 600;
margin-bottom: 10rpx;
}
.colorSix {
font-family: PingFang SC;
color: #696969;
font-weight: 400;
}
.imgs {
width: 88rpx;
height: 88rpx;
margin-right: 24rpx;
}
.rightInfo {
display: flex;
align-items: center;
justify-content: center;
}
.rightInfo image {
width: 28rpx;
height: 28rpx;
margin-left: 4rpx;
}
.centerBox {
padding-top: 40rpx;
background: #fff;
margin: 12rpx;
border-radius: 10rpx;
display: flex;
align-items: center;
justify-content: space-evenly;
flex-wrap: wrap;
}
.items {
width: 33%;
display: flex;
align-items: center;
flex-direction: column;
padding-bottom: 56rpx;
}
.items image {
width: 56rpx;
height: 56rpx;
}
.items text {
font-family: PingFang SC;
font-weight: 400;
margin-top: 8rpx;
}
.btns {
padding: 20rpx 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
flex-direction: column;
margin: 0 12rpx;
border-bottom: 2rpx solid #F7F7F7;
background: #fff;
}
.flexBtn,
navigator {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
padding: 10rpx 0;
}
.btns image {
width: 28rpx;
height: 28rpx;
}
.btns button {
margin: 0;
padding-left: 0;
background: transparent;
font-family: Sinter;
font-weight: 400;
}
.line {
width: 100%;
height: 2rpx;
background: #F7F7F7;
}
\ No newline at end of file
... ...
// pages/reserveNew/personInfo.js
Page({
/**
* 页面的初始数据
*/
data: {
},
modal: '',
loginModal: '',
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.modal = this.selectComponent("#nickNameModal");
this.loginModal = this.selectComponent("#exitLoginModal");
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
gotoNickName() {
this.modal.showModal()
},
submitFun() {
this.modal.closeModal()
},
cancelFun() {
this.loginModal.closeModal()
},
exitLogin() {
this.loginModal.showModal()
},
gotoPhone() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
\ No newline at end of file
... ...
{
"navigationBarBackgroundColor": "#ddd",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav",
"my-modal": "/components/modal/modal"
}
}
\ No newline at end of file
... ...
<!--pages/reserveNew/personInfo.wxml-->
<nav>个人信息</nav>
<view class="info">
<view class="items">
<view class="titleText">头像</view>
<view class="rightBox">
<image class="headPictureImg" src="https://qn.colorcun.com/headPicture.png" mode="" />
<image src="https://qn.colorcun.com/arrowIcon.png" mode="" />
</view>
</view>
<view class="items" bindtap="gotoNickName">
<view class="titleText">昵称</view>
<view class="rightBox">
<text>吃饱了还是饿</text>
<image src="https://qn.colorcun.com/arrowIcon.png" mode="" />
</view>
</view>
<view class="items">
<view class="titleText">手机号</view>
<view class="rightBox" bindtap="gotoPhone">
<text>186****1111</text>
<view class="replacePhone font24r">更换</view>
</view>
</view>
</view>
<view class="btnBox">
<view class="btn font28r" bindtap="exitLogin">退出登录</view>
</view>
<my-modal id="nickNameModal" fadeStyle="slideUp" height="300px">
<view slot="modalName" class="titleModal">
<view class="edit font28r">修改昵称</view>
<image class="closeImg" bindtap="submitFun" src="https://qn.colorcun.com/closeIcon.png" mode="" />
</view>
<view slot="modalContent">
<view class="nameInput">
<text>昵称</text>
<input type="text" placeholder="请输入昵称" maxlength="30" />
</view>
<view class="font20r prompt">昵称限制1-30字符,一个汉字为一个字符</view>
<button class="font28r saveBtn" bindtap="submitFun">确定</button>
</view>
</my-modal>
<my-modal id="exitLoginModal" fadeStyle="center" height="190px">
<view slot="modalName" class="titleModal">
<view class="edit font28r">提示</view>
<image class="closeImg" bindtap="cancelFun" src="https://qn.colorcun.com/closeIcon2.png" mode="" />
</view>
<view slot="modalContent">
<view class="font24r prompt">
<text>重新授权将清除当前已绑定的手机号,是否确认操作?</text>
</view>
<view class="btns">
<button class="cancel" bindtap="cancelFun">取消</button>
<button class="font28r saveBtn" bindtap="cancelFun">确定</button>
</view>
</view>
</my-modal>
\ No newline at end of file
... ...
/* pages/reserveNew/personInfo.wxss */
page {
background: #F5F5F5;
}
.info {
background: #fff;
margin: 12rpx;
padding: 40rpx 40rpx 0 40rpx;
}
.rightBox {
display: flex;
align-items: center;
flex: 1;
justify-content: flex-end;
}
.rightBox image {
width: 28rpx;
height: 28rpx;
margin-left: 8rpx;
}
.rightBox .headPictureImg {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
}
.items {
height: 120rpx;
line-height: 120rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 2rpx solid #F7F7F7;
}
.items:nth-last-of-type(1) {
border-bottom: none;
}
.replacePhone {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
height: 40rpx;
line-height: 40rpx;
padding: 4rpx 32rpx;
border-radius: 198rpx;
margin-left: 8rpx;
}
.btnBox {
position: fixed;
background-color: #fff;
width: 100%;
bottom: 0;
left: 0;
height: 200rpx;
display: flex;
justify-content: center;
}
.btn {
width: 80%;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
border-radius: 198rpx;
height: 72rpx;
line-height: 72rpx;
text-align: center;
margin-top: 34rpx;
font-family: PingFang SC;
font-weight: 600;
}
#nickNameModal .mymodal {
bottom: 0 !important;
}
.nameInput {
background: #F5F5F5;
border-radius: 10rpx;
display: flex;
padding: 20rpx 40rpx;
}
.nameInput input {
flex: 1;
margin-left: 20rpx;
}
.saveBtn {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
border-radius: 198rpx;
}
.prompt {
margin: 20rpx 0 15% 0;
}
.titleModal {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.edit {
font-family: PingFang SC;
font-weight: 600;
color: #000;
}
.closeImg {
width: 32rpx;
height: 32rpx;
position: absolute;
right: 40rpx;
top: 40rpx;
}
#exitLoginModal {
display: flex;
align-items: center;
justify-content: center;
}
#exitLoginModal .mymodal {
top: 35% !important;
width: 80% !important;
border-radius: 20rpx !important;
}
#exitLoginModal .closeImg {
top: -60rpx;
right: -84rpx;
width: 60rpx;
height: 60rpx;
}
#exitLoginModal .prompt {
text-align: center;
margin: 0 0 42rpx 0;
display: flex;
align-items: center;
justify-content: center;
}
#exitLoginModal .prompt text {
width: 74%;
text-align: center;
font-family: PingFang SC;
font-weight: 400;
line-height: 34rpx;
color: #000;
}
#exitLoginModal .btns {
width: 100%;
display: flex;
align-items: center;
justify-content: space-evenly;
}
#exitLoginModal .cancel {
width: 35%;
height: 70rpx;
line-height: 70rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 198rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
margin: 0;
}
#exitLoginModal .saveBtn {
width: 35%;
height: 70rpx;
line-height: 70rpx;
border-radius: 198rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
color: #fff;
margin: 0;
}
\ No newline at end of file
... ...
// pages/reserveNew/verifyPhone.js
Page({
/**
* 页面的初始数据
*/
data: {
phone: '',
verifySend: true, // 是否获取验证码
countDown: 600, // 倒计时
isShow: '2',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
\ No newline at end of file
... ...
{
"navigationBarBackgroundColor": "#ddd",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"usingComponents": {
"nav": "/components/nav/nav"
}
}
\ No newline at end of file
... ...
<!--pages/reserveNew/verifyPhone.wxml-->
<nav>验证中心</nav>
<view class="info" wx:if="{{isShhow}}">
<view class="texts font32r">请输入已绑定的旧手机号</view>
<view class="phoneInfo">
<text class="font28r">手机号</text>
<input type="text" class="right" model:value="{{phone}}" placeholder="请输入手机号码" />
<button class="verifyBox font24r" bindtap='deliver' wx:if="{{ verifySend }}">获取验证码</button>
<button class='verifyBox verifyBoxDis' wx:else>重新获取({{ countDown }})</button>
</view>
<view class="phoneInfo verifyBtn">
<text>验证码</text>
<input type="text" class="right" model:value="{{verifyCode}}" placeholder="请输入验证码" />
</view>
</view>
<view wx:else class="successBox">
<image src="https://qn.colorcun.com/completeIcon.png" mode=""/>
<view class="title font32r">更换成功</view>
<view class="phoneNews">
<text>您绑定的手机号已更换为</text>
<text>187****2222</text>
</view>
</view>
<view class="btnBox">
<view class="btn font28r" bindtap="exitLogin">{{isShhow=='1'?'验证':'我知道了'}}</view>
</view>
\ No newline at end of file
... ...
/* pages/reserveNew/verifyPhone.wxss */
page {
background: #F5F5F5;
}
.info {
background: #fff;
margin: 12rpx;
padding: 40rpx 40rpx 0 40rpx;
}
.texts {
font-family: PingFang SC;
font-weight: 600;
line-height: 44rpx;
color: #000;
margin-bottom: 20rpx;
}
.phoneInfo {
display: flex;
align-items: center;
justify-content: space-between;
color: #000;
height: 120rpx;
width: 100%;
border-bottom: 2rpx solid #F7F7F7;
}
.phoneInfo text {
margin-right: 24rpx;
}
.phoneInfo input {
height: 100%;
flex: 1;
}
.verifyBox {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
height: 40rpx;
line-height: 40rpx;
border-radius: 198rpx;
font-weight: 600;
}
.verifyBtn {
border-bottom: none;
}
.btnBox {
position: fixed;
background-color: #fff;
width: 100%;
bottom: 0;
left: 0;
height: 200rpx;
display: flex;
justify-content: center;
}
.btn {
width: 80%;
background: #FF4D11;
color: #fff;
border-radius: 198rpx;
height: 72rpx;
line-height: 72rpx;
text-align: center;
margin-top: 34rpx;
font-family: PingFang SC;
font-weight: 600;
}
.successBox {
padding: 80rpx 0;
background: #fff;
margin: 12rpx;
border-radius: 10rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.successBox image {
width: 88rpx;
height: 88rpx;
}
.title {
font-family: PingFang SC;
color: #000;
font-weight: 600;
line-height: 44rpx;
margin: 20rpx 0 32rpx 0;
}
.phoneNews {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #000;
font-family: PingFang SC;
font-weight: 400;
line-height: 40rpx;
}
\ No newline at end of file
... ...
... ... @@ -6,44 +6,107 @@
"miniprogram": {
"list": [
{
"name": "新邀请函入口页",
"name": "新首页",
"pathName": "pages/reserveNew/coupon_sellerList",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "免费券详情页",
"pathName": "pack-activity/pack/receiveCoupon",
"query": "id=1173&types=3&name=22&sid=4352&oid=&StyleType=",
"launchMode": "default",
"scene": null
},
{
"name": "商家详情",
"pathName": "pages/reserve/shopHome",
"query": "sid=4352",
"launchMode": "default",
"scene": null
},
{
"name": "付费券券详情",
"pathName": "pack-activity/pack/buyCoupon",
"query": "id=394&name=14&sid=4352&oid=&types=3",
"launchMode": "default",
"scene": null
},
{
"name": "测试-----新邀请函入口页",
"pathName": "pages/customer/detail_owner_invitation_new",
"query": "id=1288253&uid=311&hasSellerShare=1&paymentId=",
"query": "id=1438440&onlineReserve=1&hasInvitation=1&paymentId=&tplid=1&hasSellerShare=1&isDeposit=1&bookType=2",
"launchMode": "default",
"scene": null
},
{
"name": "免费券付费券付款页",
"pathName": "pack-activity/pack/buyFreeCoupon",
"query": "sid=8",
"name": "旧首页",
"pathName": "pages/reserve/index",
"query": "a=b&c=d",
"launchMode": "default",
"scene": 1044
},
{
"name": "4352-----新邀请函入口页",
"pathName": "pages/customer/detail_owner_invitation_new",
"query": "id=1374502&uid=27201&hasSellerShare=1&paymentId=",
"launchMode": "default",
"scene": null
},
{
"name": "收藏页",
"pathName": "pages/me/follow",
"query": "",
"name": "在线预订包间",
"pathName": "pages/reserve/reserve",
"query": "id=4352&activeTab=reserve",
"launchMode": "default",
"scene": null
},
{
"name": "商家详情",
"pathName": "pages/reserve/shopHome",
"name": "4352----预定包间",
"pathName": "pages/reserve/reserve",
"query": "id=4352&activeTab=reserve",
"launchMode": "default",
"scene": null
},
{
"name": "8-----新邀请函入口页",
"pathName": "pages/customer/detail_owner_invitation_new",
"query": "id=1341043&uid=311&hasSellerShare=1&paymentId=",
"launchMode": "default",
"scene": null
},
{
"name": "11-----新邀请函入口页",
"pathName": "pages/customer/detail_owner_invitation_new",
"query": "id=1338286&uid=311&hasSellerShare=1&paymentId=",
"launchMode": "default",
"scene": null
},
{
"name": "点餐完成页面",
"pathName": "pack-cookbook/pages/success_new",
"query": "type=1&sellerName=长安大排档&rid=1342185&oid=16907&sid=4352&hasSuccess=1",
"launchMode": "default",
"scene": null
},
{
"name": "免费券付费券付款页",
"pathName": "pack-activity/pack/buyFreeCoupon",
"query": "sid=8",
"launchMode": "default",
"scene": null
},
{
"name": "付费券详情",
"pathName": "pack-activity/pack/examineCertificate",
"query": "id=2743",
"name": "收藏页",
"pathName": "pages/me/follow",
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "免费券详情页",
"pathName": "pack-activity/pack/receiveCoupon",
"query": "id=989&activity_id=810&types=4&name=%E9%95%BF%E5%AE%89%E5%A4%A7%E6%8E%92%E6%A1%A3%E6%80%BB%E5%BA%97&use=%22%7B%5C%22is_cash%5C%22%3A%5C%221%5C%22%2C%5C%22is_discount%5C%22%3A%5C%220%5C%22%2C%5C%22is_dish%5C%22%3A%5C%220%5C%22%2C%5C%22cash%5C%22%3A%5C%2230%5C%22%2C%5C%22discount%5C%22%3A%5C%22%5C%22%2C%5C%22dish%5C%22%3A%5C%22%5C%22%2C%5C%22images%5C%22%3A%5C%22%5B%5D%5C%22%7D%22&sid=8&oid=1267899&StyleType=9",
"name": "付费券详情",
"pathName": "pack-activity/pack/examineCertificate",
"query": "id=2743",
"launchMode": "default",
"scene": null
},
... ... @@ -230,17 +293,6 @@
"scene": 1001
},
{
"name": "pages/reserve/index 在线订座",
"pathName": "pages/reserve/index",
"query": "a=b&c=d",
"scene": 1044,
"shareInfo": {
"groupName": "测试模拟群1",
"shareName": "8DEbIRpK4pa9mH_QY2vU4ZUKYPuI97WoQ4BQoFej-Q8@cr4dev",
"shareKey": "PZhnqMlY2TnRuHhATyGeSamVmBQUDXXr_WtjRSddeeFK17UAiOP-HNOdhxiEN7PFub5S1DjAeUl0IXOdW-VDqg~~"
}
},
{
"name": "预订本-选择桌子",
"pathName": "pack-book/pages/book/b_desk",
"query": "rdate=1540339200-1540346400&tid=0&pnum=6&checked_tids=&rid=",
... ... @@ -706,13 +758,6 @@
},
{
"name": "",
"pathName": "pack-activity/pack/buyCoupon",
"query": "id=394&name=14&sid=4352&oid=&types=3",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/me/wananchi",
"query": "type=1&oid=392864&sid=8",
"launchMode": "default",
... ... @@ -727,13 +772,6 @@
},
{
"name": "",
"pathName": "pack-cookbook/pages/success_new",
"query": "type=1&sellerName=长安大排档&rid=708760&oid=9916&sid=4352&hasSuccess=1",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/customer/joinSeller",
"query": "",
"launchMode": "default",
... ...