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