Explorar o código

fix: 临近几小时内不可预约

zzb hai 1 ano
pai
achega
9959ac6f90

+ 1 - 1
app/admin/view/public/footer.html

@@ -5,7 +5,7 @@
     var message;
     layui.config({
         base: '__EXTEND_JS__/',
-        version: '1.0.2'
+        version: '1.0.3'
     }).use(['app', 'message'], function () {
         var app = layui.app,
             $ = layui.jquery,

+ 14 - 5
app/admin/view/webconfig/application_config.html

@@ -20,17 +20,17 @@
     <form class="layui-form" id="admin">
 
         <div class="layui-form-item">
-            <label class="layui-form-label">爽约设置</label>
+            <label class="layui-form-label"></label>
             <div class="layui-input-inline" style="width: 60px;">
                 <input type="number" name="break_the_promise_day_range" placeholder="0" autocomplete="off" class="layui-input" value="{$web_config.break_the_promise_day_range}">
             </div>
             <div class="layui-form-mid">天内</div>
-            <div class="layui-form-mid">用户爽约</div>
+            <div class="layui-form-mid">爽约</div>
             <div class="layui-input-inline" style="width: 60px;">
                 <input type="number" name="break_the_promise_times" placeholder="0" autocomplete="off" class="layui-input" value="{$web_config.break_the_promise_times}">
             </div>
             <div class="layui-form-mid">次</div>
-            <div class="layui-form-mid">限制</div>
+            <div class="layui-form-mid">限制</div>
             <div class="layui-input-inline" style="width: 60px;">
                 <input type="number" name="stop_appointment_day" placeholder="0" autocomplete="off" class="layui-input" value="{$web_config.stop_appointment_day}">
             </div>
@@ -38,11 +38,20 @@
         </div>
 
         <div class="layui-form-item">
-            <label class="layui-form-label">取消设置</label>
+            <label class="layui-form-label">预约</label>
             <div class="layui-input-inline" style="width: 60px;">
                 <input type="number" name="cancel_appointment_time" placeholder="0" autocomplete="off" class="layui-input" value="{$web_config.cancel_appointment_time}">
             </div>
-            <div class="layui-form-mid">小时内可取消预约</div>
+            <div class="layui-form-mid">小时内可取消</div>
+        </div>
+
+
+        <div class="layui-form-item">
+            <label class="layui-form-label">临近</label>
+            <div class="layui-input-inline" style="width: 60px;">
+                <input type="number" name="appointment_time_limit" placeholder="0" autocomplete="off" class="layui-input" value="{$web_config.appointment_time_limit}">
+            </div>
+            <div class="layui-form-mid">小时内不可预约</div>
         </div>
 
         <div class="layui-form-item">

+ 9 - 0
app/api/controller/User.php

@@ -107,12 +107,21 @@ class User extends Permissions
 
         //排除过期时段
         $timerang = explode(' - ', $post['appointment_time']);
+        $period_start = $timerang[0];
         $period_end = $timerang[1];
 
         if (time() > strtotime($ticket->appointment_daytime . ' ' . $period_end)) {
             $this->json_error("该时段已经过期,请重新选择时间");
         }
 
+        //临近几小时不可预约
+        $appointment_time_limit = Webconfig::getValue('appointment_time_limit');
+        if ($appointment_time_limit > 0) {
+            if (time() > strtotime($ticket->appointment_daytime . ' ' . $period_start) - $appointment_time_limit * 3600) {
+                $this->json_error("临近{$appointment_time_limit}小时内不可预约,请重新选择时间");
+            }
+        }
+
         //已经预约的时间段
         $ticketPeriods = (new AppointmentApplication())->where('appointment_ticket_id', $ticket->id)->where('finish_time', 0)->column('appointment_time');
         foreach ($ticketPeriods as $period) {

+ 3 - 0
app/install/data/db.sql

@@ -850,3 +850,6 @@ ALTER TABLE `tplay_appointment`
 	DROP COLUMN `night_end_time`,
 	DROP COLUMN `create_time`,
 	DROP COLUMN `status`;
+
+ALTER TABLE `tplay_webconfig`
+	ADD COLUMN `appointment_time_limit` INT NOT NULL DEFAULT 0 COMMENT '临近几小时不可预约' AFTER `afternoon_time_periods`;

+ 6 - 2
public/static/public/layui/extend/tab.js

@@ -147,7 +147,8 @@ layui.define(['jquery', 'element', 'nprogress', 'utils'], function(exports) {
                                     break;
                                 case renderType.iframe:
                                     var item = that._content.children('div[lay-item-id=' + layId + ']').children('iframe');
-                                    item.attr('src', item.attr('src'));
+                                    // item.attr('src', item.attr('src'));
+                                    item[0].contentWindow.location.reload(true);//刷新
                                     break;
                             }
                             break;
@@ -252,7 +253,10 @@ layui.define(['jquery', 'element', 'nprogress', 'utils'], function(exports) {
                 id = options.id;
             if (that.tabExists(id)) {
                 that.tabChange(id);
-                $('#refresh').click();
+                // $('#refresh').click();
+                var layId = that._title.children('li[class=layui-this]').attr('lay-id');
+                var item = that._content.children('div[lay-item-id=' + layId + ']').children('iframe');
+                item.attr('src', item.attr('src'));
                 return;
             }
             NProgress.start();