优化“智能出卷”页面,确保必须选择学生,提供智能的默认试卷名称,优雅地处理无历史数据的学生,并验证自动生成的兜底逻辑。
[!IMPORTANT] 校验变更:生成试卷时,必须选择学生。 默认行为:如果“试卷名称”留空,将自动生成为
[学生姓名]_[日期]_[时间]_智能试卷。
generateExam 校验规则中添加 'selectedStudentId' => 'required'。paperName 的 required 规则。generateExam 中,检查 paperName 是否为空。如果为空,使用以下格式生成:$studentName . '_' . now()->format('Ymd_His') . '_智能试卷'。updatedSelectedStudentId:
studentWeaknesses 是否为空。filterByStudentWeakness 设置为 false(或者保持启用但未选中任何知识点,提示用户手动选择)。创建一个新的特性测试文件:tests/Feature/Livewire/IntelligentExamGenerationTest.php
测试 1:强制校验
selectedStudentId 的情况下调用 generateExam。测试 2:默认试卷名称
paperName 留空。generateExam(模拟服务调用)。测试 3:无薄弱点兜底通知
LearningAnalyticsService 返回空薄弱点。updatedSelectedStudentId。show(Request $request, $paper_id):
QuestionBankService 或直接查库)。pdf.exam-paper。( A ) ( B ) ( C ) ( D ) 或空心圆)。@media print 确保打印效果良好。Route::get('/admin/intelligent-exam/pdf/{paper_id}', [ExamPdfController::class, 'show'])->name('filament.admin.auth.intelligent-exam.pdf');