zhouyang.xie 68554b2be1 2.56.1 lang.py 退役(cli 语言包检查改指 Vue 语言包) + 从旧包取回英文生成 en.ts(814 键, 36 键按约定回落原文) + 清 target/run.log => guanlan.py check 全绿, 全门禁通过 1 hete
..
app_frontEnd_guanlan 68554b2be1 2.56.1 lang.py 退役(cli 语言包检查改指 Vue 语言包) + 从旧包取回英文生成 en.ts(814 键, 36 键按约定回落原文) + 清 target/run.log => guanlan.py check 全绿, 全门禁通过 1 hete
common 26f1eca47f 2.13.0 P9 源码目录结构变更: 实现包上提模块根(app_X/app_X_guanlan)+旧前缀别名(同名同体)+每模块 common/configs/data/README.MD/install-run-uninstall 包装+配置双根(app_ETL/app_frontEnd configs 下放, 取用口多根+单源+owner); 修文档构建器死循环(落单反引号)并支持代码栅栏 1 hete
configs 26f1eca47f 2.13.0 P9 源码目录结构变更: 实现包上提模块根(app_X/app_X_guanlan)+旧前缀别名(同名同体)+每模块 common/configs/data/README.MD/install-run-uninstall 包装+配置双根(app_ETL/app_frontEnd configs 下放, 取用口多根+单源+owner); 修文档构建器死循环(落单反引号)并支持代码栅栏 1 hete
data 26f1eca47f 2.13.0 P9 源码目录结构变更: 实现包上提模块根(app_X/app_X_guanlan)+旧前缀别名(同名同体)+每模块 common/configs/data/README.MD/install-run-uninstall 包装+配置双根(app_ETL/app_frontEnd configs 下放, 取用口多根+单源+owner); 修文档构建器死循环(落单反引号)并支持代码栅栏 1 hete
web 68554b2be1 2.56.1 lang.py 退役(cli 语言包检查改指 Vue 语言包) + 从旧包取回英文生成 en.ts(814 键, 36 键按约定回落原文) + 清 target/run.log => guanlan.py check 全绿, 全门禁通过 1 hete
README.md d67a673a03 2.17.0 前端 Vue 化(P11 起步): app_frontEnd/web (Vue3+Vite6+TS, npm 从 npmmirror 装) 构建产物 release/web + serve.json web=28110 + cli web 组件 + 网关 /web 同源; 契约侧 Python 门与 Node 冒烟各 42/42 一致; 契约支持异步构建态 json_keys_any; 设计说明 §3.6; 文档/版本表同步 1 hete
__init__.py 6076957aba 2.11.0 源码模块化重构 P0: 七个模块目录+接口层(common/app_x_guanlan/api.py)+模块边界门+四组件接入点接口+方案文档; 零行为变化 2 hete
install.bat 899d17147f 2.14.0 分别打包: pack_dist --module(四模块各自成包, 真实依赖闭包=全模块) + MODULE_PACKAGE.json 标记 + 模块 install/run/uninstall 双模 + app_common bootstrap.py(独立装/检/跑/卸) + --verify --module; 根 VERSION 镜像纳入版本门; 文档与版本表同步 1 hete
install.sh 899d17147f 2.14.0 分别打包: pack_dist --module(四模块各自成包, 真实依赖闭包=全模块) + MODULE_PACKAGE.json 标记 + 模块 install/run/uninstall 双模 + app_common bootstrap.py(独立装/检/跑/卸) + --verify --module; 根 VERSION 镜像纳入版本门; 文档与版本表同步 1 hete
pack.bat 670153db71 2.51.0 交付形态补齐: pack_module.py + 四模块 pack.bat/sh + 根 run.bat/sh(start/stop/restart/status) + install/uninstall 支持 --module/--list; 四模块包 verify 全过; 总包 918MB/9237 条目, 开箱 页面 4/5 + 卸载核验通过; 修 .sh CRLF 与模块包漏 target 1 hete
pack.sh 670153db71 2.51.0 交付形态补齐: pack_module.py + 四模块 pack.bat/sh + 根 run.bat/sh(start/stop/restart/status) + install/uninstall 支持 --module/--list; 四模块包 verify 全过; 总包 918MB/9237 条目, 开箱 页面 4/5 + 卸载核验通过; 修 .sh CRLF 与模块包漏 target 1 hete
pack_include.json 670153db71 2.51.0 交付形态补齐: pack_module.py + 四模块 pack.bat/sh + 根 run.bat/sh(start/stop/restart/status) + install/uninstall 支持 --module/--list; 四模块包 verify 全过; 总包 918MB/9237 条目, 开箱 页面 4/5 + 卸载核验通过; 修 .sh CRLF 与模块包漏 target 1 hete
run.bat 899d17147f 2.14.0 分别打包: pack_dist --module(四模块各自成包, 真实依赖闭包=全模块) + MODULE_PACKAGE.json 标记 + 模块 install/run/uninstall 双模 + app_common bootstrap.py(独立装/检/跑/卸) + --verify --module; 根 VERSION 镜像纳入版本门; 文档与版本表同步 1 hete
run.sh 899d17147f 2.14.0 分别打包: pack_dist --module(四模块各自成包, 真实依赖闭包=全模块) + MODULE_PACKAGE.json 标记 + 模块 install/run/uninstall 双模 + app_common bootstrap.py(独立装/检/跑/卸) + --verify --module; 根 VERSION 镜像纳入版本门; 文档与版本表同步 1 hete
uninstall.bat 899d17147f 2.14.0 分别打包: pack_dist --module(四模块各自成包, 真实依赖闭包=全模块) + MODULE_PACKAGE.json 标记 + 模块 install/run/uninstall 双模 + app_common bootstrap.py(独立装/检/跑/卸) + --verify --module; 根 VERSION 镜像纳入版本门; 文档与版本表同步 1 hete
uninstall.sh 899d17147f 2.14.0 分别打包: pack_dist --module(四模块各自成包, 真实依赖闭包=全模块) + MODULE_PACKAGE.json 标记 + 模块 install/run/uninstall 双模 + app_common bootstrap.py(独立装/检/跑/卸) + --verify --module; 根 VERSION 镜像纳入版本门; 文档与版本表同步 1 hete

