8ddaef7115
Co-authored-by: multica-agent <github@multica.ai>
95 lines
4.9 KiB
Markdown
95 lines
4.9 KiB
Markdown
## Work Log - ATP 渲染从 maxGraph 切换到 AntV X6(2026-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、图片上传与预览调用链未改动。
|
||
|
||
- 风险与影响:
|
||
- 影响范围仅前端 `杆塔模型管理` 页面展示层。
|
||
- 卡片模式下每项仍会触发图片预览加载请求,数据量较大时请求并发会增多(与原表格缩略图逻辑一致)。
|