# 管理员快速填充功能说明 ## 📋 功能概述 管理员在进行量表测评时,可以使用"快速填充"功能,自动选择所有题目的特定选项并提交测评。此功能主要用于测试和快速验证量表功能。 ## 🎯 功能特性 ### 1. 管理员专用 - 只有管理员(userId === 1 或 roles 包含 'admin')才能看到和使用此功能 - 普通用户无法看到快速填充按钮 ### 2. 快速填充策略 系统提供4种填充策略: #### ① 填充第一个选项并提交 - 为所有题目选择第一个选项(选项A或第一个选项) - 适用于测试最低分或基础功能 #### ② 填充中间选项并提交 - 为所有题目选择中间选项 - 例如:5个选项中选择第3个,4个选项中选择第2个 #### ③ 填充最后一个选项并提交 - 为所有题目选择最后一个选项 - 适用于测试最高分或极端情况 #### ④ 随机填充并提交 - 为每个题目随机选择一个选项 - 适用于模拟真实答题情况 ### 3. 自动处理 - 自动处理单选题、多选题、矩阵题 - 自动计算得分 - 自动保存所有答案 - 自动提交测评并生成报告 ## 📝 使用方法 ### 步骤1:进入测评页面 1. 登录系统(管理员账户) 2. 进入 `心理测评管理` → `测评记录` 3. 点击 **"开始测评"** 或 **"继续测评"** ### 步骤2:使用快速填充 1. 在测评页面顶部,找到 **"快速填充"** 按钮 2. 点击下拉箭头,选择填充策略: - 填充第一个选项并提交 - 填充中间选项并提交 - 填充最后一个选项并提交 - 随机填充并提交 ### 步骤3:确认并执行 1. 系统会弹出确认对话框 2. 点击 **"确定"** 后,系统会: - 自动填充所有题目 - 保存所有答案 - 提交测评 - 生成测评报告 3. 完成后自动跳转到测评记录页面 ## ⚙️ 技术实现 ### 前端实现 - **文件位置**:`ruoyi-ui/src/views/psychology/assessment/taking.vue` - **关键方法**: - `handleQuickFill(command)`: 处理快速填充命令 - `performQuickFill(command)`: 执行快速填充逻辑 - `saveAnswerToServerPromise(answer)`: 保存答案到服务器 ### 权限控制 - 使用 `isAdmin` 计算属性判断管理员身份 - 通过 `v-if="isAdmin"` 控制按钮显示 - 在方法中再次验证权限 ### 填充逻辑 ```javascript // 选项选择策略 switch (command) { case 'first': // 第一个选项 case 'middle': // 中间选项 case 'last': // 最后一个选项 case 'random': // 随机选项 } // 自动保存和提交 Promise.all(fillPromises).then(() => { submitAssessment(this.assessmentId) }) ``` ## 🔒 安全特性 1. **权限验证**:双重验证管理员身份 2. **确认对话框**:防止误操作 3. **错误处理**:完善的错误处理和提示 4. **日志记录**:记录填充操作的日志 ## ⚠️ 注意事项 1. **不可撤销**:快速填充并提交后,测评结果无法修改 2. **覆盖已有答案**:如果题目已有答案,快速填充会覆盖原有答案 3. **多选题处理**:多选题目前只选择第一个选项(可根据需要调整) 4. **测试用途**:此功能主要用于测试,不建议用于真实测评数据 ## 📊 使用场景 ### 适用场景 - ✅ 测试量表功能是否正常 - ✅ 快速生成测试报告 - ✅ 验证报告生成功能 - ✅ 系统功能演示 ### 不适用场景 - ❌ 真实用户测评 - ❌ 正式的数据收集 - ❌ 需要准确答案的测评 ## 🔧 自定义配置 如果需要修改填充策略,可以编辑 `performQuickFill` 方法中的 `optionStrategy` 函数。 例如,修改多选题策略为选择所有选项: ```javascript else if (item.itemType === 'multiple') { // 多选题,选择所有选项 selectedOptions = options.map(opt => opt.optionId); const totalScore = options.reduce((sum, opt) => sum + (opt.optionScore || 0), 0); // ... } ``` ## ✅ 验证清单 使用前请确认: - [ ] 当前用户是管理员 - [ ] 测评状态为"进行中" - [ ] 量表包含题目 - [ ] 所有题目都有选项 ## 📚 相关文件 - `ruoyi-ui/src/views/psychology/assessment/taking.vue` - 测评页面 - `ruoyi-ui/src/api/psychology/assessment.js` - 测评API ## 🎉 更新日志 - **2025-01-XX**:添加管理员快速填充功能 - 支持4种填充策略 - 自动保存和提交 - 完善的权限控制和错误处理