Commit 23183a1ffec3fcf52e017047f77df30aae7ced70

Authored by wangfan
1 parent fe5d5f25

桌位选择

<view class="desk-list flex-rs">
<block wx:for="{{list}}">
<block wx:if="{{!item.r_status}}">
<view class="desk-single flex-vc green-deep-bg desk-can black-font" data-id="{{item.id}}" bindtap="selectdesk">
<view class="font38r font-bold desk-name flex-cc font-more">{{item.name}}</view>
<view class="font34r desk-pnum flex-cc">{{item.table_pnum}}人桌</view>
<view class="desk-mask {{item.isselect==true ? 'desk-mask-active white-font flex-vc font24r' : ''}}">
<icon type="success_no_circle" class="icon-success" color="#fff" size="13"></icon>
</view>
</view>
</block>
<block wx:if="{{item.r_status==1}}">
<view class="desk-single flex-vc gray-deep-bg desk-nocan black-font">
<view class="font38r desk-name flex-cc font-more">{{item.name}}</view>
<view class="desk-single flex-vc green-deep-bg desk-can black-font" data-id="{{item.id}}" bindtap="selectdesk">
<view class="font38r font-bold desk-name flex-cc font-more">{{item.name}}</view>
<view class="font34r desk-pnum flex-cc">{{item.table_pnum}}人桌</view>
<view class="desk-status white-font flex-cc font32r">已预订</view>
</view>
</block>
<!--<block wx:if="{{item.rstatus==2}}">
<view class="desk-single flex-vc green-light-bg desk-nocan black-font">
<view class="font38r desk-name flex-ll font-more">{{item.name}}</view>
<view class="font34r desk-pnum flex-lr">
<view class="gray-deep-font font34r">{{item.pnum}}人</view>
<view class="flex-rr">
<image class="desk-time" src="/pages/image/clock.png"></image>
<view class="font24r gray-font">10</view>
</view>
<view class="desk-mask {{item.isselect==true ? 'desk-mask-active white-font flex-vc font24r' : ''}}">
<icon type="success_no_circle" class="icon-success" color="#fff" size="13"></icon>
</view>
<view class="desk-status white-font flex-cc font32r">用餐中</view>
</view>
</block>-->
</block>
</view>
\ No newline at end of file
... ...
... ... @@ -58,15 +58,17 @@ Page({
/**
* 生命周期函数--监听页面加载
*/
reserve_id:'',
onLoad: async function (options) {
this.setDateStr();
this.reserve_id=options.id||'';
this.setDateStr();
this.sellerid=util.cache('sellerid');
let timePickerArray= await comm.getDayTimeSpace();
this.setData({
timePickerArray: timePickerArray,
})
if(options.id>0){
this.initModify(options.id);
if(this.reserve_id>0){
this.initModify(this.reserve_id);
}
},
/**
... ... @@ -101,7 +103,9 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.getTables();
if(!this.reserve_id || util.cache('tableid').length>0){
this.getTables();
}
setTimeout(()=>{
this.setData({
calendarMaskLoad:true,
... ... @@ -145,7 +149,7 @@ Page({
},
selectedValue(e){
//console.log(e);
console.log(e);
let key=util.attr(e,'key');
let val;
if(e.type=='input' || e.type=='confirm'){
... ... @@ -194,20 +198,27 @@ Page({
}else{
form[key]=val;
}
console.log('ts',sobj.tables);
//console.log(e.type,key,val,form);
sobj.form=form;
sobj.buttonhide=true;
if(form.tid.length>0 && form.rname.length>0){
sobj.buttonhide=false;
}
this.setData(sobj)
if('date,time,pnum_str,tabid'.indexOf(key)>-1){
this.getTables();
sobj.form.tid=[];
this.getTables();
}
this.setData(sobj)
},
async getTables(){
let form=this.data.form;
let tableid=util.cache('tableid');
console.log('getTables-tableid',tableid.length,this.reserve_id);
if(tableid.length<1 && this.reserve_id){
tableid=this.data.form.tid;
}
console.log('getTables-tableid',tableid,tableid.length);
try{
let rdate=await comm.getTimeSpace(this.data.dateStr[this.data.form.date],this.data.form.time);
console.log('rdate',this.data.dateStr[this.data.form.date],rdate);
... ... @@ -216,17 +227,33 @@ Page({
pnum_str:form.pnum_str,
rdate:rdate,
tid:form.tabid,
rid:this.reserve_id,
}).then(res=>{
let tables=[];
let tablesLength=0;
res.data.forEach(p=>{
//if(tables.length>=3) return true;
p.list.forEach(t=>{
tablesLength++;
if(tables.length>=3) return true;
tables.push(t);
})
})
if(tableid.length>0){
res.data.forEach(p=>{
//if(tables.length>=3) return true;
p.list.forEach(t=>{
tablesLength++;
if(tables.length>=3) return true;
if(tableid._indexOf(t.id)>-1){
t.isselect=true;
tables.push(t);
}
})
})
wx.removeStorage({key:'tableid'})
}else{
res.data.forEach(p=>{
//if(tables.length>=3) return true;
p.list.forEach(t=>{
tablesLength++;
if(tables.length>=3) return true;
tables.push(t);
})
})
}
this.tablesLength=tablesLength;
this.setData({
tables:tables,
... ... @@ -319,6 +346,8 @@ Page({
console.log(this.data.form)
wx.navigateTo({
url:'b_desk?rdate='+rdate+'&tid='+this.data.form.tabid+'&pnum_str='+this.data.form.pnum_str
+'&checked_tids='+this.data.form.tid
+'&rid='+this.reserve_id
})
},
conditionInfo:function(){
... ... @@ -374,16 +403,18 @@ Page({
obj.form.tid=[];
let tablesed=[];
res.data.tables.forEach((t,ti)=>{
obj.form.tid.push(t.id)
if(ti>=3) return;
t.isselect=true
obj.form.tid.push(t.id)
t["isselected"]=1
tablesed.push(t);
})
this.setData({
timePickerIndex:timePickerIndex,
form:obj.form,
tablesed:tablesed,
//tablesed:tablesed,
})
this.getTables();
}catch (e){
console.log('initModify',e)
}
... ...
... ... @@ -88,36 +88,36 @@
<view class="page-full tables">
<view class="page">
<view class="title">可订桌位<text wx:if="{{tables.length>0}}"> ({{tablesLength}})</text></view>
<view class="advice-desk-detail flex-lr" wx:if="{{tables.length>0}}">
<view class="flex-ll">
<block wx:for="{{tablesed||tables}}" wx:key="tables.key">
<view class="order-desk-info"
bindtap="selectedValue"
data-value="{{index}}"
data-key="tid">
<block wx:if="{{item.tid==2}}">
<view class="flex-vc order-desk-detail" style="margin-top: 24rpx;">
<view class="font28r black-font smooth">{{item.name}}</view>
<view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>
</view>
<view class="order-desk-type flex-cc white-font">包间</view>
</block>
<block wx:else>
<view class="flex-vc order-desk-detail" style="height:100%;">
<view class="font28r black-font smooth">{{item.name}}</view>
<view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>
</view>
</block>
<icon type="success" size="20" color="#199095" class="desk-active" wx:if="{{item.isselect==true}}"/>
</view>
</block>
</view>
<view class="flex-rr advice-more" bindtap="selectdesk" wx:if="{{tablesLength>3 || form.rid>0}}">
<view style="padding-right:30rpx;" class="gray-deep-font font26r">更多</view>
<view class="title flex-lr">
<view>可订桌位<text wx:if="{{tables.length>0}}"> ({{tablesLength}})</text></view>
<view class="flex-rr advice-more" bindtap="selectdesk" wx:if="{{tablesLength>1}}">
<view style="padding-right:20rpx;" class="gray-deep-font font26r">更多</view>
<image src="../image/click.png" class="icon12-22"></image>
</view>
</view>
<view class="advice-desk-detail flex-rr" wx:if="{{tables.length>0}}">
<block wx:for="{{tablesed||tables}}" wx:key="tables.key">
<view class="order-desk-info"
bindtap="selectedValue"
data-value="{{index}}"
data-key="tid">
<block wx:if="{{item.tid==2}}">
<view class="flex-vc order-desk-detail" style="margin-top: 24rpx;">
<view class="font28r black-font smooth">{{item.name}}</view>
<view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>
</view>
<view class="order-desk-type flex-cc white-font">包间</view>
</block>
<block wx:else>
<view class="flex-vc order-desk-detail" style="height:100%;">
<view class="font28r black-font smooth">{{item.name}}</view>
<view class="font26r black-font" style="margin-top:6rpx;">{{item.table_pnum}}人</view>
</view>
</block>
<icon type="success" size="20" color="#199095" class="desk-active" wx:if="{{item.isselect==true}}"/>
</view>
</block>
</view>
<view class="advice-desk-detail flex-cc" wx:else="">
没有符合条件的桌位!
</view>
... ...
... ... @@ -87,6 +87,8 @@
}
.tables .title{
padding-top: 36rpx;
height: 42rpx;
line-height: 42rpx;
}
.advice-desk-detail{
height: 220rpx;
... ...
... ... @@ -6,33 +6,40 @@ Page({
data:{
},
checked_tids:[],
onLoad:function(opt){
console.log(opt)
console.log('onLoad',opt)
util.setBarTitle('选择桌位');
var radio=750/util.getsystem().windowWidth;
var contentHeight=util.getsystem().windowHeight-Math.ceil(350/radio);
if(opt.tid==0){
delete opt.tid
}
if(opt.checked_tids){
this.checked_tids=opt.checked_tids.split(',')
util.cache('tableid',this.checked_tids)
}
this.setData({
sellerid:util.cache('sellerid'),
opt:opt
opt:opt,
hasCheckedTable:this.checked_tids.length>0
})
this.getdesklist();
},
onShow:function(){
},
changedesk:function(e){
var tableid=e.detail;
this.setData({
tableid:util.cache('tableid') && util.cache('tableid').length>0 ? util.cache('tableid') :null
})
let tableid=util.cache('tableid');
this.checked_tids= tableid && tableid.length>0?tableid:[];
this.setData({
hasCheckedTable:this.checked_tids.length>0
})
},
back:function(){
this.setData({
buttonClick:true
})
wx.removeStorage({key:'tableid'})
//wx.removeStorage({key:'tableid'})
wx.navigateBack();
},
getdesklist:function(){
... ... @@ -41,10 +48,14 @@ Page({
var that=this;
App.Reserve.GetTableList(formdata).then(function (json) {
if(json.ret==200){
console.log('this.checked_tids',that.checked_tids);
if(json.data.length>0){
json.data.forEach(function(v,i){
v.list.forEach(function(r,n){
r.isselect=false
if(that.checked_tids._indexOf(r.id)>-1){
r.isselect=true;
}
})
})
}
... ...
... ... @@ -7,4 +7,4 @@
</block>
</view>
<view class="confirm-button white-font flex-vc font34r {{tableid ? 'confirm-button-active' : ''}}" bindtap="back">确定</view>
\ No newline at end of file
<view class="confirm-button white-font flex-vc font34r {{hasCheckedTable ? 'confirm-button-active' : ''}}" bindtap="back">确定</view>
\ No newline at end of file
... ...