feat(plan): 添加生成学案功能及界面支持

- 新增 AddLessonPlanReqVO 数据模型用于生成学案请求参数封装
- 新增 LessonPlanController 提供生成学案的后端接口,支持异步任务执行
- 新增 LessonPlanDialog 组件,实现前端学案生成弹窗及交互逻辑
- 在班级页面添加生成学案按钮,支持单个学生选择后调用弹窗
- 添加 plan.js 接口调用封装,调用后端生成学案接口
- 完成前后端联动,实现生成学案操作的完整流程和提示信息
This commit is contained in:
lbw
2025-12-17 11:47:28 +08:00
parent 07b9b56e8a
commit 49cd146bc3
6 changed files with 165 additions and 0 deletions

View File

@@ -49,6 +49,10 @@
@click="showGenerateDialog = true">
生成试题
</el-button>
<el-button type="warning" :disabled="selectedStudentIds.length !== 1"
@click="showLessonPlanDialog = true">
生成学案
</el-button>
</div>
<el-table ref="studentTableRef" :data="students" border class="w-full"
v-loading="studentLoading" @selection-change="onStudentSelectionChange">
@@ -79,6 +83,10 @@
:default-grade-id="selectedGradeId"
@success="fetchStudents"
/>
<LessonPlanDialog
v-model="showLessonPlanDialog"
:student-id="selectedStudentIds[0]"
/>
</div>
<div class="bg-white dark:bg-gray-800 rounded-lg shadow p-6" v-loading="gradeLoading">
@@ -156,6 +164,7 @@ import ExamGenerateDialog from '@/layouts/components/ExamGenerateDialog.vue'
import AddClassDialog from '@/layouts/components/AddClassDialog.vue'
import AddGradeDialog from '@/layouts/components/AddGradeDialog.vue'
import AddStudentDialog from '@/layouts/components/AddStudentDialog.vue'
import LessonPlanDialog from '@/layouts/components/LessonPlanDialog.vue'
import { getUnitList, deleteUnit } from '@/api/unit'
import AddUnitDialog from '@/layouts/components/AddUnitDialog.vue'
@@ -189,6 +198,7 @@ const studentTableRef = ref(null)
const selectedStudentIds = ref([])
const showGenerateDialog = ref(false)
const showAddStudentDialog = ref(false)
const showLessonPlanDialog = ref(false)
const units = ref([])
const unitPageNo = ref(1)