3.5 KiB
3.5 KiB
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
- 前端 ATP 渲染组件整体替换:
-
验证:
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)
- LP_Setting:从上传文本解析
- 持久化与事件:沿用原有
tower-model.seededtopic 发布与默认参数回填逻辑
- 文件:
- 复用与抽取:
LP_Setting解析提取为_load_legacy_model_codes_from_textLP_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仍保留,兼容历史调用。