153 lines
4.4 KiB
Markdown
153 lines
4.4 KiB
Markdown
|
|
# 管理员快速填充功能说明
|
|||
|
|
|
|||
|
|
## 📋 功能概述
|
|||
|
|
|
|||
|
|
管理员在进行量表测评时,可以使用"快速填充"功能,自动选择所有题目的特定选项并提交测评。此功能主要用于测试和快速验证量表功能。
|
|||
|
|
|
|||
|
|
## 🎯 功能特性
|
|||
|
|
|
|||
|
|
### 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种填充策略
|
|||
|
|
- 自动保存和提交
|
|||
|
|
- 完善的权限控制和错误处理
|
|||
|
|
|