Commit 56e4ec3278ca801bf310f7a8b7e3f5e43082af39

Authored by vking
1 parent 6238563c

分离在线预订

@@ -17,6 +17,7 @@ const formTpl = { @@ -17,6 +17,7 @@ const formTpl = {
17 cusdem: '', 17 cusdem: '',
18 18
19 tid: [], 19 tid: [],
  20 + is_set_ddate:0,
20 21
21 } 22 }
22 Page({ 23 Page({
@@ -95,21 +96,21 @@ Page({ @@ -95,21 +96,21 @@ Page({
95 let rev_time=parseInt(nt) 96 let rev_time=parseInt(nt)
96 if(options.hasQuick==1){ 97 if(options.hasQuick==1){
97 let rdate=options.ddate.split('-') 98 let rdate=options.ddate.split('-')
98 - if(rev_time<rdate[0] || rev_time>rdate[1]){ 99 + if(!(rev_time>=rdate[0] && rev_time<=rdate[1])){
99 rev_time=rdate[0] 100 rev_time=rdate[0]
100 } 101 }
  102 + await this.setDateStr(rev_time);
101 } 103 }
102 - await this.setDateStr(rev_time);  
103 - this.sellerid = util.cache('enter_params')['seller_id'];  
104 - let timePickerArray = await comm.getDayTimeSpace();  
105 //判断hasUseDefDtime 104 //判断hasUseDefDtime
106 let hasUseDefDtime = true; 105 let hasUseDefDtime = true;
107 let mmii = util.unixtoTime(rev_time, 'HH:II'); 106 let mmii = util.unixtoTime(rev_time, 'HH:II');
108 - console.log('initLoad',mmii,this.data.defDtime[this.data.form.time],this.data.defDtime)  
109 - console.log('initLoad',mmii > this.data.defDtime[this.data.form.time])  
110 if (mmii > this.data.defDtime[this.data.form.time]) { 107 if (mmii > this.data.defDtime[this.data.form.time]) {
111 hasUseDefDtime = false; 108 hasUseDefDtime = false;
112 } 109 }
  110 + console.log('initLoad::setDateStr',util.unixtoTime(rev_time,'YYYY-MM-DD HH:II'),this.data.defDtime[this.data.form.time])
  111 + await this.setDateStr(rev_time,hasUseDefDtime);
  112 + this.sellerid = util.cache('enter_params')['seller_id'];
  113 + let timePickerArray = await comm.getDayTimeSpace();
113 this.setData({ 114 this.setData({
114 timePickerArray: timePickerArray, 115 timePickerArray: timePickerArray,
115 speciallist: speciallist, 116 speciallist: speciallist,
@@ -128,7 +129,12 @@ Page({ @@ -128,7 +129,12 @@ Page({
128 * @param d 129 * @param d
129 * 130 *
130 */ 131 */
131 - async setDateStr(d = new Date() / 1000){ 132 + async setDateStr(d = new Date() / 1000,hasUseDefDtime=false){
  133 + if(hasUseDefDtime){//
  134 + let timestr=util.unixtoTime(d,'YYYY-MM-DD '+this.data.defDtime[this.data.form.time])
  135 + d=util.timetouUnix(timestr)
  136 + }
  137 + console.log('setDateStr',util.unixtoTime(d,'YYYY-MM-DD HH:II'),hasUseDefDtime)
132 this.year=util.unixtoTime(d,'YYYY'); 138 this.year=util.unixtoTime(d,'YYYY');
133 let ns = new Date() / 1000; 139 let ns = new Date() / 1000;
134 let dateStr = [ 140 let dateStr = [
@@ -141,8 +147,14 @@ Page({ @@ -141,8 +147,14 @@ Page({
141 147
142 let timeObj = await comm.getTimeSpaceIndexData(d); 148 let timeObj = await comm.getTimeSpaceIndexData(d);
143 //form.time=await comm.getTimeSpaceIndex(d); 149 //form.time=await comm.getTimeSpaceIndex(d);
144 - form.time = timeObj.timeIndex; 150 + //如果小于默认时间,使用默认时间
  151 + let mmii = util.unixtoTime(d,'HH:II')
  152 + if (mmii < this.data.defDtime[timeObj.timeIndex]) {
  153 + let str=util.unixtoTime(d, 'YYYY-MM-DD '+this.data.defDtime[timeObj.timeIndex]+':00')
  154 + timeObj = await comm.getTimeSpaceIndexData(util.timetouUnix(str));
  155 + }
145 156
  157 + form.time = timeObj.timeIndex;
146 let ind = dateStr._indexOf(nowStr); 158 let ind = dateStr._indexOf(nowStr);
147 if (ind > -1) { 159 if (ind > -1) {
148 form.date = ind 160 form.date = ind
@@ -158,6 +170,7 @@ Page({ @@ -158,6 +170,7 @@ Page({
158 timePickerIndex: timePickerIndex, 170 timePickerIndex: timePickerIndex,
159 timeOpt: timeObj.timeOpt, 171 timeOpt: timeObj.timeOpt,
160 }; 172 };
  173 +
161 this.setData(obj) 174 this.setData(obj)
162 return obj; 175 return obj;
163 176
@@ -176,7 +189,7 @@ Page({ @@ -176,7 +189,7 @@ Page({
176 onShow: function () { 189 onShow: function () {
177 //if(!this.reserve_id || util.cache('tableid').length>0){ 190 //if(!this.reserve_id || util.cache('tableid').length>0){
178 //if (util.cache('tableid').length > 0) { 191 //if (util.cache('tableid').length > 0) {
179 - this.getTables(); 192 + this.getTables();
180 //} 193 //}
181 setTimeout(() => { 194 setTimeout(() => {
182 this.setData({ 195 this.setData({
@@ -220,7 +233,7 @@ Page({ @@ -220,7 +233,7 @@ Page({
220 onShareAppMessage: function () { 233 onShareAppMessage: function () {
221 234
222 }, 235 },
223 - selectedValue(e){ 236 + async selectedValueAsync(e){
224 console.log(e); 237 console.log(e);
225 let key = util.attr(e, 'key'); 238 let key = util.attr(e, 'key');
226 let val; 239 let val;
@@ -302,6 +315,30 @@ Page({ @@ -302,6 +315,30 @@ Page({
302 sobj.timePickerMask = true; 315 sobj.timePickerMask = true;
303 } 316 }
304 } 317 }
  318 + //判断hasUseDefDtime
  319 + if ((key == 'time' || key == 'date') && !sobj.timePickerMask) {
  320 + sobj.hasUseDefDtime = true
  321 + let ntime = parseInt(new Date() / 1000)
  322 + let xtime =ntime
  323 + if(key == 'time'){
  324 + xtime=util.unixtoTime(new Date() / 1000, this.year+'-' + (this.data.dateStr[this.data.form.date].substr(0, 5)) + ' HH:II:SS');
  325 + xtime=util.timetouUnix(xtime)
  326 + //if 当前时间在区间内 hasUseDefDtime 为 false
  327 + let d_rdate = await comm.getTimeSpace(this.data.dateStr[this.data.form.date],
  328 + this.data.form.time, null,null,this.year);
  329 + d_rdate=d_rdate.split('-');
  330 + if(d_rdate[0] <= ntime && ntime<=d_rdate[1]){
  331 + sobj.hasUseDefDtime=false
  332 + }
  333 + }
  334 + this.setDateStr(xtime,sobj.hasUseDefDtime);
  335 + }
  336 + if (this.data.form.date == 0) {//
  337 + let mmii = util.unixtoTime(new Date() / 1000, 'HH:II');
  338 + if (mmii > this.data.defDtime[key == 'time' ? val : this.data.form.time]) {
  339 + sobj.hasUseDefDtime = false;
  340 + }
  341 + }
305 if ('date,time,pnum,pnum_str,tabid'.indexOf(key) > -1) { 342 if ('date,time,pnum,pnum_str,tabid'.indexOf(key) > -1) {
306 if (!displayTimes) { 343 if (!displayTimes) {
307 //sobj.form.tid = []; //切换日期时间清空桌位 344 //sobj.form.tid = []; //切换日期时间清空桌位
@@ -309,13 +346,105 @@ Page({ @@ -309,13 +346,105 @@ Page({
309 this.getTables(); 346 this.getTables();
310 } 347 }
311 if (key == 'date') { 348 if (key == 'date') {
312 - let xtime = util.unixtoTime(new Date() / 1000, 'YYYY-' + (this.data.dateStr[val].substr(0, 5)) + ' HH:II:SS');  
313 - this.setDateStr(util.timetouUnix(xtime)); 349 + let xtime = util.unixtoTime(new Date() / 1000, this.year+'-' + (this.data.dateStr[val].substr(0, 5)) + ' HH:II:SS');
  350 + this.setDateStr(util.timetouUnix(xtime),sobj.hasUseDefDtime);
  351 + }
  352 + }
  353 +
  354 + this.setData(sobj)
  355 + },
  356 + selectedValue(e){
  357 + console.log(e);
  358 + let key = util.attr(e, 'key');
  359 + let val;
  360 + let sobj = {};
  361 + if (key == 'date') {
  362 + this.year=util.unixtoTime(new Date() / 1000,'YYYY');
  363 + }
  364 + if (e.type == 'input' || e.type == 'confirm') {
  365 + val = util.val(e);
  366 + if (key == 'phone') {
  367 + var that = this;
  368 + if (e.detail.value != '' && e.detail.value.length >= 3) {
  369 + App.Reserve.GetReserveUser(
  370 + {
  371 + keywords: e.detail.value,
  372 + sid: this.sellerid
  373 + }
  374 + ).then(function (json) {
  375 + if (json.ret == 200 && json.data.length > 0) {
  376 + that.setData({
  377 + searchlist: json.data
  378 + })
  379 + } else {
  380 + that.setData({
  381 + searchlist: null
  382 + })
  383 + }
  384 + })
  385 + } else {
  386 + this.setData({
  387 + searchlist: null
  388 + })
  389 + }
  390 + }
  391 + if (key == 'pnum') {
  392 + sobj.pnumInputFocus = true;
  393 + }
  394 + } else {
  395 + val = util.attr(e, 'value');
  396 + }
  397 + if (key == 'time') {
  398 + if (this.data.timeOpt[val]) return;
  399 + }
  400 + if ((key == 'time' && this.data.form.time == val) || (key == 'date' && this.data.form.date == val)) {
  401 + if (util.attr(e, 'display') != 'block') {
  402 + return;
  403 + }
  404 + }
  405 + let form = this.data.form;
  406 +
  407 + if (key == 'tid') {
  408 + let ts = this.data.tables;
  409 + if (ts[val].isselect) {
  410 + ts[val].isselect = false;
  411 + form.tid.remove(ts[val].id);
  412 + delete this.checkedTables[ts[val].id]
  413 + } else {
  414 + ts[val].isselect = true;
  415 + form.tid.push(ts[val].id);
  416 + this.checkedTables[ts[val].id]=ts[val].name
  417 + }
  418 + sobj.tables = ts;
  419 + } else {
  420 + form[key] = val;
  421 + }
  422 + console.log('ts', sobj.tables,this.checkedTables);
  423 + //console.log(e.type,key,val,form);
  424 + sobj.form = form;
  425 + sobj.buttonhide = this.data.buttonhide;
  426 + if (form.tid.length > 0 && form.rname.length > 0) {
  427 + sobj.buttonhide = false;
  428 + }else{
  429 + sobj.buttonhide = true;
  430 + }
  431 + let displayTimes = false;
  432 + if (key == 'time') {
  433 + if (util.attr(e, 'display') == 'block') {
  434 + displayTimes = true;
  435 + sobj.timePickerMask = true;
314 } 436 }
315 } 437 }
316 //判断hasUseDefDtime 438 //判断hasUseDefDtime
317 if ((key == 'time' || key == 'date') && !sobj.timePickerMask) { 439 if ((key == 'time' || key == 'date') && !sobj.timePickerMask) {
318 sobj.hasUseDefDtime = true 440 sobj.hasUseDefDtime = true
  441 + let ntime = parseInt(new Date() / 1000)
  442 + let xtime =ntime
  443 + if(key == 'time'){
  444 + xtime=util.unixtoTime(new Date() / 1000, this.year+'-' + (this.data.dateStr[this.data.form.date].substr(0, 5)) + ' HH:II:SS');
  445 + xtime=util.timetouUnix(xtime)
  446 + }
  447 + this.setDateStr(xtime,sobj.hasUseDefDtime);
319 } 448 }
320 if (this.data.form.date == 0) {// 449 if (this.data.form.date == 0) {//
321 let mmii = util.unixtoTime(new Date() / 1000, 'HH:II'); 450 let mmii = util.unixtoTime(new Date() / 1000, 'HH:II');
@@ -323,6 +452,18 @@ Page({ @@ -323,6 +452,18 @@ Page({
323 sobj.hasUseDefDtime = false; 452 sobj.hasUseDefDtime = false;
324 } 453 }
325 } 454 }
  455 + if ('date,time,pnum,pnum_str,tabid'.indexOf(key) > -1) {
  456 + if (!displayTimes) {
  457 + //sobj.form.tid = []; //切换日期时间清空桌位
  458 + //sobj.buttonhide = true;
  459 + this.getTables();
  460 + }
  461 + if (key == 'date') {
  462 + let xtime = util.unixtoTime(new Date() / 1000, this.year+'-' + (this.data.dateStr[val].substr(0, 5)) + ' HH:II:SS');
  463 + this.setDateStr(util.timetouUnix(xtime),sobj.hasUseDefDtime);
  464 + }
  465 + }
  466 +
326 this.setData(sobj) 467 this.setData(sobj)
327 }, 468 },
328 async getTables(){ 469 async getTables(){
@@ -458,7 +599,8 @@ Page({ @@ -458,7 +599,8 @@ Page({
458 let ddateStr = util.unixtoTime(form.ddate, "YYYY-MM-DD " + this.data.defDtime[this.data.form.time] + ":00"); 599 let ddateStr = util.unixtoTime(form.ddate, "YYYY-MM-DD " + this.data.defDtime[this.data.form.time] + ":00");
459 form.ddate = util.timetouUnix(ddateStr); 600 form.ddate = util.timetouUnix(ddateStr);
460 } 601 }
461 - App.Reserve.SetReserveInfo(form).then(res => { 602 + //App.Customer.SetReserveInfoById
  603 + App.Customer.SetReserveInfoById(form).then(res => {
462 if (res.ret == 200) { 604 if (res.ret == 200) {
463 this.getCustomRemark() 605 this.getCustomRemark()
464 let _id = (res.data.id || res.data) 606 let _id = (res.data.id || res.data)
@@ -518,7 +660,14 @@ Page({ @@ -518,7 +660,14 @@ Page({
518 //buttonhide: true, 660 //buttonhide: true,
519 }) 661 })
520 console.log('cktime',cktime,util.unixtoTime(cktime,'YYYY-MM-DD')) 662 console.log('cktime',cktime,util.unixtoTime(cktime,'YYYY-MM-DD'))
521 - this.setDateStr(cktime == day0 ? new Date() / 1000 : cktime) 663 + if(cktime == day0){//今天
  664 + this.setDateStr( new Date() / 1000 )
  665 + }else{
  666 + let xtime=util.unixtoTime(new Date() / 1000, event.detail.date + ' HH:II:SS');
  667 + xtime=util.timetouUnix(xtime)
  668 + this.setDateStr(xtime,true)
  669 + }
  670 +
522 this.calendarClose(); 671 this.calendarClose();
523 setTimeout(res=>{ 672 setTimeout(res=>{
524 this.getTables(); 673 this.getTables();
@@ -565,6 +714,7 @@ Page({ @@ -565,6 +714,7 @@ Page({
565 this.setData({ 714 this.setData({
566 timePickerIndex: timePickerIndex, 715 timePickerIndex: timePickerIndex,
567 hasUseDefDtime: false, 716 hasUseDefDtime: false,
  717 + [`form.is_set_ddate`]:1,
568 }) 718 })
569 }, 719 },
570 /** 720 /**
@@ -596,6 +746,7 @@ Page({ @@ -596,6 +746,7 @@ Page({
596 obj.form.phone = res.data.phone || ""; 746 obj.form.phone = res.data.phone || "";
597 obj.form.sex = res.data.sex; 747 obj.form.sex = res.data.sex;
598 obj.form.cusdem = res.data.cusdem; 748 obj.form.cusdem = res.data.cusdem;
  749 + obj.form.is_set_ddate=res.data.is_set_ddate
599 obj.form.rid = id; 750 obj.form.rid = id;
600 obj.form.tid = []; 751 obj.form.tid = [];
601 let tablesed = []; 752 let tablesed = [];
@@ -695,6 +846,7 @@ Page({ @@ -695,6 +846,7 @@ Page({
695 this.year=util.unixtoTime(options.ddate.substr(0,10),'YYYY'); 846 this.year=util.unixtoTime(options.ddate.substr(0,10),'YYYY');
696 let form=this.data.form 847 let form=this.data.form
697 form.tid=[options.tid] 848 form.tid=[options.tid]
  849 +
698 this.setData({ 850 this.setData({
699 form: form, 851 form: form,
700 }) 852 })
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
28 {{dateStr[0]}} 28 {{dateStr[0]}}
29 </formids> 29 </formids>
30 <formids class="item {{form.date==1?'checked':''}}" 30 <formids class="item {{form.date==1?'checked':''}}"
31 - bindtap="selectedValue" data-key="date" data-value="1"> 31 + bindtap="selectedValue" data-key="date" data-value="1">
32 {{dateStr[1]}} 32 {{dateStr[1]}}
33 </formids> 33 </formids>
34 <view class="item {{form.date==2?'checked':''}} flex-lr" 34 <view class="item {{form.date==2?'checked':''}} flex-lr"
@@ -43,18 +43,18 @@ @@ -43,18 +43,18 @@
43 <view class="section "> 43 <view class="section ">
44 <view class="tab flex-ll"> 44 <view class="tab flex-ll">
45 <formids class="item {{form.time==0?'checked':''}} {{timeOpt[0]}}" 45 <formids class="item {{form.time==0?'checked':''}} {{timeOpt[0]}}"
46 - wx:if="{{timePickerArray[0].length>0}}"  
47 - bindtap="selectedValue" data-key="time" data-value="0"> 46 + wx:if="{{timePickerArray[0].length>0}}"
  47 + bindtap="selectedValueAsync" data-key="time" data-value="0">
48 <view class="picker">早市</view> 48 <view class="picker">早市</view>
49 </formids> 49 </formids>
50 <formids class="item {{form.time==1?'checked':''}} {{timeOpt[1]}}" 50 <formids class="item {{form.time==1?'checked':''}} {{timeOpt[1]}}"
51 wx:if="{{timePickerArray[1].length>0}}" 51 wx:if="{{timePickerArray[1].length>0}}"
52 - bindtap="selectedValue" data-key="time" data-value="1"> 52 + bindtap="selectedValueAsync" data-key="time" data-value="1">
53 <view class="picker">午市</view> 53 <view class="picker">午市</view>
54 </formids> 54 </formids>
55 <formids class="item {{form.time==2?'checked':''}} {{timeOpt[2]}}" 55 <formids class="item {{form.time==2?'checked':''}} {{timeOpt[2]}}"
56 wx:if="{{timePickerArray[2].length>0}}" 56 wx:if="{{timePickerArray[2].length>0}}"
57 - bindtap="selectedValue" data-key="time" data-value="2"> 57 + bindtap="selectedValueAsync" data-key="time" data-value="2">
58 <view class="picker">晚市</view> 58 <view class="picker">晚市</view>
59 </formids> 59 </formids>
60 </view> 60 </view>
@@ -63,7 +63,7 @@ @@ -63,7 +63,7 @@
63 <view class="tab flex-lr"> 63 <view class="tab flex-lr">
64 <view class="tab flex-ll"> 64 <view class="tab flex-ll">
65 <formids class="item-pnum {{form.pnum==item?'checked':''}}" wx:for="{{[6,7,8,9,10]}}" wx:key="pnum.key" 65 <formids class="item-pnum {{form.pnum==item?'checked':''}}" wx:for="{{[6,7,8,9,10]}}" wx:key="pnum.key"
66 - bindtap="selectedValue" data-key="pnum" data-value="{{item}}"> 66 + bindtap="selectedValue" data-key="pnum" data-value="{{item}}">
67 <view class="pnum">{{item}}</view> 67 <view class="pnum">{{item}}</view>
68 </formids> 68 </formids>
69 </view> 69 </view>
@@ -149,10 +149,13 @@ @@ -149,10 +149,13 @@
149 bindinput="selectedValue" 149 bindinput="selectedValue"
150 bindconfirm="selectedValue" 150 bindconfirm="selectedValue"
151 data-key="phone" 151 data-key="phone"
152 - value="{{form.phone}}" style="color:{{reminder ? '#E14553' : '#353535'}};width:{{reminder ? 400 : 680}}rpx;" cursor-spacing="260"/> 152 + value="{{form.phone}}" style="color:{{reminder ? '#E14553' : '#353535'}};width:400rpx;" cursor-spacing="260"/>
153 <view bindtap="selectedValue" data-key="time" data-value="{{form.time}}" data-display="block" style="color:#199095"> 153 <view bindtap="selectedValue" data-key="time" data-value="{{form.time}}" data-display="block" style="color:#199095">
154 - <view style="font-size: 34rpx;height: 100rpx;line-height: 100rpx;" wx:if="{{hasUseDefDtime && form.time>0}}">{{defDtime[form.time]}}</view>  
155 - <view style="font-size: 34rpx;height: 100rpx;line-height: 100rpx;" wx:else="">{{timePickerArray[form.time][timePickerIndex[form.time]]}}</view> 154 + <block wx:if="{{form.is_set_ddate==1}}">
  155 + <view style="font-size: 34rpx;height: 100rpx;line-height: 100rpx;" wx:if="{{hasUseDefDtime && form.time>0}}">{{defDtime[form.time]}}</view>
  156 + <view style="font-size: 34rpx;height: 100rpx;line-height: 100rpx;" wx:else="">{{timePickerArray[form.time][timePickerIndex[form.time]]}}</view>
  157 + </block>
  158 + <view wx:else="" style="height: 100rpx;line-height: 100rpx;color:rgba(53,53,53,1);">未设置到点时间</view>
156 </view> 159 </view>
157 <block wx:if="{{searchlist}}"> 160 <block wx:if="{{searchlist}}">
158 <searchList searchlist="{{searchlist}}" bind:selectphone="selectphone"></searchList> 161 <searchList searchlist="{{searchlist}}" bind:selectphone="selectphone"></searchList>
@@ -165,7 +168,7 @@ @@ -165,7 +168,7 @@
165 bindconfirm="selectedValue" 168 bindconfirm="selectedValue"
166 bindfocus="inputFocus" 169 bindfocus="inputFocus"
167 bindblur="inputFocus" 170 bindblur="inputFocus"
168 - data-key="rname"/> 171 + data-key="rname"/>
169 <view class="book-info-grand flex-rr font28r gray-deep-font"> 172 <view class="book-info-grand flex-rr font28r gray-deep-font">
170 <block wx:for="{{grand}}" wx:key="grand.key"> 173 <block wx:for="{{grand}}" wx:key="grand.key">
171 <view class="book-grand flex-cc book-grand-border {{form.sex==item.sex ? 'book-grand-active white-font' : ''}}" 174 <view class="book-grand flex-cc book-grand-border {{form.sex==item.sex ? 'book-grand-active white-font' : ''}}"
@@ -192,7 +195,7 @@ @@ -192,7 +195,7 @@
192 <view class="CustomRemarks"> 195 <view class="CustomRemarks">
193 <view class="CustomRemarksView"> 196 <view class="CustomRemarksView">
194 <view class="CustomRemarkItem {{item.active?'active':''}}" wx:for="{{CustomRemark}}" 197 <view class="CustomRemarkItem {{item.active?'active':''}}" wx:for="{{CustomRemark}}"
195 - bindtap="oftenUse" 198 + bindtap="oftenUse"
196 data-id="{{item.id}}" 199 data-id="{{item.id}}"
197 data-value="{{item.often_use}}">{{item.often_use}}</view> 200 data-value="{{item.often_use}}">{{item.often_use}}</view>
198 </view> 201 </view>
@@ -351,6 +351,8 @@ export default { @@ -351,6 +351,8 @@ export default {
351 openid:'openid', 351 openid:'openid',
352 cachetime: -1, 352 cachetime: -1,
353 }, 353 },
  354 + //商户修改在线预定
  355 + 'App.Customer.SetReserveInfoById':null,
354 //生成小程序码 356 //生成小程序码
355 'App.System.GetWxLiteCode':null, 357 'App.System.GetWxLiteCode':null,
356 358