From 0db371e5e40ef2190d70ed91bf90b81f537479e2 Mon Sep 17 00:00:00 2001 From: chenyuan Date: Fri, 7 Aug 2026 10:29:21 +0800 Subject: [PATCH] docs: specify new product survey step one --- ...6-08-07-new-product-survey-step1-design.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 docs/superpowers/specs/2026-08-07-new-product-survey-step1-design.md diff --git a/docs/superpowers/specs/2026-08-07-new-product-survey-step1-design.md b/docs/superpowers/specs/2026-08-07-new-product-survey-step1-design.md new file mode 100644 index 0000000..4f02072 --- /dev/null +++ b/docs/superpowers/specs/2026-08-07-new-product-survey-step1-design.md @@ -0,0 +1,29 @@ +# 新产品调查与分析:第一步三层次分类 + +## 范围 + +仅调整学生端“新产品调查与分析”(`new-product-survey`)的第一步,以及支撑该步判题的后端接口和数据。保留当前任务配置中的案例资料下载按钮和下载行为;不调整教师端、管理端或其余实训步骤。 + +## 页面 + +第一步展示四步进度条,当前步骤为“产品卖点的三层次分类”。页面提供案例资料下载入口、说明文字和包含 11 条卖点的表格。每行显示序号、卖点内容和必选下拉框;下拉项固定为“核心层”“有形层”“延伸层”。不向学生展示标准答案。 + +点击“下一步”时,页面先校验 11 项均已选择。校验通过后请求判题接口:正确行显示成功状态,错误行显示错误提示但保留学生选择;全部正确时进入第二步。页面将学生选择和本步的判题结果保存进既有学生实训答案记录,以便刷新后恢复。 + +## 标准答案与判题 + +后端新增任务步骤标准答案存储,按 `task_key + step_no` 保存结构化 JSON。该 JSON 包含 11 条卖点的稳定标识和正确层级。服务启动时以幂等方式初始化 `new-product-survey` 第一步的标准答案;数据库中已有记录时不覆盖人工维护的答案。 + +新增仅学生可调用的第一步判题接口。接口接收 11 条 `{ id, category }` 选择,服务端从标准答案表读取答案后逐条比对,返回每项的正确状态、错误信息、正确数量、总数量和是否全部正确。响应不包含正确层级,避免泄露标准答案。 + +学生页面在收到判题响应后,再调用既有学生实训答案保存接口,持久化选择、判题结果和当前步骤。本步未全部正确时不推进步骤;保存当前进度仍可保存草稿,不触发判题。 + +## 数据与兼容性 + +新增标准答案表不改变现有 `training_task`、班级任务配置或学生答案表的含义。学生作答及判题结果继续保存为第一步 JSON,因此现有成绩、进度和导出链路保持兼容。演示模式沿用现有浏览器会话存储,不调用后端判题接口;前端在演示模式使用同一套题目答案进行本地判题,以保证页面可演示。 + +## 异常处理与验证 + +后端拒绝题目数量、卖点标识或层级值不合法的请求,并在未配置标准答案时返回明确错误。前端显示可理解的错误提示,网络或保存失败时不推进步骤,也不丢失当前选择。 + +验证包括:后端判题服务的全对、错项、无效输入和初始化不覆盖用例;前端静态测试覆盖题目结构、下拉项、判题调用与错误状态;构建并启动前后端后验证接口与页面可访问。