2026-09-24 会话记录
此前报警审核、运营重构、日志及状态样式调整的完整记录已保留至 当日前期归档。稳定决策已合并到长期记忆,不以归档中的过期实现为准。
排水报警 GIS 按设计稿重排
目标与结论
- 用户要求参考
E:/work/prd/outputs/alarm-gis.html 美化排水 GIS。实际入口仍是 src/views/subSystem/alarm/drainage/alarmGIS.vue,组件名 DrainageAlarmGIS、菜单 path drainageAlarmGIS 不变。
- 页面改为顶部筛选、四级统计、左侧设备列表和大地图;右侧详情采用独立抽屉,打开时不压缩地图。统一蓝白底色、细边框、轻量文字、小号等级标记、定位/缩放工具、图例及列表选中效果;窄屏改为上下布局,抽屉全宽。
- 详情保留监测曲线、报警记录、设备信息,不添加周边环境;报警历史使用紧凑时间线卡片和框架分页。详情数值明确标为报警触发快照,不冒充当前测量值。保留真实接口与 GisMapCanvas,不复制原型的示例数据或腾讯地图配置。
- 四级统计按当前查询结果聚合设备计数,并明确标注;等级仍为红、橙、蓝、绿,设备按等级、编码排序。后端范围、分页、默认未处理状态不变。无实际值事件仍出现在地图/历史中,仅曲线候选排除空值,0 有效。
- 增加底图加载/失败/重试、无坐标提示与无匹配设备状态;底图未就绪时禁用地图操作,设备详情仍能打开。
- 新增 scoped
alarmGIS.scss,回归断言在 tests/alarmOperations.test.mjs;新增独立 tests/alarmGIS.visual.mjs,只在测试服务器中替换接口和底图,不影响生产数据源或增加 npm 依赖。
验证结果
- 报警运营、历史、审核及 GIS 画布/聚合 Node 测试共 42 项通过。
- 使用本机 Edge 完成隔离浏览器交互测试:统计聚合、空值/零值曲线筛选、历史分页、设备信息、无坐标、地图重试/定位、查询/重置、详情不压缩地图、390px 窄屏无横向溢出;无浏览器 JavaScript 错误。已检查桌面与窄屏截图。
npm run build:prod 成功,构建输出到系统临时目录,保留原有发布目录;git diff --check 通过。
风险与后续
- 浏览器验证使用隔离测试数据与地图替身,未验证真实登录、后端实时数据或地图提供商底图加载。部署后需在实际业务菜单中核验。
- 本轮无后端、SQL 或菜单变更,未提交、推送或部署,保留所有既有工作区修改及
.feisuan/、dist-verify/。
- 当日记录接近 20 KB,已归档前期完整记录并同步索引、长期记忆,未丢弃历史内容。
确认 dist-verify 能否清理
- 用户仅询问
E:/work/city-life-line/dist-verify 能否删除,本轮只检查,未执行删除。
- 目录不是链接,内容为编译后的 HTML、assets 及静态资源,Git 未跟踪;项目源码、配置和脚本未发现依赖该路径。Vite 默认构建输出为
dist,开发服务不依赖 dist-verify。
- 结论:该验证构建产物可清理,不影响源码和正常开发/构建;如有项目外静态服务另行指向该目录,需先停用或切换。需要时可通过
npm run build:prod -- --outDir dist-verify 重新生成当前源码的验证产物。
修复供水首页引用已删除的报警态势接口
- 截图报错为
waterSupply.js 未导出 getAlarmLedgerDashboard。合并后恢复的 WaterSupplyHome.vue 仍调用旧函数,旧后台 /waterSupply/alarm/ledger/dashboard 也已删除;单补导出会继续报 404。
- 首页改用
src/api/alarm.js 的 getAlarmDashboard({ rootTypeId: WATER_DEVICE_ROOT_TYPE_ID, days: 7 })。统一 AlarmController 新增 GET /api/alarm/dashboard,沿用 alarm:operations:list 权限及获授权菜单/类型树校验,不恢复旧接口或旧页面。
- 后端在数据库聚合总报警数、当前报警设备去重数、分级自然日趋势、监测指标及设备类型占比;保持历史事件也参与统计、设备状态不由报警状态替代。近 N 天使用北京时间,允许 1~31 天,无事件日期四级计数补 0;空范围不查询全表。指标名称优先配置表并防止重复关联放大计数,设备类型从台账关联。
- 不删首页图表、不改布局及其他取数链路,不使用静态模拟数。测试增加首页所有 API 命名导入与真实导出的解析校验,防止重构删除接口后遗漏消费方。
- 验证:相关前端 Node 测试 50 项、生产构建、后端运营 service/mapper/controller/范围测试 26 项、实际 MyBatis SQL 的内存 PGlite 兼容测试 4 项均通过。两仓 diff 检查通过;构建输出到临时目录,未覆盖原发布目录。
- 前端和管理后端需同步更新,重启后端再刷新页面;无需数据库脚本。未验证真实登录或实际 KingbaseES、未重启服务、未部署/提交/推送。过程中发现其他工单代码与测试文件的并行改动,均保留未覆盖。
修复报警历史排序运行时报错
- 用户截图显示
localeCompre is not a function;将 src/views/subSystem/alarm/utils/alarmHistoryModel.js 第 31 行方法名修正为 localeCompare,恢复多条历史记录的排序与分组。
- 验证:直接运行真实模块,时间倒序、微秒精度、同时间大整数 ID 倒序、日期分组、空时间/空列表与输入不变断言均通过,文件无编辑器错误。
- 未进行浏览器复验;刷新报警历史页面可核验实际显示。本次无后端变更,未提交或推送。
GIS 等级统计文案微调
- 按用户要求修改
src/views/subSystem/alarm/drainage/alarmGIS.vue:去掉等级统计中的“当前结果 ·”,将“报警设备”合并到上方等级名称后面。
- 编辑器检查无错误,其他位置有类型及未解析变量警告;本次仅修改静态文案结构,未做浏览器复验,无后端或统计逻辑变更。
GIS 设备搜索范围和输入宽度
alarmGIS.vue 输入提示改为“请输入设备编码/名称”;alarmGIS.scss 桌面及中等桌面断点将搜索列限制到 260px,保留小屏自适应。
- 后端
AlarmOperationsMapper.xml 共用关键词条件移除安装位置匹配,地图/清单等仅按设备编码或名称模糊查询;AlarmReviewQuery.java 补充参数文档,AlarmOperationsMapperTest.java 增加关键词 SQL 回归断言。
- 验证:Vue 模板、SCSS 编译通过;后端 Mapper 测试 1 项通过,涵盖地图/清单/提醒/等级统计关键词及原有查询约束;编辑器无错误,两仓 diff 检查通过。
- 需更新并重启管理后端使搜索范围生效,无数据库结构变更;未做真实接口或浏览器复验,未部署、提交或推送。
GIS 固定当前报警及筛选统计样式
- 按用户五项要求调整
alarmGIS.vue / alarmGIS.scss:移除监测状态筛选,设备搜索和报警等级标签左置;去掉右上角“排水监测视图”和详情底部状态说明;统计标题仅等级,下一行以灰色“报警设备”紧接数量与单位。保留紧凑输入宽度及小屏布局。
- 地图请求固定
alarmStatus: 0,后端 AlarmOperationsService.map 强制使用 UNHANDLED,不允许通过请求切换为已处理报警。地图列表、点位及统计同口径;详情报警记录仍保留设备历史。
AlarmOperationsServiceTest 补充缺省/0/1状态请求回归;服务和 Mapper 共15项测试通过。Vue脚本、模板、SCSS编译通过,编辑器无错误。
- 本轮未进行浏览器或真实数据库复验;当前工作区未找到此前记录的两个GIS前端测试文件。需同步更新前后端并重启管理后端,无数据库结构变更,未部署或提交。