xinli/z_Project change/进度汇总/17-管理员快速填充功能说明.md

153 lines
4.4 KiB
Markdown
Raw Normal View History

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