Files
fquiz/memory/2026-05-04.md
T
2026-05-04 09:34:49 +08:00

95 lines
4.9 KiB
Markdown
Raw 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.
## Work Log - ATP 渲染从 maxGraph 切换到 AntV X62026-05-04
- 背景:
- 用户要求“直接改成 AntV X6 + 一套电气符号 SVG 方案,去掉 maxgraph 方案”。
- 本次改动(最小闭环):
- 前端 ATP 渲染组件整体替换:
- 删除:`web/src/components/atp-maxgraph-viewer.tsx`
- 新增:`web/src/components/atp-x6-viewer.tsx`
- 方案:`@antv/x6` 只读渲染 + 自定义电气符号 SVG(按元件类型 R/L/C/SW/SRC/XFMR/LINE/CTRL/MISC 映射)
- 页面引用与文案同步:
- 文件:`web/src/app/admin/power-lines/atp-viewer/page.tsx`
- 组件引用从 `AtpMaxGraphViewer` 改为 `AtpX6Viewer`
- 卡片标题从“maxGraph 渲染结果”改为“X6 渲染结果”
- 依赖替换:
- `web/package.json`:移除 `@maxgraph/core`,新增 `@antv/x6`
- 锁文件同步:`web/package-lock.json`、根 `package-lock.json`
- 验证:
- `npm run build:web` 通过(含编译、TypeScript、静态页生成)。
- `npm run lint:web` 当前工程基线仍有大量历史问题(含 Cesium 产物目录与其他页面告警/错误),本次未新增针对性 lint 规则改动。
- 风险与影响:
- 影响面限定在 ATP 查看器前端渲染层与前端依赖。
- ATP 图布局策略沿用原有节点位置推导逻辑;渲染引擎替换后视觉细节(标签锚点/线段路由)会与旧 maxGraph 有差异。
- `web/.next/lock` 在部分异常终止场景可能残留,已在本次验证过程中手动清理后重跑构建。
## Work Log - 杆塔模型初始化改为上传文件方式(2026-05-04)
- 背景:
- 用户要求“杆塔模型初始化从指定文件读数据,改成文件上传方式”。
- 本次改动(最小闭环):
- 后端新增上传初始化接口:
- 文件:`api/app/api/v1/tower_models.py`
- 新增 `POST /api/v1/tower-models/seed/upload`
- 入参:
- `setting_file`(必选,LP_Setting
- `ganta_file`(必选,LP_GanTa
- `images_zip`(可选,模型图片压缩包)
- `overwrite_existing`query,是否覆盖已有模型)
- 后端服务新增上传导入逻辑:
- 文件:`api/app/services/tower_model_service.py`
- 新增 `seed_tower_models_from_upload(...)`
- 解析策略:
- LP_Setting:从上传文本解析 `<GanTaType_Models>` 模型清单
- LP_GanTa:从上传 CSV/TXT 内容解析默认参数
- images_zip:按“文件名 stem == 模型编码”匹配图片(支持 jpg/jpeg/png/webp/gif/bmp
- 持久化与事件:沿用原有 `tower-model.seeded` topic 发布与默认参数回填逻辑
- 复用与抽取:
- `LP_Setting` 解析提取为 `_load_legacy_model_codes_from_text`
- `LP_GanTa` 解析提取为 `_load_legacy_defaults_by_model_from_bytes`
- 前端初始化入口改造:
- 文件:`web/src/app/admin/tower-models/page.tsx`
- 将“初始化老系统数据”改为“上传文件初始化”
- 新增上传弹窗与覆盖开关,调用 `/api/v1/tower-models/seed/upload`
- 保留“仅新增/覆盖已有模型”语义(通过 `overwrite_existing` 控制)
- 验证:
- 后端语法:`python3 -m compileall api/app/api/v1/tower_models.py api/app/services/tower_model_service.py` 通过。
- 前端构建:`npm run build:web` 通过。
- 风险与影响:
- 影响面限定在杆塔模型初始化流程(初始化入口与导入数据来源)。
- 旧接口 `POST /api/v1/tower-models/seed/legacy` 仍保留,兼容历史调用。
## Work Log - 杆塔模型展示支持卡片/列表视图(2026-05-04
- 背景:
- Issue `FL-201` 要求“塔杆模型展示支持卡片和列表呈现,默认卡片”。
- 本次改动(最小闭环):
- 文件:`web/src/app/admin/tower-models/page.tsx`
- 新增页面状态:
- `viewMode: "card" | "list"`,默认值 `"card"`
- 新增展示方式切换控件:
- 在筛选区下方增加 `Segmented`,支持“卡片/列表”切换。
- 新增卡片视图渲染:
- 以网格布局渲染模型卡片(移动端单列、`md` 双列、`xl` 三列)。
- 卡片内展示模型名称/编码、状态、塔型、排序、默认参数标签、图片预览。
- 管理权限下保留“编辑/上传图片/删除”操作,行为与列表视图一致。
- 保留原有列表视图:
-`Table` 渲染逻辑不变,作为“列表”模式展示。
- 验证:
- 未执行编译/安装类命令(遵循任务约束“不要做代码编译检查,严禁安装依赖”)。
- 通过代码 diff 校对确认:
- 默认进入页面即为“卡片”展示。
- 切换到“列表”时回退到既有表格视图。
- 现有 CRUD、图片上传与预览调用链未改动。
- 风险与影响:
- 影响范围仅前端 `杆塔模型管理` 页面展示层。
- 卡片模式下每项仍会触发图片预览加载请求,数据量较大时请求并发会增多(与原表格缩略图逻辑一致)。