优化本地时间、教师分配课程

This commit is contained in:
Dai 2024-08-04 19:20:59 +08:00
parent 5f1fa5e503
commit eb4a73bd0b
15 changed files with 188 additions and 70 deletions

View File

@ -27,7 +27,12 @@ class TeacherFreeTime extends BaseModel
public function teacher() public function teacher()
{ {
return $this->hasOne(Teacher::class,'id','teacher_id')->bind(['teacher_name','teacher_account'=>"account"]); return $this->hasOne(Teacher::class, 'id', 'teacher_id')->bind([
'teacher_name',
'teacher_account' => "account",
'time_zone_name',
'time_zone_offset'
]);
} }
/** /**
@ -36,7 +41,7 @@ class TeacherFreeTime extends BaseModel
*/ */
public function teacherScheduleTime() public function teacherScheduleTime()
{ {
return $this->hasMany(TeacherScheduleTime::class,'free_time_id','id'); return $this->hasMany(TeacherScheduleTime::class, 'free_time_id', 'id');
} }
} }

View File

@ -24,7 +24,8 @@ class TeacherScheduleTime extends BaseModel
return $this->hasOne(Teacher::class, 'id', 'teacher_id')->bind([ return $this->hasOne(Teacher::class, 'id', 'teacher_id')->bind([
'teacher_account' => 'account', 'teacher_account' => 'account',
'teacher_name', 'teacher_name',
'time_zone_name' 'time_zone_name',
'time_zone_offset'
]); ]);
} }

View File

@ -64,9 +64,12 @@ class StudentHomeworkService
'subject_id' => $subject_homework->subject_id, 'subject_id' => $subject_homework->subject_id,
'date'=> $subject_homework->date, 'date'=> $subject_homework->date,
'time'=> $subject_homework->time, 'time'=> $subject_homework->time,
'en_time'=> $subject_homework->en_time,
'hour'=> $subject_homework->hour, 'hour'=> $subject_homework->hour,
'start_time'=> $subject_homework->start_time, 'start_time'=> $subject_homework->start_time,
'end_time'=> $subject_homework->end_time, 'end_time'=> $subject_homework->end_time,
'en_start_time'=> $subject_homework->start_time,
'en_end_time'=> $subject_homework->end_time,
'month'=> $subject_homework->month, 'month'=> $subject_homework->month,
'feedback_file_url' => $feedback_file_url, 'feedback_file_url' => $feedback_file_url,
]); ]);

View File

@ -79,9 +79,12 @@ class SubjectHomeworkService
'teacher_schedule_time_id' => $data['teacher_schedule_time_id'], 'teacher_schedule_time_id' => $data['teacher_schedule_time_id'],
'date' => $teacher_schedule_time->date, 'date' => $teacher_schedule_time->date,
'time' => $teacher_schedule_time->time, 'time' => $teacher_schedule_time->time,
'en_time' => $teacher_schedule_time->en_time,
'hour' => $teacher_schedule_time->hour, 'hour' => $teacher_schedule_time->hour,
'start_time' => $teacher_schedule_time->start_time, 'start_time' => $teacher_schedule_time->start_time,
'end_time' => $teacher_schedule_time->end_time, 'end_time' => $teacher_schedule_time->end_time,
'en_start_time' => $teacher_schedule_time->en_start_time,
'en_end_time' => $teacher_schedule_time->en_end_time,
'month' => $teacher_schedule_time->month, 'month' => $teacher_schedule_time->month,
'subject_id' => $teacher_schedule_time->subject_id, 'subject_id' => $teacher_schedule_time->subject_id,
'content' => isset($data['content']) ? $data['content'] : '', 'content' => isset($data['content']) ? $data['content'] : '',

View File

