3.3 KiB
3.3 KiB
APP_FLOW.md
1. Scope
本文件定义当前版本所有用户可见流程,覆盖 Web 与小程序两端。
关联文档:
- PRD.md
- FRONTEND_GUIDELINES.md
- BACKEND_STRUCTURE.md
2. 页面与路由清单
Web /:主工作区(顶部工具栏 + 数据选择器 + 信息日志 + 桑基图预览)Miniapp /pages/index/index:小程序可用页(上传、映射、预览、导出)
3. Web 流程:首次加载
触发条件:
- 用户打开
/
步骤:
- 渲染页面结构并初始化 ECharts
- 尝试读取
/data/example0.xlsx - 解析文件并应用默认列映射
- 构建 Sankey 数据并渲染预览
决策点:
- 若样例文件加载失败,显示错误信息,但页面仍可继续上传文件
成功结果:
- 用户无需上传即可看到可操作示例图
失败结果:
- 页面给出明确错误提示,保持可恢复
4. Web 流程:文件上传(点击/拖拽)
触发条件:
- 点击上传并选择文件,或将文件拖入上传区
步骤:
- 校验后缀:
csv/xls/xlsx - 解析为
RawTable - 应用默认映射或恢复持久化映射
- 重建聚合并刷新图表
- 更新上传提示文案(文件名 + 行数)
决策点:
- 不支持的后缀直接报错
- 解析异常显示错误并保留上一次有效状态
5. Web 流程:列映射与预览配置
触发条件:
- 用户修改数据列、描述列、方向、gap、padding、主题、汇聚对齐等配置
步骤:
- 更新映射或显示配置
- 触发重建逻辑
- 刷新图表与信息日志
- 持久化配置到 localStorage
决策点:
source data未选:阻断构建并提示target description为空:阻断构建并提示- 非法数值/空描述:跳过行并写入告警
6. Web 流程:导出
触发条件:
- 点击导出
SVG或PNG
步骤:
- 检查图表实例是否可用
- 组装时间戳文件名
- SVG:临时创建 SVG 渲染器导出
- PNG:
pixelRatio=2导出 - 触发浏览器下载
7. 小程序流程:文件上传与默认映射
触发条件:
- 用户点击“文件上传”
步骤:
- 选择
csv/xls/xlsx文件 - 按后缀分流解析:
csv:文本解析xls/xlsx:SheetJS 解析首个工作表
- 应用默认映射规则
- 重建 Sankey 聚合并更新日志
- 触发 canvas 重绘
决策点:
- 若 xlsx 模块不可用,提示先在开发者工具执行“构建 npm”
- 解析失败显示错误,不会导致页面失效
8. 小程序流程:列映射与预览
触发条件:
- 用户点击任意列项调整 source/target 映射
步骤:
- 更新映射状态
- 调用聚合构建
- 更新统计(节点数、连线数、跳过行)
- 更新“信息日志”
- 重绘 canvas 预览
9. 小程序流程:导出
触发条件:
- 点击导出 PNG 或 SVG
步骤:
- PNG:
- 将 canvas 导出临时图片
- 保存到系统相册
- SVG:
- 复用布局算法生成 SVG 字符串
- 写入用户目录
.svg文件 - 优先尝试打开文档;若失败则复制文件路径
决策点:
- 无可用数据时阻断导出并提示
- 相册权限不足时提示用户授权
10. Flow Completion Checklist
流程视为完成需满足:
- 成功路径可端到端执行
- 失败路径有明确且可定位的错误信息
- 错误后页面仍可恢复继续操作