xinli/z_Project change/进度汇总/17-管理员快速填充功能说明.md
2025-11-12 15:25:47 +08:00

153 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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