Commit 23183a1ffec3fcf52e017047f77df30aae7ced70

Authored by wangfan
1 parent fe5d5f25

桌位选择

1 <view class="desk-list flex-rs"> 1 <view class="desk-list flex-rs">
2 <block wx:for="{{list}}"> 2 <block wx:for="{{list}}">
3 - <block wx:if="{{!item.r_status}}">  
4 - <view class="desk-single flex-vc green-deep-bg desk-can black-font" data-id="{{item.id}}" bindtap="selectdesk">  
5 - <view class="font38r font-bold desk-name flex-cc font-more">{{item.name}}</view>  
6 - <view class="font34r desk-pnum flex-cc">{{item.table_pnum}}人桌</view>  
7 - <view class="desk-mask {{item.isselect==true ? 'desk-mask-active white-font flex-vc font24r' : ''}}">  
8 - <icon type="success_no_circle" class="icon-success" color="#fff" size="13"></icon>  
9 - </view>  
10 - </view>  
11 - </block>  
12 - <block wx:if="{{item.r_status==1}}">  
13 - <view class="desk-single flex-vc gray-deep-bg desk-nocan black-font">  
14 - <view class="font38r desk-name flex-cc font-more">{{item.name}}</view> 3 + <view class="desk-single flex-vc green-deep-bg desk-can black-font" data-id="{{item.id}}" bindtap="selectdesk">
  4 + <view class="font38r font-bold desk-name flex-cc font-more">{{item.name}}</view>
15 <view class="font34r desk-pnum flex-cc">{{item.table_pnum}}人桌</view> 5 <view class="font34r desk-pnum flex-cc">{{item.table_pnum}}人桌</view>
16 - <view class="desk-status white-font flex-cc font32r">已预订</view>  
17 - </view>  
18 - </block>  
19 - <!--<block wx:if="{{item.rstatus==2}}">  
20 - <view class="desk-single flex-vc green-light-bg desk-nocan black-font">  
21 - <view class="font38r desk-name flex-ll font-more">{{item.name}}</view>  
22 - <view class="font34r desk-pnum flex-lr">  
23 - <view class="gray-deep-font font34r">{{item.pnum}}人</view>  
24 - <view class="flex-rr">  
25 - <image class="desk-time" src="/pages/image/clock.png"></image>  
26 - <view class="font24r gray-font">10</view>  
27 - </view> 6 + <view class="desk-mask {{item.isselect==true ? 'desk-mask-active white-font flex-vc font24r' : ''}}">
  7 + <icon type="success_no_circle" class="icon-success" color="#fff" size="13"></icon>
