Files
Mutual_Fund/开发计划-前端.md
2026-09-14 11:54:20 +08:00

712 lines
21 KiB
Markdown
Raw Permalink 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.
# 华夏基金 PC 前端详细开发计划
## 1. 计划概览
| 项目 | 内容 |
|---|---|
| 项目名称 | 华夏基金 PC 网页平台前端 |
| 计划版本 | V1.0 |
| 编制日期 | 2026-09-13 |
| 开发范围 | PC 浏览器前端 |
| 后端约束 | 只调用现有 FastAPI 接口,不修改后端代码、数据库和权限逻辑 |
| 产品形态 | 用户端官网 + 用户服务页面 + 员工后台管理系统 |
### 1.1 总体开发顺序
```text
项目勘察
↓
前端工程与基础架构
↓
统一品牌视觉与公共组件
↓
用户端官网长页面
↓
基金列表与基金详情
↓
登录、注册与用户中心
↓
员工后台壳层与权限菜单
↓
投顾、风控和通用员工页面
↓
Agent 聊天框
↓
API 联调与异常处理
↓
PC 浏览器验收与交付
```
## 2. 开发原则
1. 前端只负责页面、状态、交互、展示和接口调用。
2. 不修改现有 Python/FastAPI 后端代码。
3. 不修改数据库表结构、数据内容和后端权限判断。
4. 基金净值、收益和产品信息全部来自后端 API,不在前端写死真实业务数据。
5. 用户端和后台共用品牌色、字体、按钮、标签、弹窗和状态反馈规范。
6. 用户端强调品牌和转化,后台强调信息密度和业务效率。
7. 所有接口都需要处理加载中、空数据、失败、超时和 Token 失效状态。
8. 先建立稳定的页面结构,再根据后续图片进行视觉细化。
## 3. 阶段划分
| 阶段 | 名称 | 主要产出 |
|---|---|---|
| Phase 0 | 项目勘察与接口确认 | 页面地图、接口清单、字段映射表、风险清单 |
| Phase 1 | 前端工程搭建 | 前端应用、路由、环境变量、API 客户端 |
| Phase 2 | 统一设计系统 | 品牌色、字体、按钮、表单、标签、图标、布局规范 |
| Phase 3 | 用户端官网 | 可下滑首页、导航、基金展示、Agent 入口 |
| Phase 4 | 基金数据页面 | 基金列表、详情、历史净值和走势图 |
| Phase 5 | 登录与用户中心 | 登录、注册、身份跳转、账户、持仓、风险测评 |
| Phase 6 | 员工后台基础框架 | 后台壳层、菜单、角色显示、通用状态 |
| Phase 7 | 员工业务页面 | 工作台、客户、投顾、风控、基金数据、设置 |
| Phase 8 | Agent 聊天框 | 右下角浮动入口、聊天面板、消息状态 |
| Phase 9 | 联调与质量验收 | API 联调、权限验证、视觉检查、浏览器验收 |
## 4. Phase 0:项目勘察与接口确认
### 4.1 目标
在开发前确认当前后端能力、接口返回格式和页面实际需要的数据,避免前端基于错误字段开发。
### 4.2 工作内容
- 确认 FastAPI 服务启动地址和 API 前缀。
- 确认统一响应格式 `{code, message, data, trace_id}`。
- 确认登录返回的 Token 字段和用户信息字段。
- 确认 `user_type` 的实际值。
- 确认后端实际员工角色值,并在前端建立显示映射。
- 整理基金列表接口字段。
- 整理基金历史净值接口字段。
- 整理投顾工作台接口清单。
- 整理风控接口清单。
- 整理 Agent 接口、会话字段和流式/非流式返回方式。
- 记录接口暂不可用、需要登录或需要特定角色的页面。
### 4.3 产出
- 前端页面路由表。
- API 接口清单。
- API 字段映射表。
- 角色与菜单映射表。
- 接口异常码处理表。
- 待确认问题清单。
### 4.4 验收标准
- 每个计划开发的页面都有对应接口或明确的空状态方案。
- 不把数据库结构直接暴露给页面组件。
- 关键接口能够通过 Swagger 或实际请求确认返回格式。
## 5. Phase 1:前端工程搭建
### 5.1 目标
建立独立、可维护的 PC 前端工程,不侵入现有后端目录和代码。
### 5.2 建议目录
```text
frontend/
├── app/ # 页面路由
│ ├── page # 用户端首页
│ ├── products # 基金列表
│ ├── products/[code] # 基金详情
│ ├── login # 登录
│ ├── register # 注册
│ ├── account # 用户中心
│ └── admin # 员工后台
├── components/ # 公共 UI 组件
├── features/ # 用户端和后台业务组件
├── lib/ # API、鉴权、格式化工具
├── types/ # TypeScript 类型
├── styles/ # 全局样式和设计变量
└── public/ # Logo、背景图和静态素材
```
### 5.3 工作内容
- 初始化 PC 前端应用。
- 配置开发、测试和生产 API 地址。
- 配置 TypeScript 和代码格式化规范。
- 建立基础路由。
- 建立统一 API 客户端。
- 建立 Token 存储和请求拦截逻辑。
- 建立统一接口错误处理。
- 建立页面级 loading、error 和 empty 状态。
- 将提供的背景图复制或引用到前端静态资源目录。
### 5.4 API 客户端要求
- 所有请求从统一 API 模块发出。
- 自动拼接后端 API 基地址。
- 需要登录的接口自动添加 `Authorization: Bearer <token>`。
- 收到 401 时清理登录状态并跳转登录页。
- 统一解包后端 `data` 字段。
- 保留 `trace_id`,便于页面显示错误信息或排查问题。
- 不在组件中重复编写请求地址和鉴权逻辑。
### 5.5 验收标准
- 前端可以独立启动。
- 首页路由可以打开。
- 可以成功请求一个公开基金接口。
- Token 能够被保存、读取和清理。
- API 错误不会导致页面白屏。
## 6. Phase 2:统一设计系统
### 6.1 目标
建立用户端和后台共用的视觉基础,确保两套产品属于同一个华夏基金平台。
### 6.2 颜色体系
- 主色:沿用后台管理系统的品牌主色,用于主按钮、链接、选中态和重要操作。
- 深蓝:用于用户端首页背景和金融氛围。
- 金色:用于收益、资产、重点数据和基金视觉强调。
- 白色与浅灰:用于用户端内容背景和后台页面背景。
- 深灰:用于正文和后台侧边栏。
- 绿色:成功状态。
- 黄色:提醒状态。
- 红色:风险、错误和危险操作。
颜色需要集中定义为设计变量,禁止在业务页面中大量散落硬编码颜色值。
### 6.3 公共组件
优先实现以下组件:
- 品牌 Logo 和文字标识。
- 用户端顶部导航。
- 后台侧边栏。
- 后台顶部工具栏。
- 主按钮、次按钮、危险按钮。
- 输入框、下拉框、搜索框。
- 状态标签。
- 统计卡片。
- 数据表格。
- 分页器。
- Modal 弹窗。
- Toast 消息提示。
- Skeleton 加载占位。
- Empty 空数据状态。
- Error 错误状态。
- 基金净值走势图容器。
- 用户头像和角色标识。
- Agent 浮动入口和聊天面板。
### 6.4 视觉验收标准
- 用户端和后台主色一致。
- 主按钮、链接、标签、图表重点线条使用统一色变量。
- 圆角、边框、阴影和字体层级保持一致。
- 用户端可以更宽松、更有品牌感,但不能出现完全不同的主题。
- 后台保持紧凑、清晰和可扫描。
## 7. Phase 3:用户端官网首页
### 7.1 页面形态
- PC 端纵向可下滑长页面。
- 顶部导航固定或在滚动后保持可见。
- 各模块按顺序组织,支持导航锚点跳转。
- 页面底部包含联系入口、员工后台入口、登录注册入口和合规信息。
### 7.2 页面模块
#### 7.2.1 首屏 Hero
- 品牌名称:华夏基金。
- 主标题体现智能财富管理和长期投资理念。
- 使用指定背景图作为视觉参考。
- 背景采用深蓝金融城市氛围。
- 对图片增加适度遮罩,保障文字可读性。
- 设置“查看基金产品”“登录/注册”等主要按钮。
- 员工后台入口作为次要入口。
#### 7.2.2 品牌介绍
- 展示企业使命:“让财富管理更智能、更普惠”。
- 展示专业、稳健、合规、科技驱动等核心价值。
- 采用宽幅信息模块或简洁分栏布局。
#### 7.2.3 核心服务
建议展示:
- 公募基金产品。
- 智能资产配置。
- 风险评估与适当性服务。
- 投顾服务。
- 客户资产与持仓管理。
#### 7.2.4 基金数据亮点
- 从 API 获取并展示基金产品数量或可用统计数据。
- 展示热门基金或精选基金。
- 展示最新净值、日涨跌幅和风险等级。
- 页面必须标记数据更新时间。
- 无数据时展示稳定的空状态,不使用虚假数字替代。
#### 7.2.5 客户评价或信任模块
- 根据后续提供的图片和文案决定是否保留。
- 如果没有真实客户素材,使用中性占位结构,不伪造客户身份和评价。
#### 7.2.6 风险提示
- 说明基金投资有风险。
- 不使用保证收益、稳赚等表述。
- 风险内容作为正式页面模块展示,不藏在弹窗中。
#### 7.2.7 联系与底部区域
- 公司名称:华夏基金。
- 联系方式和公司信息根据确认后的企业资料填写。
- 提供登录、注册和员工后台入口。
- 预留合规声明、隐私政策和用户协议入口。
### 7.3 验收标准
- 首页可以顺畅纵向浏览。
- 顶部导航能够定位页面模块。
- 首屏背景、文案和按钮层级清晰。
- 基金数据模块从 API 加载真实数据。
- Agent 入口固定在右下角且不遮挡核心内容。
- 页面滚动时无明显跳动或布局错位。
## 8. Phase 4:基金数据页面
### 8.1 基金列表页
页面内容:
- 页面标题和说明。
- 关键词搜索。
- 基金类型筛选。
- 风险等级筛选。
- 在售状态筛选。
- 基金列表或数据表格。
- 分页。
- 基金详情入口。
字段展示:
- 基金代码。
- 基金名称。
- 基金类型。
- 风险等级。
- 最新单位净值。
- 净值日期。
- 基金经理。
- 基金状态。
交互要求:
- 搜索和筛选时显示 loading。
- 筛选条件变化后重新请求 API。
- 无结果时显示空状态。
- 接口错误时提供重试按钮。
- 点击基金行或卡片进入详情页。
### 8.2 基金详情页
页面结构:
1. 基金基本资料。
2. 最新净值和累计净值。
3. 净值日期和数据更新时间。
4. 区间收益指标。
5. 历史净值走势图。
6. 风险等级和风险提示。
7. 申购、赎回或登录操作入口。
走势图要求:
- 调用 `/api/products/{product_code}/history`。
- 支持净值和收益两种序列展示。
- 支持时间范围选择。
- 展示 tooltip、日期、数值和单位。
- 无历史数据时显示空状态。
- 图表颜色使用统一品牌色,收益重点可使用金色辅助强调。
### 8.3 验收标准
- 基金列表能够正常加载真实数据。
- 搜索、筛选和分页行为正确。
- 基金详情与列表选择的产品一致。
- 图表数据与后端返回数据一致。
- 页面不显示未经后端返回的虚构净值或收益率。
## 9. Phase 5:登录、注册与用户中心
### 9.1 登录页
- 用户名输入。
- 密码输入。
- 登录按钮。
- 注册入口。
- 返回官网入口。
- 登录加载状态。
- 错误提示。
- 登录成功后的身份跳转。
### 9.2 注册页
- 用户名。
- 手机号。
- 密码。
- 真实姓名。
- 注册按钮。
- 字段校验。
- 用户协议和隐私政策勾选位预留。
- 注册成功提示并引导登录。
### 9.3 鉴权状态
- 登录成功保存 JWT Token。
- 应用启动时恢复登录状态。
- 调用 `/api/auth/me` 获取当前用户。
- Token 失效时清理状态并跳转登录页。
- 退出登录清理 Token 和用户缓存。
### 9.4 用户中心页面
- 用户基本信息。
- 账户余额。
- 基金持仓。
- 风险测评入口和状态。
- 申购入口。
- 赎回入口。
- 用户消息或客服入口。
### 9.5 验收标准
- 普通用户能够注册并登录。
- 登录后能够读取当前用户信息。
- 未登录用户访问受保护页面会被引导登录。
- Token 过期后不会继续展示受保护数据。
- 申购、赎回和风险测评表单有成功、失败和确认反馈。
## 10. Phase 6:员工后台基础框架
### 10.1 页面壳层
参考 `admin-panel-template` 实现:
- 深色固定侧边栏。
- 品牌 Logo 区域。
- 角色相关菜单。
- 顶部工具栏。
- 当前页面标题。
- 通知入口。
- 用户头像和角色显示。
- 退出登录。
- 主内容区域。
### 10.2 前端角色显示映射
前端统一显示:
```text
投顾专员
风控专员
员工通用
```
后端返回值仅在前端适配层进行映射。前端不修改后端数据库中的角色值和权限判断。
### 10.3 菜单规划
#### 投顾专员
- 工作台首页。
- 客户管理。
- 客户持仓。
- 组合诊断。
- 投顾报告。
- 回访记录。
- 待办事项。
- 公共基金数据。
#### 风控专员
- 工作台首页。
- 风控预警。
- 风控工单。
- 基金数据。
- 消息通知。
#### 员工通用
- 工作台首页。
- 公共基金数据。
- 消息通知。
- 个人设置。
### 10.4 验收标准
- 员工登录后进入后台而不是普通用户中心。
- 侧边栏菜单根据后端用户信息显示。
- 当前角色名称显示为统一前端文案。
- 未授权页面有明确提示或跳转处理。
- 后台布局与参考模板保持一致。
## 11. Phase 7:员工业务页面
### 11.1 工作台首页
- 统计卡片。
- 待办事项。
- 客户数量。
- 资产规模或业务指标。
- 风险预警数量。
- 最近活动。
- 根据角色显示不同重点内容。
### 11.2 客户管理
- 客户列表。
- 关键词搜索。
- 状态筛选。
- 分页。
- 客户详情抽屉或详情页。
- 客户持仓。
- 客户风险等级。
- 客户关系状态。
- 历史投顾报告。
- 敏感信息按后端返回结果展示。
### 11.3 投顾服务
- 客户组合诊断。
- 基金白名单筛选。
- 标准策略库。
- 投顾建议草稿。
- 沟通话术草稿。
- 回访记录。
- 待办处理。
- 个人绩效报表。
### 11.4 风控中心
- 风险预警列表。
- 预警状态筛选。
- 预警详情。
- 放行确认弹窗。
- 拦截确认弹窗。
- 冻结确认弹窗。
- 风控工单列表和详情。
- 操作完成后的消息反馈。
危险操作要求:
- 操作按钮使用危险色。
- 必须经过二次确认。
- 显示操作对象和影响范围。
- 请求期间禁用重复提交。
- 成功后刷新相关列表。
### 11.5 公共基金数据
- 复用用户端基金列表和详情组件。
- 根据后台布局调整为表格优先。
- 展示数据来源和更新时间。
- 允许员工查看历史走势。
### 11.6 验收标准
- 各角色能看到符合前端规划的菜单。
- 投顾页面能够请求并展示客户和投顾数据。
- 风控页面能够展示预警并调用现有处置接口。
- 危险操作具备确认、loading、成功和失败状态。
- 敏感数据不在前端绕过后端脱敏逻辑。
## 12. Phase 8:Agent 聊天框
### 12.1 入口
- 固定在用户端官网右下角。
- 使用统一品牌色的圆形或紧凑型浮动按钮。
- 提供清晰的客服/智能助手图标。
- 不遮挡主要 CTA、基金卡片和页面底部关键内容。
### 12.2 展开面板
- 点击入口打开聊天框。
- 再次点击或点击关闭按钮收起。
- 固定宽度和高度,避免消息内容改变页面布局。
- 头部显示 Agent 名称和状态。
- 中部显示消息列表。
- 底部显示输入框和发送按钮。
- 支持发送中状态。
- 支持请求失败提示和重新发送。
- 支持空白输入校验。
- 保持聊天滚动位置自动跟随最新消息。
### 12.3 风格要求
- 使用官网和后台共用的主色、深蓝、白色和中性色。
- 保持与官网按钮相同的圆角和阴影语言。
- 聊天消息区使用清晰的用户消息与 Agent 消息层级。
- 不使用与整体品牌冲突的独立渐变主题。
### 12.4 接口要求
- 使用现有 Agent 接口。
- 在 API 适配层统一处理会话 ID、用户身份和错误码。
- 如果后端返回流式消息,前端逐段更新消息内容。
- 如果后端返回完整消息,前端按消息完成状态展示。
- 不在前端实现或修改 Agent 业务逻辑。
### 12.5 验收标准
- 入口始终位于右下角。
- 点击后聊天框可以稳定打开和关闭。
- 消息能够正确显示顺序和发送者。
- 请求期间有明确反馈。
- 失败后用户可以重试。
- 聊天框不会造成页面主要内容错位。
## 13. Phase 9:API 联调与质量验收
### 13.1 联调顺序
1. 健康检查和 API 基地址确认。
2. 登录和注册。
3. 当前用户信息。
4. 基金列表。
5. 基金历史净值。
6. 用户账户和持仓。
7. 风险测评。
8. 投顾工作台。
9. 风控预警和处置。
10. Agent 聊天接口。
### 13.2 测试维度
#### 功能测试
- 路由跳转。
- 导航定位。
- 搜索和筛选。
- 分页。
- 登录注册。
- Token 恢复和退出。
- 图表展示。
- 表单提交。
- 后台角色菜单。
- 风控确认操作。
- Agent 收发消息。
#### 状态测试
- 首次加载。
- 数据加载中。
- 数据为空。
- 接口失败。
- 网络超时。
- Token 过期。
- 无权限。
- 重复提交。
#### 视觉测试
- 首屏背景裁切。
- 文案清晰度。
- 长页面滚动。
- 顶部导航固定效果。
- Agent 与页面内容的遮挡关系。
- 后台侧边栏和表格布局。
- 图表、标签、弹窗和按钮的一致性。
#### 浏览器测试
- Chrome PC。
- Edge PC。
- 常见桌面分辨率。
- 大屏显示下的最大内容宽度。
- 页面缩放后的基本可用性。
### 13.3 数据一致性测试
- 列表中的基金代码与详情页一致。
- 基金详情净值与后端返回一致。
- 图表数据点与历史净值接口一致。
- 页面显示的数据更新时间与接口字段一致。
- 角色显示文案不影响后端请求权限。
## 14. 交付物
- PC 前端源代码。
- 前端环境变量示例文件。
- API 接口适配层。
- 用户端官网页面。
- 基金列表和详情页面。
- 登录注册和用户中心。
- 员工后台页面。
- Agent 聊天框。
- 前端启动说明。
- 页面路由说明。
- API 字段映射说明。
- 已知问题和待后端确认事项。
## 15. 依赖与风险
### 15.1 外部依赖
- FastAPI 服务可正常启动。
- MySQL 中存在基金产品和历史净值数据。
- API 文档、鉴权规则和接口地址可用。
- Agent 接口的请求格式和返回格式明确。
- 背景图具备使用权限或后续提供正式素材。
### 15.2 技术风险
- 当前项目没有现成前端工程,需要新建前端目录。
- README 描述与实际后端代码存在版本差异,需要以实际接口为准。
- 部分角色名称存在历史命名差异,前端只能做显示映射。
- 部分基金历史数据的 `product_id` 字段存在代码兼容逻辑,前端不得假设数据库字段结构,必须以 API 返回为准。
- 如果 API 没有返回首页所需统计字段,首页只能展示已有数据或采用不依赖真实数值的品牌模块。
### 15.3 产品风险
- 不得将示例数据误标为真实基金数据。
- 不得在前端使用保证收益或无风险等表述。
- 风险提示必须在基金详情和交易相关页面可见。
- 员工后台的前端菜单隐藏不能替代后端权限校验。
## 16. 待确认事项
1. 前端技术栈和工程目录是否直接新建 Next.js 应用。
2. 后端 API 的实际访问地址和跨域配置。
3. Agent 接口的具体路径、请求体和返回格式。
4. 首页需要展示的正式公司资料、联系方式和合规文案。
5. 背景图是否直接使用,或是否需要重新制作带华夏基金品牌的版本。
6. 用户端是否允许未登录用户查看全部基金详情。
7. 申购、赎回和风险测评页面的具体业务字段。
8. 三类员工实际登录账号的后端 `user_type` 和角色返回值。
9. 员工通用是否需要查看客户基础信息或只查看公共基金数据。
10. 是否需要加入隐私政策、用户协议和风险揭示书页面。
## 17. 最终验收清单
- [ ] PC 前端可以独立启动。
- [ ] 用户端首页为可下滑长页面。
- [ ] 首页使用指定金融背景视觉方向。
- [ ] 用户端和后台品牌色统一。
- [ ] 用户端包含登录和注册入口。
- [ ] 页面右下角存在统一风格 Agent 入口。
- [ ] Agent 聊天框可以打开、关闭和发送消息。
- [ ] 基金列表使用 API 真实数据。
- [ ] 基金详情展示历史净值和走势图。
- [ ] 用户中心展示账户和持仓信息。
- [ ] 员工可以进入后台。
- [ ] 投顾专员、风控专员、员工通用显示正确。
- [ ] 投顾页面和风控页面按角色展示。
- [ ] 风控危险操作有二次确认。
- [ ] 所有页面有加载、空数据和错误状态。
- [ ] Token 失效能够正确处理。
- [ ] 不修改后端代码、接口和数据库。