Commit 5990e085f3f95c99a5779b49777666a8b7d2caea

Authored by liuxuqinfhp1220
2 parents 623b524f 856e109e

no message

@@ -28,7 +28,8 @@ @@ -28,7 +28,8 @@
28 "pages/reserve/activity", 28 "pages/reserve/activity",
29 "pages/reserve/discount", 29 "pages/reserve/discount",
30 "pages/reserve/indexList", 30 "pages/reserve/indexList",
31 - "pages/reserve/share" 31 + "pages/reserve/share",
  32 + "pages/reserve/submit"
32 ], 33 ],
33 "subpackages": [ 34 "subpackages": [
34 { 35 {
1 // components/seller-card/seller-card.js 1 // components/seller-card/seller-card.js
2 import util from '../../utils/util'; 2 import util from '../../utils/util';
  3 +
3 Component({ 4 Component({
4 - options: {  
5 - multipleSlots: true // 在组件定义时的选项中启用多slot支持  
6 - }, 5 + options: {
  6 + multipleSlots: true // 在组件定义时的选项中启用多slot支持
  7 + },
7 /** 8 /**
8 * 组件的属性列表 9 * 组件的属性列表
9 */ 10 */
10 properties: { 11 properties: {
11 - seller:Object,  
12 - detail:{  
13 - type:Object,  
14 - value:{},  
15 - observer:function(){  
16 - console.log('observer',arguments);  
17 - this.init();  
18 - }  
19 - },  
20 - hasMaster:{ //预订人+手机  
21 - type:Boolean,  
22 - value:false  
23 - },  
24 - hasListShare:{ //首页列表的预订人+分享  
25 - type:Boolean,  
26 - value:false  
27 - },  
28 - hasShowStatus:{ //右上角显示状态  
29 - type:Boolean,  
30 - value:false 12 + seller: Object,
  13 + detail: {
  14 + type: Object,
  15 + value: {},
  16 + observer: function () {
  17 + console.log('observer', arguments);
  18 + this.init();
31 } 19 }
  20 + },
  21 + hasMaster: { //预订人+手机
  22 + type: Boolean,
  23 + value: false
  24 + },
  25 + hasListShare: { //首页列表的预订人+分享
  26 + type: Boolean,
  27 + value: false
  28 + },
  29 + hasShowStatus: { //右上角显示状态
  30 + type: Boolean,
  31 + value: false
  32 + },
  33 + hasAddress: { //显示地址,默认显示
  34 + type: Boolean,
  35 + value: true
  36 + },
  37 + hasOnlineReserve:{ //是否为在线预订卡片
  38 + type: Boolean,
  39 + value: false
  40 + },
32 }, 41 },
33 42
34 /** 43 /**
35 * 组件的初始数据 44 * 组件的初始数据
36 */ 45 */
37 data: { 46 data: {
38 - rdateStr:"",  
39 - tableSubInfo:"",  
40 - masterMan:"", 47 + rdateStr: "",
  48 + tableSubInfo: "",
  49 + masterMan: "",
41 }, 50 },
42 - attached(){ 51 + attached() {
43 52
44 - },  
45 - detached(){ 53 + },
  54 + detached() {
46 55
47 - }, 56 + },
48 /** 57 /**
49 * 组件的方法列表 58 * 组件的方法列表
50 */ 59 */
51 methods: { 60 methods: {
52 - init(){  
53 - if(this.data.detail && this.data.detail.ddate){  
54 - let masterMan=(this.data.detail.rname||'');  
55 - if(this.data.detail.phone){  
56 - masterMan+=' ('+  
57 - this.data.detail.phone  
58 - .replace(/([\d]{2}).*([\d]{4})/,function($0,$1,$2){  
59 - return $1+'*'+$2  
60 - })  
61 - +')';  
62 - }  
63 - let tableSubInfo=''  
64 - let tableFirst='';  
65 - if(this.data.detail.tableFirst){  
66 - tableSubInfo=(this.data.detail.tableFirst||'')+' '+(this.data.detail.tableSubInfo||'');  
67 - tableFirst=this.data.detail.tableFirst  
68 - }else{  
69 - tableFirst=this.data.detail.tables[0].name  
70 - tableSubInfo=this.data.detail.tables[0].name;  
71 - if(this.data.detail.tables.length>1){  
72 - tableSubInfo+=' 等'+(this.data.detail.tables.length)+'个'  
73 - +(this.data.detail.tables[0].tid==2?'包间':'');  
74 - tableFirst+='等';  
75 - }  
76 - }  
77 - let obj={  
78 - rdateStr:util.unixtoTime(this.data.detail.ddate,'MM月DD日 HH:II'),  
79 - tableSubInfo:tableSubInfo,  
80 - tableFirst:tableFirst,  
81 - masterMan:masterMan,  
82 - }  
83 - if(this.data.hasShowStatus){  
84 - let ns=new Date()/1000  
85 - obj.showStatusStr='已预订'  
86 - if(this.data.detail.status==4){  
87 - obj.showStatusStr='已取消'  
88 - }else if(this.data.detail.status>=2 || ns>this.data.detail.ddate){  
89 - obj.showStatusStr='已完成'  
90 - }  
91 - }  
92 - this.setData(obj) 61 + init() {
  62 + if (this.data.detail && this.data.detail.ddate) {
  63 + let masterMan = (this.data.detail.rname || '');
  64 + if (this.data.detail.phone) {
  65 + masterMan += ' (' +
  66 + this.data.detail.phone
  67 + .replace(/([\d]{2}).*([\d]{4})/, function ($0, $1, $2) {
  68 + return $1 + '*' + $2
  69 + })
  70 + + ')';
  71 + }
  72 + let tableSubInfo = ''
  73 + let tableFirst = '';
  74 + if (this.data.detail.tableFirst) {
  75 + tableSubInfo = (this.data.detail.tableFirst || '') + ' ' + (this.data.detail.tableSubInfo || '');
  76 + tableFirst = this.data.detail.tableFirst
  77 + } else {
  78 + tableFirst = this.data.detail.tables[0].name
  79 + tableSubInfo = this.data.detail.tables[0].name;
  80 + if (this.data.detail.tables.length > 1) {
  81 + tableSubInfo += ' 等' + (this.data.detail.tables.length) + '个'
  82 + + (this.data.detail.tables[0].tid == 2 ? '包间' : '');
  83 + tableFirst += '等';
  84 + }
  85 + }
  86 + let obj = {
  87 + rdateStr: util.unixtoTime(this.data.detail.ddate, 'MM月DD日 HH:II'),
  88 + tableSubInfo: tableSubInfo,
  89 + tableFirst: tableFirst,
  90 + masterMan: masterMan,
  91 + }
  92 + if (this.data.hasShowStatus) {
  93 + let ns = new Date() / 1000
  94 + obj.showStatusStr = '已预订'
  95 + if (this.data.detail.status == 4) {
  96 + obj.showStatusStr = '已取消'
  97 + } else if (this.data.detail.status >= 2 || ns > this.data.detail.ddate) {
  98 + obj.showStatusStr = '已完成'
  99 + }
  100 + }
  101 + this.setData(obj)
  102 + }
  103 + },
  104 + lookLocation: function () {
  105 + //console.log(this.data.seller.lat,this.data.seller.long,this.data.detail.map_address)
  106 + wx.openLocation({
  107 + latitude: Number(this.data.seller.lat),
  108 + longitude: Number(this.data.seller.long),
  109 + scale: 17,
  110 + address: this.data.seller.map_address,
  111 + success: function (res) {
  112 + console.log(res)
93 } 113 }
  114 + })
94 }, 115 },
95 - lookLocation:function(){  
96 - //console.log(this.data.seller.lat,this.data.seller.long,this.data.detail.map_address)  
97 - wx.openLocation({  
98 - latitude:Number(this.data.seller.lat),  
99 - longitude:Number(this.data.seller.long),  
100 - scale:17,  
101 - address:this.data.seller.map_address,  
102 - success:function (res) {  
103 - console.log(res)  
104 - }  
105 - })  
106 - },  
107 } 116 }
108 }) 117 })
1 <!--components/seller-card/seller-card.wxml--> 1 <!--components/seller-card/seller-card.wxml-->
2 -<view class="card"> 2 +<view class="card {{hasOnlineReserve?'online':''}}">
3 <view class="seller flex-lr"> 3 <view class="seller flex-lr">
4 <view class="flex-ll"> 4 <view class="flex-ll">
5 <view class="avatar" wx:if="{{seller.seller_image}}"> 5 <view class="avatar" wx:if="{{seller.seller_image}}">
6 <image src="{{seller.seller_image}}"></image> 6 <image src="{{seller.seller_image}}"></image>
7 </view> 7 </view>
8 - <view class="name Medium">{{seller.sellername}}</view> 8 + <view class="card-class name Medium">{{seller.sellername}}</view>
9 </view> 9 </view>
10 <view wx:if="{{hasShowStatus}}" style="font-size: 30rpx;"> 10 <view wx:if="{{hasShowStatus}}" style="font-size: 30rpx;">
11 {{showStatusStr}} 11 {{showStatusStr}}
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 <view class="value">{{tableFirst}}</view> 25 <view class="value">{{tableFirst}}</view>
26 </view> 26 </view>
27 </view> 27 </view>
28 - <view class="seller address flex-ll" catchtap="lookLocation"> 28 + <view class="seller address flex-ll" catchtap="lookLocation" wx:if="{{hasAddress}}">
29 <view class="gps-icon"> 29 <view class="gps-icon">
30 <image src="http://qn.colorcun.com/custom/lite-yd/image/gps-icon.png"></image> 30 <image src="http://qn.colorcun.com/custom/lite-yd/image/gps-icon.png"></image>
31 </view> 31 </view>
@@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
15 min-width: 60rpx; 15 min-width: 60rpx;
16 border-radius: 50%; 16 border-radius: 50%;
17 margin-right: 20rpx; 17 margin-right: 20rpx;
  18 + overflow: hidden;
18 } 19 }
19 .seller .more{ 20 .seller .more{
20 width: 14rpx; 21 width: 14rpx;
@@ -31,7 +32,6 @@ @@ -31,7 +32,6 @@
31 font-size: 36rpx; 32 font-size: 36rpx;
32 color:#AD7644; 33 color:#AD7644;
33 } 34 }
34 -  
35 .context{ 35 .context{
36 background-color: #E6EBEE; 36 background-color: #E6EBEE;
37 width: 100%; 37 width: 100%;
@@ -95,3 +95,13 @@ @@ -95,3 +95,13 @@
95 .opt{ 95 .opt{
96 padding-top: 0; 96 padding-top: 0;
97 } 97 }
  98 +
  99 +.online .seller .name{
  100 + color: #353535;
  101 +}
  102 +.online .context{
  103 + background-color: #F5F5F5;
  104 +}
  105 +.online .context .line{
  106 + background-color: #ECEBEB;
  107 +}
1 // pages/me/setting.js 1 // pages/me/setting.js
2 import util from '../../utils/util'; 2 import util from '../../utils/util';
3 import App from '../../utils/api'; 3 import App from '../../utils/api';
  4 +
4 const {regeneratorRuntime} = global 5 const {regeneratorRuntime} = global
5 -const _u={  
6 - name:'',  
7 - sex:1,  
8 - phone:'',  
9 - cusdem:'', 6 +const _u = {
  7 + name: '',
  8 + sex: 1,
  9 + phone: '',
  10 + remark: '',
10 } 11 }
11 Page({ 12 Page({
12 13
13 /** 14 /**
14 * 页面的初始数据 15 * 页面的初始数据
15 */ 16 */
16 - user:_u, 17 + user: _u,
17 data: { 18 data: {
18 - user:_u 19 + user: _u
19 }, 20 },
20 - cache_key:'me-setting',  
21 /** 21 /**
22 * 生命周期函数--监听页面加载 22 * 生命周期函数--监听页面加载
23 */ 23 */
24 onLoad: function (options) { 24 onLoad: function (options) {
25 - wx.getStorage({  
26 - key:this.cache_key,  
27 - success:(res)=>{  
28 - if(res.data){  
29 - this.user=res.data  
30 - this.setData({  
31 - user:res.data,  
32 - })  
33 - }  
34 - } 25 + App.Customer.GetCustomerInfo().then(res=>{
  26 + this.user = res.data
  27 + this.setData({
  28 + user: res.data,
35 }) 29 })
  30 + })
36 }, 31 },
37 32
38 /** 33 /**
@@ -63,27 +58,30 @@ Page({ @@ -63,27 +58,30 @@ Page({
63 58
64 }, 59 },
65 60
66 - saved(){  
67 -  
68 - wx.setStorage({  
69 - key:this.cache_key,  
70 - data:this.user,  
71 - })  
72 - wx.navigateBack()  
73 - },  
74 - changeInput(e){  
75 - let key=util.attr(e,'key');  
76 - let val=''  
77 - if(key=='sex'){  
78 - val=util.attr(e,'val');  
79 - }else{  
80 - val=util.val(e);  
81 - }  
82 - this.user[key]=val;  
83 - if(key=='sex'){  
84 - this.setData({  
85 - user:this.user  
86 - })  
87 - } 61 + saved() {
  62 + if(!this.user.name){
  63 + return util.toast('请填写预定人','none')
  64 + }
  65 + App.Customer.SetCustomerInfo({
  66 + ...this.user
  67 + }).then(res=>{
  68 + App.Customer.GetCustomerInfo({},'clear')
  69 + wx.navigateBack()
  70 + })
  71 + },
  72 + changeInput(e) {
  73 + let key = util.attr(e, 'key');
  74 + let val = ''
  75 + if (key == 'sex') {
  76 + val = util.attr(e, 'val');
  77 + } else {
  78 + val = util.val(e);
88 } 79 }
  80 + this.user[key] = val;
  81 + if (key == 'sex') {
  82 + this.setData({
  83 + user: this.user
  84 + })
  85 + }
  86 + },
89 }) 87 })
@@ -22,6 +22,11 @@ @@ -22,6 +22,11 @@
22 data-key="sex" 22 data-key="sex"
23 data-val="2" 23 data-val="2"
24 class="switch-item {{user.sex==2?'checked':''}}">女士</view> 24 class="switch-item {{user.sex==2?'checked':''}}">女士</view>
  25 + <view
  26 + bindtap="changeInput"
  27 + data-key="sex"
  28 + data-val="3"
  29 + class="switch-item {{user.sex==3?'checked':''}}">公司</view>
25 </view> 30 </view>
26 </view> 31 </view>
27 </view> 32 </view>
@@ -31,7 +36,7 @@ @@ -31,7 +36,7 @@
31 <input class="phone input" placeholder="请输入手机号码" 36 <input class="phone input" placeholder="请输入手机号码"
32 bindinput="changeInput" 37 bindinput="changeInput"
33 data-key="phone" 38 data-key="phone"
34 - type="phone" 39 + type="number"
35 value="{{user.phone}}" 40 value="{{user.phone}}"
36 placeholder-class="input-pl" maxlength="11"/> 41 placeholder-class="input-pl" maxlength="11"/>
37 </view> 42 </view>
@@ -41,9 +46,9 @@ @@ -41,9 +46,9 @@
41 <view class="Medium"> 46 <view class="Medium">
42 <input class="cusdem input" placeholder="请填写预订需求" 47 <input class="cusdem input" placeholder="请填写预订需求"
43 bindinput="changeInput" 48 bindinput="changeInput"
44 - data-key="cusdem"  
45 - value="{{user.cusdem}}"  
46 - placeholder-class="input-pl" maxlength="50"/> 49 + data-key="remark"
  50 + value="{{user.remark}}"
  51 + placeholder-class="input-pl" maxlength="20"/>
47 </view> 52 </view>
48 </view> 53 </view>
49 </view> 54 </view>
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 font-size: 34rpx; 27 font-size: 34rpx;
28 } 28 }
29 .switch{ 29 .switch{
30 - width: 168rpx; 30 + width: 252rpx;
31 height: 50rpx; 31 height: 50rpx;
32 line-height: 50rpx; 32 line-height: 50rpx;
33 border: 2rpx solid #262628; 33 border: 2rpx solid #262628;
@@ -14,6 +14,8 @@ Page({ @@ -14,6 +14,8 @@ Page({
14 pagesHeight:'auto', 14 pagesHeight:'auto',
15 current:0, 15 current:0,
16 currentView:1, 16 currentView:1,
  17 + hasOnlineReserve:false,
  18 + activeTab:'detail',
17 }, 19 },
18 20
19 /** 21 /**
@@ -68,6 +70,7 @@ Page({ @@ -68,6 +70,7 @@ Page({
68 } 70 }
69 this.setData({ 71 this.setData({
70 seller:seller, 72 seller:seller,
  73 + hasOnlineReserve:seller.is_online_reserve==1||true,
71 }) 74 })
72 } 75 }
73 }) 76 })
@@ -240,4 +243,9 @@ Page({ @@ -240,4 +243,9 @@ Page({
240 sub:this.options.hasSellerShare?2:3,//关系类型:1/2/3 邀请关系/商户端分享关系/C端分享关系 243 sub:this.options.hasSellerShare?2:3,//关系类型:1/2/3 邀请关系/商户端分享关系/C端分享关系
241 }) 244 })
242 }, 245 },
  246 + switchTabs(e){
  247 + this.setData({
  248 + activeTab:util.attr(e,'act'),
  249 + })
  250 + },
243 }) 251 })
@@ -185,13 +185,202 @@ @@ -185,13 +185,202 @@
185 <discount id="discount" seller="{{seller}}" bindhide="discountHide" bindshow="discountShow"></discount> 185 <discount id="discount" seller="{{seller}}" bindhide="discountHide" bindshow="discountShow"></discount>
186 <share id="share" seller_id="{{seller.id}}"></share> 186 <share id="share" seller_id="{{seller.id}}"></share>
187 </view> 187 </view>
188 -<!-- 包间预定 -->  
189 -<block wx:if="{{seller.daily}}">  
190 - <view class="room-booking bg_white">  
191 - <people></people>  
192 - <view class="dur">  
193 - <view class="dur-title black-font font-bold">可订时间</view>  
194 - <dur timedur="{{seller.daily}}"></dur>  
195 - </view>  
196 - </view> 188 +<!-- 包间预定 -->
  189 +<view class="tabs flex-lr" wx:if="{{hasOnlineReserve}}">
  190 + <view class="tabs-item flex-vc" bindtap="switchTabs" data-act="detail">
  191 + <view class="tabs-item-text {{activeTab=='detail'?'active':''}}">餐厅详情</view>
  192 + </view>
  193 + <view class="tabs-item flex-vc" bindtap="switchTabs" data-act="reserve">
  194 + <view class="tabs-item-text {{activeTab=='reserve'?'active':''}}">包间预订</view>
  195 + </view>
  196 +</view>
  197 +<block wx:if="{{activeTab=='detail'}}">
  198 + <view class="seller-banner" style="{{hasOnlineReserve?'margin-top: 80rpx;':''}}">
  199 + <swiper
  200 + indicator-dots="{{false}}" autoplay="{{false}}" circular="{{false}}" vertical="{{false}}"
  201 + interval="2000" duration="500"
  202 + previous-margin="{{0}}px" next-margin="{{0}}px"
  203 + current="{{current}}" bindchange="bindtransition" bindtap="reviweBanner">
  204 + <block wx:for="{{seller.envi_image}}" wx:key="sellers.key">
  205 + <swiper-item>
  206 + <image class="image" mode="aspectFill"
  207 + src="{{item}}?imageView2/2/w/860/interlace/0/q/100" ></image>
  208 + </swiper-item>
  209 + </block>
  210 + </swiper>
  211 + <view class="slogan" wx:if="{{seller.slogan}}">
  212 + <view class="slogan-view flex-ll">
  213 + <view class="dot"></view>
  214 + <view>{{seller.slogan}}</view>
  215 + </view>
  216 + </view>
  217 + <view class="swiper-num" wx:if="{{seller.envi_image.length>0}}">{{currentView}} / {{seller.envi_image.length}}</view>
  218 + </view>
  219 + <view class="pages" style="height: {{pagesHeight}};overflow:{{pagesHeight=='auto'?'visible':'hidden'}}">
  220 + <view class="seller">
  221 + <view class="base">
  222 + <view class="name Semibold flex-lr">
  223 + <view class="name-info">{{seller.sellername}}
  224 + <view class="broad" wx:if="{{seller.brand}}">
  225 + <view class="broad-1"></view>
  226 + <view class="broad-2">{{seller.brand.name}}</view>
  227 + <view class="broad-3"></view>
  228 + </view>
  229 + </view>
  230 + <view class="average" wx:if="{{seller.average>0}}">¥{{seller.average}}/人</view>
  231 + </view>
  232 + <view class="ping flex-ll">
  233 + <view class="item" wx:if="{{seller.cate.length>0}}">{{seller.cate[0]}}</view>
  234 + <view class="item" wx:if="{{seller.is_belt_wine!=0}}">{{seller.is_belt_wine==1?'不可带酒水':'可自带酒水'}}</view>
  235 + <view class="item" wx:if="{{seller.is_parking==1}}">停车场</view>
  236 + <view class="item" wx:if="{{seller.room_num>0}}">{{seller.room_num}}个包间</view>
  237 + </view>
  238 + <view class="label_c" wx:if="{{seller.label_cstr}}">
  239 + <text class="label_text" >{{seller.label_cstr}}</text>
  240 + </view>
  241 + </view>
  242 + <view class="addr flex-lr" bindtap="lookLocation">
  243 + <view class="addr-view">
  244 + <view class="addr-text flex-ll">
  245 + <image src="http://qn.colorcun.com/custom/lite-online/image/%E5%AE%9A%E4%BD%8D.png"></image>
  246 + <view class="text">{{seller.real_address||seller.map_address}}</view>
  247 + </view>
  248 + <view class="addr-long">{{seller.distanceStr?'距您'+seller.distanceStr:''}}</view>
  249 + </view>
  250 + <view class="more more-addr"></view>
  251 + </view>
  252 + </view>
  253 + <view class="black20line"></view>
  254 + <view class="seller">
  255 + <formids wx:if="{{seller.activity.length>0}}" bindclick="showDiscount">
  256 + <view class="activity-view-easy flex-lr" >
  257 + <view class="activity-left flex-ll">
  258 + <view class="icon"></view>
  259 + <block wx:for="{{seller.activity}}"
  260 + wx:key="seller.activity.key"
  261 + wx:if="{{index<2}}">
  262 + <view class="discount" >{{item.title}}</view>
  263 + </block>
  264 + </view>
  265 + <view class="flex-rr activity-right">
  266 + <view class="more-text">更多</view>
  267 + <view class="more"></view>
  268 + </view>
  269 + </view>
  270 + </formids>
  271 + <!--
  272 + <formids wx:if="{{seller.activity.length>0}}" bindclick="showDiscount">
  273 + <view class="activity-view" >
  274 + <view class="activity" >
  275 + <view class="flex-lr">
  276 + <view class="activity-left">
  277 + <view class="activity-first flex-ll" style="align-items: flex-start">
  278 + <image src="http://qn.colorcun.com/custom/lite-online/image%E5%96%87%E5%8F%AD.png"></image>
  279 + <view class="flex-cc discount" wx:for="{{seller.activity}}"
  280 + wx:key="seller.activity.key"
  281 + wx:if="{{index<2}}">
  282 + <view class="discount-left"></view>
  283 + <view class="discount-text">{{item.title}}</view>
  284 + <view class="discount-right"></view>
  285 + </view>
  286 + </view>
  287 + </view>
  288 + <view class="activity-right flex-rr Semibold">
  289 + <view></view>
  290 + <view class="more"></view>
  291 + </view>
  292 + </view>
  293 + <view class="activity-text">
  294 + 该优惠仅适用于一键订平台预订客户
  295 + </view>
  296 + </view>
  297 + </view>
  298 + </formids>
  299 + -->
  300 + </view>
  301 + <view class="black20line"></view>
  302 + <view class="block" wx:if="{{seller.room_image.length>0}}">
  303 + <view class="header flex-ll">
  304 + <view class="line"></view>
  305 + <view class="name">包间环境</view>
  306 + </view>
  307 + <scroll-view
  308 + scroll-x
  309 + class="baos"
  310 + scroll-into-view="{{toView}}"
  311 + scroll-top="{{scrollTop}}"
  312 + >
  313 +
  314 + <block wx:for="{{seller.room_image}}" wx:key="sellers.key">
  315 + <view class="image">
  316 + <image mode="aspectFill" bindtap="reviweRoomImage" data-current="{{item}}"
  317 + src="{{item}}?imageView2/2/w/640/interlace/0/q/100"></image>
  318 + </view>
  319 + </block>
  320 +
  321 + </scroll-view>
  322 + </view>
  323 + <view class="block" wx:if="{{seller.dishes.length>0}}">
  324 + <view class="header flex-ll">
  325 + <view class="line"></view>
  326 + <view class="name">推荐菜品</view>
  327 + </view>
  328 + <scroll-view
  329 + scroll-x
  330 + class="cais"
  331 + scroll-into-view="{{toView}}"
  332 + scroll-top="{{scrollTop}}"
  333 + >
  334 + <block wx:for="{{seller.dishes}}" wx:key="sellers.key">
  335 + <view class="cais-views" wx:if="{{item.image}}">
  336 + <view class="image-view" >
  337 + <view class="image">
  338 + <image mode="aspectFill" bindtap="reviweDishesImage" data-current="{{item.image}}"
  339 + src="{{item.image}}?imageView2/2/w/640/interlace/0/q/100"></image>
  340 + </view>
  341 + <view class="text Semibold">{{item.name}}</view>
  342 + </view>
  343 + </view>
  344 + </block>
  345 + </scroll-view>
  346 + <view class="cais-text">
  347 + <block wx:for="{{seller.dishes}}" wx:key="sellers.key">
  348 + <view wx:if="{{!item.image}}">{{item.name}}</view>
  349 + </block>
  350 + </view>
  351 + </view>
  352 + </view>
  353 + <view class="footer flex-lr">
  354 + <view class="left flex-cc">
  355 + <formids class="flex-tb" url="/pages/customer/index">
  356 + <image src="http://qn.colorcun.com/custom/lite-online/image/%E9%A6%96%E9%A1%B5.png"></image>
  357 + <view class="text">首页</view>
  358 + </formids>
  359 + <userinfo class="follow flex-tb" binduserinfo="follow">
  360 + <image src="http://qn.colorcun.com/custom/lite-online/image/%E6%94%B6%E8%97%8F.png" wx:if="{{!IsCollectionSeller}}"></image>
  361 + <image src="http://qn.colorcun.com/custom/lite-online/image/%E5%B7%B2%E6%94%B6%E8%97%8F.png" wx:else=""></image>
  362 + <view class="text">收藏</view>
  363 + </userinfo>
  364 + </view>
  365 + <view class="reserve share flex-vc">
  366 + <userinfo class="flex-vc" style="width: 100%" binduserinfo="shareUserinfo">
  367 + <view class="text">分享</view>
  368 + </userinfo>
  369 + </view>
  370 + <view class="reserve">
  371 + <formids class="flex-vc" bindclick="reserve" id="reserve-button">
  372 + <view class="text">电话预订</view>
  373 + </formids>
  374 + </view>
  375 +
  376 + </view>
  377 + <as id="as" items="{{seller.seller_tel}}" bindclick="reservePhone">拨打电话预订</as>
  378 + <getpos bindpos="onpos" id="getpos"></getpos>
  379 + <discount id="discount" seller="{{seller}}" bindhide="discountHide" bindshow="discountShow"></discount>
  380 + <share id="share" seller_id="{{seller.id}}"></share>
  381 +</block>
  382 +<block wx:if="{{activeTab=='reserve'}}">
  383 + <view class="olreserve">
  384 +
  385 + </view>
197 </block> 386 </block>
@@ -480,4 +480,30 @@ @@ -480,4 +480,30 @@
480 width:100%; 480 width:100%;
481 padding:0 30rpx 40rpx; 481 padding:0 30rpx 40rpx;
482 box-sizing: border-box; 482 box-sizing: border-box;
483 -}  
  483 +}
  484 +
  485 +.tabs{
  486 + height: 80rpx;
  487 + position: fixed;
  488 + line-height: 80rpx;
  489 + width: 100%;
  490 + background-color: #ffffff;
  491 + z-index: 9;
  492 +}
  493 +.tabs-item{
  494 + width: 50%;
  495 +}
  496 +.tabs-item-text{
  497 + height: 76rpx;
  498 + border-bottom: 4rpx solid #ffffff;
  499 + font-size: 30rpx;
  500 + color: #353535;
  501 +}
  502 +.tabs-item-text.active{
  503 + border-color: #C0A369;
  504 + color: #C0A369;
  505 + font-weight: bold;
  506 +}
  507 +.olreserve{
  508 + margin-top: 80rpx;
  509 +}
  1 +// pages/reserve/submit.js
  2 +import util from '../../utils/util';
  3 +import App from '../../utils/api';
  4 +const _u = {
  5 + name: '',
  6 + sex: 1,
  7 + phone: '',
  8 + remark: '',
  9 +}
  10 +Page({
  11 + user: _u,
  12 + /**
  13 + * 页面的初始数据
  14 + */
  15 + data: {
  16 + seller:null,
  17 + user:_u,
  18 + },
  19 +
  20 + /**
  21 + * 生命周期函数--监听页面加载
  22 + */
  23 + options:null,
  24 + onLoad: function (options) {
  25 + this.options=options
  26 + this.GetSellerDetail();
  27 + App.Customer.GetCustomerInfo().then(res=>{
  28 + this.user = res.data
  29 + this.setData({
  30 + user: res.data,
  31 + })
  32 + })
  33 + },
  34 +
  35 + /**
  36 + * 生命周期函数--监听页面初次渲染完成
  37 + */
  38 + onReady: function () {
  39 +
  40 + },
  41 +
  42 + /**
  43 + * 生命周期函数--监听页面显示
  44 + */
  45 + onShow: function () {
  46 +
  47 + },
  48 +
  49 + /**
  50 + * 生命周期函数--监听页面隐藏
  51 + */
  52 + onHide: function () {
  53 +
  54 + },
  55 +
  56 + /**
  57 + * 生命周期函数--监听页面卸载
  58 + */
  59 + onUnload: function () {
  60 +
  61 + },
  62 +
  63 + /**
  64 + * 页面相关事件处理函数--监听用户下拉动作
  65 + */
  66 + onPullDownRefresh: function () {
  67 +
  68 + },
  69 +
  70 + /**
  71 + * 页面上拉触底事件的处理函数
  72 + */
  73 + onReachBottom: function () {
  74 +
  75 + },
  76 + GetSellerDetail() {
  77 + let options = this.options
  78 + App.Customer.GetSellerDetail({
  79 + sid: options.sid,
  80 + }).then(res => {
  81 + if (res.ret == 200) {
  82 + let seller = res.data
  83 + this.setData({
  84 + seller: seller,
  85 + })
  86 + }
  87 + })
  88 + },
  89 + changeInput(e) {
  90 + let key = util.attr(e, 'key');
  91 + let val = ''
  92 + if (key == 'sex') {
  93 + val = util.attr(e, 'val');
  94 + } else {
  95 + val = util.val(e);
  96 + }
  97 + this.user[key] = val;
  98 + if (key == 'sex') {
  99 + this.setData({
  100 + user: this.user
  101 + })
  102 + }
  103 + },
  104 + saved() {
  105 + if(!this.user.name){
  106 + return util.toast('请填写姓名','none')
  107 + }
  108 + if(!this.user.phone){
  109 + return util.toast('请填写手机','none')
  110 + }
  111 + App.Customer.SetCustomerInfo({
  112 + ...this.user
  113 + }).then(res=>{
  114 + App.Customer.GetCustomerInfo({},'clear')
  115 + wx.navigateBack()
  116 + })
  117 + },
  118 +})
  1 +{
  2 + "usingComponents": {
  3 + "nav":"/components/nav/nav",
  4 + "formids":"/components/formids/formids",
  5 + "card":"/components/seller-card/seller-card"
  6 + }
  7 +}
  1 +<!--pages/reserve/submit.wxml-->
  2 +<nav hasBack>预订详情</nav>
  3 +<view class="pages">
  4 + <card hasShowStatus hasAddress="{{false}}" hasOnlineReserve
  5 + seller="{{seller}}" detail="{{detail}}">
  6 + <view slot="opt" class="back flex-rr">
  7 + <formids
  8 + id="userinfo-share-{{detail.id}}"
  9 + binduserinfo="userinfo"
  10 + bindshare="share"
  11 + share="{{detail}}">
  12 + <view class="opt-button">修改</view>
  13 + </formids>
  14 + </view>
  15 + </card>
  16 + <view class="userinfo">
  17 + <view class="item flex-lr">
  18 + <view class="item-label">姓名</view>
  19 + <view class="Medium flex-rr">
  20 + <input class="name input" placeholder="请填写用餐人姓名"
  21 + bindinput="changeInput"
  22 + data-key="name"
  23 + value="{{user.name}}"
  24 + placeholder-class="input-pl" maxlength="4"/>
  25 + <view class="flex-rr switch">
  26 + <view
  27 + bindtap="changeInput"
  28 + data-key="sex"
  29 + data-val="1"
  30 + class="switch-item {{user.sex==1?'checked':''}}">先生</view>
  31 + <view
  32 + bindtap="changeInput"
  33 + data-key="sex"
  34 + data-val="2"
  35 + class="switch-item {{user.sex==2?'checked':''}}">女士</view>
  36 + <view
  37 + bindtap="changeInput"
  38 + data-key="sex"
  39 + data-val="3"
  40 + class="switch-item {{user.sex==3?'checked':''}}">公司</view>
  41 + </view>
  42 + </view>
  43 + </view>
  44 + <view class="item flex-lr">
  45 + <view class="item-label">手机</view>
  46 + <view class="Medium flex-lr">
  47 + <input class="phone input" placeholder="请填写联系方式"
  48 + bindinput="changeInput"
  49 + data-key="phone"
  50 + type="number"
  51 + value="{{user.phone}}"
  52 + placeholder-class="input-pl"/>
  53 + <view class="flex-rr switch">
  54 + 一键获取
  55 + </view>
  56 + </view>
  57 + </view>
  58 + <view class="item flex-lr">
  59 + <view class="item-label">备注</view>
  60 + <view class="Medium">
  61 + <input class="cusdem input" placeholder="您的特殊要求,我们会尽量安排(20字)"
  62 + bindinput="changeInput"
  63 + data-key="remark"
  64 + value="{{user.remark}}"
  65 + placeholder-class="input-pl" maxlength="20"/>
  66 + </view>
  67 + </view>
  68 + </view>
  69 + <formids bindclick="saved">
  70 + <view class="share-but">提交预订</view>
  71 + </formids>
  72 +</view>
  1 +/* pages/reserve/submit.wxss */
  2 +.pages{
  3 + padding: 30rpx;
  4 + width: calc(100% - 60rpx);
  5 +}
  6 +.back{
  7 + height: 120rpx;
  8 + line-height: 120rpx;
  9 + width: 100%;
  10 +}
  11 +.opt-button{
  12 + height: 40rpx;
  13 + width: 120rpx;
  14 + border: 2rpx solid #C0A369;
  15 + color: #C0A369;
  16 + text-align: center;
  17 + line-height: 40rpx;
  18 + font-size: 26rpx;
  19 + margin-right: 40rpx;
  20 +}
  21 +
  22 +.userinfo{
  23 + font-size: 30rpx;
  24 +}
  25 +.item{
  26 + height: 124rpx;
  27 + line-height: 124rpx;
  28 + border-bottom: 2rpx solid #F5F5F5;
  29 + padding-top: 20rpx;
  30 +}
  31 +.item-label{
  32 + width: 100rpx;
  33 + min-width: 100rpx;
  34 + font-weight: bold;
  35 +}
  36 +.item view:last-child{
  37 + font-size: 34rpx;
  38 +}
  39 +.switch{
  40 + width: 252rpx;
  41 + height: 50rpx;
  42 + line-height: 50rpx;
  43 + border: 2rpx solid #C0A369;
  44 + margin-left: 16rpx;
  45 + font-size: 28rpx;
  46 +}
  47 +.Medium{
  48 + width: 100%;
  49 +}
  50 +.input{
  51 + width: 100%;
  52 +}
  53 +.switch .switch-item{
  54 + width: 84rpx;
  55 + height: 50rpx;
  56 + line-height: 50rpx;
  57 + text-align: center;
  58 + color: #C0A369;
  59 + border-right: 2rpx solid #C0A369;
  60 +}
  61 +.switch .switch-item:last-child{
  62 + border-width: 0;
  63 +}
  64 +.switch .checked{
  65 + background-color:#C0A369;
  66 + color: #FEFEFE;
  67 +}
  68 +.share-but{
  69 + color:#FEFEFE;
  70 + background: #262628;
  71 + width: 100%;
  72 + line-height: 80rpx;
  73 + font-size: 34rpx;
  74 + text-align: center;
  75 + margin-top: 160rpx;
  76 +}
  77 +.input-pl{
  78 + font-size: 28rpx;
  79 +}
@@ -461,6 +461,10 @@ @@ -461,6 +461,10 @@
461 "name": "包间预定", 461 "name": "包间预定",
462 "pathName": "pages/reserve/detail", 462 "pathName": "pages/reserve/detail",
463 "query": "id=154", 463 "query": "id=154",
  464 + "id": 55,
  465 + "name": "pages/reserve/submit",
  466 + "pathName": "pages/reserve/submit",
  467 + "query": "sid=1",
464 "scene": null 468 "scene": null
465 } 469 }
466 ] 470 ]
@@ -256,6 +256,18 @@ export default { @@ -256,6 +256,18 @@ export default {
256 //根据腾讯地点搜索api整合现有商家 256 //根据腾讯地点搜索api整合现有商家
257 'App.Customer.KeywordTips':null, 257 'App.Customer.KeywordTips':null,
258 258
  259 + //设置C端用户常用信息
  260 + 'App.Customer.SetCustomerInfo':{
  261 + openid:'openid',
  262 + silence:false,
  263 + },
  264 +
  265 + //根据openid获取用的常用信息
  266 + 'App.Customer.GetCustomerInfo':{
  267 + openid:'openid',
  268 + cachetime: -1,
  269 + },
  270 +
259 271
260 //获得小程序码 272 //获得小程序码
261 'App.Other.generate_qrcode':{ 273 'App.Other.generate_qrcode':{