2026-10-15.md 8.6 KB

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 通过。未做真实数据库或登录联调。