diff --git a/admin/components.d.ts b/admin/components.d.ts index a24ce0e0..3ebd5aca 100644 --- a/admin/components.d.ts +++ b/admin/components.d.ts @@ -17,7 +17,10 @@ declare module '@vue/runtime-core' { ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] ElCol: typeof import('element-plus/es')['ElCol'] + ElCollapse: typeof import('element-plus/es')['ElCollapse'] + ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElColorPicker: typeof import('element-plus/es')['ElColorPicker'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElContainer: typeof import('element-plus/es')['ElContainer'] @@ -41,6 +44,8 @@ declare module '@vue/runtime-core' { ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] + ElRadio: typeof import('element-plus/es')['ElRadio'] + ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElSelect: typeof import('element-plus/es')['ElSelect'] @@ -50,7 +55,9 @@ declare module '@vue/runtime-core' { ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] + ElTag: typeof import('element-plus/es')['ElTag'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] + ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] ElUpload: typeof import('element-plus/es')['ElUpload'] ExportSure: typeof import('./src/components/export-sure/index.vue')['default'] HeatMap: typeof import('./src/components/heat-map/index.vue')['default'] diff --git a/admin/src/app/views/timetables/timetables.vue b/admin/src/app/views/timetables/timetables.vue index 746bec0c..696d3502 100644 --- a/admin/src/app/views/timetables/timetables.vue +++ b/admin/src/app/views/timetables/timetables.vue @@ -12,23 +12,21 @@ + 上一周 - 查询 + 下一周 + 查询 添加课程 @@ -102,54 +100,243 @@ }}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ availableCapacity }} + + + + + 班级 + 学员 + 试课 + + + + + + + {{ item.class_name }} + + + + + + +
+ + + {{ item.name }} + + +
+
+ + + + + + + + + + +
+ +
@@ -292,4 +667,17 @@ onMounted(() => { .classroom-name { margin-bottom: 5px; } + +.week-picker { + width: 180px; +} + +.student-checkbox-list { + max-height: 200px; + overflow-y: auto; + border: 1px solid #EBEEF5; + border-radius: 4px; + padding: 10px; + margin-top: 8px; +} diff --git a/niucloud/app/adminapi/controller/course_schedule/CourseSchedule.php b/niucloud/app/adminapi/controller/course_schedule/CourseSchedule.php index 8f7510a1..ebff1ef5 100644 --- a/niucloud/app/adminapi/controller/course_schedule/CourseSchedule.php +++ b/niucloud/app/adminapi/controller/course_schedule/CourseSchedule.php @@ -123,4 +123,11 @@ class CourseSchedule extends BaseAdminController ]); return success((new CourseScheduleService())->getTimetables($data)); } + public function getCampusVenue() + { + $data = $this->request->params([ + ["campus_id", ""], + ]); + return success((new CourseScheduleService())->getCampusVenue($data)); + } } diff --git a/niucloud/app/adminapi/route/course_schedule.php b/niucloud/app/adminapi/route/course_schedule.php index 2f53222f..0f7e8671 100644 --- a/niucloud/app/adminapi/route/course_schedule.php +++ b/niucloud/app/adminapi/route/course_schedule.php @@ -29,6 +29,8 @@ Route::group('course_schedule', function () { Route::put('course_schedule/:id', 'course_schedule.CourseSchedule/edit'); //删除课程安排 Route::delete('course_schedule/:id', 'course_schedule.CourseSchedule/del'); + //获取校区下的场地 + Route::get('campus_venue', 'course_schedule.CourseSchedule/getCampusVenue'); })->middleware([ AdminCheckToken::class, diff --git a/niucloud/app/service/admin/course_schedule/CourseScheduleService.php b/niucloud/app/service/admin/course_schedule/CourseScheduleService.php index 6ac616e0..dda4e156 100644 --- a/niucloud/app/service/admin/course_schedule/CourseScheduleService.php +++ b/niucloud/app/service/admin/course_schedule/CourseScheduleService.php @@ -121,15 +121,7 @@ class CourseScheduleService extends BaseAdminService // 查询指定日期范围内的课程安排 $schedules = $this->model->where($query_condition)->select()->toArray(); - - // 检查是否需要自动创建课程安排记录 - $need_auto_create = empty($schedules) && $campus_id > 0; - - // 如果需要自动创建记录 - if ($need_auto_create) { - $schedules = $this->autoCreateSchedules($start_date, $end_date, $campus_id); - } - + // 获取所有相关的人员课程安排关系 $schedule_ids = array_column($schedules, 'id'); $person_schedules = []; @@ -279,4 +271,9 @@ class CourseScheduleService extends BaseAdminService return $schedules; } + + public function getCampusVenue($id) + { + return $this->model->where('availability_status', 1)->where('campus_id',$id)->select(); + } }