@ -52,6 +52,8 @@ class TeacherFreeTimeService
$en_time_period = explode('-', $en_time); $en_time_period = explode('-', $en_time);
$firstDate = new DateTime($free_date . ' ' . trim($time_period[0])); $firstDate = new DateTime($free_date . ' ' . trim($time_period[0]));
$secondDate = new DateTime($free_date . ' ' . trim($time_period[1])); $secondDate = new DateTime($free_date . ' ' . trim($time_period[1]));
$enFirstDate = new DateTime($free_date . ' ' . trim($en_time_period[0]));
$enSecondDate = new DateTime($free_date . ' ' . trim($en_time_period[1]));
$diff = $secondDate->diff($firstDate); $diff = $secondDate->diff($firstDate);
$h = $diff->h; $h = $diff->h;
$m = round($diff->i / 60, 2); $m = round($diff->i / 60, 2);
@ -65,6 +67,8 @@ class TeacherFreeTimeService
'hour' => $hour, 'hour' => $hour,
'start_time' => date('Y-m-d H:i:s', $firstDate->getTimestamp()), 'start_time' => date('Y-m-d H:i:s', $firstDate->getTimestamp()),
'end_time' => date('Y-m-d H:i:s', $secondDate->getTimestamp()), 'end_time' => date('Y-m-d H:i:s', $secondDate->getTimestamp()),
'en_start_time' => date('Y-m-d H:i:s', $enFirstDate->getTimestamp()),
'en_end_time' => date('Y-m-d H:i:s', $enSecondDate->getTimestamp()),
'month' => date('Y-m', strtotime($free_date)), 'month' => date('Y-m', strtotime($free_date)),
]; ];

View File

@ -200,9 +200,12 @@ class StudentScheduleController extends Crud
'subject_id' => $teacher_schedule_time->subject_id, 'subject_id' => $teacher_schedule_time->subject_id,
'date' => $teacher_schedule_time->date, 'date' => $teacher_schedule_time->date,
'time' => $teacher_schedule_time->time, 'time' => $teacher_schedule_time->time,
'en_time' => $teacher_schedule_time->en_time,
'hour' => $teacher_schedule_time->hour, 'hour' => $teacher_schedule_time->hour,
'start_time' => $teacher_schedule_time->start_time, 'start_time' => $teacher_schedule_time->start_time,
'end_time' => $teacher_schedule_time->end_time, 'end_time' => $teacher_schedule_time->end_time,
'en_start_time' => $teacher_schedule_time->en_start_time,
'en_end_time' => $teacher_schedule_time->en_end_time,
'month' => $teacher_schedule_time->month, 'month' => $teacher_schedule_time->month,
]); ]);
if (!$res) { if (!$res) {

View File

@ -246,7 +246,7 @@ class TeacherFreeTimeController extends Crud
//所有学生 //所有学生
$student = Student::order('id asc')->field('id,account,student_name')->select()->toArray(); $student = Student::order('id asc')->field('id,account,student_name')->select()->toArray();
$time_period = explode(' - ', $free_time['time']); $time_period = explode(' - ', $free_time['en_time']);
$limit_time = [ $limit_time = [
'start_time' => date('H:i', strtotime($time_period[0])), 'start_time' => date('H:i', strtotime($time_period[0])),
'end_time' => date('H:i', strtotime($time_period[1])), 'end_time' => date('H:i', strtotime($time_period[1])),

View File

@ -123,20 +123,24 @@ class TeacherScheduleTimeController extends Crud
throw new Exception('教师空闲时间不存在'); throw new Exception('教师空闲时间不存在');
} }
foreach ($data['schedule_time'] as $item) { foreach ($data['schedule_en_time'] as $item) {
$time_period = explode(' - ', $item); $time_period = explode(' - ', $item);
$start_time = strtotime($free_time->date . ' ' . trim($time_period[0])); $start_time = strtotime($free_time->date . ' ' . trim($time_period[0]));
$end_time = strtotime($free_time->date . ' ' . trim($time_period[1])); $end_time = strtotime($free_time->date . ' ' . trim($time_period[1]));
if (!(strtotime($free_time->start_time) <= $start_time && strtotime($free_time->end_time) >= $end_time)) {
if (!(strtotime($free_time->en_start_time) <= $start_time && strtotime($free_time->en_end_time) >= $end_time)) {
throw new Exception('时间' . $item . '不在老师空闲范围内'); throw new Exception('时间' . $item . '不在老师空闲范围内');
} }
} }
\app\common\model\TeacherScheduleTime::where(['free_time_id' => $free_time->id])->select()->delete(); \app\common\model\TeacherScheduleTime::where(['free_time_id' => $free_time->id])->select()->delete();
foreach ($data['schedule_time'] as $item) { foreach ($data['schedule_time'] as $index => $item) {
$time_period = explode(' - ', $item); $time_period = explode(' - ', $item);
$en_time_period = explode(' - ', $data['schedule_en_time'][$index]);
$start_time = $free_time->date . ' ' . trim($time_period[0]); $start_time = $free_time->date . ' ' . trim($time_period[0]);
$end_time = $free_time->date . ' ' . trim($time_period[1]); $end_time = $free_time->date . ' ' . trim($time_period[1]);
$en_start_time = $free_time->date . ' ' . trim($en_time_period[0]);
$en_end_time = $free_time->date . ' ' . trim($en_time_period[1]);
$firstDate = new DateTime($start_time); $firstDate = new DateTime($start_time);
$secondDate = new DateTime($end_time); $secondDate = new DateTime($end_time);
@ -150,9 +154,12 @@ class TeacherScheduleTimeController extends Crud
'teacher_id' => $free_time->teacher_id, 'teacher_id' => $free_time->teacher_id,
'date' => $free_time->date, 'date' => $free_time->date,
'time' => $time, 'time' => $time,
'en_time' => $data['schedule_en_time'][$index],
'hour' => $hour, 'hour' => $hour,
'start_time' => $start_time, 'start_time' => $start_time,
'end_time' => $end_time, 'end_time' => $end_time,
'en_start_time' => $en_start_time,
'en_end_time' => $en_end_time,
'month' => $free_time->month, 'month' => $free_time->month,
'free_time_id' => $free_time->id, 'free_time_id' => $free_time->id,
]); ]);

