教师排课
This commit is contained in:
parent
a4c42b946c
commit
ff70a5b4e8
@ -17,7 +17,19 @@ class TeacherScheduleTimeController extends BaseController
|
|||||||
public function addScheduleTime(Request $request)
|
public function addScheduleTime(Request $request)
|
||||||
{
|
{
|
||||||
$service = new TeacherScheduleTimeService();
|
$service = new TeacherScheduleTimeService();
|
||||||
$res = $service->addFreeTime($request);
|
$res = $service->addScheduleTime($request);
|
||||||
|
return $this->json($res);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @desc 获取排期信息
|
||||||
|
* @param Request $request
|
||||||
|
* @return \support\Response
|
||||||
|
*/
|
||||||
|
public function getScheduleTime(Request $request)
|
||||||
|
{
|
||||||
|
$service = new TeacherScheduleTimeService();
|
||||||
|
$res = $service->getScheduleTime($request);
|
||||||
return $this->json($res);
|
return $this->json($res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,5 +28,9 @@ class TeacherScheduleTime extends BaseModel
|
|||||||
{
|
{
|
||||||
return $this->hasOne(Subject::class, 'id', 'subject_id')->bind(['subject_name','english_name']);
|
return $this->hasOne(Subject::class, 'id', 'subject_id')->bind(['subject_name','english_name']);
|
||||||
}
|
}
|
||||||
|
public function subjectArr()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Subject::class, 'id', 'subject_id');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ class TeacherScheduleTimeService
|
|||||||
* @param $request
|
* @param $request
|
||||||
* @return array|void
|
* @return array|void
|
||||||
*/
|
*/
|
||||||
public function addFreeTime($request)
|
public function addScheduleTime($request)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
if (empty($request->teacher)) {
|
if (empty($request->teacher)) {
|
||||||
@ -27,29 +27,6 @@ class TeacherScheduleTimeService
|
|||||||
if ($teacher->isEmpty()) {
|
if ($teacher->isEmpty()) {
|
||||||
throw new Exception('未找到教师信息,设置失败');
|
throw new Exception('未找到教师信息,设置失败');
|
||||||
}
|
}
|
||||||
|
|
||||||
// $free_time = [
|
|
||||||
// '2024-7-14'=>[
|
|
||||||
// '9:00-10:00',
|
|
||||||
// '10:00-11:00',
|
|
||||||
// '11:00-12:00',
|
|
||||||
// ],
|
|
||||||
// '2024-7-15'=>[
|
|
||||||
// '14:00-15:00',
|
|
||||||
// '15:00-16:00',
|
|
||||||
// '16:00-17:00',
|
|
||||||
// ],
|
|
||||||
// '2024-7-16'=>[
|
|
||||||
// '9:00-10:00',
|
|
||||||
// '10:00-11:00',
|
|
||||||
// '11:00-12:00',
|
|
||||||
// ],
|
|
||||||
// '2024-7-17'=>[
|
|
||||||
// '9:00-10:00',
|
|
||||||
// '10:00-11:00',
|
|
||||||
// '11:00-12:00',
|
|
||||||
// ]
|
|
||||||
// ];
|
|
||||||
$data = $request->post();
|
$data = $request->post();
|
||||||
|
|
||||||
$free_time = json_decode($data['schedule_time'], true);
|
$free_time = json_decode($data['schedule_time'], true);
|
||||||
@ -72,6 +49,8 @@ class TeacherScheduleTimeService
|
|||||||
'date' => $free_date,
|
'date' => $free_date,
|
||||||
'time' => $time,
|
'time' => $time,
|
||||||
'hour' => $hour,
|
'hour' => $hour,
|
||||||
|
'start_time' => date('Y-m-d H:i:s', $firstDate->getTimestamp()),
|
||||||
|
'end_time' => date('Y-m-d H:i:s', $secondDate->getTimestamp()),
|
||||||
'month' => date('Y-m', strtotime($free_date)),
|
'month' => date('Y-m', strtotime($free_date)),
|
||||||
];
|
];
|
||||||
//@todo:判断是否已经存在
|
//@todo:判断是否已经存在
|
||||||
@ -95,4 +74,34 @@ class TeacherScheduleTimeService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getScheduleTime($request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
if (empty($request->teacher)) {
|
||||||
|
throw new Exception('请教师登陆后再设置');
|
||||||
|
}
|
||||||
|
$teacher = Teacher::where(['id' => $request->teacher->id])->findOrEmpty();
|
||||||
|
|
||||||
|
if ($teacher->isEmpty()) {
|
||||||
|
throw new Exception('未找到教师信息,设置失败');
|
||||||
|
}
|
||||||
|
$data = $request->get();
|
||||||
|
|
||||||
|
$schedule = TeacherScheduleTime::where(['teacher_id'=>$teacher->id, 'date'=>$data['schedule_date']])->select();
|
||||||
|
|
||||||
|
|
||||||
|
return [
|
||||||
|
'code' => ResponseCode::SUCCESS,
|
||||||
|
'data'=>$schedule,
|
||||||
|
'msg' => 'success',
|
||||||
|
];
|
||||||
|
}catch (Exception $e){
|
||||||
|
return [
|
||||||
|
'code' => ResponseCode::FAIL,
|
||||||
|
'msg' => $e->getMessage()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -70,7 +70,7 @@ class TeacherScheduleTimeController extends Crud
|
|||||||
|
|
||||||
if ($request->get('id')) {
|
if ($request->get('id')) {
|
||||||
$teacher_free_time = \app\common\model\TeacherScheduleTime::where(['id' => $request->get('id')])->findOrEmpty();
|
$teacher_free_time = \app\common\model\TeacherScheduleTime::where(['id' => $request->get('id')])->findOrEmpty();
|
||||||
$teacher = Teacher::where(['id' => $teacher_free_time->teacher_id])->field('teacher_name,account')->findOrEmpty()->toArray();
|
$teacher = Teacher::where(['id' => $teacher_free_time->teacher_id])->field('id,teacher_name,account')->findOrEmpty()->toArray();
|
||||||
}
|
}
|
||||||
return view('teacher-schedule-time/update', ['teacher' => $teacher]);
|
return view('teacher-schedule-time/update', ['teacher' => $teacher]);
|
||||||
}
|
}
|
||||||
@ -107,7 +107,11 @@ class TeacherScheduleTimeController extends Crud
|
|||||||
public function getScheduleTime(Request $request)
|
public function getScheduleTime(Request $request)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$list = \app\common\model\TeacherScheduleTime::where(['teacher_id' => $request->get('id'), 'month' => '2024-07'])
|
$teacher_id = $request->post('id');
|
||||||
|
$start_date = date('Y-m-d H:i:s', strtotime($request->post('start_date')));
|
||||||
|
$end_date = date('Y-m-d 23:59:59', strtotime($request->post('end_date')));
|
||||||
|
$list = \app\common\model\TeacherScheduleTime::where(['teacher_id' => $teacher_id])
|
||||||
|
->whereBetweenTime('start_time', $start_date, $end_date)
|
||||||
->with(['subject'])
|
->with(['subject'])
|
||||||
->select()
|
->select()
|
||||||
->toArray();
|
->toArray();
|
||||||
|
@ -53,7 +53,9 @@
|
|||||||
<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="checkbox" name="is_publish" title="发布|未发布" lay-skin="switch" value="1" { if($schedule_time['is_publish'] == 1)} checked {/if} >
|
<input type="radio" name="is_publish" value="0" title="未发布" {if($schedule_time['is_publish'] == 0)} checked {/if}>
|
||||||
|
<input type="radio" name="is_publish" value="1" title="发布" {if($schedule_time['is_publish'] == 1)} checked {/if}>
|
||||||
|
<!-- <input type="checkbox" name="is_publish" title="发布|未发布" lay-skin="switch" value="1" { if($schedule_time['is_publish'] == 1)} checked {/if} >-->
|
||||||
<!-- <input type="text" name="hour" value="{$schedule_time['hour']}" disabled class="layui-input">-->
|
<!-- <input type="text" name="hour" value="{$schedule_time['hour']}" disabled class="layui-input">-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -71,28 +71,49 @@
|
|||||||
<div id='wrap' style="display: flex;">
|
<div id='wrap' style="display: flex;">
|
||||||
<div id='external-events'>
|
<div id='external-events'>
|
||||||
<h4>老师信息</h4>
|
<h4>老师信息</h4>
|
||||||
<div id='external-events-list'>
|
<div>
|
||||||
<div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>
|
|
||||||
<div class='fc-event-main'><?= $teacher['teacher_name']?></div>
|
<div class='fc-event-main'><?= $teacher['teacher_name']?></div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
<div style="display: flex;flex-direction: column;">
|
||||||
<!-- <div class='fc-event-main'>事件 2</div>-->
|
<div style="width: 100px;height: 20px;">
|
||||||
<!-- </div>-->
|
<span class="layui-badge-dot layui-bg-danger"></span>
|
||||||
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
<span>未排课</span>
|
||||||
<!-- <div class='fc-event-main'>事件 3</div>-->
|
</div>
|
||||||
<!-- </div>-->
|
<div style="width: 120px;height: 20px;">
|
||||||
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
<span class="layui-badge-dot layui-bg-orange"></span>
|
||||||
<!-- <div class='fc-event-main'>事件 4</div>-->
|
<span>已排课,未发布</span>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
<div style="width: 100px;height: 20px;">
|
||||||
<!-- <div class='fc-event-main'>事件 5</div>-->
|
<span class="layui-badge-dot layui-bg-green"></span>
|
||||||
<!-- </div>-->
|
<span>已发布</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id='external-events-list'>
|
||||||
|
|
||||||
|
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
||||||
|
|
||||||
|
<!-- <span class="layui-badge-dot layui-bg-danger">未排课</span>-->
|
||||||
|
<!-- <span class="layui-badge-dot layui-bg-orange">已排课,未发布</span>-->
|
||||||
|
<!-- <span class="layui-badge-dot layui-bg-green">已发布</span>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
||||||
|
<!-- <div class='fc-event-main'>事件 2</div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
||||||
|
<!-- <div class='fc-event-main'>事件 3</div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
||||||
|
<!-- <div class='fc-event-main'>事件 4</div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <div class='fc-event fc-h-event fc-daygrid-event fc-daygrid-block-event'>-->
|
||||||
|
<!-- <div class='fc-event-main'>事件 5</div>-->
|
||||||
|
<!-- </div>-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <p>-->
|
<!-- <p>-->
|
||||||
<!-- <input type='checkbox' id='drop-remove'/>-->
|
<!-- <input type='checkbox' id='drop-remove'/>-->
|
||||||
<!-- <label for='drop-remove'>移动后清除</label>-->
|
<!-- <label for='drop-remove'>移动后清除</label>-->
|
||||||
<!-- </p>-->
|
<!-- </p>-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id='calendar' style="height: 650px;width: 750px;"></div>
|
<div id='calendar' style="height: 650px;width: 750px;"></div>
|
||||||
@ -197,12 +218,16 @@
|
|||||||
editable: true,
|
editable: true,
|
||||||
dayMaxEvents: true, // allow "more" link when too many events
|
dayMaxEvents: true, // allow "more" link when too many events
|
||||||
events: function (info, successCallback, failureCallback) {
|
events: function (info, successCallback, failureCallback) {
|
||||||
console.log('12312313')
|
console.log('12312313', info)
|
||||||
|
|
||||||
|
let start_date = info.startStr;
|
||||||
|
let end_date = info.endStr;
|
||||||
|
let teacher_id = "{$teacher['id']}"
|
||||||
layui.$.ajax({
|
layui.$.ajax({
|
||||||
url: '/app/admin/teacherScheduleTime/getScheduleTime?id=1',
|
url: '/app/admin/teacherScheduleTime/getScheduleTime',
|
||||||
type: "POST",
|
type: "POST",
|
||||||
dateType: "json",
|
dateType: "json",
|
||||||
// data: data.field,
|
data: {id: teacher_id, start_date: start_date, end_date: end_date},
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
@ -220,8 +245,8 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
eventTextColor :function (obj){
|
eventTextColor: function (obj) {
|
||||||
console.log('字体颜色',obj)
|
console.log('字体颜色', obj)
|
||||||
},
|
},
|
||||||
eventMouseEnter: function (info) {
|
eventMouseEnter: function (info) {
|
||||||
console.log('鼠标', info)
|
console.log('鼠标', info)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user