Excel 操作题判分模块需求设计(接入实时答题 + 整卷答题,优先 WPS)¶
一、总体概述¶
基于现有 Excel 表格判分逻辑,新增WPS 表格操作题型,接入现有「实时答题」「整卷答题」两大答题场景;教师端复用已有开发组件搭建题目编辑窗口,支持导入 JSON 评分标准、上传题干附件;入库仅存储 JS 判分脚本地址,不做本地解析;学生端提供文件下载、在线练习、提交作答;教师在统计页、考场场控页查看小题得分,场控页支持勾选学生批量下载作答文件。
核心约束:不内置 JSON 解析引擎,入库只存 JS 文件地址;判分逻辑在前端 / 执行环境读取 JSON 评分要点完成打分,复用已有 Excel 判分内核
二、模块拆分¶
1. 题型:WPS 表格操作题(单独题型标识:excel_wps)¶
支持两种模式:
- 实时答题:单题作答,即时调用判分
- 整卷答题:整套试卷内嵌多道 WPS 表格题,交卷后批量判分
2. 教师端:题目编辑界面(复用现有工具窗口)¶
2.1 编辑窗口能力¶
复用现有试题编辑弹窗 / 页面,增加 WPS 表格操作题专属表单区域:
- 插入题目:新增 WPS 表格操作题,支持调整题目序号、拖拽排序
- 题干编辑:富文本编辑器,支持图文、公式,可插入附件链接
- 文件上传项:
- 题干模板文件:学生需要下载的空白 WPS 表格(
.xlsx) - JSON 评分标准文件:上传评分要点 JSON(描述单元格、格式、公式、工作表等判分点)
- JS 判分脚本文件:上传判分 JS 脚本,入库仅保存 JS 文件的存储地址
入库字段:
judge_js_url(字符串,存储 JS 文件地址,不存储 JS 源码、不解析 JSON 内容)
2.2 JSON 评分标准说明(仅作为判分脚本读取的输入,平台不解析)¶
JSON 由教师预先编写,描述每一个得分要点:单元格值、字体、边框、公式、工作表名称、数据有效性等,包含分值、是否必填、错误提示。 示例结构(平台不校验业务逻辑,仅保存文件供 JS 读取):
2.3 保存入库字段(新增)¶
题型:excel_wps
题干:富文本
template_file_url:学生下载的WPS模板地址
json_standard_url:评分标准JSON文件地址
judge_js_url:【核心】判分JS脚本地址
总分:该题满分
3. 学生端答题界面¶
- 展示题干
- 操作按钮:下载 WPS 模板文件(点击直接下载 xlsx)
- 打开练习提示:引导学生本地 WPS 打开文件完成操作
- 上传作答文件:学生完成后,上传修改后的
.xlsx作答文件 - 提交按钮:提交作答文件,后端存储学生作答文件地址,触发判分流程
实时答题:提交后立刻执行 JS 判分,返回小题得分;整卷答题:整套试卷提交后批量执行判分
4. 判分流程(核心)¶
- 学生提交作答文件
- 系统读取该题配置的
judge_js_url加载判分脚本 - JS 脚本读取:学生作答 xlsx + JSON 评分标准文件
- JS 内部执行原有 Excel 判分逻辑,比对表格内容,输出小题得分、各要点得分明细
- 将得分写入答题记录入库
平台职责:分发文件、存储地址、存储得分;不解析 JSON,不内置 Excel 解析器,全部交由外部 JS 判分脚本完成。
5. 教师统计 & 场控模块¶
5.1 统计页面 + 实时 / 整卷场控页面¶
- 试卷总分下展开每一道小题独立得分,WPS 表格操作题可查看该题总分、实际得分;可查看判分要点明细(由 JS 返回的明细数据)
- 整卷答题场控页面新增学生列表复选框:
- 单选 / 全选 / 批量取消选择
- 批量下载按钮:选中多个学生,打包下载他们提交的 xlsx 作答文件,用于人工复核
- 权限:仅监考 / 出题教师可见批量下载功能
5.2 场控页面原有逻辑复用¶
场控状态、答题倒计时、答卷状态不变,仅增加小题得分展示、学生作答文件批量下载组件。
三、接口 & 数据库新增要点¶
数据库新增字段(试题表)¶
表格
| 字段 | 说明 |
|---|---|
| question_type | 固定值excel_wps标识 WPS 表格操作题 |
| template_file_url | 题干模板 WPS 文件地址 |
| json_standard_url | 评分标准 JSON 文件地址 |
| judge_js_url | 判分脚本 JS 地址,只存地址 |
答题记录表新增:
excel_answer_file_url:学生上传作答文件地址excel_judge_detail:JSON 字符串,保存 JS 返回的各得分要点明细
核心接口复用(新增分支处理)¶
- 试题保存接口:新增文件上传分支,保存三类文件 URL
- 学生答题提交接口:接收学生上传 xlsx,保存文件地址,调用判分脚本
- 场控 / 统计查询接口:返回小题得分、判分明细
- 新增接口:批量打包作答文件(接收学生 ID 数组,压缩返回 zip 下载)
四、页面组件复用说明¶
- 教师题目编辑:复用现有试题编辑弹窗、富文本组件、文件上传组件,只增加 WPS 操作题表单区块,不重构页面框架
- 学生答题页:复用附件下载、文件上传组件,新增操作提示文案
- 场控页面:复用现有学生列表,增加复选框列,新增批量下载按钮;小题得分展示复用现有小题得分渲染组件
五、边界与非功能需求¶
- 优先兼容 WPS 表格,Excel 兼容沿用原有判分逻辑
- 平台不做 JSON 语法校验、不解析表格内容,JSON 正确性、判分逻辑由 JS 脚本保障
- 文件存储:模板、学生作答文件、JSON、JS 脚本统一使用现有对象存储服务
- 安全:批量下载接口增加权限校验,防止越权下载学生答卷;文件访问增加鉴权
- 性能:整卷批量判分采用异步任务队列,避免页面阻塞;批量打包下载做限流
六、开发任务清单¶
- 试题模型新增
excel_wps题型与对应存储字段 - 教师编辑弹窗:增加 WPS 表格题表单,支持上传模板、JSON、JS 脚本,入库保存地址
- 学生答题页:下载模板、上传作答文件、提交
- 判分调用链路:加载
judge_js_url脚本执行判分,回写得分与明细 - 统计页面:展示 WPS 小题得分、判分明细
- 整卷场控页面:学生列表复选框(全选 / 多选),批量打包下载作答文件(学号+姓名+作答文件+得分+时间作为文件名)
- 联调:实时答题场景、整卷答题场景分别测试判分结果
- 权限、异常处理(文件缺失、JS 加载失败、文件格式错误)