28 </view> 8 </view>
29 - <view class="desk-status white-font flex-cc font32r">用餐中</view>  
30 </view> 9 </view>
31 - </block>-->  
32 </block> 10 </block>
33 </view> 11 </view>
@@ -58,15 +58,17 @@ Page({ @@ -58,15 +58,17 @@ Page({
58 /** 58 /**
59 * 生命周期函数--监听页面加载 59 * 生命周期函数--监听页面加载
60 */ 60 */
  61 + reserve_id:'',
61 onLoad: async function (options) { 62 onLoad: async function (options) {
62 - this.setDateStr(); 63 + this.reserve_id=options.id||'';
  64 + this.setDateStr();
63 this.sellerid=util.cache('sellerid'); 65 this.sellerid=util.cache('sellerid');
64 let timePickerArray= await comm.getDayTimeSpace(); 66 let timePickerArray= await comm.getDayTimeSpace();
65 this.setData({ 67 this.setData({
66 timePickerArray: timePickerArray, 68 timePickerArray: timePickerArray,
67 }) 69 })
68 - if(options.id>0){  
69 - this.initModify(options.id); 70 + if(this.reserve_id>0){
  71 + this.initModify(this.reserve_id);
70 } 72 }
71 }, 73 },
72 /** 74 /**
@@ -101,7 +103,9 @@ Page({ @@ -101,7 +103,9 @@ Page({
101 * 生命周期函数--监听页面显示 103 * 生命周期函数--监听页面显示
102 */ 104 */
103 onShow: function () { 105 onShow: function () {
104 - this.getTables(); 106 + if(!this.reserve_id || util.cache('tableid').length>0){
  107 + this.getTables();
  108 + }
105 setTimeout(()=>{ 109 setTimeout(()=>{
106 this.setData({ 110 this.setData({
107 calendarMaskLoad:true, 111 calendarMaskLoad:true,
@@ -145,7 +149,7 @@ Page({ @@ -145,7 +149,7 @@ Page({
145 149
146 }, 150 },
147 selectedValue(e){ 151 selectedValue(e){
148 - //console.log(e); 152 + console.log(e);
149 let key=util.attr(e,'key'); 153 let key=util.attr(e,'key');
150 let val; 154 let val;
151 if(e.type=='input' || e.type=='confirm'){ 155 if(e.type=='input' || e.type=='confirm'){
@@ -194,20 +198,27 @@ Page({ @@ -194,20 +198,27 @@ Page({
194 }else{ 198 }else{
195 form[key]=val; 199 form[key]=val;
196 } 200 }
  201 + console.log('ts',sobj.tables);
197 //console.log(e.type,key,val,form); 202 //console.log(e.type,key,val,form);
198 sobj.form=form; 203 sobj.form=form;
199 sobj.buttonhide=true; 204 sobj.buttonhide=true;
200 if(form.tid.length>0 && form.rname.length>0){ 205 if(form.tid.length>0 && form.rname.length>0){
201 sobj.buttonhide=false; 206 sobj.buttonhide=false;
202 } 207 }
203 - this.setData(sobj)  
204 -  
205 if('date,time,pnum_str,tabid'.indexOf(key)>-1){ 208 if('date,time,pnum_str,tabid'.indexOf(key)>-1){
206 - this.getTables(); 209 + sobj.form.tid=[];
  210 + this.getTables();
207 } 211 }
  212 + this.setData(sobj)
208 }, 213 },
209 async getTables(){ 214 async getTables(){
210 let form=this.data.form; 215 let form=this.data.form;
  216 + let tableid=util.cache('tableid');
  217 + console.log('getTables-tableid',tableid.length,this.reserve_id);
  218 + if(tableid.length<1 && this.reserve_id){
  219 + tableid=this.data.form.tid;
  220 + }
  221 + console.log('getTables-tableid',tableid,tableid.length);
211 try{ 222 try{
212 let rdate=await comm.getTimeSpace(this.data.dateStr[this.data.form.date],this.data.form.time); 223 let rdate=await comm.getTimeSpace(this.data.dateStr[this.data.form.date],this.data.form.time);
213 console.log('rdate',this.data.dateStr[this.data.form.date],rdate); 224 console.log('rdate',this.data.dateStr[this.data.form.date],rdate);
@@ -216,17 +227,33 @@ Page({ @@ -216,17 +227,33 @@ Page({
216 pnum_str:form.pnum_str, 227 pnum_str:form.pnum_str,
217 rdate:rdate, 228 rdate:rdate,
218 tid:form.tabid, 229 tid:form.tabid,
  230 + rid:this.reserve_id,
219 }).then(res=>{ 231 }).then(res=>{
220 let tables=[]; 232 let tables=[];
221 let tablesLength=0; 233 let tablesLength=0;
222 - res.data.forEach(p=>{  
223 - //if(tables.length>=3) return true;  
224 - p.list.forEach(t=>{  
225 - tablesLength++;  
226 - if(tables.length>=3) return true;  
227 - tables.push(t);  
228 - })  
229 - }) 234 + if(tableid.length>0){
  235 + res.data.forEach(p=>{
  236 + //if(tables.length>=3) return true;
  237 + p.list.forEach(t=>{
  238 + tablesLength++;
  239 + if(tables.length>=3) return true;
  240 + if(tableid._indexOf(t.id)>-1){
  241 + t.isselect=true;
  242 + tables.push(t);
  243 + }
  244 + })
  245 + })
  246 + wx.removeStorage({key:'tableid'})
  247 + }else{
  248 + res.data.forEach(p=>{
  249 + //if(tables.length>=3) return true;
  250 + p.list.forEach(t=>{
  251 + tablesLength++;
  252 + if(tables.length>=3) return true;
  253 + tables.push(t);
  254 + })
  255 + })
  256 + }
230 this.tablesLength=tablesLength; 257 this.tablesLength=tablesLength;
231 this.setData({ 258 this.setData({
232 tables:tables, 259 tables:tables,
@@ -319,6 +346,8 @@ Page({ @@ -319,6 +346,8 @@ Page({
319 console.log(this.data.form) 346 console.log(this.data.form)
320 wx.navigateTo({ 347 wx.navigateTo({
321 url:'b_desk?rdate='+rdate+'&tid='+this.data.form.tabid+'&pnum_str='+this.data.form.pnum_str 348 url:'b_desk?rdate='+rdate+'&tid='+this.data.form.tabid+'&pnum_str='+this.data.form.pnum_str
  349 + +'&checked_tids='+this.data.form.tid
  350 + +'&rid='+this.reserve_id
322 }) 351 })
323 }, 352 },
324 conditionInfo:function(){ 353 conditionInfo:function(){
@@ -374,16 +403,18 @@ Page({ @@ -374,16 +403,18 @@ Page({
374 obj.form.tid=[]; 403 obj.form.tid=[];
375 let tablesed=[]; 404 let tablesed=[];
376 res.data.tables.forEach((t,ti)=>{ 405 res.data.tables.forEach((t,ti)=>{
  406 + obj.form.tid.push(t.id)
377 if(ti>=3) return; 407 if(ti>=3) return;
378 t.isselect=true 408 t.isselect=true
379 - obj.form.tid.push(t.id) 409 + t["isselected"]=1
380 tablesed.push(t); 410 tablesed.push(t);
381 }) 411 })
382 this.setData({ 412 this.setData({
383 timePickerIndex:timePickerIndex, 413 timePickerIndex:timePickerIndex,
384 form:obj.form, 414 form:obj.form,
385 - tablesed:tablesed, 415 + //tablesed:tablesed,
386 }) 416 })
  417 + this.getTables();
387 }catch (e){ 418 }catch (e){
388 console.log('initModify',e) 419 console.log('initModify',e)
389 } 420 }
@@ -88,36 +88,36 @@ @@ -88,36 +88,36 @@
88 88
89 <view class="page-full tables"> 89 <view class="page-full tables">
90 <view class="page"> 90 <view class="page">
91 - <view class="title">可订桌位<text wx:if="{{tables.length>0}}"> ({{tablesLength}})</text></view>  
92 - <view class="advice-desk-detail flex-lr" wx:if="{{tables.length>0}}">  
93 - <view class="flex-ll">  
94 - <block wx:for="{{tablesed||tables}}" wx:key="tables.key">  
95 - <view class="order-desk-info"  
96 - bindtap="selectedValue"  
97 - data-value="{{index}}"  
98 - data-key="tid">  
99 - <block wx:if="{{item.tid==2}}">  
100 - <view class="flex-vc order-desk-detail" style="margin-top: 24rpx;">  
101 - <view class="font28r black-font smooth">{{item.name}}</view>  
102 - <view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>  
103 - </view>  
104 - <view class="order-desk-type flex-cc white-font">包间</view>  
105 - </block>  
106 - <block wx:else>  
107 - <view class="flex-vc order-desk-detail" style="height:100%;">  
108 - <view class="font28r black-font smooth">{{item.name}}</view>  
109 - <view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>  
110 - </view>  
111 - </block>  
112 - <icon type="success" size="20" color="#199095" class="desk-active" wx:if="{{item.isselect==true}}"/>  
113 - </view>  
114 - </block>  
115 - </view>  
116 - <view class="flex-rr advice-more" bindtap="selectdesk" wx:if="{{tablesLength>3 || form.rid>0}}">  
117 - <view style="padding-right:30rpx;" class="gray-deep-font font26r">更多</view> 91 + <view class="title flex-lr">
  92 + <view>可订桌位<text wx:if="{{tables.length>0}}"> ({{tablesLength}})</text></view>
  93 + <view class="flex-rr advice-more" bindtap="selectdesk" wx:if="{{tablesLength>1}}">
  94 + <view style="padding-right:20rpx;" class="gray-deep-font font26r">更多</view>
118 <image src="../image/click.png" class="icon12-22"></image> 95 <image src="../image/click.png" class="icon12-22"></image>
119 </view> 96 </view>
120 </view> 97 </view>
  98 + <view class="advice-desk-detail flex-rr" wx:if="{{tables.length>0}}">
  99 + <block wx:for="{{tablesed||tables}}" wx:key="tables.key">
  100 + <view class="order-desk-info"
  101 + bindtap="selectedValue"
  102 + data-value="{{index}}"
  103 + data-key="tid">
  104 + <block wx:if="{{item.tid==2}}">
  105 + <view class="flex-vc order-desk-detail" style="margin-top: 24rpx;">
  106 + <view class="font28r black-font smooth">{{item.name}}</view>
  107 + <view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>
  108 + </view>
  109 + <view class="order-desk-type flex-cc white-font">包间</view>
  110 + </block>
  111 + <block wx:else>
  112 + <view class="flex-vc order-desk-detail" style="height:100%;">
  113 + <view class="font28r black-font smooth">{{item.name}}</view>
  114 + <view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>
  115 + </view>
  116 + </block>
  117 + <icon type="success" size="20" color="#199095" class="desk-active" wx:if="{{item.isselect==true}}"/>
  118 + </view>
  119 + </block>
  120 + </view>
121 <view class="advice-desk-detail flex-cc" wx:else=""> 121 <view class="advice-desk-detail flex-cc" wx:else="">
122 没有符合条件的桌位! 122 没有符合条件的桌位!
123 </view> 123 </view>
@@ -87,6 +87,8 @@ @@ -87,6 +87,8 @@
87 } 87 }
88 .tables .title{ 88 .tables .title{
89 padding-top: 36rpx; 89 padding-top: 36rpx;
  90 + height: 42rpx;
  91 + line-height: 42rpx;
90 } 92 }
91 .advice-desk-detail{ 93 .advice-desk-detail{
92 height: 220rpx; 94 height: 220rpx;
@@ -6,33 +6,40 @@ Page({ @@ -6,33 +6,40 @@ Page({
6 data:{ 6 data:{
7 7
8 }, 8 },
  9 + checked_tids:[],
9 onLoad:function(opt){ 10 onLoad:function(opt){
10 - console.log(opt) 11 + console.log('onLoad',opt)
11 util.setBarTitle('选择桌位'); 12 util.setBarTitle('选择桌位');
12 var radio=750/util.getsystem().windowWidth; 13 var radio=750/util.getsystem().windowWidth;
13 var contentHeight=util.getsystem().windowHeight-Math.ceil(350/radio); 14 var contentHeight=util.getsystem().windowHeight-Math.ceil(350/radio);
14 if(opt.tid==0){ 15 if(opt.tid==0){
15 delete opt.tid 16 delete opt.tid
16 } 17 }
  18 + if(opt.checked_tids){
  19 + this.checked_tids=opt.checked_tids.split(',')
  20 + util.cache('tableid',this.checked_tids)
  21 + }
17 this.setData({ 22 this.setData({
18 sellerid:util.cache('sellerid'), 23 sellerid:util.cache('sellerid'),
19 - opt:opt 24 + opt:opt,
  25 + hasCheckedTable:this.checked_tids.length>0
20 }) 26 })
21 this.getdesklist(); 27 this.getdesklist();
22 }, 28 },
23 onShow:function(){ 29 onShow:function(){
24 }, 30 },
25 changedesk:function(e){ 31 changedesk:function(e){
26 - var tableid=e.detail;  
27 - this.setData({  
28 - tableid:util.cache('tableid') && util.cache('tableid').length>0 ? util.cache('tableid') :null  
29 - }) 32 + let tableid=util.cache('tableid');
  33 + this.checked_tids= tableid && tableid.length>0?tableid:[];
  34 + this.setData({
  35 + hasCheckedTable:this.checked_tids.length>0
  36 + })
30 }, 37 },
31 back:function(){ 38 back:function(){
32 this.setData({ 39 this.setData({
33 buttonClick:true 40 buttonClick:true
34 }) 41 })
35 - wx.removeStorage({key:'tableid'}) 42 + //wx.removeStorage({key:'tableid'})
36 wx.navigateBack(); 43 wx.navigateBack();
37 }, 44 },
38 getdesklist:function(){ 45 getdesklist:function(){
@@ -41,10 +48,14 @@ Page({ @@ -41,10 +48,14 @@ Page({
41 var that=this; 48 var that=this;
42 App.Reserve.GetTableList(formdata).then(function (json) { 49 App.Reserve.GetTableList(formdata).then(function (json) {
43 if(json.ret==200){ 50 if(json.ret==200){
  51 + console.log('this.checked_tids',that.checked_tids);
44 if(json.data.length>0){ 52 if(json.data.length>0){
45 json.data.forEach(function(v,i){ 53 json.data.forEach(function(v,i){
46 v.list.forEach(function(r,n){ 54 v.list.forEach(function(r,n){
47 r.isselect=false 55 r.isselect=false
  56 + if(that.checked_tids._indexOf(r.id)>-1){
  57 + r.isselect=true;
  58 + }
48 }) 59 })
49 }) 60 })
50 } 61 }
@@ -7,4 +7,4 @@ @@ -7,4 +7,4 @@
7 </block> 7 </block>
8 </view> 8 </view>
9 9
10 -<view class="confirm-button white-font flex-vc font34r {{tableid ? 'confirm-button-active' : ''}}" bindtap="back">确定</view>  
  10 +<view class="confirm-button white-font flex-vc font34r {{hasCheckedTable ? 'confirm-button-active' : ''}}" bindtap="back">确定</view>