index.md 9.4 KB

城市生命线项目记忆索引

项目概况

  • 项目:城市生命线 — 地下管网管控平台
  • 前端:Vue 3.4、Vite 5.3、Element Plus、Pinia、UnoCSS、SCSS
  • 基础框架:RuoYi-Vue 3.8.8 改造
  • 业务领域:地下管网、燃气、排水、供水、告警、风险和应急指挥调度

关键入口

  • 应用入口:src/main.js
  • 根组件:src/App.vue
  • 路由守卫:src/permission.js
  • 路由定义:src/router/index.js
  • 动态权限路由:src/store/modules/permission.js
  • Axios 封装:src/utils/request.js
  • Vite 配置:vite.config.js
  • 环境变量:.env.development、.env.staging、.env.production

运行方式

cd E:\city-life-line
npm install       # 首次运行或依赖变化时执行
npm run dev       # 默认 http://localhost:80

开发环境 /dev-api 代理到本机 8300/pipe 后端;如果 80 端口不可用,可运行 npm run dev -- --port 5173。不要依赖 bin/run-web.bat 的 Yarn 命令,当前项目以 npm 和 package-lock.json 为准。

业务模块

当前源码实际包含 basic、alarm、gas、drainage、dispatch、cityLifeline、waterSupply、manholeCover、pipeNetwork、lifeCompany、risk 和 hidden 等模块。

当前已知风险

  • 权限管理系统菜单迁移脚本已生成但尚未在目标 KingbaseES 执行;部署 PC 前端后执行 pipe-network-service/sql/migration_permission_management_subsystem.sql,重新登录以刷新动态路由(2026-10-15)。
  • 预警清单已接入发布和处置:可选事项、发布配置副本、三环节时限、处置原因多选。开发库已执行 pipe-ner-server/pipe-network-service/sql/migration_warning_catalog_binding_kingbase.sql,清单菜单及授权已核对,无菜单变更;主服务重启后页面闭环通过,测试数据清理完毕。采集自动关联仍需使用新版共享模块重新打包、重启并真实联调,详见后端 docs/warning-catalog-binding-2026-09-29.md。
  • 供水报警管理 #66 恢复独立只读分析页(流水、四级趋势、分类占比、台账),供水菜单按 rootTypeId=1 路由到该页;后端统一报警接口需同步部署设备报警状态及四态展示状态筛选,不能仅部署前端。

  • 报警清单 alarm/common/list.vue 顶部新增报警总数、监测异常、监测已恢复三张统计卡片,按当前全部筛选结果计数、不受分页影响;既有查询区和表格保持原样。复用 /api/alarm/statistics,后端分级统计新增 abnormal/recovered,需要同步更新管理后端,无数据库结构变更(2026-09-24)。

  • 业务菜单主要由后端 /getRouters 动态下发,前端常量路由不包含完整业务树。

  • 门户页调用 userStore.logout(),用户 Store 当前定义的方法名为 logOut(),需要后续确认是否修复。

  • 供水 19 个页面已按 5.3.2 文档命名补齐并接入后端接口,包含设施 CRUD、设备、监测、报警、统计和轻量 GIS;部署菜单仍依赖后端 sys_menu 与角色授权。

  • 供水 T3 统计(Issue #7)与 T4 运行监测(Issue #8)已人工验收通过并在 Gogs 关闭(2026-09-05)。

  • 报警提醒/清单/审核及配套 utils、styles 位于 src/views/subSystem/alarm/common;排水研判及 GIS 位于 src/views/subSystem/drainage/alarm。详情为 GET /api/alarm/{id} 并要求 rootTypeId。本次已有环境执行 migration_alarm_common_components.sql 精准更新七个公共页面菜单的 component,同步部署前后端并重新登录;path/query/权限保持不变,初装脚本已同步(2026-09-24)。

  • 供水 GIS 已按排水版复制到 src/views/subSystem/waterSupply/alarm/alarmGIS.vue;旧地图及其专用接口删除,首页同步使用统一地图接口。菜单 2120 由 migration_water_supply_alarm_gis.sql 更新为 waterSupplyAlarmGIS,范围 JSON 写在 query(rootTypeId=1),需同步部署前后端并执行脚本、重新登录(2026-09-24)。

  • 供水首页恢复后遗留的 getAlarmLedgerDashboard 导入已修复,态势图改用统一 GET /api/alarm/dashboard?rootTypeId=1&days=7;本次需同步更新并重启管理后端,无新增结构脚本,原统计图表保留(2026-09-24)。

  • 报警单号 alarm_no 最新要求为后端程序生成(BJyyyyMMddHHmmss + 4 位随机数,北京时间),原数据库生成触发器/序列由最新版脚本移除;管理端和采集 API 需同步部署。

  • 报警确认只记一条审核日志,包含实际工单号;工单操作不复制到 alarm_log。历史共用 AlarmHistory.vue,昵称、时间倒序、日期分组及图片预览;后端两工程各自定义 AlarmLogOperTypeEnum,值保持一致(0~3),不新增共享模块,已有环境执行 migration_alarm_review_log.sql 后同步部署两端及前端,历史旧日志保留(2026-09-24)。

  • 若干排水请求设置 X-Silent-Error,但 Axios 拦截器未处理该标志。

  • 报警处置历史当天/前一天只显示“今天”“昨天”,不附加日期;更早记录显示日期、跨年保留年份。审核页和详情页共用,具体操作时间仍保留时分秒。

  • 报警详情三项状态已改为普通字重、横排小号浅色标签,去掉灰底大卡片;其他详情内容和状态逻辑保持不变。

  • 排水 alarmGIS.vue 已按设计稿调整为等级统计、设备列表和大地图,详情使用不压缩地图的侧边抽屉;沿用真实接口、百度画布和系统分页。42 项相关回归、隔离浏览器布局/交互检查及生产构建通过,真实底图与登录环境待部署核验(2026-09-24)。

  • 报警提醒仅未处理;清单查询文案/审核结果筛选已调整;GIS 曲线与研判下拉仅允许有实际值事件(包含 0),研判后端通过 actualValueOnly=true 在分页前过滤。此次无需结构脚本,前后端需部署后生效。

  • 百度地图 AK 仍由 index.html 直接配置,环境变量未形成统一生效入口。

  • package.json 没有测试、Lint 或类型检查脚本。

  • 供水管网信息查询页已重构接入统一表 pipe_network_base(/PipeNetworkBase/*,network_type=2);旧表 water_pipe_info 的接口、实体、mapper 与前端死代码已全部删除,供水 GIS 图与统计分析 mapper 已迁移至新表(均带 network_type='2'),压力分布图改为等级分布(pipe_network_level 字典);数据迁移与删表由用户侧执行(2026-09-09)。

  • 管理端工单状态契约已与后端重构后的 0–7 状态机对齐;6-延期中 是处理旁路,终态为 5-已结案 与 7-已取消。

  • 供水「设备异常管理」页面已按统一设备模块还原(Gogs #65):取数走 /equipment-base + /equipment-base/statistics?rootTypeId=1,只读看板 + 右侧详情抽屉,导出为当前筛选结果的 CSV。资产状态编码仍有分歧:后端 CurrentStatusEnum(0-在用/1-维修/2-报废)与 waterSupplyUiModel/旧 GIS 的 3-维修 未统一,收敛前维修中设备在异常看板与 GIS 可能判定不同(2026-09-24)。

长期记忆

会话记录