View File

@ -159,7 +159,10 @@
title: "日期",align: "center", title: "日期",align: "center",
field: "date", field: "date",
},{ },{
title: "时间",align: "center", title: "本地时间",align: "center",
field: "en_time",
},{
title: "中国时间",align: "center",
field: "time", field: "time",
},{ },{
title: "课程",align: "center", title: "课程",align: "center",

View File

@ -215,7 +215,10 @@
title: "日期", align: "center", title: "日期", align: "center",
field: "date", field: "date",
}, { }, {
title: "时间段", align: "center", title: "本地时间", align: "center",
field: "en_time",
}, {
title: "中国时间", align: "center",
field: "time", field: "time",
}, { }, {
title: "课时", align: "center", title: "课时", align: "center",

View File

@ -218,7 +218,10 @@
title: "日期", align: "center", title: "日期", align: "center",
field: "date", field: "date",
}, { }, {
title: "时间", align: "center", title: "本地时间", align: "center",
field: "en_time",
}, {
title: "中国时间", align: "center",
field: "time", field: "time",
}, { }, {
title: "开始时间", align: "center", title: "开始时间", align: "center",

View File

@ -194,7 +194,10 @@
title: "日期", align: "center", title: "日期", align: "center",
field: "date", field: "date",
}, { }, {
title: "时间", align: "center", title: "本地时间", align: "center",
field: "en_time",
}, {
title: "中国时间", align: "center",
field: "time", field: "time",
}, { }, {
title: "课时", align: "center", title: "课时", align: "center",

View File

@ -17,21 +17,21 @@
</div> </div>
<!-- 表格顶部工具栏 --> <!-- 表格顶部工具栏 -->
<script type="text/html" id="table-toolbar"> <!-- <script type="text/html" id="table-toolbar">-->
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add" permission="app.admin.teacher.insert"> <!-- <button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add" permission="app.admin.teacher.insert">-->
<i class="layui-icon layui-icon-add-1"></i>新增 <!-- <i class="layui-icon layui-icon-add-1"></i>新增-->
</button> <!-- </button>-->
<button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove" permission="app.admin.teacher.delete"> <!-- <button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove" permission="app.admin.teacher.delete">-->
<i class="layui-icon layui-icon-delete"></i>删除 <!-- <i class="layui-icon layui-icon-delete"></i>删除-->
</button> <!-- </button>-->
</script> <!-- </script>-->
<!-- 表格行工具栏 --> <!-- 表格行工具栏 -->
<script type="text/html" id="table-bar"> <script type="text/html" id="table-bar">
<button class="pear-btn pear-btn-xs tool-btn" lay-event="edit" permission="app.admin.teacher.update">编辑</button> <!-- <button type="button" class="layui-btn layui-btn-xs" lay-event="edit" permission="app.admin.teacher.update">编辑</button>-->
<button class="pear-btn pear-btn-xs tool-btn" lay-event="check_free_schedule" permission="app.admin.teacher.update">查看排课</button> <button type="button" class="layui-btn layui-btn-xs layui-bg-orange" lay-event="check_free_schedule" permission="app.admin.teacher.update">查看排课</button>
<button class="pear-btn pear-btn-xs tool-btn" lay-event="rest_password" permission="app.admin.teacher.update">重置密码</button> <!-- <button class="pear-btn pear-btn-xs tool-btn" lay-event="rest_password" permission="app.admin.teacher.update">重置密码</button>-->
<button class="pear-btn pear-btn-xs tool-btn" lay-event="remove" permission="app.admin.teacher.delete">删除</button> <!-- <button class="pear-btn pear-btn-xs tool-btn" lay-event="remove" permission="app.admin.teacher.delete">删除</button>-->
</script> </script>
<script src="/app/admin/component/layui/layui.js?v=2.8.12"></script> <script src="/app/admin/component/layui/layui.js?v=2.8.12"></script>
@ -209,7 +209,7 @@
let month = obj.data['month']; let month = obj.data['month'];
let index = layer.open({ let index = layer.open({
type: 2, type: 2,
title: "修改", title: "空闲时间日历",
shade: 0.1, shade: 0.1,
maxmin: true, maxmin: true,
area: [common.isModile()?"100%":"500px", common.isModile()?"100%":"450px"], area: [common.isModile()?"100%":"500px", common.isModile()?"100%":"450px"],

View File

@ -17,11 +17,26 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">教师</label> <label class="layui-form-label">教师</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="teacher_name" value="{$free_time['teacher_name']}" disabled class="layui-input"> <input type="text" name="teacher_name" value="{$free_time['teacher_name']}" disabled
class="layui-input">
<input type="hidden" name="teacher_id" value="{$free_time['teacher_id']}" class="layui-input"> <input type="hidden" name="teacher_id" value="{$free_time['teacher_id']}" class="layui-input">
<input type="hidden" name="id" value="{$free_time['id']}" class="layui-input"> <input type="hidden" name="id" value="{$free_time['id']}" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">教师时区</label>
<div class="layui-input-block">
<input type="text" name="time_zone_name" value="{$free_time['time_zone_name']}" disabled
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">时区时差</label>
<div class="layui-input-block">
<input type="text" name="time_zone_offset" value="{$free_time['time_zone_offset']}" disabled
class="layui-input">
</div>
</div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">月份</label> <label class="layui-form-label">月份</label>
@ -37,7 +52,13 @@
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">时间</label> <label class="layui-form-label">时间(本地)</label>
<div class="layui-input-block">
<input type="text" name="time" value="{$free_time['en_time']}" disabled class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">时间(中国)</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="time" value="{$free_time['time']}" disabled class="layui-input"> <input type="text" name="time" value="{$free_time['time']}" disabled class="layui-input">
</div> </div>
@ -49,39 +70,65 @@
<input type="text" name="hour" value="{$free_time['hour']}" disabled class="layui-input"> <input type="text" name="hour" value="{$free_time['hour']}" disabled class="layui-input">
</div> </div>
</div> </div>
<!-- <div class="layui-form-item">--> <!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">是否发布</label>--> <!-- <label class="layui-form-label">是否发布</label>-->
<!-- <div class="layui-input-block">--> <!-- <div class="layui-input-block">-->
<!-- <input type="radio" disabled name="is_publish" value="0" title="未发布" {if($free_time['is_publish'] == 0)} checked {/if}>--> <!-- <input type="radio" disabled name="is_publish" value="0" title="未发布" {if($free_time['is_publish'] == 0)} checked {/if}>-->
<!-- <input type="radio" disabled name="is_publish" value="1" title="发布" {if($free_time['is_publish'] == 1)} checked {/if}>--> <!-- <input type="radio" disabled name="is_publish" value="1" title="发布" {if($free_time['is_publish'] == 1)} checked {/if}>-->
<!-- </div>--> <!-- </div>-->
<!-- </div>--> <!-- </div>-->
<fieldset class="layui-elem-field"> <fieldset class="layui-elem-field">
<legend>排课时间</legend> <legend>排课时间</legend>
<div class="layui-field-box" id="schedule_free_time"> <div class="layui-field-box" id="schedule_free_time">
{if (empty($teacher_schedule_time))} {if (empty($teacher_schedule_time))}
<div class="layui-form-item" > <div class="layui-form-item">
<div class="layui-input-inline" style="width: 250px;"> <label class="layui-form-label">本地时间</label>
<input type="text" name="schedule_time[]" lay-verify="required" placeholder="请选择排课时间" curNum='1' autocomplete="off" class="layui-input time"> <div class="layui-input-inline" style="width: 120px;">
<input type="text" name="schedule_en_time[]" lay-verify="required"
placeholder="请选择排课时间"
curNum='1' autocomplete="off" class="layui-input time">
</div> </div>
<div class="layui-input-inline" style="margin-left: 50px;padding-top: 10px;"> <label class="layui-form-label">中国时间</label>
<button type="button" class="layui-btn layui-btn-xs layui-bg-green add-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">添加</button> <div class="layui-input-inline" style="width: 120px;">
<button type="button" class="layui-btn layui-btn-xs layui-bg-red remove-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">删除</button> <input type="text" name="schedule_time[]" lay-verify="required"
value="" placeholder="请选择排课时间" curNum='1'
autocomplete="off" readonly class="layui-input schedule_time">
</div>
<div class="layui-input-inline" style="margin-left: 50px;padding-top: 10px;width: 90px">
<button type="button" class="layui-btn layui-btn-xs layui-bg-green add-schedule-time"
lay-event="remove" permission="app.admin.teacher.delete">添加
</button>
<button type="button" class="layui-btn layui-btn-xs layui-bg-red remove-schedule-time"
lay-event="remove" permission="app.admin.teacher.delete">删除
</button>
</div> </div>
</div> </div>
{else /} {else /}
{foreach $teacher_schedule_time as $index=>$item} {foreach $teacher_schedule_time as $index=>$item}
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-inline" style="width: 250px;"> <label class="layui-form-label">本地时间</label>
<input type="text" name="schedule_time[$index+1]" lay-verify="required" value="{$item['time']}" placeholder="请选择排课时间" curNum='{$index+1}' autocomplete="off" class="layui-input time"> <div class="layui-input-inline" style="width: 120px;">
</div> <input type="text" name="schedule_en_time[{$index+1}]" lay-verify="required"
<div class="layui-input-inline" style="margin-left: 50px;padding-top: 10px;"> value="{$item['en_time']}" placeholder="请选择排课时间" curNum='{$index+1}'
<button type="button" class="layui-btn layui-btn-xs layui-bg-green add-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">添加</button> autocomplete="off" class="layui-input time">
<button type="button" class="layui-btn layui-btn-xs layui-bg-red remove-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">删除</button> </div>
</div> <label class="layui-form-label">中国时间</label>
</div> <div class="layui-input-inline" style="width: 120px;">
{/foreach} <input type="text" name="schedule_time[{$index+1}]" lay-verify="required"
value="{$item['time']}" placeholder="请选择排课时间" curNum='{$index+1}'
autocomplete="off" readonly class="layui-input schedule_time">
</div>
<div class="layui-input-inline" style="margin-left: 50px;padding-top: 10px;width: 90px">
<button type="button" class="layui-btn layui-btn-xs layui-bg-green add-schedule-time"
lay-event="remove" permission="app.admin.teacher.delete">添加
</button>
<button type="button" class="layui-btn layui-btn-xs layui-bg-red remove-schedule-time"
lay-event="remove" permission="app.admin.teacher.delete">删除
</button>
</div>
</div>
{/foreach}
{/if} {/if}
</div> </div>
@ -116,8 +163,6 @@
const UPDATE_API = "/app/admin/teacher-schedule-time/update"; const UPDATE_API = "/app/admin/teacher-schedule-time/update";
// 获取数据库记录 // 获取数据库记录
layui.use(["form", "util", "popup", 'laydate'], function () { layui.use(["form", "util", "popup", 'laydate'], function () {
let $ = layui.$; let $ = layui.$;
@ -130,34 +175,63 @@
elem: ".time", elem: ".time",
type: "time", type: "time",
format: 'HH:mm', format: 'HH:mm',
btns:['clear','confirm'], btns: ['clear', 'confirm'],
min: "{$limit_time['start_time']}:00", min: "{$limit_time['start_time']}:00",
max: "{$limit_time['end_time']}:59", max: "{$limit_time['end_time']}:59",
range: '-', range: '-',
ready: function(date){ ready: function (date) {
var layKey = layui.$(this.elem).attr('lay-key'); var layKey = layui.$(this.elem).attr('lay-key');
layui.$('#layui-laydate' + layKey).children().eq(0).find('.layui-laydate-list>li').width('50%').last('li').hide(); layui.$('#layui-laydate' + layKey).children().eq(0).find('.layui-laydate-list>li').width('50%').last('li').hide();
layui.$('#layui-laydate' + layKey).children().eq(1).find('.layui-laydate-list>li').width('50%').last('li').hide(); layui.$('#layui-laydate' + layKey).children().eq(1).find('.layui-laydate-list>li').width('50%').last('li').hide();
},
done: function (value, date, endDate) {
let start_date_time = new Date(date.year, date.month, date.date, parseInt(date.hours + parseInt("{$free_time['time_zone_offset']}")), date.minutes, date.seconds)
let start_time = start_date_time.toLocaleTimeString([], {hour: "2-digit", minute: "2-digit"})
let end_date_time = new Date(endDate.year, endDate.month, endDate.date, parseInt(endDate.hours + parseInt("{$free_time['time_zone_offset']}")), endDate.minutes, endDate.seconds)
let end_time = end_date_time.toLocaleTimeString([], {hour: "2-digit", minute: "2-digit"})
$(this.elem).parent().parent().children().find('.schedule_time').val(start_time + ' - ' + end_time)
} }
}); });
// 添加时间 // 添加时间
$('#schedule_free_time').on('click', '.add-schedule-time', function () { $('#schedule_free_time').on('click', '.add-schedule-time', function () {
console.log('add');
var html = $(this).parent().parent().parent().clone(); var html = $(this).parent().parent().parent().clone();
var maxNum = $('#schedule_free_time').find('.time:last').attr('curNum'); var maxNum = $('#schedule_free_time').find('.time:last').attr('curNum');
maxNum = Number(maxNum) + 1; maxNum = Number(maxNum) + 1;
var htmlStr ='<div class="layui-form-item">\n' + // var htmlStr = '<div class="layui-form-item">\n' +
' <div class="layui-input-inline" style="width: 250px;">\n' + // ' <div class="layui-input-inline" style="width: 250px;">\n' +
' <input type="text" name="schedule_time[' + maxNum + ']" lay-verify="required" placeholder="请选择排课时间" curNum="'+ maxNum +'" autocomplete="off" class="layui-input time">\n' + // ' <input type="text" name="schedule_time[' + maxNum + ']" lay-verify="required" placeholder="请选择排课时间" curNum="' + maxNum + '" autocomplete="off" class="layui-input time">\n' +
' </div>\n' + // ' </div>\n' +
' <div class="layui-input-inline" style="margin-left: 50px;padding-top: 10px;">\n' + // ' <div class="layui-input-inline" style="margin-left: 50px;padding-top: 10px;">\n' +
' <button type="button" class="layui-btn layui-btn-xs layui-bg-green add-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">添加</button>\n' + // ' <button type="button" class="layui-btn layui-btn-xs layui-bg-green add-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">添加</button>\n' +
' <button type="button" class="layui-btn layui-btn-xs layui-bg-red remove-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">删除</button>\n' + // ' <button type="button" class="layui-btn layui-btn-xs layui-bg-red remove-schedule-time" lay-event="remove" permission="app.admin.teacher.delete">删除</button>\n' +
' </div>\n' + // ' </div>\n' +
'</div>'; // '</div>';
var htmlStr = '<div class="layui-form-item">\n' +
' <label class="layui-form-label">本地时间</label>\n' +
' <div class="layui-input-inline" style="width: 120px;">\n' +
' <input type="text" name="schedule_en_time[' + maxNum + ']" lay-verify="required"\n' +
' placeholder="请选择排课时间"\n' +
' curNum="' + maxNum + '" autocomplete="off" class="layui-input time">\n' +
' </div>\n' +
' <label class="layui-form-label">中国时间</label>\n' +
' <div class="layui-input-inline" style="width: 120px;">\n' +
' <input type="text" name="schedule_time[' + maxNum + ']" lay-verify="required"\n' +
' value="" placeholder="请选择排课时间" curNum="' + maxNum + '"\n' +
' autocomplete="off" readonly class="layui-input schedule_time">\n' +
' </div>\n' +
' <div class="layui-input-inline" style="margin-left: 50px;padding-top: 10px;width: 90px">\n' +
' <button type="button" class="layui-btn layui-btn-xs layui-bg-green add-schedule-time"\n' +
' lay-event="remove" permission="app.admin.teacher.delete">添加\n' +
' </button>\n' +
' <button type="button" class="layui-btn layui-btn-xs layui-bg-red remove-schedule-time"\n' +
' lay-event="remove" permission="app.admin.teacher.delete">删除\n' +
' </button>\n' +
' </div>\n' +
' </div>';
$('#schedule_free_time').find('.layui-form-item:last').after(htmlStr); $('#schedule_free_time').find('.layui-form-item:last').after(htmlStr);
$('#schedule_free_time').find('.layui-form-item:last').find('input').val(''); $('#schedule_free_time').find('.layui-form-item:last').find('input').val('');
@ -166,21 +240,28 @@
elem: ".time", elem: ".time",
type: "time", type: "time",
format: 'HH:mm', format: 'HH:mm',
btns:['clear','confirm'], btns: ['clear', 'confirm'],
min: "{$limit_time['start_time']}:00", min: "{$limit_time['start_time']}:00",
max: "{$limit_time['end_time']}:59", max: "{$limit_time['end_time']}:59",
range: '-', range: '-',
ready: function(date){ ready: function (date) {
var layKey = layui.$(this.elem).attr('lay-key'); var layKey = layui.$(this.elem).attr('lay-key');
layui.$('#layui-laydate' + layKey).children().eq(0).find('.layui-laydate-list>li').width('50%').last('li').hide(); layui.$('#layui-laydate' + layKey).children().eq(0).find('.layui-laydate-list>li').width('50%').last('li').hide();
layui.$('#layui-laydate' + layKey).children().eq(1).find('.layui-laydate-list>li').width('50%').last('li').hide(); layui.$('#layui-laydate' + layKey).children().eq(1).find('.layui-laydate-list>li').width('50%').last('li').hide();
},
done: function (value, date, endDate) {
let start_date_time = new Date(date.year, date.month, date.date, parseInt(date.hours + parseInt("{$free_time['time_zone_offset']}")), date.minutes, date.seconds)
let start_time = start_date_time.toLocaleTimeString([], {hour: "2-digit", minute: "2-digit"})
let end_date_time = new Date(endDate.year, endDate.month, endDate.date, parseInt(endDate.hours + parseInt("{$free_time['time_zone_offset']}")), endDate.minutes, endDate.seconds)
let end_time = end_date_time.toLocaleTimeString([], {hour: "2-digit", minute: "2-digit"})
$(this.elem).parent().parent().children().find('.schedule_time').val(start_time + ' - ' + end_time)
} }
}); });
}) })
// 删除时间 // 删除时间
$('#schedule_free_time').on('click', '.remove-schedule-time', function () { $('#schedule_free_time').on('click', '.remove-schedule-time', function () {
if($('#schedule_free_time').find('.layui-form-item').length > 1){ if ($('#schedule_free_time').find('.layui-form-item').length > 1) {
var that = this; var that = this;
$(this).parent().parent().remove(); $(this).parent().parent().remove();
} }
@ -220,7 +301,6 @@
}); });
//提交事件 //提交事件
layui.use(["form", "popup"], function () { layui.use(["form", "popup"], function () {
// 字段验证允许为空 // 字段验证允许为空

View File

@ -172,8 +172,8 @@
title: "时区名称",align: "center", title: "时区名称",align: "center",
field: "time_zone_name", field: "time_zone_name",
},{ },{
title: "时差",align: "center", title: "时差/h",align: "center",
field: "time_zone", field: "time_zone_offset",
},{ },{
title: "创建时间",align: "center", title: "创建时间",align: "center",
field: "created_at", field: "created_at",