Commit 48c44dba4420db109ba7171cc8758990a177f673

Authored by wangfan
1 parent 680206b1

v2 book set

... ... @@ -2,6 +2,18 @@ var uri_dc = require('utils/uri.js')
global.regeneratorRuntime = require('lib/regenerator/runtime-module')
const { regeneratorRuntime } = global
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
App({
openid:"",
system:{},
... ...
// pages/book/b_addnew.js
import util from '../../utils/util';
import comm from '../../utils/bookCommon';
import App from '../../utils/api';
const {regeneratorRuntime} = global
Page({
... ... @@ -14,9 +15,32 @@ Page({
date:0,
time:0,
pnum_str:'1-4',
tid:0,
}
tabid:0,
rname:'',
phone:'',
sex:1,
cusdem:'',
tid:[],
},
tables:[],
grand:[
{
sex:1,
grand_title:'先生',
isselect:true
},
{
sex:2,
grand_title:'女士',
isselect:false
}
],
buttonhide:true,
},
tablesAll:[],
/**
* 生命周期函数--监听页面加载
*/
... ... @@ -29,7 +53,8 @@ Page({
this.setData({
dateStr:dateStr,
})
this.sellerid=util.cache('sellerid')
this.sellerid=util.cache('sellerid');
this.getTables()
},
/**
... ... @@ -81,29 +106,86 @@ Page({
},
selectedValue(e){
console.log(e);
//console.log(e);
let key=util.attr(e,'key');
let val=util.attr(e,'value');
let val;
if(e.type=='input'){
val=util.val(e);
}else{
val=util.attr(e,'value');
}
let form=this.data.form;
form[key]=val;
this.setData({
form:form
})
let sobj={};
if(key=='tid'){
let ts=this.data.tables;
if(ts[val].isselect){
ts[val].isselect=false;
form.tid.remove(ts[val].id);
}else{
ts[val].isselect=true;
form.tid.push(ts[val].id);
}
sobj.tables=ts;
}else{
form[key]=val;
}
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,pid'.indexOf(key)>-1){
if('date,time,pnum_str,tabid'.indexOf(key)>-1){
this.getTables();
}
},
getTables(){
async getTables(){
let form=this.data.form;
let rdate=[];
App.Reserve.GetTableList({
sid:this.sellerid,
pnum_str:form.pnum_str,
rdate:rdate.join('-'),
tid:form.tid,
}).then(res=>{
})
try{
let rdate=await comm.getTimeSpace(this.data.dateStr[this.data.form.date],this.data.form.time);
console.log('rdate',rdate);
App.Reserve.GetTableList({
sid:this.sellerid,
pnum_str:form.pnum_str,
rdate:rdate,
tid:form.tabid,
}).then(res=>{
let tables=[];
res.data.forEach(p=>{
if(tables.length>=3) return true;
p.list.forEach(t=>{
if(tables.length>=3) return true;
tables.push(t);
})
})
this.tablesAll=res.data;
this.setData({
tables:tables
})
})
}catch (e){
this.setData({
tables:[]
})
}
},
async formsubmit(){
if(this.data.buttonhide) return;
try {
let rdate = await comm.getTimeSpace(this.data.dateStr[this.data.form.date], this.data.form.time);
console.log('rdate', rdate);
this.setData({
buttonhide: true,
})
let form = this.data.form;
form.tid = form.tid.toString();
form.sid = this.sellerid;
form.rdate =rdate
App.Reserve.SetReserveInfo(form).then(res => {
})
}catch (e){}
},
})
\ No newline at end of file
... ...
<!--pages/book/b_addnew.wxml-->
<nav>录入订座信息</nav>
<view class="page">
<form bindsubmit="formSubmit" bindreset="formReset">
<view class="base-info">
<view class="section flex-lr date">
<view class="flex-rr" style="width:100%;">
<item class="date-item {{form.date==0?'checked':''}}"
bindtap="selectedValue" data-key="date" data-value="0">
<view class="date-item-text">{{dateStr[0]}} 今天</view>
</item>
<item class="date-item {{form.date==1?'checked':''}}"
bindtap="selectedValue" data-key="date" data-value="1">
<view class="date-item-text">{{dateStr[1]}} 明天</view>
</item>
</view>
<view class="more flex-ll">
<view></view>
<view></view>
<view></view>
</view>
<view class="base-info">
<view class="section flex-lr date">
<view class="flex-rr" style="width:100%;">
<item class="date-item {{form.date==0?'checked':''}}"
bindtap="selectedValue" data-key="date" data-value="0">
<view class="date-item-text">{{dateStr[0]}} 今天</view>
</item>
<item class="date-item {{form.date==1?'checked':''}}"
bindtap="selectedValue" data-key="date" data-value="1">
<view class="date-item-text">{{dateStr[1]}} 明天</view>
</item>
</view>
<view class="section flex-ll">
<view class="tab">
<item class="item {{form.date==0?'checked':''}}"
bindtap="selectedValue" data-key="time" data-value="0">
早市
</item>
<item class="item {{form.date==1?'checked':''}}"
bindtap="selectedValue" data-key="time" data-value="1">
午市
</item>
<item class="item {{form.date==2?'checked':''}}"
bindtap="selectedValue" data-key="time" data-value="2">
晚市
</item>
</view>
<view class="more flex-ll">
<view></view>
<view></view>
<view></view>
</view>
<view class="section flex-ll">
<view class="tab">
<item class="item {{form.pnum_str=='1-4'?'checked':''}}"
bindtap="selectedValue" data-key="pnum_str" data-value="1-4">
4人以下
</item>
<item class="item {{form.pnum_str=='5-9'?'checked':''}}"
bindtap="selectedValue" data-key="pnum_str" data-value="5-9">
5~9人
</item>
<item class="item {{form.pnum_str=='10-99'?'checked':''}}"
bindtap="selectedValue" data-key="pnum_str" data-value="10-99">
10人以上
</item>
</view>
</view>
<view class="section flex-ll">
<view class="tab">
<item class="item {{form.time==0?'checked':''}}"
bindtap="selectedValue" data-key="time" data-value="0">
早市
</item>
<item class="item {{form.time==1?'checked':''}}"
bindtap="selectedValue" data-key="time" data-value="1">
午市
</item>
<item class="item {{form.time==2?'checked':''}}"
bindtap="selectedValue" data-key="time" data-value="2">
晚市
</item>
</view>
<view class="section flex-ll">
<view class="tab">
<item class="item {{form.pid=='1'?'checked':''}}"
bindtap="selectedValue" data-key="pid" data-value="1">
包间
</item>
<item class="item {{form.pid=='2'?'checked':''}}"
bindtap="selectedValue" data-key="pid" data-value="2">
散座
</item>
</view>
</view>
<view class="section flex-ll">
<view class="tab">
<item class="item {{form.pnum_str=='1-4'?'checked':''}}"
bindtap="selectedValue" data-key="pnum_str" data-value="1-4">
4人以下
</item>
<item class="item {{form.pnum_str=='5-9'?'checked':''}}"
bindtap="selectedValue" data-key="pnum_str" data-value="5-9">
5~9人
</item>
<item class="item {{form.pnum_str=='10-99'?'checked':''}}"
bindtap="selectedValue" data-key="pnum_str" data-value="10-99">
10人以上
</item>
</view>
</view>
<view class="page-full tables">
<view class="section flex-ll">
<view class="tab">
<item class="item {{form.tabid=='2'?'checked':''}}"
bindtap="selectedValue" data-key="tabid" data-value="2">
包间
</item>
<item class="item {{form.tabid=='1'?'checked':''}}"
bindtap="selectedValue" data-key="tabid" data-value="1">
散座
</item>
</view>
</view>
<view class="book-info">
<view class="book-info-single flex-lr" style="align-items:flex-start;">
<input placeholder="请输入预订人姓名(必填)" placeholder-class="gray-font font34r" class="black-font font34r" maxlength="5" style="width:450rpx;" value="{{name}}" bindinput="changename" bindblur="ifAll"/>
<view class="book-info-grand flex-rr font28r gray-deep-font">
<block wx:for="{{grand}}">
<view class="book-grand flex-cc {{index==0 ? 'book-grand-border' : ''}} {{item.isselect==true ? 'book-grand-active white-font' : ''}}" bindtap="selectgrand" data-sex="{{item.sex}}">{{item.grand_title}}</view>
</view>
<view class="page-full tables">
<view class="page">
<view class="title">可订桌位</view>
<view class="advice-desk-detail flex-lr" wx:if="{{tables.length>0}}">
<view class="flex-ll">
<block wx:for="{{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;">6人</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">
<view style="padding-right:30rpx;" class="gray-deep-font font26r">更多</view>
<image src="../image/click.png" class="icon12-22"></image>
</view>
</view>
<view class="book-info-single flex-lr" style="align-items:flex-start;">
<input placeholder="请输入预订人手机号码(必填)" placeholder-class="gray-font font34r" class="black-font font34r" type="number" maxlength="11" bindblur="condition" bindinput="changephone" value="{{phone}}" style="color:{{reminder ? '#E14553' : '#353535'}};width:{{reminder ? 400 : 680}}rpx;"/>
<block wx:if="{{reminder}}">
<view class="flex-rr" style="height:100rpx;">
<view style="color:#E14553;" class="font28r">{{reminder}}</view>
<image src="../image/name-have.png" class="phone-reminder"></image>
</view>
</block>
<view class="advice-desk-detail flex-cc" wx:else="">
没有符合条件的桌位!
</view>
<view class="book-info-single">
<input placeholder="请输入顾客要求(25字以内,选填)" placeholder-class="gray-font font34r" class="black-font font34r" maxlength="25" value="{{remark}}" bindinput="changeremark"/>
</view>
</view>
<view class="book-info">
<view class="book-info-single flex-lr" style="align-items:flex-start;">
<input placeholder="预订人电话" placeholder-class="gray-font font34r" class="black-font font34r" type="number" maxlength="11"
bindblur="selectedValue"
bindconfirm="selectedValue"
data-key="phone"
value="{{phone}}" style="color:{{reminder ? '#E14553' : '#353535'}};width:{{reminder ? 400 : 680}}rpx;"/>
<block wx:if="{{reminder}}">
<view class="flex-rr" style="height:100rpx;">
<view style="color:#E14553;" class="font28r">{{reminder}}</view>
<image src="../image/name-have.png" class="phone-reminder"></image>
</view>
</block>
</view>
<view class="book-info-single flex-lr" style="align-items:flex-start;">
<input placeholder="预订人姓名(必填)" placeholder-class="gray-font font34r" class="black-font font34r" maxlength="5" style="width:450rpx;" value="{{form.rname}}"
bindinput="selectedValue"
bindconfirm="selectedValue"
data-key="rname"/>
<view class="book-info-grand flex-rr font28r gray-deep-font">
<block wx:for="{{grand}}" wx:key="grand.key">
<view class="book-grand flex-cc {{index==0 ? 'book-grand-border' : ''}} {{form.sex==item.sex ? 'book-grand-active white-font' : ''}}"
bindtap="selectedValue"
data-value="{{item.sex}}"
data-key="sex">{{item.grand_title}}</view>
</block>
</view>
</view>
<view class="page-full submit">
<view class="confirm-button white-font flex-vc font34r {{buttonhide==false ? 'confirm-button-active' : ''}}" bindtap="{{buttonhide==false ? 'formsubmit' : ''}}">确定</view>
<view class="book-info-single">
<input placeholder="顾客的要求(25字以内,选填)" placeholder-class="gray-font font34r" class="black-font font34r" maxlength="25" value="{{form.cusdem}}"
bindinput="selectedValue"
bindconfirm="selectedValue"
data-key="cusdem"/>
</view>
</form>
</view>
<view class="page-full submit">
<view class="confirm-button white-font flex-vc font34r {{buttonhide==false ? 'confirm-button-active' : ''}}" bindtap="{{buttonhide==false ? 'formsubmit' : ''}}">确定</view>
</view>
</view>
<tabBar></tabBar>
... ...
... ... @@ -77,12 +77,61 @@
background-color: #F5F5F5;
}
.tables{
height: 314rpx;
margin-top: 10rpx;
font-size: 30rpx;
}
.tables .title{
padding-top: 36rpx;
}
.advice-desk-detail{
height: 220rpx;
width:100%;
}
.order-desk-info{
width:160rpx;
min-width: 160rpx;
height:160rpx;
background:#EBF8F8;
border:1px solid #199095;
border-radius:10rpx;
position:relative;
overflow:hidden;
margin-left:22rpx;
}
.advice-desk-detail .order-desk-info:first-child{
margin-left:0;
}
.desk-active{
position: absolute;
top: -2rpx;
right: -2rpx;
}
.order-desk-type{
width:100%;
height:42rpx;
line-height: 42rpx;
background:#199095;
position:absolute;
left:0;
bottom:0;
font-size: 26rpx;
}
.advice-more{
padding:20rpx 0;
padding-left:30rpx;
}
.cut{
width:100%;
height:4px;
background:#efeef3;
}
/**
预定人信息
*/
.book-info{
width:100%;
padding-top:20rpx;
... ...
... ... @@ -11,22 +11,30 @@ Page({
sort:null
},
sellerid:0,
onLoad:function(opt){
var radio=750/util.getsystem().windowWidth;
var contentHeight=util.getsystem().windowHeight-Math.ceil(165/radio)
if(opt.seller_id){
this.sellerid=opt.seller_id;
util.cache('sellerid',opt.seller_id)
util.cache('enter_params',opt)
App.Reserve.SellerInfo(opt).then(res=>{
util.cache('sellerInfo',res.data)
})
}else{
this.sellerid=util.cache('sellerid');
}
//this.sellerid=opt.seller_id ? opt.seller_id : util.cache('sellerid');
this.setData({
sellerid:opt.seller_id ? opt.seller_id : util.cache('sellerid'),
sellerid:this.sellerid,
systemInfo:util.getsystem(),
contentHeight:contentHeight,
listHeight:contentHeight-Math.ceil(140/radio)
})
util.cache('sellerid',opt.seller_id)
util.cache('enter_params',opt)
console.log(this.data.sellerid)
util.setBarTitle('预定本');
App.Reserve.SellerInfo(opt).then(res=>{
util.cache('sellerInfo',res.data)
})
},
onShow:function(){
var that=this;
... ...
import util from './util';
import App from './api';
const {regeneratorRuntime} = global
module.exports ={
//时间戳转化日期
changedate:function(timestamp){
... ... @@ -40,5 +43,30 @@ module.exports ={
console.log()
var timedate=thismonth+'月'+thisday+'日';
return timedate;
},
//获得营业时段时间戳,用 - 链接
async getTimeSpace(mmdd='',timeIndex=0,sc=null){
try {
let d=new Date()/1000;
if(!mmdd){
mmdd=util.unixtoTime(d,'MM-DD');
}
if(!sc){
let res = await App.Reserve.SellerInfo(util.cache('enter_params'));
sc = res.data;
}
if (sc.daily){
let ti=['morning','noon','night'];
let ts=sc.daily[ti[timeIndex]].split('-');
console.log(ts);
let stime=util.unixtoTime(d,'YYYY-'+mmdd+' '+ts[0]+':00');
console.log(stime);
let etime=util.unixtoTime(d,'YYYY-'+mmdd+' '+ts[1]+':00');
return util.timetouUnix(stime)+'-'+util.timetouUnix(etime);
}
}catch (e){
console(e);
}
return false;
}
}
... ...