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

3.5 KiB
Raw Blame History

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_existingquery,是否覆盖已有模型)
    • 后端服务新增上传导入逻辑:
      • 文件: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 仍保留,兼容历史调用。