README.md

观澜 · 前端(app_frontEnd/)

职责:v2 工作台单页与交互、图表库、经典页模板、门户与静态页装配、设计系统与界面文案(双语文案语言包 + 显示层术语)

允许依赖:app_common

对外公开面:common/app_frontEnd_guanlan/api.py —— 模块间调用只许走这里(scripts/module_boundary_audit.py 机器检查)。

目录(P5 起,2026-09-28):

common/app_frontEnd_guanlan/
  api.py                 公开面(10 个公开名,其中 9 个在本模块内)
  assets/                app.js · app.css · charts.js · favicon.svg · classic_chart.js(经典页图表脚本)
  pages/                 shell.html(v2 外壳)· build.py(出页)· snapshot.py(单文件烘焙)
                         classic.py + classic_{fleet,problem,turbine}.html(从 serve.py 抽出的经典页模板)
  design.py              设计系统 CSS 单一来源(serve/静态页/台页共用)
  lang.py                双语文案语言包(一条文案一个 key)
  terms.py               显示层术语映射(内部说法 → 现场说法)
  builders/              portal_build.py(门户装配)· portal_fix_anchors.py(锚点修复)· portal_inject_claims.py(结论段注入)

迁移状态:P5 已完成(2026-09-28) —— 13 件实体迁入本模块;旧路径全部留兼容壳: src/windscada/ui/{build,snapshot}.py、src/windscada/{design,lang,terms}.py(模块别名壳,python -m 也照旧)、 scripts/{portal_build,guanlan_portal_fix_anchors,guanlan_portal_inject_claims}.py(CLI 壳)。

本轮实逮:① 资源件(js/css/svg/html)无壳可留,按路径读它们的审计器必须同步改(detail_deps、pages_audit、 guanlan_baseline_manifest、audit_chinese_terms、check_portability 的 ALLOW 键、configs/registry.yaml 的 consumers); ② 迁入 builders/ 后 __file__ 上跳层数变了 ⇒ 取根统一走公共层 install_root();③ 服务类脚本的模板常量可以抽成 真资源件 + 只读装载器,但装载必须 newline=''(否则 CRLF 翻译会改掉模板字节)。

验收:build.render 四种组合与 design 两段 CSS 逐字节等于迁移前;serve.py 四个模板常量(CHARTJS/PAGE*) 与三张经典页渲染逐字节一致;scripts/portal_build.py --verify 装配结果与 20.19 MB 门户逐字节一致; 服务重启后门户 / /detail/v2 / /ops / /cms/ 页面体 sha256 与迁移前一致;全门禁 rc=0。

归口说明(2026-09-28 用户裁):语言包与显示层术语归前端(只有出页器与后端 cli.py 的"语言包闸"用它们); 英文投影层 ui_en / i18n_en / data_tpl_en / en_text 仍在既有路径(后端 serve.py 的数据层英文投影在用),归口待裁。

依据:docs/重构方案_模块化_v0.1.md(用户令 2026-09-22:只重构目录与接口、零行为变化、逐版本可回滚)。

安装部署与运行

本系统是单包离线交付:解压到无空格无中文路径 → 安装 → 自检 → 启动(一套安装,七个模块共用一份 .venv)。 本模块目录里的脚本只是入口包装,内部调安装根的统一入口,保证"进模块目录也能装/跑/卸":

动作 Windows Linux/macOS 内部实际调用
安装 install.bat sh install.sh 安装根 install.bat / install.sh(建 .venv、装依赖、自检、注册服务)
运行 run.bat sh run.sh 安装根 start.bat(Windows)/python guanlan.py serve(跨平台)
卸载 uninstall.bat sh uninstall.sh 安装根 uninstall.bat / uninstall.sh

目录约定(P9,2026-09-28 用户令):

app_frontEnd/
  common/               模块内通用插件/组件(旧导入前缀的兼容别名在此保留一个版本)
  configs/              本模块专属配置域(共用单件在安装根 configs/)
  data/                 模块相关数据件(运行期数据在安装根 data/、outputs/)
  app_frontEnd_guanlan/                观澜在本模块的实现包(模块间调用只许经其中的 api.py)
  README.MD             本文件(职责 / 公开面 / 安装部署与运行)
  install.bat|sh  uninstall.bat|sh  run.bat|sh

自检与打包:安装根 check.bat(=python guanlan.py check)、pack.bat / sh pack.sh (打包 + 开箱验证:页面 5/5 + 卸载核验)。

Web 前端(Vue 3 + Vite + TypeScript + Node,P11 起)

cd app_frontEnd/web
npm install            # 依赖源 https://registry.npmmirror.com(本机可达)
npm run build          # 产物 → release/web/(由静态组件伺服、经网关 /web 前缀暴露)
npm run dev            # 开发期:/api → 127.0.0.1:18033,/algorithm → 127.0.0.1:18050(见 vite.config.ts)
node tools/contract_smoke.mjs    # 用与浏览器同一条数据通道复核冻契约(42 条端点)
  • 取数只走 src/api/contract.ts(相对路径,不带 host),路径与形状以 app_backEnd/app_backEnd_guanlan/contract/http_api_v1.json 冻契约为准;
  • 迁移纪律:v2 工作台逐页签迁移,与重构前页面指纹对拍通过后才删除对应的 Python 前端源码。