diff --git a/plugin/admin/app/controller/TeacherFreeTimeController.php b/plugin/admin/app/controller/TeacherFreeTimeController.php index 5548852..d554946 100644 --- a/plugin/admin/app/controller/TeacherFreeTimeController.php +++ b/plugin/admin/app/controller/TeacherFreeTimeController.php @@ -350,7 +350,7 @@ class TeacherFreeTimeController extends Crud ]; //获取已排课时间 - $teacher_schedule_time = TeacherScheduleTime::where(['free_time_id' => $free_time_id])->select()->toArray(); + $teacher_schedule_time = TeacherScheduleTime::where(['free_time_id' => $free_time_id])->with(['oneStudentSchedule'])->select()->toArray(); // $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $free_time_id])->select()->toArray(); diff --git a/plugin/admin/app/controller/TeacherScheduleTimeController.php b/plugin/admin/app/controller/TeacherScheduleTimeController.php index a12df2f..09b5237 100644 --- a/plugin/admin/app/controller/TeacherScheduleTimeController.php +++ b/plugin/admin/app/controller/TeacherScheduleTimeController.php @@ -129,9 +129,9 @@ class TeacherScheduleTimeController extends Crud $ids = $this->deleteInput($request); $this->doDelete($ids); //删除排课相关的学生课程 - $student_schedule = StudentSchedule::where(['teacher_schedule_time_id'=>$ids])->select(); + $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $ids])->select(); - if(!$student_schedule->isEmpty()){ + if (!$student_schedule->isEmpty()) { $student_schedule->delete(); } @@ -165,7 +165,14 @@ class TeacherScheduleTimeController extends Crud } } - \app\common\model\TeacherScheduleTime::where(['free_time_id' => $free_time->id])->select()->delete(); + if (isset($data['teacher_schedule_id'])) { + $teacher_schedule_id = array_filter($data['teacher_schedule_id']); + if ($teacher_schedule_id) { + $res = \app\common\model\TeacherScheduleTime::where(['free_time_id' => $free_time->id])->whereNotIn('id', $teacher_schedule_id)->select()->delete(); + } + + } + foreach ($data['schedule_time'] as $index => $item) { $time_period = explode(' - ', $item); $en_time_period = explode(' - ', $data['schedule_en_time'][$index]); @@ -181,20 +188,82 @@ class TeacherScheduleTimeController extends Crud $m = round($diff->i / 60, 2); $hour = round($h + $m, 2); $time = trim($time_period[0]) . ' - ' . trim($time_period[1]); + + if (isset($data['teacher_schedule_id']) && $data['teacher_schedule_id'][$index]) { + $teacher_schedule_time = \app\common\model\TeacherScheduleTime::where(['id' => $data['teacher_schedule_id'][$index]])->findOrEmpty(); + $teacher_schedule_time->save([ + 'teacher_id' => $free_time->teacher_id, + 'date' => $free_time->date, + 'time' => $time, + 'en_time' => $data['schedule_en_time'][$index], + 'hour' => $hour, + 'start_time' => $start_time, + 'end_time' => $end_time, + 'en_start_time' => $en_start_time, + 'en_end_time' => $en_end_time, + 'month' => $free_time->month, + 'free_time_id' => $free_time->id, + ]); + } else { + $teacher_schedule_time = \app\common\model\TeacherScheduleTime::create([ + 'teacher_id' => $free_time->teacher_id, + 'date' => $free_time->date, + 'time' => $time, + 'en_time' => $data['schedule_en_time'][$index], + 'hour' => $hour, + 'start_time' => $start_time, + 'end_time' => $end_time, + 'en_start_time' => $en_start_time, + 'en_end_time' => $en_end_time, + 'month' => $free_time->month, + 'free_time_id' => $free_time->id, + ]); + } - \app\common\model\TeacherScheduleTime::create([ - 'teacher_id' => $free_time->teacher_id, - 'date' => $free_time->date, - 'time' => $time, - 'en_time' => $data['schedule_en_time'][$index], - 'hour' => $hour, - 'start_time' => $start_time, - 'end_time' => $end_time, - 'en_start_time' => $en_start_time, - 'en_end_time' => $en_end_time, - 'month' => $free_time->month, - 'free_time_id' => $free_time->id, - ]); + //更新学生排课 + $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $teacher_schedule_time->id])->findOrEmpty(); + $student_name = ''; + if($data['student_id'][$index]){ + $student = Student::where(['id' => $data['student_id'][$index]])->findOrEmpty(); + if(!$student->isEmpty()){ + $student_name = $student->student_name; + } + } + if ($student_schedule->isEmpty()) { + StudentSchedule::create([ + 'student_id' => $data['student_id'][$index], + 'student_name' => $student_name, + 'teacher_schedule_time_id' => $teacher_schedule_time->id, + 'teacher_id' => $free_time->teacher_id, + 'subject_id' => $data['subject_id'][$index], + 'date' => $free_time->date, + 'time' => $time, + 'en_time' => $data['schedule_en_time'][$index], + 'hour' => $hour, + 'start_time' => $start_time, + 'end_time' => $end_time, + 'en_start_time' => $en_start_time, + 'en_end_time' => $en_end_time, + 'month' => $free_time->month, + ]); + } else { + $student_schedule->save([ + 'student_id' => $data['student_id'][$index], + 'student_name' => $student_name, + 'teacher_schedule_time_id' => $teacher_schedule_time->id, + 'teacher_id' => $free_time->teacher_id, + 'subject_id' => $data['subject_id'][$index], + 'date' => $free_time->date, + 'time' => $time, + 'en_time' => $data['schedule_en_time'][$index], + 'hour' => $hour, + 'start_time' => $start_time, + 'end_time' => $end_time, + 'en_start_time' => $en_start_time, + 'en_end_time' => $en_end_time, + 'month' => $free_time->month, + ]); + } } return json([ @@ -543,9 +612,9 @@ class TeacherScheduleTimeController extends Crud // $writer->save(public_path('/export_file/' . $month . '-' . time() . '.xlsx')); - if($is_publish){ + if ($is_publish) { $file_name = $month . '-publish-' . time() . '.xlsx'; - }else{ + } else { $file_name = $month . '-unpublish-' . time() . '.xlsx'; } $file_path = '/export_file/'; diff --git a/plugin/admin/app/view/teacher/free_time_schedule.html b/plugin/admin/app/view/teacher/free_time_schedule.html index 638fb2a..e216499 100644 --- a/plugin/admin/app/view/teacher/free_time_schedule.html +++ b/plugin/admin/app/view/teacher/free_time_schedule.html @@ -186,7 +186,7 @@ title: "教师空闲时间排课", shade: 0.1, maxmin: true, - area: ["750px", "650px"], + area: ["950px", "650px"], content: "/app/admin/teacherFreeTime/freeTimeSetting?free_time_id=" + free_time_id }); // if (confirm('您确定要删除此事件吗?')) { diff --git a/plugin/admin/app/view/teacher/free_time_setting.html b/plugin/admin/app/view/teacher/free_time_setting.html index 3109f45..07dcfb7 100644 --- a/plugin/admin/app/view/teacher/free_time_setting.html +++ b/plugin/admin/app/view/teacher/free_time_setting.html @@ -107,19 +107,38 @@ {else /} {foreach $teacher_schedule_time as $index=>$item}
- + +
- +
-
+ +
+ +
+ +
+ +
+
@@ -200,30 +219,40 @@ var maxNum = $('#schedule_free_time').find('.time:last').attr('curNum'); maxNum = Number(maxNum) + 1; - // var htmlStr = '
\n' + - // '
\n' + - // ' \n' + - // '
\n' + - // '
\n' + - // ' \n' + - // ' \n' + - // '
\n' + - // '
'; var htmlStr = '
\n' + - ' \n' + + ' ' + + ' \n' + '
\n' + ' \n' + '
\n' + - ' \n' + + ' \n' + '
\n' + ' \n' + '
\n' + - '
\n' + + ' \n' + + '
\n' + + ' \n' + + '
\n' + + ' \n' + + '
\n' + + ' \n' + + '
' + + '
\n' + ' \n' + @@ -257,6 +286,8 @@ $(this.elem).parent().parent().children().find('.schedule_time').val(start_time + ' - ' + end_time) } }); + + form.render(); }) // 删除时间