# 蔬菜价格指数平台 — 产品设计文档 > 版本:1.2 > 状态:与《架构设计》对齐的 MVP 基线 > 范围:价格查询、指数趋势、价格榜单、历史数据;兼顾普通用户与专业用户 --- ## 1. 文档目的与边界 **目的**:为前台信息架构、页面逻辑、交互与迭代节奏提供可执行的产品基线,避免过度设计。 **边界**: - 采集、治理、指算法实现细节以《架构设计》与数据契约为准;本文不重复技术实现,仅约定**产品可见的数据契约**(口径、粒度、更新频率、异常说明)。 - 展示层技术栈与架构一致:**Vue 或 React + ECharts**,请求 **Java(Spring Boot)REST API**;契约以 **OpenAPI** 为单一描述时可与研发对齐字段与版本。 **非目标(MVP 不做)**:复杂自定义 BI 看板、拖拽式报表编排、重社交/Feed、非必要的账号体系(除非合规或商业化明确要求)。 --- ## 2. 演示数据与正式数据源策略 目标:**演示阶段快速跑通流程与界面**;**接正式源时仅更换数据供给与治理实现**,不重做前台信息架构与主路径(「演示可快、正式可换」)。 ### 2.1 演示阶段 - **数据形态**:优先 **CSV / JSON 静态样例**,或「一次性从公开渠道导出的快照」;可由 **Java 提供 `/demo` 类只读接口**(与《架构设计》中「展示层请求 Spring Boot」一致)。页面须**显著标注**「**演示数据,非实时**」。 - **字段与粒度**:样例的字段名、时间粒度、单位(如元/公斤)**按正式接入目标 schema 设计后再造数**,避免为演示单独发明一套键名,导致接正式源时前台与契约大面积返工。 - **能力取舍**:**查询、趋势、榜单、历史** 四条主路径做全;**导出、多源合并、复杂权限** 可后放。 ### 2.2 接正式源阶段 - **单一数据契约**:前台只依赖稳定字段(示例):标准**品种 ID**、**市场/区域**、**业务日期**、**价格类型**、**单位**、**数据来源 code**、**数据/配置版本**;新发地、部里信息系统、采购或合同数据等,均仅在 **采集 / 治理层** 映射到同一套结构。 - **实现边界(与《架构设计》一致)**:**Python** 仅写 **raw**;**Java** 负责治理、指数与 **REST**;演示数据源将来替换为「读取同结构的 clean / 指标表」时,**前台路由与页面逻辑保持不变**。 - **合规与运维**:正式源须落实 **授权或条款**(开放 API、采购数据协议、是否允许抓取等);界面与文档固定展示 **数据来源、更新时间、免责声明**;多源并存时禁止在无前缀说明的情况下 **静默混源**。 - **上线门禁**:生产环境 **长期自动化** 拉取须满足《[数据源上线清单](./数据源上线清单.md)》中的授权、SLA、观测告警与降级话术。 ### 2.3 来源标识约定(评审落地) - 演示数据:`source_code = DEMO`(或等价字段,以后端字典为准)。 - 正式源:按接入顺序增加可枚举 code(示例:`XFD`、`MOA_…`,具体以后端维表为准)。 - **API 与 UI 均须透传** `source_code`(及必要时的 `config_version`),便于对账、审计与用户理解,**避免混源时说不清口径**。 --- ## 3. 用户画像 | 角色 | 典型目标 | 关键行为 | 主要痛点 | |------|----------|----------|----------| | **普通用户** | 判断「某菜今天贵不贵」、大致涨跌 | 搜索品种、扫榜单、看短期趋势 | 术语多、不知看哪个指标、要求快、易懂 | | **专业用户** | 区域/时段对比、报告引用、假设验证 | 多条件筛选、历史区间、导出与可复现链接 | 口径不透明、缺元数据与版本、批量诉求 | | **运营/内容(内部)** | 榜单规则、公告、异常说明与前台一致 | 管理端配置与审核(能力随管理端分期开放) | 前后口径不一致、难追溯 | **合规与信任(产品侧必显式满足)**: - 默认**最小化个人信息**;无必要不登录。 - 前台固定提供:**指标定义、单位、数据来源说明、更新频率、免责声明**;指数与算法变更建议带 **config_version** 或等价说明(与后端域模型一致)。 - 若存在地域/市场级敏感粒度,展示与导出遵循组织**脱敏与权限**策略(与架构中的鉴权/审计一致)。 --- ## 4. 产品架构(信息架构) ### 4.1 前台模块与核心业务映射 | 业务 | 用户价值 | 前台模块 | |------|----------|----------| | 蔬菜价格查询 | 单点现价/均价与指数快照 | **查询**(搜索 + 结果详情) | | 指数趋势 | 时间维度变化与对比 | **趋势**(默认折线图,ECharts) | | 价格榜单 | 横向比较涨跌与价位 | **榜单**(Tab:涨幅 / 跌幅 / 均价等,与数据就绪度对齐) | | 历史数据 | 长区间查阅与摘录 | **历史**(表格为主,图为辅) | ### 4.2 横切能力 - **口径与帮助**:图表/榜单旁统一「i」入口 → 指标定义、基期、滞后、异常值处理原则(文案与数据版本绑定)。 - **深度链接**:筛选条件写入 **URL Query**(便于专业用户书签与协作);首屏性能由后端分页/汇总与可选缓存保障(见架构)。 - **多端**:同一套 IA;移动端遵循「一屏一任务」:查询 → 结果 → 下钻趋势/榜单。 ### 4.3 与管理端的关系(分期) - MVP 前台可依赖 **Java 侧已落库的指标与维表** 只读展示;榜单规则、别名映射等以**后端当前生效配置**为准。 - 运营配置界面随 **管理端** 分期上线;产品需约定「配置变更 → 前台展示延迟与版本提示」行为。 --- ## 5. 页面逻辑与用户路径 ### 5.1 首页 - **入口**:搜索框(品种联想)、热门品种快捷入口、今日概览(少数字卡片,避免信息堆叠)。 - **出口**:进入查询结果、榜单默认 Tab、或「数据说明/口径」页。 ### 5.2 查询(品种详情骨架) 1. 用户输入 → **联想列表**(标准品种名 + 别名命中规则由维表决定)。 2. **结果页**:现价/均价/指数(以 API 实际字段为准)、最近更新时点、**看趋势**、**在榜单中的位置**(若榜单 API 支持锚点)。 3. 子模块:**趋势**、**历史** 与详情共用同一品种上下文(路由或 Query 保持一致)。 ### 5.3 趋势 - 默认展示 **近 30 天**(或与后端默认聚合粒度一致的可配置区间)。 - **MVP**:单品种为主;**P1**:多品种对比、同比/环比(数据与公式就绪后开放,未就绪时灰显并链到口径说明)。 - 图表类型默认 **折线**;大数据量时以后端降采样或聚合区间为准,前端避免一次渲染过量点。 ### 5.4 榜单 - **Tab**:建议 MVP 含「涨幅榜」「均价榜」;「跌幅榜」与数据源同步上线。 - **筛选器**:与查询共用维度(如区域、品类),**Sticky** 在列表顶部(桌面端);移动端收折为抽屉。 - 行点击 → 进入与查询共用的**品种详情**。 ### 5.5 历史数据 - **时间范围选择** → 表格 + 分页(或虚拟滚动,以后端分页契约为准)。 - **图/表切换**:MVP 可二选一优先「表」;图用 ECharts 轻量折线即可。 - **导出(P1)**:CSV 等能力依赖 Java API 与权限设计;MVP 可用「复制链接」替代部分场景。 ### 5.6 异常与空态(统一文案策略) 区分并分别引导:**无数据**、**维护/延迟**、**筛选过窄**;避免笼统「加载失败」。必要时链到状态页或公告(若 API 提供)。 --- ## 6. 交互与视觉 ### 6.1 布局原则 - **上**:筛选与控制;**中**:主视觉(图或表);**下**:口径、数据来源、免责声明。 - 避免三栏复杂仪表盘;**一屏一主任务**。 ### 6.2 图表与色彩(ECharts) - **涨跌语义色**全站统一(建议色盲友好调色板);图例可开关系列。 - **坐标轴**:单位与时间格式可读;专业用户需支持 **tooltip 精确值** 与 **缩放/拖拽(P1)** 按性能评估开启。 ### 6.3 性能与感知 - 首屏 **骨架屏**;列表与图表请求失败可重试;长时间查询显式进度或预估(若后端支持)。 ### 6.4 无障碍(在成本可控内) - 关键趋势附 **数据摘要** 或表格式兜底;对比度符合规范;筛选控件尽量支持键盘操作(分期)。 --- ## 7. 功能优先级 ### 7.1 MVP(第一期必交付) 1. 品种搜索 + 联想 + 详情页(价格/指数快照 + 更新时点)。 2. 单品种趋势(默认区间 + ECharts 折线)。 3. 榜单至少一类核心榜(涨幅或均价)+ 基础筛选。 4. 历史数据表格 + 分页。 5. 静态或半静态的 **数据说明 / 口径 / 免责声明**(可独立路由页 + 全局页脚入口)。 ### 7.2 P1 - 多品种对比、同比环比;更多榜单 Tab。 - 地域/市场维度扩展(与维表与 API 同步)。 - CSV 导出、带参 URL 全量覆盖筛选态。 - 简单反馈入口(非登录)。 ### 7.3 刻意延后 - 自定义拖拽看板、复杂告警订阅、重运营活动页(除非有明确业务订单)。 --- ## 8. 迭代规划(建议节奏) | 阶段 | 目标 | 产品交付物 | |------|------|------------| | 迭代 0 | 契约对齐 | 与研发确认 OpenAPI 首版字段:品种、时间粒度、指数 code、版本号、分页约定、**`source_code` 与演示/正式切换策略** | | 迭代 1 | 前台闭环 MVP | 查询、趋势、榜单、历史、口径页、空/异常态;**演示数据标注与来源透传** | | 迭代 2 | 专业增强 | 对比、导出、URL 状态、(如需)登录与权限可见范围 | | 持续 | 信任与运维体验 | 数据延迟说明自动化、口径版本 Release Note、监控状态对用户可见(只读) | --- ## 9. 成功指标(轻量) | 指标 | 说明 | |------|------| | 搜索成功率 | 有结果点击 / 搜索发起 | | 详情二次行为率 | 从详情进入趋势或历史的比例 | | 榜单点击率 | 反映横向比较需求是否被满足 | | 口径页跳出率 | 过高则提示主界面指标仍不清晰 | | 导出次数(P1) | 专业渗透度 | --- ## 10. 与研发的协作清单(产品需在评审前带齐) - [ ] 默认时间粒度(日/周)与各页面默认区间。 - [ ] 指数列表:`index_code` 与用户可见中文名映射表。 - [ ] 地域/市场层级是否 MVP 开放及枚举来源。 - [ ] 榜单排序定义(涨幅计算公式引用版本号)。 - [ ] 延迟容忍:API `updated_at` 与前台展示策略。 - [ ] 错误码与用户文案映射表(含维护态)。 - [ ] **`source_code` 枚举**与「演示 / 正式」环境或开关策略;多源时混排规则与 UI 展示。 --- ## 11. 修订记录 | 版本 | 日期 | 说明 | |------|------|------| | 1.0 | 2026-04-23 | 初稿,与《架构设计》v1.1 对齐 | | 1.1 | 2026-04-23 | 新增「演示数据与正式数据源策略」;协作清单与迭代 0/1 补充 `source_code` 与来源透传 | | 1.2 | 2026-04-23 | 与《数据源上线清单》互链;正式源持续采集门禁引用 |