Commit e1d06d2573c82e352d6621e4f7f675391bd2150b

Authored by pengye
2 parents e170de10 a6662a3b

Merge branch 'pycode' of http://123.56.79.57/xt/xcx-book into pycode

Showing 73 changed files with 1888 additions and 1000 deletions

Too many changes to show.

To preserve performance only 73 of 73+ files are displayed.

... ... @@ -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
... ...
... ... @@ -17,45 +17,45 @@
</view>
<view wx:if="{{type=='2'}}" class="coupon">
<form catchsubmit="formSubmit">
<view class="page-section">
<view class="page-section-title font32r">您的姓名</view>
<view class="page-section text1">
<view class="page-section-title font28r">您的姓名</view>
<view class="weui-cells weui-cell__bd" style="margin: 30rpx 0">
<input class="weui-input name-input" value="{{name}}" data-params="name" placeholder="点击输入您的姓名" placeholder-style="color:#999;" bindinput="bindKeyNameInput"/>
<input class="weui-input name-input" value="{{name}}" data-params="name" placeholder="点击输入您的姓名" placeholder-style="color:#CBCBCB;" bindinput="bindKeyNameInput"/>
</view>
<picker mode="selector" value="{{indexs}}" range-key="sex" data-sex='{{sexList[indexs].sex}}' range="{{sexList}}" bindchange="bind_Changesex" class="pickerSex">
<text class="sexText">{{sexList[indexs].sex}}</text>
<image src="https://qn.colorcun.com/WechatIMG695.png" mode="" class="imgs"/>
<image src="https://qn.colorcun.com/arrowBottom.png" mode="" class="imgs"/>
</picker>
</view>
<view class="page-section">
<view class="page-section-title font32r">联系电话</view>
<view class="page-section-title font28r">联系电话</view>
<view class="weui-cells weui-cell__bd" style="margin: 30rpx 0">
<input class="weui-input" type="number" name="phone" value="{{phone}}" data-params="phone" maxlength="11" placeholder="点击输入您的电话" placeholder-style="color:#999;" bindinput="bindKeyPhoneInput" style="color: #999" />
<input class="weui-input" type="number" name="phone" value="{{phone}}" data-params="phone" maxlength="11" placeholder="点击输入您的电话" placeholder-style="color:#CBCBCB;" bindinput="bindKeyPhoneInput" style="color: #000" />
</view>
</view>
<view class="page-section page-section1">
<view class="page-section-title font32r">您的生日</view>
<view class="weui-cells weui-cell__bd">
<view class="page-section-title font28r">您的生日</view>
<view class="weui-cells weui-cell__bd text2">
<picker mode="date" value="{{date}}" bindchange="bind_ChangeDate" class="pickerBox">
<view class="colorSty">{{date?date:'点击输入您的生日'}}</view>
<view class="{{date ? 'colorSty' : 'color1'}} font28r">{{date?date:'点击输入您的生日'}}</view>
</picker>
<view class="more"></view>
</view>
<view class="more"></view>
</view>
<view class="page-section">
<view class="page-section-title font32r">充值金额</view>
<view class="page-section-title font28r">充值金额</view>
<view class="weui-cells weui-cell__bd sum colorSty">
{{opt.detail.recharge_money}}元
</view>
</view>
<view class="page-section">
<view class="page-section-title font32r">支付剩余时间 </view>
<view class="page-section-title font28r">支付剩余时间 </view>
<view class="weui-cells weui-cell__bd sum colorSty">
{{countdown}}
</view>
</view>
<view wx:if="{{type=='2'}}" class="fixed_box">
<button class="font32r btns" formType="submit">确认支付
<button class="font28r btns" formType="submit">确认支付
</button>
</view>
</form>
... ...
/* pack-activity/pack/confirmPayment.wxss */
page {
background: #F5F5F5;
}
.box_wrap {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
justify-content: center;
background: #fff;
border-radius: 10rpx;
margin: 12rpx;
}
.box {
... ... @@ -60,8 +68,10 @@
width: 100%;
margin: 0;
border-radius: 42rpx;
color: #fff;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
color: #fff;
height: 72rpx;
line-height: 72rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
#payModal {
... ... @@ -90,8 +100,10 @@
.coupon {
width: 100%;
padding-left: 32rpx;
box-sizing: border-box;
box-sizing: border-box;
padding: 0 40rpx;
border-radius: 10rpx;
background: #fff;
}
.page-section {
... ... @@ -102,15 +114,19 @@
}
.page-section1 .more {
margin-right: 32rpx;
margin-right: 32rpx;
margin-top: 8rpx;
}
.weui-cells {
flex: 1;
flex: 1;
display: flex;
justify-content: flex-end;
align-items: center;
}
.page-section-title {
color: #515151;
color: #000;
font-family: PingFang SC;
margin-right: 32rpx;
}
... ... @@ -118,11 +134,12 @@
.weui-input {
text-align: right;
margin-right: 30rpx;
font-size: 32rpx;
font-size: 28rpx;
}
.name-input{
margin-right: 0;
text-align: left;
text-align: left;
flex: 1;
}
... ... @@ -151,14 +168,16 @@
}
.colorSty{
color: #999999;
font-size: 32rpx;
color: #000;
}
.color1 {
color: #CBCBCB;
}
.pickerSex image{
width: 48rpx;
height: 48rpx;
margin-right: 30rpx;
width: 24rpx;
height: 24rpx;
}
.sexText{
position: relative;
... ... @@ -188,4 +207,10 @@
display: flex;
align-items: center;
padding: 20rpx 0;
}
.text1 picker {
display: flex;
align-items: center;
padding-top: 20rpx;
}
\ 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:'',
... ... @@ -39,7 +42,7 @@ Page({
id: options.id || obj.id,
sid: options.sid || obj.sid,
oid: options.oid,
types: options.types || obj.types, //1是邀请函过来的(邀请函的券或者点击意见反馈买券) 2是提前点餐 3是商家APP分享的或者短信的链接 4好友赠送的券
types: options.types || obj.types, //1是邀请函过来的(邀请函的券或者点击意见反馈买券) 2是提前点餐 3是商家APP分享的或者短信的链接 4好友赠送的券 5充值赠送的券,不显示按钮
rid: options.rid ? options.rid : '',
activity_id:options.activity_id || '',
}
... ... @@ -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" wx:if="{{opt.types!='5'}}">
<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="{{opt.types!='5' && (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
... ...
... ... @@ -80,7 +80,7 @@ Page({
getCouponDetail(e){
const item= e.currentTarget.dataset['item'];
wx.navigateTo({
url: `./seeRecharge?id=${item.id}&name=${this.data.opt.name}`,
url: `./receiveCoupon?id=${item.id}&name=${this.data.opt.name}&types=5&sid=${this.data.opt.sid}`,
})
},
submitOrder(){
... ...
... ... @@ -3,15 +3,15 @@
<nav>{{opt.name}}</nav>
<view class="wrapBox">
<view class="info">
<view class="info_left font32r">
<view class="info_left font28r">
活动名称
</view>
<view class="info_right text_info font32r">
<view class="info_right text_info font28r">
{{detail.rname}}
</view>
</view>
<view class="info">
<view class="info_left font32r">
<view class="info text1">
<view class="info_left font28r">
充值满
</view>
<view class="info_right text_info font32r">
... ... @@ -19,90 +19,90 @@
</view>
</view>
<view class="favourable_box">
<view class="about font32r">
<view class="about font28r">
优惠活动
</view>
<view class="bundle" wx:if="{{recharge_list.is_price=='1'}}">
<view class="bundle_left font30r">
<view class="bundle_left font28r">
赠送
</view>
<view class="bundle_right font30r">
<view class="bundle_right font28r">
{{recharge_list.price+'元余额'}}
</view>
</view>
<view class="bundle" wx:if="{{recharge_list.is_score=='1'}}">
<view class="bundle_left font30r">
<view class="bundle_left font28r">
赠送
</view>
<view class="bundle_right font30r">
<view class="bundle_right font28r">
{{recharge_list.score+'积分'}}
</view>
</view>
<view class="bundle" wx:if="{{recharge_list.is_coupons=='1'}}">
<view class="bundle_left font30r">
<view class="bundle_left font28r">
赠送
</view>
<view class="bundle_right font30r">
<view class="bundle_right font28r">
优惠券
</view>
</view>
</view>
<view class="list">
<view class="item font32r" wx:for="{{recharge_list.coupons}}" wx:key="{{item.id}}" bindtap="getCouponDetail" data-item="{{item}}">
<view class="item font28r" wx:for="{{recharge_list.coupons}}" wx:key="{{item.id}}" bindtap="getCouponDetail" data-item="{{item}}">
{{item.aname}}
</view>
</view>
<view class="week" wx:if="{{exp_date.is_week=='1' || exp_date.is_week===true}}">
<view class="week_top">
<view class="week_left font32r">
<view class="week_left font28r">
充值日期限制:
</view>
<view class="texts font32r">
<view class="texts font28r">
每周指定日期可用
</view>
</view>
<view class="dateList texts font32r">
<view class="dateList texts font28r">
{{exp_date.week_date_show}}
</view>
</view>
<view class="week" wx:if="{{exp_date.is_birthday=='1' || exp_date.is_birthday===true}}">
<view class="week_top">
<view class="week_left font32r">
<view class="week_left font28r">
充值日期限制:
</view>
<view class="texts font32r">
<view class="texts font28r">
会员生日当天
</view>
</view>
</view>
<view class="week" wx:if="{{exp_date.is_fix=='1' || exp_date.is_fix===true}}">
<view class="week_top">
<view class="week_left font32r">
<view class="week_left font28r">
充值日期限制:
</view>
<view class="texts font32r">
<view class="texts font28r">
无
</view>
</view>
</view>
<view class="week" wx:if="{{exp_date.is_fix=='1' || exp_date.is_fix===true}}">
<view class="week_top">
<view class="week_left font32r">
<view class="week_left font28r">
有效期:
</view>
<view class="texts font32r">
<view class="texts font28r">
{{util.unixtoTime(detail.stime,'YYYY-MM-DD')+'至'+util.unixtoTime(detail.etime,'YYYY-MM-DD')}}
</view>
</view>
</view>
<view class="info">
<view class="info_left font32r">
<view class="info text2">
<view class="info_left font28r">
备注
</view>
</view>
<text class="explain_news">{{detail.explain}}</text>
</view>
<view class="fixed_box">
<button class="font32r btns" bindtap="submitOrder">提交充值
<button class="font28r btns" bindtap="submitOrder">提交充值
</button>
</view>
\ No newline at end of file
... ...
/* pack-activity/pack/vipRecharge.wxss */
page {
background-color: #fff;
background-color: #F5F5F5;
}
.wrapBox{
padding-bottom: 180rpx;
background: #fff;
margin: 12rpx;
border-radius: 10rpx;
}
.info {
padding: 28rpx 32rpx 28rpx 0;
margin: 0 40rpx;
padding: 28rpx 0;
box-sizing: border-box;
display: flex;
justify-content: space-between;
margin-left: 32rpx;
border-bottom: 2rpx solid #E7E7E7;
border-bottom: 2rpx solid #F7F7F7;
}
.text1 {
align-items: center;
}
.text2 {
border: none;
}
.text1 .text_info {
padding: 10rpx 0;
}
.info1 {
... ... @@ -26,7 +40,7 @@ page {
.info_left {
flex-shrink: 0;
margin-right: 20rpx;
color: #515151;
color: #696969;
font-family: PingFang SC;
}
... ... @@ -39,11 +53,12 @@ page {
.text_info {
color: #000;
font-family: PingFang SC;
font-family: PingFang SC;
font-weight: 600;
}
.explain_news {
padding: 24rpx 32rpx;
padding: 24rpx 40rpx;
color: #999999;
font-family: PingFang SC;
font-size: 24rpx;
... ... @@ -74,8 +89,10 @@ page {
margin: 0;
border-radius: 42rpx;
width: 100%;
color: #fff;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
color: #fff;
height: 72rpx;
line-height: 72rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.favourable_box {
... ... @@ -83,7 +100,7 @@ page {
}
.about {
color: #515151;
color: #696969;
font-family: PingFang SC;
line-height: 48rpx;
height: 48rpx;
... ... @@ -99,13 +116,14 @@ page {
}
.bundle_left {
color: #515151;
color: #696969;
font-family: PingFang SC;
}
.bundle_right {
color: #999;
font-family: PingFang SC;
color: #000;
font-family: PingFang SC;
font-weight: 600;
}
.list {
... ... @@ -114,18 +132,21 @@ page {
align-items: center;
flex-wrap: wrap;
border-bottom: 2rpx solid #dbdbdb;
padding-left: 32rpx;
padding-left: 32rpx;
justify-content: flex-end;
}
.item {
color: #0143a3;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
font-family: PingFang SC;
margin-right: 18rpx;
padding-bottom: 24rpx;
}
.week {
padding: 0 32rpx;
margin: 0 40rpx;
border-bottom: 2rpx solid #E7E7E7;
}
... ... @@ -142,8 +163,9 @@ page {
}
.texts {
color: #999;
font-family: PingFang SC;
color: #000;
font-family: PingFang SC;
font-weight: 600;
}
.dateList {
... ...
... ... @@ -4,21 +4,21 @@
<view class="box" wx:if="{{list.length>0}}">
<view wx:for="{{list}}" class="single" bindtap="gogoSingle" data-id="{{item.id}}">
<view class="topBox">
<view class="name font32r">
{{item.rname}}
<view class="name font20r">
¥<text>{{item.recharge_money}}</text>
</view>
<view class="texts info font24r" wx:if="{{item.priceInfo}}">
{{item.priceInfo}}{{(item.recharge_lists.is_coupons=='0' && item.recharge_lists.is_score=='0')?'。':';'}}
</view>
<view class="texts info font24r" wx:if="{{item.scoreInfo}}">
{{item.scoreInfo}}{{item.recharge_lists.is_coupons=='0'?'。':';'}}
</view>
<view class="texts info font24r" wx:if="{{item.recharge_lists.is_coupons=='1'}}">
{{item.recharge_lists.is_coupons=='1'?'会员充值满'+item.recharge_money+'元赠送'+item.certificate:''}}。
</view>
</view>
<view class="texts time font24r">
有效期限:{{util.unixtoTime(item.stime,'YYYY-MM-DD')}}至{{util.unixtoTime(item.etime,'YYYY-MM-DD')}}
<view class="mainBox">
<view class="texts info font24r" wx:if="{{item.priceInfo}}">
{{item.priceInfo}}{{(item.recharge_lists.is_coupons=='0' && item.recharge_lists.is_score=='0')?'。':';'}}
</view>
<view class="texts info font24r" wx:if="{{item.scoreInfo}}">
{{item.scoreInfo}}{{item.recharge_lists.is_coupons=='0'?'。':';'}}
</view>
<view class="texts info font24r" wx:if="{{item.recharge_lists.is_coupons=='1'}}">
{{item.recharge_lists.is_coupons=='1'?'会员充值满'+item.recharge_money+'元赠送'+item.certificate:''}}。
</view>
</view>
<view class="btn font24r">充值</view>
</view>
</view>
</view>
\ No newline at end of file
... ...
... ... @@ -3,42 +3,55 @@ page{
background: #F3F3F3;
}
.box{
padding: 32rpx 40rpx;
padding: 32rpx 40rpx;
}
.single{
width: 100%;
border-radius: 16rpx;
background-color: #FFFFFF;
box-shadow: 0rpx 8rpx 8rpx #00000040;
background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%);
margin-bottom: 32rpx;
}
.topBox{
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 0;
}
.name{
background-color: #0143A3;
height: 37%;
line-height: 60rpx;
padding-left: 40rpx;
color: #ffffff;
padding-left: 12rpx;
color: #F6231B;
font-family: PingFang SC;
font-weight: 500;
border-top-left-radius: 10rpx;
border-top-right-radius: 10rpx;
}
.texts{
padding-left: 40rpx;
color: #999999;
font-family: PingFang SC;
line-height: 50rpx;
.name text {
font-size: 48rpx;
font-weight: 600;
}
.topBox{
height: 68%;
border-bottom: 2rpx dashed #bfc4d4;
.mainBox {
border-left: 2rpx dashed #f6231b;
padding-left: 18rpx;
margin-left: 18rpx;
}
.btn {
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
border-radius: 198rpx;
width: 120rpx;
height: 40rpx;
line-height: 40rpx;
color: #fff;
flex-shrink: 0;
text-align: center;
margin: 0 24rpx 0 10rpx;
}
.time{
line-height: 70rpx;
.texts {
color: #C36607;
}
\ 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
... ...
... ... @@ -2,11 +2,12 @@
<nav bindNavEvent="backFun" class="navhome" place="{{true}}">店铺信息</nav>
<view class="main">
<view class="imgs">
<image src="https://qn.colorcun.com/collectSeller.png" mode="" />
<image src="https://qn.colorcun.com/bookSuccess.png" mode="" />
<text class="font32r">提交成功</text>
</view>
<view class="texts">
<text>感谢您的信任!</text>
<text>我们已经记录了您的信息。客服人员会在第一时间联系您,处理相关事宜。</text>
<view class="texts font28r">
<text>感谢您的信任!我们已经记录了您的信息。</text>
<text>客服人员会在第一时间联系您,处理相关事宜。</text>
</view>
<view class="btnBox">
<button class="btn" bindtap="backFun">朕知道了</button>
... ...
/* pages/customer/collectSeller.wxss */
page {
background: #F5F5F5;
}
.main {
display: flex;
flex-direction: column;
align-items: center;
align-items: center;
background: #fff;
border-radius: 10rpx;
margin: 12rpx;
padding: 120rpx 0;
}
.imgs {
margin: 120rpx 0 20rpx 0;
border: 4rpx solid #0143a3;
margin-bottom: 20rpx;
border-radius: 50%;
width: 140rpx;
height: 140rpx;
display: flex;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.imgs image {
width: 140rpx;
height: 140rpx;
width: 88rpx;
height: 88rpx;
}
.imgs text {
font-weight: 600;
margin: 16rpx 0 32rpx 0;
color: #000;
}
.texts {
... ... @@ -27,20 +39,29 @@
margin: 0 40rpx;
color: #000000;
font-family: PingFang SC;
font-size: 32rpx;
}
.btnBox {
width: 100%;
margin-top: 120rpx;
background: #FAFAFA;
padding: 24rpx 0 50rpx 0;
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;
}
.btn {
width: 75%;
width: 90%;
color: #fff;
font-size: 32rpx;
border-radius: 40rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
border-radius: 40rpx;
height: 72rpx;
line-height: 72rpx;
position: relative;
top: -20rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
\ 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
... ...
<!--pages/customer/joinSeller.wxml-->
<nav class="navhome" place="{{true}}">店铺信息</nav>
<view class="main">
<view class="topBox">在开始之前,请告诉我们关于您的一些信息,以方便专属客服给您提供周到的服务。</view>
<view class="topBox font28r">在开始之前,请告诉我们关于您的一些信息,以方便专属客服给您提供周到的服务。</view>
<view class="items">
<view class="left">店铺名称:</view>
<input type="text" class="right" model:value="{{sellername}}" placeholder="点击输入店铺名称" />
<view class="left font28r">店铺名称</view>
<input type="text" class="right font28r" model:value="{{sellername}}" placeholder="请输入您的店铺名称" />
</view>
<view class="items">
<view class="left">城市选择:</view>
<picker mode="region" bindchange="bindRegionChange" value="{{region}}" style="flex:1;">
<view class="left font28r">城市选择</view>
<picker mode="region font28r" bindchange="bindRegionChange" value="{{region}}" style="flex:1;">
<view class="picker {{region.length>0 ? 'black-font' : 'gray-font'}}"> {{region.length>0?region[0]+region[1]+region[2]:'请选择城市'}}</view>
</picker>
</view>
<view class="items">
<view class="left">店铺地址:</view>
<view type="text" value="{{map_address}}" class="infoInput {{map_address=='' ? 'gray-font' : 'black-font'}} smooth" bindtap="chooselocation" name="map_address" placeholder="点击设置您的地址">{{map_address==''?'点这里,选择店铺地图位置' : map_address}}</view>
<view class="left font28r">店铺地址</view>
<view type="text" value="{{map_address}}" class="infoInput {{map_address=='' ? 'gray-font' : 'black-font'}} smooth font28r" bindtap="chooselocation" name="map_address" placeholder="点击设置您的地址">{{map_address==''?'点击选择店铺位置' : map_address}}</view>
</view>
<view class="items">
<view class="left">联系电话:</view>
<input type="text" class="right" model:value="{{phone}}" placeholder="点击输入您的电话号码" />
<view class="left font28r">联系电话</view>
<input type="text" class="right font28r" model:value="{{phone}}" placeholder="请输入您的手机号码" />
</view>
<view class="items">
<view class="left">验证码:</view>
<input type="text" class="right" model:value="{{verifyCode}}" placeholder="点击输入验证码" />
<button class="verifyBox" bindtap='deliver' wx:if="{{ verifySend }}">获取验证码</button>
<button class='verifyBox verifyBoxDis' wx:else>重新获取({{ countDown }})</button>
<view class="left font28r">验证码</view>
<input type="text" class="right font28r" model:value="{{verifyCode}}" placeholder="点击输入验证码" />
<button class="verifyBox font28r" bindtap='deliver' wx:if="{{ verifySend }}">获取验证码</button>
<button class='verifyBox verifyBoxDis font28r' wx:else>{{ countDown }}</button>
</view>
<view class="items">
<view class="left">联系人:</view>
<input class="right" type="text" model:value="{{rname}}" placeholder="点击输入您的姓名" />
<view class="left font28r">联系人</view>
<input class="right font28r" type="text" model:value="{{rname}}" placeholder="请输入您的姓名" />
</view>
<view class="info">
<view class="font28r">注:</view>
... ... @@ -36,6 +36,6 @@
<view class="font28r">2、如果您需要预订餐厅包间,请直接联系商家。</view>
</view>
<view class="btnBox">
<button class="btn" bindtap="submitInfo">提交店铺注册信息</button>
<button class="btn font28r" bindtap="submitInfo">提交店铺注册信息</button>
</view>
</view>
\ No newline at end of file
... ...
/* pages/customer/joinSeller.wxss */
page {
background: #F5F5F5;
}
.main {
background: #fff;
border-radius: 10rpx;
margin: 12rpx;
padding: 40rpx;
}
.topBox {
margin: 40rpx 80rpx 40rpx 40rpx;
color: #000000;
color: #000000;
margin-bottom: 40rpx;
font-family: PingFang SC;
font-size: 32rpx;
}
.items {
display: flex;
justify-content: space-between;
margin-left: 32rpx;
border-bottom: 2rpx solid #E7E7E7;
padding: 24rpx 32rpx 24rpx 0;
padding: 32rpx 0;
align-items: center;
}
... ... @@ -38,23 +47,37 @@ input::-webkit-input-placeholder {
}
.info {
margin-top: 100rpx;
padding: 0 40rpx;
margin-top: 40rpx;
line-height: 48rpx;
}
.info text {
font-weight: 400;
}
.btnBox {
margin: 0 40rpx;
background: #FAFAFA;
padding: 24rpx 0 50rpx 0;
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;
}
.btn {
width: 75%;
width: 90%;
color: #fff;
font-size: 32rpx;
border-radius: 40rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
border-radius: 40rpx;
height: 72rpx;
line-height: 72rpx;
position: relative;
top: -20rpx;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.picker {
... ... @@ -65,12 +88,16 @@ input::-webkit-input-placeholder {
margin-left: 10rpx;
height: 50rpx;
line-height: 50rpx;
border-radius: 6rpx;
color: #fff;
border-radius: 198rpx;
font-size: 24rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
border: 2rpx solid #fe6806;
}
.verifyBoxDis{
background: #999;
border: 2rpx solid #CBCBCB;
color: #CBCBCB;
-webkit-text-fill-color:#CBCBCB;
}
\ 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>
... ...
... ... @@ -164,19 +164,93 @@ Page({
id
}).then(res => {
if (res.data.length > 0) {
let couponData = res.data[0]
couponData.use = couponData.use ? util.determine(couponData.use) : '';
couponData.exp_date = couponData.exp_date ? util.determine(couponData.exp_date) : '';
if ((couponData.use && (!couponData.use.is_cash || couponData.use.is_cash == '1'))) {
let cash = couponData.use.cash * 1;
let price = couponData.price * 1;
couponData.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
let detail = res.data[0]
let data = detail.expiration_date ? util.determine(detail.expiration_date) : '';
detail.use = detail.use ? util.determine(detail.use) : '';
detail.exp_date = detail.exp_date ? util.determine(detail.exp_date) : '';
if ((detail.use && (!detail.use.is_cash || detail.use.is_cash == '1'))) {
let cash = detail.use.cash * 1;
let price = detail.price * 1;
detail.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
}
detail.stringifyUse = detail.use ? JSON.stringify(detail.use) : '';
detail.arule = detail.arule ? util.determine(detail.arule) : '';
detail.expiration_date = detail.expiration_date ? util.determine(detail.expiration_date) : '';
detail.aexpiration = detail.aexpiration ? util.determine(detail.aexpiration) : '';
if ((detail.use && (!detail.use.is_cash || detail.use.is_cash == '1'))) {
let cash = detail.use.cash * 1;
let price = detail.price * 1;
detail.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
}
let num = detail.grant_num*1-detail.grant_last*1;
if (num > 0) {
detail.receiveNumText = ''
if (num >= 0 && num <= 100) {
detail.receiveNumText = num.toString();
} else if (num >= 101 && num <= 199) {
detail.receiveNumText = '100+';
} else if (num >= 200 && num <= 299) {
detail.receiveNumText = '200+';
} else {
detail.receiveNumText = Math.floor(num / 100) * 100 + '+';
}
}
if(num == 0){
let str = detail.grant_num*1
detail.receiveNumText = ''
if (str >= 0 && str <= 100) {
detail.receiveNumText = str.toString();
} else if (str >= 101 && str <= 199) {
detail.receiveNumText = '100+';
} else if (str >= 200 && str <= 299) {
detail.receiveNumText = '200+';
} else {
detail.receiveNumText = Math.floor(str / 100) * 100 + '+';
}
}
if (detail.exp_date && detail.exp_date.week_data) {
let mor = this.hasConsecutiveSelect(detail.exp_date.week_data, '1').rArr.join('、')
let noon = this.hasConsecutiveSelect(detail.exp_date.week_data, '2').rArr.join('、')
let nig = this.hasConsecutiveSelect(detail.exp_date.week_data, '3').rArr.join('、')
if (mor) mor = '早餐:' + mor
if (noon) noon = '午餐:' + noon
if (nig) nig = '晚餐:' + nig
detail.morText = mor;
detail.noonText = noon;
detail.nigText = nig;
}
detail.resultCoupon = '1'; // 显示已领取
detail.cdate = detail.cdate * 1;
detail.useStime = '';
detail.useEtime = '';
let condition = detail.aexpiration
if (condition.valid_forever === '0' && condition.stime && condition.etime) {
detail.useStime = util.unixtoTime(condition.stime, 'YYYY-MM-DD');
detail.useEtime = util.unixtoTime(condition.etime, 'YYYY-MM-DD');
}
if (condition.valid_forever === '1') {
detail.foreverText = '永久有效';
}
if (condition.valid_forever === '0' && condition.today) {
let obj = this.setTimeRange(detail.cdate, 0, parseInt(condition.today) - 1);
detail.useStime = obj.useStime;
detail.useEtime = obj.useEtime;
}
if (condition.valid_forever === '0' && condition.tomorrow) {
let obj = this.setTimeRange(detail.cdate, 1, condition.tomorrow * 1);
detail.useStime = obj.useStime;
detail.useEtime = obj.useEtime;
}
if (condition.valid_forever === '0' && condition.sday && condition.eday) {
let obj = this.setTimeRange(detail.cdate, parseInt(condition.sday) - 1, parseInt(condition.eday) - 1);
detail.useStime = obj.useStime;
detail.useEtime = obj.useEtime;
}
// showCoupon 代表赠送的券没过有效期 && 是开启状态
couponData.showCoupon = (this.data.dataStr<(couponData.etime*1) && couponData.is_open=='1') ? '1' : '0';
console.log('邀请函--------------------评价赠送的优惠券',couponData);
detail.showCoupon = (((data.valid_forever == '0' && this.data.dataStr < (data.etime * 1)) || data.valid_forever == '1') && detail.is_open == '1') ? '1' : '0';
console.log('邀请函--------------------评价赠送的优惠券',detail);
this.setData({
couponData:res.data[0]
couponData:detail
})
}
})
... ...
... ... @@ -3,109 +3,133 @@
<nav id='nav'>商家有礼</nav>
<view class="box" wx:if="{{hasValueCertificate && coupon_dataList.length>0}}">
<view class="title" wx:if="{{options.form == '1'}}">
<view class="sign"></view><text class="font32r">专属优惠券</text>
<view class="sign"></view><text class="font28r">专属优惠券</text>
</view>
<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.name}}&use={{item.stringifyUse}}&sid={{seller.sid}}&oid={{options.id}}&types=1&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>
<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="font48r">{{item.price}}</text>
</view>
<view class="icons font20r" wx:if="{{item.is_type == '3' && item.desc!='0'}}">消费满{{item.desc}}元可用</view>
<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="font48r">{{item.price}}</text>
</view>
<view class="couponLine"></view>
<view class="itemRight">
<view class="btns">
<text class="font32r anameText">{{item.aname}}</text>
<block wx:if="{{item.is_type == '1' || item.is_type == '2'}}">
<text 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+'。':'。'}}</text>
<view wx:if="{{item.exp_date.is_none=='1' || item.exp_date.is_none===true}}" class="bottom font24r">
无限制{{item.desc?','+item.desc+'。':'。'}}
</view>
<view wx:if="{{item.exp_date.is_birthday=='1' || item.exp_date.is_birthday===true}}" class="bottom font24r">
会员生日当天可用{{item.desc?','+item.desc+'。':'。'}}
</view>
</block>
<block wx:if="{{item.is_type == '3' || item.is_type == '4'}}">
<view wx:if="{{(item.useStime && item.useEtime) || item.foreverText}}" class="bottom font24r">有效期:{{item.foreverText?item.foreverText : ''}}</view>
<view wx:if="{{item.useStime && item.useEtime}}" class="bottom font24r nodate">{{item.useStime}} 至 {{item.useEtime}}</view>
<view wx:if="{{item.morText || item.noonText || item.noonText}}" class="bottom font24r">不可用日期:</view>
<view wx:if="{{item.morText}}" class="bottom font24r nodate">{{item.morText}}</view>
<view wx:if="{{item.noonText}}" class="bottom font24r nodate">{{item.noonText}}</view>
<view wx:if="{{item.nigText}}" class="bottom font24r nodate">{{item.nigText}}</view>
<view wx:if="{{item.exp_date.week_show=='无'}}" class="bottom font24r">无使用时间限制</view>
<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="font24r orderingFood orderingFood1">已领取</view>
<view class="grantNum" wx:if="{{item.receiveNumText}}">
<view class="font24r">已被领取</view>
<view class="font24r"><text>{{item.receiveNumText}}</text>张</view>
<view class="icons font20r" wx:if="{{item.is_type == '3' && item.desc!='0'}}">消费满{{item.desc}}元可用</view>
</view>
<view class="couponLine"></view>
<view class="itemRight">
<view class="btns">
<text class="font32r anameText">{{item.aname}}</text>
<block wx:if="{{item.is_type == '1' || item.is_type == '2'}}">
<text 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+'。':'。'}}</text>
<view wx:if="{{item.exp_date.is_none=='1' || item.exp_date.is_none===true}}" class="bottom font24r">
无限制{{item.desc?','+item.desc+'。':'。'}}
</view>
<view wx:if="{{item.exp_date.is_birthday=='1' || item.exp_date.is_birthday===true}}" class="bottom font24r">
会员生日当天可用{{item.desc?','+item.desc+'。':'。'}}
</view>
</block>
<block wx:if="{{item.is_type == '3' || item.is_type == '4'}}">
<view wx:if="{{(item.useStime && item.useEtime) || item.foreverText}}" class="bottom font24r">有效期:{{item.foreverText?item.foreverText : ''}}</view>
<view wx:if="{{item.useStime && item.useEtime}}" class="bottom font24r nodate">{{item.useStime}} 至 {{item.useEtime}}</view>
<view wx:if="{{item.morText || item.noonText || item.noonText}}" class="bottom font24r">不可用日期:</view>
<view wx:if="{{item.morText}}" class="bottom font24r nodate">{{item.morText}}</view>
<view wx:if="{{item.noonText}}" class="bottom font24r nodate">{{item.noonText}}</view>
<view wx:if="{{item.nigText}}" class="bottom font24r nodate">{{item.nigText}}</view>
<view wx:if="{{item.exp_date.week_show=='无'}}" class="bottom font24r">无使用时间限制</view>
<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="font24r orderingFood orderingFood1">已领取</view>
<view class="grantNum" wx:if="{{item.receiveNumText}}">
<view class="font24r">已被领取</view>
<view class="font24r"><text>{{item.receiveNumText}}</text>张</view>
</view>
<view wx:if="{{item.is_type != '3'}}" class="font24r orderingFood">
立即抢购
</view>
</view>
<view wx:if="{{item.is_type != '3'}}" class="font24r orderingFood orderingFood2">
抢购
</view>
</view>
</view>
</navigator>
</block>
</view>
<view class="box" wx:if="{{options.form == '1' && hasValueRecharge && recharge_data && recharge_data.id}}">
<view class="title">
<view class="sign"></view><text class="font32r">会员充值优惠</text>
<view class="sign"></view><text class="font28r">会员充值优惠</text>
</view>
<navigator url="/pack-activity/pack/vipRecharge?id={{recharge_data.id}}&name={{seller.name}}&sid={{seller.sid}}&oid={{options.id}}&types=1&StyleType={{StyleType}}" hover-class="navigator-hover">
<view class="rechargeItems">
<view class="couponWrap">
<view class="itemLeft">
<view class="itemTop font36r">
{{recharge_data.rname}}
<view class="priceText" wx:if="{{recharge_data.recharge_money}}">
<view class="icons font24r">¥</view><text class="font48r">{{recharge_data.recharge_money}}</text>
</view>
<view class="itemBottom 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="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="font24r orderingFood orderingFood2">
充值
</view>
</view>
<view class="font24r orderingFood">
充值
</view>
</view>
</navigator>
</view>
<!-- 启用评价 && 是否评价过 && 评价赠送优惠券 && 赠送的优惠券有数据-->
<view class="box" wx:if="{{options.form == '1' && is_comments=='1' && !is_user_comments && marketing.is_comments_coupon=='1' && couponData && couponData.showCoupon =='1'}}">
<view class="title">
<view class="sign"></view><text class="font32r">反馈有礼</text>
<view class="sign"></view><text class="font28r">反馈有礼</text>
</view>
<view class="preferentialItems" bindtap="evaluateFun">
<view class="couponWrap" bindtap="evaluateFun">
<view class="itemLeft">
<text wx:if="{{couponData.discount!='0.00' && (couponData.use.is_cash=='1' || couponData.use.is_cash) && couponData.discount}}" class="discountText font24r">{{couponData.discount}}折</text>
<view class="discountText1 font20r {{couponData.arule.is_accumulation == '1'?'discountText2':'discountText3'}}" wx:if="{{couponData.is_type == '3'}}">{{couponData.arule.is_accumulation == '1' ? '可' : '不可'}}叠加</view>
<view class="priceText" wx:if="{{couponData.price}}">
<text class="icons font40r">¥</text><text>{{couponData.price}}</text>
<view class="icons font24r">¥</view><text class="font48r">{{couponData.price}}</text>
</view>
<view class="icons font20r" wx:if="{{couponData.is_type == '3' && couponData.desc!='0'}}">消费满{{couponData.desc}}元可用</view>
</view>
<view class="couponLine"></view>
<view class="itemRight">
<view class="btns">
<text class="font40r">{{couponData.aname}}</text>
<view class="font24r orderingFood">
领取
</view>
</view>
<text wx:if="{{couponData.exp_date.is_week=='1' || couponData.exp_date.is_week===true}}" class="bottom font24r">{{couponData.exp_date.week_show?couponData.exp_date.week_show+'可用':''}}{{couponData.desc?','+couponData.desc+'。':'。'}}</text>
<view wx:if="{{couponData.exp_date.is_none=='1' || couponData.exp_date.is_none===true}}" class="bottom font24r">
无限制{{couponData.desc?','+couponData.desc+'。':'。'}}
<text class="font32r anameText">{{couponData.aname}}</text>
<block wx:if="{{couponData.is_type == '1' || couponData.is_type == '2'}}">
<text wx:if="{{couponData.exp_date.is_week=='1' || couponData.exp_date.is_week===true}}" class="bottom font24r">{{couponData.exp_date.week_show?couponData.exp_date.week_show+'可用':''}}{{couponData.desc?','+couponData.desc+'。':'。'}}</text>
<view wx:if="{{couponData.exp_date.is_none=='1' || couponData.exp_date.is_none===true}}" class="bottom font24r">
无限制{{couponData.desc?','+couponData.desc+'。':'。'}}
</view>
<view wx:if="{{couponData.exp_date.is_birthday=='1' || couponData.exp_date.is_birthday===true}}" class="bottom font24r">
会员生日当天可用{{couponData.desc?','+couponData.desc+'。':'。'}}
</view>
</block>
<block wx:if="{{couponData.is_type == '3' || couponData.is_type == '4'}}">
<view wx:if="{{(couponData.useStime && couponData.useEtime) || couponData.foreverText}}" class="bottom font24r">有效期:{{couponData.foreverText?couponData.foreverText : ''}}</view>
<view wx:if="{{couponData.useStime && couponData.useEtime}}" class="bottom font24r nodate">{{couponData.useStime}} 至 {{couponData.useEtime}}</view>
<view wx:if="{{couponData.morText || couponData.noonText || couponData.noonText}}" class="bottom font24r">不可用日期:</view>
<view wx:if="{{couponData.morText}}" class="bottom font24r nodate">{{couponData.morText}}</view>
<view wx:if="{{couponData.noonText}}" class="bottom font24r nodate">{{couponData.noonText}}</view>
<view wx:if="{{couponData.nigText}}" class="bottom font24r nodate">{{couponData.nigText}}</view>
<view wx:if="{{couponData.exp_date.week_show=='无'}}" class="bottom font24r">无使用时间限制</view>
<view wx:if="{{couponData.is_type == '4' && couponData.desc!='0'}}" class="bottom font24r">消费满{{couponData.desc}}元可用</view>
</block>
</view>
<view wx:if="{{couponData.exp_date.is_birthday=='1' || couponData.exp_date.is_birthday===true}}" class="bottom font24r">
会员生日当天可用{{couponData.desc?','+couponData.desc+'。':'。'}}
<view class="btnBox" wx:if="{{couponData.is_type == '3'}}" >
<view class="font24r orderingFood">免费领取</view>
<view class="grantNum" wx:if="{{couponData.receiveNumText}}">
<view class="font24r">已被领取</view>
<view class="font24r"><text>{{couponData.receiveNumText}}</text>张</view>
</view>
</view>
</view>
</view>
... ...
... ... @@ -4,31 +4,32 @@ page {
}
.box {
margin: 24rpx;
margin: 12rpx;
border-radius: 10rpx;
background: #fff;
padding: 40rpx 20rpx;
padding: 12rpx;
margin-bottom: 24rpx;
}
.title {
display: flex;
align-items: center;
border-bottom: 2rpx solid #dbdbdb;
padding: 0 0 12rpx 24rpx;
margin-bottom: 30rpx;
}
.sign {
width: 6rpx;
height: 30rpx;
border-radius: 16rpx;
background: #0143a3;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.title text {
margin-left: 10rpx;
color: #000;
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
font-weight: 600;
}
.couponWrap .nodate{
... ... @@ -50,7 +51,6 @@ page {
min-height: 160rpx;
padding-bottom: 10rpx;
border-radius: 20rpx;
border: 2rpx solid #ff7e06;
}
... ... @@ -93,7 +93,10 @@ page {
height: 44rpx;
width: max-content;
flex-shrink: 0;
background: linear-gradient(94.4deg, #f41919 2.72%, #ff7426 122.17%);
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
}
.orderingFood2 {
width: 74rpx !important;
}
.couponWrap .icons {
color: #F6231B !important;
... ... @@ -252,7 +255,7 @@ page {
border-radius: 20rpx;
line-height: 44rpx;
height: 44rpx;
background: linear-gradient(95.61deg, #2186e2 0.55%, #054baa 130.76%);
background: linear-gradient(90deg, #ff4d11 0%, #fe7600 100%);
width: max-content;
flex-shrink: 0;
}
... ...
... ... @@ -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,
})
}
},
... ...