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/学生端页面UI清单.md

246 lines
18 KiB
Markdown

# 学生端页面 UI 清单
> 用途:学生端 UI 调整前的页面盘点。信息来源:`src/router/index.js`(`roles: ["student"]` 路由组)、`src/utils/studentTrainingNavigation.js`(学生实训导航映射)及各页面源码。
> 生成日期:2026-09-20
---
## 1. 学生端页面总览
学生端路由全部位于 `src/router/index.js` 中 `roles: ["student"]` 的分组,共 **44 个路由**(对应约 42 个视图文件:`analysis.vue`/`dialogue.vue` 各被 2 条路由复用,`GenericTrainingPage.vue` 服务 2 条路由)。按性质分为三类:
| 分类 | 数量 | 说明 |
|------|------|------|
| 入口/功能页 | 13 | 首页仪表盘、AI 助手、学情分析、BI 可视化、实验报告、考试等 |
| 实训模块页 | 28 | 6 大模块下的实训任务页(本次 UI 调整重点) |
| 公共实训壳 | 3 | 综合实训、动态任务页、自定义步骤页(多任务复用) |
---
## 2. 入口/功能页
| # | 路由 | 菜单标题 | 视图文件 | 布局形态 |
|---|------|---------|---------|---------|
| 1 | `/index` | 首页(学生仪表盘) | `views/index.vue` 按角色渲染 → 学生仪表盘 `views/student/index.vue` | 卡片 + ECharts |
| 2 | `/assistant/index` | AI智能助手 | `views/AI/index.vue` | 对话式 |
| 3 | `/ai/learning-situation-analysis` | AI学情分析 | `views/analysis-of-students/analysis.vue` | 对话入口列表 |
| 4 | `/ai/learning-situation-dialogue` | AI学情对话 | `views/analysis-of-students/dialogue.vue` | 对话式 |
| 5 | `/ai/teaching-plan` | AI助手(实训教案) | `views/analysis-of-students/training-lesson-plan.vue` | 对话式 |
| 6 | `/analysis/index` | 学情分析(旧入口) | `views/analysis-of-students/analysis.vue` | 同 #3 同组件 |
| 7 | `/analysis/dialogue` | 学情对话(旧入口) | `views/analysis-of-students/dialogue.vue` | 同 #4 同组件 |
| 8 | `/bi` | BI可视化分析 | `views/visual-analysis/index.vue` | el-tabs + iframe |
| 9 | `/report/index` | 实验报告 | `views/test-report/index.vue` | 表格卡片 |
| 10 | `/examination/index` | 考试考核 | `views/exam/index.vue` | 列表页(浅色) |
| 11 | `/examination/take/:id` | 考试作答 | `views/exam/take.vue` | 表单 |
| 12 | `/examination/result/:id` | 考试成绩 | `views/exam/result.vue` | 详情 |
| 13 | `/student-demo`(hidden) | 学生演示页 | `views/studentDemo/index.vue` | 演示页 |
### 各页 UI 结构要点
**① 学生首页仪表盘**(`views/student/index.vue`,经 `views/index.vue` 按角色渲染)
- 「我的实训成绩」卡片:模块成绩分布 ECharts 饼图 + 成绩明细表格
- 「实训进度概览」卡片:学习时长条形图、任务完成进度条形图
- ECharts 需 `resize` 监听与 `dispose` 清理
**② AI智能助手**(`views/AI/index.vue`)
- 顶部 tab 导航 + 步骤/章节导航(左侧)
- 上传/导出按钮、QA 对话列表、加载态、底部输入框
**③④ 学情分析 / 对话**(`analysis-of-students/analysis.vue`、`dialogue.vue`)
- `stu-analysis-of-students` 根 class,顶部提示标题 + 分析入口按钮列表(点击触发 AI 分段输出)
- 深蓝色系提示条,无成绩数据时 `el-empty`
**⑤ BI可视化分析**(`views/visual-analysis/index.vue`)
- `el-tabs` 两个页签:「数据源管理」(`digitalMarketingAlgorithms/bigData` 组件)、「BI可视化分析」(iframe 嵌入 `VITE_APP_BI_URL`)
- 深色主题:背景 `#06121f`、tab 文字 `#a9d8ff`(硬编码,UI 调整注意)
**⑥ 实验报告**(`views/test-report/index.vue`)
- 标题(白字 + 深蓝 text-shadow)→ 学生信息行(姓名/学号/班级)→ 总成绩卡片(含班级排名 + 模块成绩表格)→ 实训任务明细卡片(任务名/模块/完成状态/AI 评分表格)
- 深色背景浅色文字,样式简单(约 5 条 scoped 规则)
**⑦ 考试考核**(`views/exam/index.vue`)
- 页头(标题+刷新按钮)→ 状态筛选按钮组(全部/未开始/进行中/已结束,带数量徽标)→ 考试列表行(日期块 | 信息区 el-tag+标题+时间 | 操作按钮)
- 浅色主题 `#20282d`,主题色 `#16839c`(青绿色,与其他模块蓝色系不一致,UI 调整注意)
- 有移动端断点 `@media(max-width:650px)`
**⑧⑨ 考试作答/成绩**(`exam/take.vue`、`exam/result.vue`)
- 本轮未深入调研,UI 调整时单独阅读
---
## 3. 实训模块页(UI 调整重点)
> 通用结构(新版实训壳,绝大多数页面遵循):
> `student-training-shell` 根容器 → `task-header` 顶部任务标题/背景(内嵌 `TrainingTaskBrief`)→ 步骤导航(`step-indicator` / `step-tabs`)→ 分步骤表单/表格/上传区 → 底部操作栏(上一步/保存/下一步/提交)→ 右侧 `TrainingAiSidebar`(AI 学习提示,可折叠)
### 3.1 互联网产品开发基础(`/foundation`,3 页)
| # | 路由 | 标题 | 文件 |
|---|------|------|------|
| 1 | `/foundation/new-product-survey` | 新产品调查与分析 | `views/foundation/new-product-survey.vue` |
| 2 | `/foundation/product-development-factors` | 产品开发关键因素 | `views/foundation/product-development-factors.vue` |
| 3 | `/foundation/product-development-process` | 产品开发主要流程 | `views/foundation/product-development-process.vue` |
- **新产品调查与分析**:4 步。Step01 产品卖点三层次分类(`TrainingStepOneChoiceQuestions` + 分类表格 + `el-select` + 判题反馈);Step02 实地调研记录(表单分组、平台/场景单选、关键词、产品名、图片上传预览列表);Step03 三层次对照分析表格 + textarea;Step04 价值判断 3 个文本域。含图片预览 Dialog。
- **产品开发关键因素**:4 步表单。Step1-3 成功/失败产品对比表格 + textarea;Step4 关键因素总结 textarea。头部含 `TrainingMaterialButton`(资料按钮)与导出按钮。
- **产品开发主要流程**:Step01 关键任务识别(任务表格 + select 分类 + 判题反馈 + 保存/清空);Step02 排期表格 + 甘特图上传预览;Step03/04 工具说明 + 并行协同复盘 textarea。
### 3.2 市场需求挖掘(`/demand`,8 路由)
| # | 路由 | 标题 | 实际视图文件 |
|---|------|------|-------------|
| 1 | `/demand/index` | 行业需求分析 | `views/demand/industry-demand-analysis.vue` |
| 2 | `/demand/environment` | 竞争环境分析 | `views/demand/competitive-environment-analysis.vue` |
| 3 | `/demand/people` | 目标用户画像 | `views/demand/people.vue` |
| 4 | `/demand/user` | 用户数据分析 | `views/demand/user.vue`(legacy) |
| 5 | `/demand/business-feasibility` | 商业可行性论证 | `views/demand/business-feasibility.vue` |
| 6 | `/demand/consumer-behavior` | 消费者需求与行为 | `views/demand/consumer-behavior.vue` |
| 7 | `/demand/consumer-scenario` | 消费场景解构 | `views/demand/consumer-scenario.vue` |
| 8 | `/demand/feature-conversion` | 需求转化为功能 | `views/demand/feature-conversion.vue` |
- **行业需求分析**(根 class `industry-pest-page`,scoped):四步实训卡片、PEST 表格、机会挑战表、结论表单;使用 `TrainingTaskToolbar`、`TrainingStepOneChoiceQuestions`。
- **竞争环境分析**(根 class `competitive-analysis-page`,scoped):SWOT 表格、策略矩阵、最终决策区。
- **目标用户画像**:文件上传面板、Excel 预览弹窗、RFM 图表上传区、洞察表格、访谈记录 tab、用户画像表单。
- **用户数据分析**(旧版 legacy 壳):`student-training-shell` + 顶部 tab 切换 + `TrainingIntro` + 动态组件渲染区 + `TrainingLegacyActions`。
- **商业可行性论证**(根 class `feasibility-core`/`workbench`):多步 form-section/table、上传面板、`el-dialog` 预览,布局与其他 demand 页不同。
- **消费者需求与行为**:分步骤表单/表格/问卷编辑器弹窗。
- **消费场景解构**:旅程排序、旅程分析表格、旅程图上传区、优化建议表格。
- **需求转化为功能**:需求转化表、RICE 优先级打分表、优先级决策表。
### 3.3 产品规划(`/product`,7 路由)
| # | 路由 | 标题 | 实际视图文件 |
|---|------|------|-------------|
| 1 | `/product/index` | 市场机会识别与选品 | `views/product/market-opportunity-selection.vue`(`hideSupplementSteps`) |
| 2 | `/product/price` | 产品定价 | `views/product/price.vue` |
| 3 | `/product/differentiation` | 产品价值主张及定位 | `views/product/differentiation.vue` |
| 4 | `/product/structure` | 产品结构规划 | `views/product/structure.vue` |
| 5 | `/product/after-sales-service` | 售后服务流程设计 | `views/product/after-sales-service.vue` |
| 6 | `/product/requirements-doc` | 产品需求说明书 | `views/product/requirements-doc.vue` |
| 7 | `/product/hardware-cost` | 智能硬件成本估算 | `views/product/hardware-cost.vue` |
- **市场机会识别与选品**(根 class `opportunity-core`):6 步——指标分类、权重设置、综合得分计算、可视化上传、用户需求洞察、选品结论。
- **产品定价**(标题区 `PRODUCT PRICING`):按 `currentStep` 动态渲染定价步骤。
- **产品价值主张及定位**:核心价值 / 用户档案 / 价值地图 / 定位陈述 / MRD 表单区块。
- **产品结构规划**:四层架构排序、操作链路排序、场景分析表格、架构图上传区(`ProductStructureImageUpload`)。
- **售后服务流程设计**:3 步——故障分类拖拽、处理流程表格、售后政策表格;通过 `getStudentTrainingPage("after-sales-service")` 接入页面体系。
- **产品需求说明书**:3 步——PRD 模块匹配拖拽、PRD 详细信息表格、文档上传/预览。
- **智能硬件成本估算**(标题区 `BOM COSTING`):4 步——BOM 选型(可编辑物料明细表格,增删行 + 合计)、批量成本核算、制造成本核算、成本优化决策(可视化上传 + 优化方案文本 + 下载模板按钮)。
### 3.4 产品投放测试(`/test`,4 路由)
| # | 路由 | 标题 | 视图文件 |
|---|------|------|---------|
| 1 | `/test/index` | 发布渠道评估 | `views/test/index.vue` |
| 2 | `/test/promotion` | 产品推广测试 | `views/test/promotion.vue` |
| 3 | `/test/channelas` | 渠道表现分析 | `views/test/channel.vue`(legacy) |
| 4 | `/test/marketing` | 产品营销定位 | `views/test/marketing.vue`(legacy) |
- **发布渠道评估**(TASK_KEY `release-channel-evaluation`):新版壳,`step-tabs` 四步表单/表格。
- **产品推广测试**(TASK_KEY `promotion-effect-optimization`):4 步——预算分配、投放策略、投放数据与 ROI、效果评估与优化。
- **渠道表现分析**(旧版):`TrainingIntro`(漏斗模型介绍)+ `funnelAnalysis` 组件 + 旧式操作栏。
- **产品营销定位**(旧版 `legacy-training-page`):`TrainingIntro` + 案例说明 + 广告数据 `el-table` + ECharts 四象限图(坐标轴可选)+ textarea 分析 + 提交/重置。
### 3.5 供应渠道管理(`/channel`,3 路由)
| # | 路由 | 标题 | 视图文件 |
|---|------|------|---------|
| 1 | `/channel/index` | 采购需求预测 | `views/channel/index.vue` |
| 2 | `/channel/purchase` | 采购产品定位 | `views/channel/purchase.vue`(legacy) |
| 3 | `/channel/supplier` | 供应商评估与选择 | `views/channel/supplier.vue` |
- **采购需求预测**:4 步——线性需求预测表格(`el-table` + `el-input-number`)、预测可视化上传/预览卡片、采购计划规则表格(安全库存/期初库存/采购量输入)、采购量预测表格 + ECharts 容器 + 代码查看弹窗。
- **采购产品定位**(旧版):`TrainingIntro`(卡拉杰克模型长文介绍)+ 四象限矩阵分析。
- **供应商评估与选择**(`workspace` header):3 步,Step1 场景 A/B 权重卡片 + 表格。
### 3.6 产品评估与考核(`/assessment`,3 路由)
| # | 路由 | 标题 | 视图文件 |
|---|------|------|---------|
| 1 | `/assessment/index` | 产品表现分析(功效系数法) | `views/assessment/index.vue` |
| 2 | `/assessment/diagnosis` | 产品问题诊断 | `views/assessment/diagnosis.vue` |
| 3 | `/assessment/optimization` | 品类结构优化 | `views/assessment/optimization.vue` |
- **产品表现分析**:`TrainingIntro` 背景与目标 + `TrainingTaskToolbar` + 多个 `el-table`(指标/绩效数据/功效值/权重)+ 底部 `taskfooter` 提交/重置。
- **产品问题诊断**(`workbench-top`):步骤 tab、漏斗计算表格、对比图上传、词云分析、情感倾向表格、根因 textarea、AB 测试方案与结论。
- **品类结构优化**(`workbench-head`):品类表格(`el-input`/`el-input-number` 增删行)、帕累托图上传区(`el-image` 预览 + 重传/移除)。
---
## 4. 公共实训壳(多任务复用,改一处影响面大)
| 路由 | 标题 | 视图文件 | 说明 |
|------|------|---------|------|
| `/comprehensive/index` | 综合实训 | `views/training/GenericTrainingPage.vue` | `pageKey: comprehensive-case-training`,`hideSupplementSteps` |
| `/training/task/:pageKey` | 实训任务(动态) | `views/training/GenericTrainingPage.vue` | 后端下发任务 → 通用渲染,`studentTrainingNavigation.js` 生成菜单 |
| `/training/:taskKey/:stepId` | 自定义实训步骤 | `views/training/CustomTrainingStepPage.vue` | 步骤 header + `TrainingTaskBrief` + textarea + 附件上传 + 上一步/保存/下一步 + empty 状态 |
- **GenericTrainingPage**:公共步骤导航(步骤 tab / marker / connector)→ 步骤标题+任务说明 → 流程表格、上传提示/按钮/文件名展示 → 综合案例 PEST/SWOT 输入区 + 结论 textarea。**未走专属 .vue 的实训任务全部由它渲染,UI 调整优先级最高。**
---
## 5. 公共组件与样式
### 5.1 实训公共组件(`src/views/components/`)
| 组件 | 作用 |
|------|------|
| `TrainingAiSidebar.vue` | 右侧 AI 学习提示侧边栏(可折叠),几乎所有实训页右栏 |
| `DynamicTrainingStepNavigator.vue` | 动态步骤导航条 |
| `TrainingTaskBrief.vue` | 任务背景/目标简介卡片(页面头部内嵌) |
| `TrainingTaskToolbar.vue` | 任务工具栏 |
| `TrainingMaterialButton.vue` | 资料查看按钮 |
| `TrainingIntro.vue` | 旧版页介绍区(background / goal 插槽) |
| `TrainingStepOneChoiceQuestions.vue` | 单选判题题组(含 `StepOneChoiceQuestionEditor.vue` 编辑器) |
| `TrainingAiEvaluation.vue` | AI 评价展示 |
| `TrainingLegacyActions.vue` | 旧版页底部操作栏 |
| `popModal.vue` / `mainContent.vue` | 弹窗 / 主内容容器 |
### 5.2 product 模块公共组件(`src/views/product/components/`)
- `ProductStandardTrainingPage.vue`:product 模块标准实训页组件(任务标题 + 简介 + 步骤导航 + 步骤内容 + 操作按钮 + AI 侧边栏),自带 scoped 样式。
- `ProductStructureImageUpload.vue`:图片上传封装(`el-upload` + 预览列表)。
### 5.3 学生端公共样式
- `src/assets/styles/student-training.scss`:学生实训页全局样式根。定义 `:root` 字号变量、`.student-training-shell` 主题色、背景渐变、网格布局、侧边 AI 栏折叠/展开宽度等。**统一 UI 风格首选改这里 + 各页 scoped 样式。**
---
## 6. 三种布局形态(UI 统一的关键)
| 形态 | 识别特征 | 使用页面 |
|------|---------|---------|
| 新版实训壳 | `student-training-shell` + `task-header` + `TrainingTaskBrief` + `step-indicator/step-tabs` + `TrainingAiSidebar` | foundation 全部、demand 大部分、product 大部分、test/index、test/promotion、channel/index、channel/supplier、assessment 全部 |
| 旧版 legacy 页 | `legacy-training-page` + `TrainingIntro` + `TrainingLegacyActions` | `demand/user`、`test/marketing`、`test/channel`、`channel/purchase` |
| 通用渲染页 | `GenericTrainingPage` / `CustomTrainingStepPage` / `ProductStandardTrainingPage` | 综合实训、动态任务、自定义步骤、product 部分页 |
**UI 调整建议**:
1. 优先统一 `student-training.scss` 与 `TrainingAiSidebar`/`TrainingTaskBrief`/步骤导航等公共件——影响面覆盖 20+ 页。
2. 旧版 legacy 4 页(demand/user、test/marketing、test/channel、channel/purchase)风格最不统一,建议重点处理。
3. 注意孤立硬编码配色:`visual-analysis`(`#06121f` 深蓝)、`exam/index`(`#16839c` 青绿)、`test-report`(text-shadow 白字)与学生实训蓝色系不一致。
4. 部分页面有独立 scoped 根 class(`industry-pest-page`、`competitive-analysis-page`、`opportunity-core`、`feasibility-core` 等),调整时需逐页确认。
---
## 7. 未注册路由的孤儿页面(UI 调整可忽略,建议后续清理)
| 文件 | 说明 |
|------|------|
| `views/demand/index.vue` | 已被 `demand/industry-demand-analysis.vue` 取代(路由 `/demand/index` 指向后者) |
| `views/demand/environment.vue` | 已被 `demand/competitive-environment-analysis.vue` 取代 |
| `views/product/index.vue` | 已被 `product/market-opportunity-selection.vue` 取代(路由 `/product/index` 指向后者) |
| `views/assessment/kano.vue` / `five.vue` / `market.vue` / `traffic.vue` | 未在路由中注册,疑似旧版遗留 |
| `views/learningCenter/*.vue`(learningResources / evaluation / Achievement) | 未在学生路由中注册 |
| `views/demand/industry-demand-analysis` 之外的重复实现 | 见上 |
> 注意:`studentDemo/index.vue` 有 hidden 路由 `/student-demo`,属演示页。
---
## 8. 学生端实训模块导航来源(菜单 ≠ 路由)
- 学生左侧/顶部实训模块页签由后端接口返回任务列表,经 `src/utils/studentTrainingNavigation.js` 的 `buildStudentTaskSections()` 按模块分组生成,任务 `taskKey` → 路由映射写在 `knownTaskPaths` 中(23 个映射)。
- **改路由前先对照 `knownTaskPaths`**,新增页面需在此登记 `taskKey → path`,否则学生菜单点不进去。
- 综合实训(`comprehensive-case-training`)单独作为顶部任务,指向 `/comprehensive/index`。