You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dianshang-qianduan/docs/superpowers/specs/2026-08-07-product-developm...

52 lines
3.2 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 产品开发关键因素模块:第 2 步「技术与合规角度分析」设计
## 目标与范围
仅开发学生端 `product-development-factors` 任务的第 2 步,以及该步骤的服务端校验。第 1 步已完成的用户角度分析保持不变;教师端、管理员端、数据库表、材料下载与第 3 步的具体业务均不在本次范围内。
## 页面与交互
第 2 步标题为“技术与合规角度分析”,正文提示为“技术与合规角度分析,填写下表:”。页面沿用第 1 步的任务导航与深色学生端视觉,但表格内容严格对应原型,固定四列:`维度`、`评估项`、`成功产品`、`失败产品`。不显示产品名称输入框。
固定两行,顺序及评估项如下:
| 维度 | 评估项 |
| --- | --- |
| 技术应用 | 核心技术是否已成熟、可量产?避免使用实验室级原型(如未验证的 AI 模型) |
| 合规与认证 | 是否通过目标市场强制认证目标市场要求的产品资质、检测报告等中国CCC美国FCC欧盟CE出口需符合 RoHS、REACH。是否规避专利与知识产权风险 |
每一行的成功产品、失败产品各提供一个多行分析输入框。四个分析内容去除首尾空白后均非空,点击“保存并进入第 3 步”才会推进。校验成功后使用 `SAVE` 保存,不触发任务总提交或成绩结算。
第 2 步以外不复用该表格:第 1 步保留其已完成页面;第 3 步尚未纳入本次开发时显示轻量待配置占位。若任务配置未包含第 3 步,保存成功并提示未配置下一步,停留在第 2 步。
## 数据与接口
第 2 步答案写入现有 `StudentTrainingAnswer.step2Answer`,不新增数据库表。保存 JSON 只包含两行分析:
```json
{
"factors": [
{
"dimension": "技术应用",
"criteria": "核心技术是否已成熟、可量产?避免使用实验室级原型(如未验证的 AI 模型)",
"successAnalysis": "...",
"failedAnalysis": "..."
}
]
}
```
新增校验接口:`POST /api/student-training-answers/product-development-factors/step-2/validate`。
请求字段为 `factors`,每行拥有 `dimension`、`successAnalysis`、`failedAnalysis`。服务端仅允许已登录学生调用,且必须恰好提交一次“技术应用”和“合规与认证”,每行两列分析均为非空。成功返回 `valid: true``message: "校验通过"`;不符合规则则返回可展示的错误消息。
前端恢复时按维度将 `step1Answer` 恢复到第 1 步、`step2Answer` 恢复到第 2 步;保存第 2 步后将 `currentStep` 写为 `3`,页面切换到 0 基索引 `2`
## 测试与验收
- 页面第 2 步仅展示两行原型维度和四列表头,不显示产品名称字段。
- 四项分析填写完整时,先调用第 2 步校验接口,再以 `saveAction: "SAVE"` 保存 `step2Answer`,最后进入第 3 步;不出现 `SUBMIT`
- 空白分析、缺失/重复/伪造维度与非学生身份均被后端拒绝。
- 已保存的两步内容可以分别恢复,且刷新后恢复进度到第 3 步(若该步骤已配置)。
- 后端服务和控制器测试、前端静态契约测试与生产构建均通过。