# 2026-10-15 ## 权限管理子系统菜单 - 目标:新增“权限管理系统”,将系统管理、系统监控、系统工具调整到该子系统下,并移除城市生命线驾驶舱系统。 - 决策:复用原城市生命线驾驶舱的 `menu_id=2005`;首次迁移清理其原下级菜单和角色关联,再把 `menu_id=1/2/3` 挂到 2005 下。 - 角色授权:拥有系统管理、系统监控、系统工具任一目录或下级菜单的角色,自动补授 2005 父菜单;原 2005 驾驶舱授权不继承。 - 后端脚本:`pipe-network-service/sql/migration_permission_management_subsystem.sql`,面向 KingbaseES/PostgreSQL,可重复执行,附带执行后校验查询。 - 前端:`src/views/portal/index.vue` 移除右上角“进入后台”,增加权限管理系统动态入口识别、锁形图标和名称;仅在当前用户动态菜单包含该子系统时展示,点击进入第一个可见菜单。右上角欢迎语显示当前登录用户 `nickName`,昵称为空时回退登录账号。 - 验证:`npm run build:prod` 通过,仅有项目既有 Sass 弃用警告;数据库脚本未在用户数据库执行。 ## 移动端工单权限 - 部门/公司设备范围仅用于待派单且当前用户拥有派单权限的工单。 - 无设备待派单工单对所有有派单权限的用户可见、可派;有设备时按 101/102/103 对应 parent_id 1/2/3 并共同包含 4。 - 派单后不再按部门过滤,工单管理按创建人、责任人、核验人控制,待办按责任人/核验人与状态进一步收窄,详情同步。 ## PC 登录页与系统门户重构 - 登录页与门户页分别按 `prd/portal/login.html`、`prd/portal/portal.html` 重构;门户仍只展示当前用户有权访问的顶级子系统,并优先进入子系统“首页”,无首页时进入第一个可见菜单。 - 新增 `/portal/statistics`、`/portal/notices`、`/portal/notices/{noticeId}`:要求已登录但不校验具体菜单权限。统计为全网统一口径,不应用用户、角色或部门数据范围;设备取 `equipment_base` 及每台设备最新有效 `equipment_status`,今日/昨日预警按非 DRAFT 的 `early_warning.publish_time`,报警按 `alarm_data.audit_status=1` 和 `create_time`。 - 门户公告仅展示 `sys_notice.status='0'` 的最新 10 条,点击后查询正文并以弹窗展示;正文经 DOMPurify 清理后渲染。 - 登录页移动端下载二维码固定为 `public/images/mobile-app-qr.png`,文件尚未配置时展示占位,不阻断页面或生产构建。 - 验证:前端生产构建、3 组路由回归测试、后端 `zksy-admin` 及依赖模块编译通过;1440x900 浏览器截图检查通过。构建仅有项目既有 Sass 弃用警告。 ## Portal 通知公告时间展示 - 左侧“公告”改为“通知公告”;滚动时间按本地日历日展示“今天 HH:mm”“昨天 HH:mm”“前天 HH:mm”,更早或未来日期使用 `yyyy-MM-dd HH:mm`。 - 公告详情发布时间固定使用 `yyyy-MM-dd HH:mm:ss`,不使用相对日期;兼容接口普通日期及 ISO 日期输入。 - 变更文件:`src/views/portal/index.vue`。验证:直接运行组件中的格式化函数,覆盖最近三天、历史/未来日期、午夜边界、ISO 输入、秒数补零和无效值,均通过;`git diff --check` 通过。无需后端变更。 ## Portal 退出登录入口强调 - 右上角退出登录按钮改为浅蓝底、蓝色边框和蓝色半粗体文字,字号 13px、图标 15px;保持门户整体蓝色风格,增加悬停、按下及键盘焦点反馈。 - 仅修改 `src/views/portal/index.vue` 样式,不改变退出交互;验证 Vue SFC 样式编译及差异检查。 ## Portal 退出确认框引用修复 - 修复点击退出时报 `ElMessageBox is not defined`:`src/views/portal/index.vue` 显式从 `element-plus` 导入 `ElMessageBox`;项目自动导入仅覆盖 Vue、Vue Router 和 Pinia,不包含 Element Plus 服务。 - 检查门户无其他同类服务引用;SFC 编译导入绑定检查、模拟确认/取消分支和 `git diff --check` 通过。真实退出接口未在本次检查调用。 ## Portal 子系统说明文案 - `src/views/portal/index.vue` 子系统总览说明改为“地下管网核心业务系统统一入口”,不再显示县名与子系统数量;仅修改展示文案。 ## 开发登录默认填写 - 按用户要求,登录表单仅在 Vite 开发环境默认填写指定的开发登录信息;生产构建不预填密码,并沿用记住账号逻辑。不将登录信息写入记忆库或新增密码 Cookie。 - 变更:`src/views/login.vue`;验证开发/生产环境默认值与恢复账号逻辑,SFC 编译检查和差异检查。 ## 忘记密码提示 - 登录页“忘记密码?”弹窗提示统一为“请联系平台管理员”;保留现有弹窗与确认按钮,并补齐 `ElMessageBox` 显式导入。 ## 阈值配置父目录路径 - 根据用户截图,菜单 2191(燃气)和 2193(排水)的“阈值配置”父目录原 path 为数字 1/2,统一改为 `thresholdConfig`;两个目录属于不同子系统,子菜单 `warningThreshold`、组件及权限不变。 - 后端 `sql/migration_equipment_warning_threshold_config.sql` 同步路径修正;前端未发现数字路径硬编码,无需修改路由代码。提供按 menu_id 更新的 SQL,由用户在目标库执行后重新登录;本次未操作数据库。 ## 预警处置与核验权限讨论(未实施) - 用户提出将维修处置 `warning:warning:handle` 与管理核验 `warning:warning:audit` 拆分,并将预警待办的解除/退回入口合为“核验”表单。 - 核对发现:待办实际按钮在 `WarningWorkflowActions.vue`,通过 `/clear` 执行通过、`/return` 执行退回;`/resolve` 委托同一 clear Service,`/misreport` 也调用 clear。核验接口目前均为 handle 权限,需要一并对齐,避免旧入口保留处置权限。 - Service 已要求 HANDLED 状态及指定 reviewer(为空回退 publisher)才能解除/退回。建议保留此限制,核验表单必选结果、必填意见,按结果调用既有接口,其他 PC 入口与菜单授权同步。仅做代码核对和方案讨论,业务代码未修改。 ## 预警处置与核验权限实施 - 用户确认按上述方案实施;Controller 的 `/clear`、`/resolve`、`/return`、`/misreport` 改用 `warning:warning:audit`,接收/开始/提交仍使用 handle,升级权限保持原样。 - Service 同步校验处置/核验权限并过滤可执行操作;保留指定人员、HANDLED 状态、必填意见限制和原有处置闭环。 - 新增共用 `WarningReviewAction.vue`:待办页、预警处置页、管网预警页统一“核验”入口,必选核验结果(核查解除/退回办理)、必填意见,不预选结果;提交中禁止重复请求和关闭,成功刷新列表。清理旧解除/退回弹窗及管网页不符合现有状态机的待接收误报入口。 - 新增后端 `sql/migration_warning_audit_permission.sql`,为相关菜单添加“预警核验”按钮权限,可重复执行,不自动继承 handle 角色授权;本次未执行数据库脚本,部署需同步前后端、执行脚本、单独为管理角色授权并重新登录。 - 验证:前端核验及附件行为测试 8 项通过;后端权限/状态/指定核验人/解除/原处置人退回等 8 项测试通过,Maven 相关模块构建成功;前端生产构建通过(既有 Sass 弃用警告)。未执行真实数据库或登录环境联调。 ## 预警查看权限统一 - 用户确认列表与详情权限统一命名为 `warning:warning:query`。`EarlyWarningController` 中列表、待办、搜索、处置跟踪、已完成、归档、通知已读共 7 处原 list 注解改为 query;已有详情、附件、流程和统计沿用 query,处置 handle 与核验 audit 保持独立。 - PC 前端所有相关查看判断已使用 query,无需修改运行时代码;移动端源码未发现旧 list 权限判断。后端运行时代码已无 `warning:warning:list` 引用。 - 新增后端 `sql/migration_warning_query_permission.sql`,仅更新旧 list 菜单权限值,保留菜单 ID、层级与角色授权,可重复执行。数据库未执行,部署管理后端并执行脚本后需重新登录。 - 扩展 Controller 权限测试,验证 query 可访问列表和详情但不能处置/核验,以及旧 list 和单独 handle/audit 无法替代 query。修正新增测试的归档方法参数后,Controller 5 项与 Service 5 项全部通过,Maven 构建成功;两仓 `git diff --check` 通过。未做真实数据库或登录联调。