Files
sankey/progress.txt
2026-02-13 22:26:53 +08:00

76 lines
6.6 KiB
Plaintext
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.

[更新时间] 2026-02-13第四次更新
[项目] 星程桑基图
一、已完成Done
1. Web 单页主流程已打通:上传 -> 列映射 -> 预览 -> 导出。
2. 已支持文件格式csv / xls / xlsx。
3. 已实现核心聚合规则:
- source 数值列解析(含千分位)
- source 描述列拼接(可为空)
- target 描述列向下补全(合并单元格语义)
- source-target 键值聚合
4. 已实现预览配置方向切换、gap、padding、主题切换。
5. 已实现导出PNG/SVG带时间戳命名
6. 已实现默认样例加载:页面首次进入自动读取 `data/example0.xlsx`。
7. 已有核心单测parser + sankey 聚合 + xlsx 读取)。
8. 小程序端已从视觉骨架升级为可用流程(上传 -> 映射 -> 预览 -> 导出)。
9. 已实现本地持久化:用户上传文件、映射配置与预览选项会写入 localStorage刷新后自动恢复。
10. 已新增“汇聚对齐”配置Between/Middle/Top/Bottom可控制 target 侧对齐,且 gap 作为源侧基准。
11. 已优化“无配置初始化映射”:优先按表头别名自动匹配,缺失时按第二行首个数字列兜底。
12. 已按 Figma 更新主界面布局与文案:
- 左侧将“源数据/目标数据”合并为单个“数据选择器”区块,并使用 `select.svg` 标题图。
- 新增独立“信息日志”面板(`information.svg`),集中显示解析信息、告警、错误与当前映射日志。
- 预览标题改为 `sankeyview.svg`,并移除预览区域底部告警展示。
13. 已完成总高度适配窗口:页面改为 `header + content + footer` 的 100vh 自适应布局,内容区按剩余空间伸缩并在必要时内部滚动。
14. 已修复桑基图底部轻微溢出:图表渲染底部新增固定 8px 安全内边距,并同步目标侧布局高度计算。
15. 已修复 gap 增大时顶部轻微溢出:图表渲染顶部新增固定 8px 安全内边距,并与上下可用高度计算保持一致。
16. 已增强日志定位能力:当“源数据不是有效数字 / 源描述为空 / 目标描述为空”时,告警会展示行号、列号、列名及该单元格原始值(目标为空时额外提示无可继承上方值)。
17. 已增强 iOS 预览尺寸同步:增加 `ResizeObserver` 与 `visualViewport` 监听,确保地址栏变化和容器尺寸变化时桑基图实时 resize。
18. 已调整移动端布局顺序:单列模式下“桑基图预览”位于“数据选择框”之上。
19. 已修复 iOS 下 preview-panel 高度异常:引入 `visualViewport` 动态高度变量驱动页面高度,并将移动端内容区改为“预览弹性占满 + 选择区独立滚动”布局。
20. 已完成手机端控件压缩:隐藏上传文本框;工具条单行滚动显示;预览区 gap/padding 改为下拉0-30 步长 5 / 0-80 步长 10方向改为“源/目标”;标签位置改为“内/外/左/右”;汇聚对齐改为“两端/中间/顶部/底部”;控件尽量单行展示。
21. 已强制手机端仅使用下拉控件模式:手机视口不渲染 gap/padding 滑动条与方向拨杆,仅渲染下拉选择,避免样式条件失效时回退到滑动条模式。
22. 已扩展到平板单行模式:`<=1024px` 下工具条与预览控件均单行展示(不换行,超出横向滚动),并压缩滑动条宽度以提升一行容纳能力。
23. 已按 Figma(3764:138) 调整 switch 与下拉样式switch 改为紧凑胶囊尺寸;下拉统一替换 `list.svg` 箭头并改为 hug/fit-content 宽度,控件宽度随内容变化。
24. 已恢复手机端上传文本框显示,并缩窄为单行可容纳宽度(固定窄幅 + 文本省略),保持工具条一行布局。
25. 已进一步压缩手机工具条以避免整体溢出:隐藏工具标签文本、缩小主题/上传按钮与导出按钮、上传框改为弹性窄宽度,工具条取消横向滚动并保持单行。
26. 已继续收紧 switch/下拉宽度:移除 switch 最小宽度与手机下拉最小宽度统一按内容自适应hug显示。
27. 已恢复手机端 `export.svg` 主图标显示,并缩小尺寸以兼顾单行工具条布局。
28. 已为顶部工具栏所有 SVG 图标补充悬停提示title与按钮 aria-label鼠标悬停可显示操作含义。
29. 已为预览框区域 SVG预览标题、gap/padding 图标)补充悬停提示,并为相关控件补充 aria-label。
30. 已统一 pad 与手机的 gap/padding 调节方式:`<=1024px` 统一使用下拉框(与手机一致),仅桌面保留滑动条。
31. 已启动小程序可用化第一阶段:支持 CSV 上传、默认列自动映射、列选择交互、聚合统计与信息日志展示;聚合规则与 Web 端核心逻辑对齐。
32. 已完成小程序第二阶段(基础渲染与导出):接入原生 canvas 桑基图绘制、PNG 导出到相册。
33. 已完成小程序第三阶段(格式与导出补齐):
- 上传解析支持 `csv/xls/xlsx` 三种格式。
- 小程序端接入真实 SVG 导出:按当前布局生成 SVG 文件并写入用户目录,优先尝试打开,失败时复制文件路径。
二、当前状态In Progress
1. 无进行中的代码重构任务。
2. 文档体系已补齐为知识库结构:
- PRD.md
- APP_FLOW.md
- TECH_STACK.md
- FRONTEND_GUIDELINES.md
- BACKEND_STRUCTURE.md
- IMPLEMENTATION_PLAN.md
三、已知问题 / 风险Known Issues
1. 本地持久化基于 localStorage受浏览器容量限制超大文件可能无法完整保存。
2. Vite 开发配置依赖本机 HTTPS 证书路径,换机器可能无法直接启动。
3. 当前“目标数据”无独立数值列,数值始终来自 source data 列;若未来业务需要需先改 PRD。
4. 小程序 xlsx 解析依赖开发者工具“构建 npm”若未构建将无法读取 xls/xlsx 文件。
5. 信息日志当前仅展示最近告警(前 8 条),若后续需要完整历史需引入分页或虚拟滚动。
四、下一步建议Next
1. 决策是否引入“目标数值列”能力(先更新 PRD 后实现)。
2. 小程序下一阶段:补充持久化恢复(上传文件与映射配置刷新不丢)。
3. 补充更多异常用例测试(空文件、超大文件、乱码表头、极端数值)。
4. 评估并处理 dev HTTPS 证书本地耦合问题,降低新环境接入成本。
5. 评估“信息日志”是否需要支持导出或清空操作。
五、执行约定Session Memory Rules
1. 新会话开始先读取本文件,再读取 6 份规范文档。
2. 每次功能完成后必须更新Done / Known Issues / Next。
3. 任何范围变化先改 PRD再改实现与计划。