You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

17 KiB

操作日志

模块编码audit-log 端侧Web专属仅超级管理员 关联文档01-模块划分 §2.3 / 02-功能清单-超级管理员 §4 / 03-业务流转逻辑-超级管理员 §8 / 05-接口规范 §9.2 / 06-项目技术要求 §4.5 强制规范遵循 07-前端界面开发规范.md

功能概览

项目 说明
菜单名称 操作日志
子菜单 权限变更日志、账号操作日志
功能编号 SA-L-01 ~ SA-L-02
权限编码前缀 audit-log:permission:view / audit-log:list:*

页面1权限变更日志页

页面编号SA-L-01-P01 端侧归属Web专属 页面路径/audit-log/permission

界面布局

┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 操作日志 > 权限变更日志                                    │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区]                                                      │
│ 操作人[____] 操作类型[▼] 角色[____] 日期[起始]~[结束] [查询] [重置]│
├──────────────────────────────────────────────────────────────────┤
│ [列表区]                                                          │
│ 序号 | 操作时间 | 操作人 | 操作类型 | 目标角色 | 变更摘要 | 操作    │
│ 1    | 14:00   | admin  | 权限修改 | 巡检主管 | +2项 -1项 | 查看  │
│ 2    | 11:30   | admin  | 角色创建 | 保洁主管 | 初始权限  | 查看  │
│ 3    | 09:15   | admin  | 角色分配 | 医院查看 | 分配给5个账号| 查看│
├──────────────────────────────────────────────────────────────────┤
│ [分页]  共120条  每页[20▼]  < 1 2 3 ... 6 >                       │
└──────────────────────────────────────────────────────────────────┘

查询条件

字段名 控件类型 必填 默认值 说明
操作人 文本输入 模糊匹配
操作类型 下拉单选 全部 角色创建/权限修改/角色分配/角色移除
角色 文本输入 模糊匹配角色名称
日期范围 日期范围 操作时间范围

列表字段

序号 字段名 列宽 支持排序 说明
1 序号 60px 自增
2 操作时间 150px 默认倒序
3 操作人 100px
4 操作类型 100px 彩色标签区分
5 目标角色 120px
6 变更摘要 150px +N项 -M项 简述
7 操作 80px 查看详情

操作按钮

按钮 权限编码 位置 显示条件 说明
查看详情 audit-log:permission:view 行操作 始终 弹窗展示变更前后对比

变更详情弹窗

┌──────────────────────────────────────────────────────────────────┐
│ 权限变更详情                                               [×]    │
├──────────────────────────────────────────────────────────────────┤
│ 角色:巡检主管                                                     │
│ 操作人:超级管理员(admin)                                          │
│ 操作时间2026-04-16 14:00:00                                     │
│ 操作类型:权限修改                                                  │
│ 操作IP192.168.1.100                                             │
├──────────────────────────────────────────────────────────────────┤
│ 变更对比:                                                         │
│  [+新增] 在线报修 → 工单详情 → 延期审批 → 审批                     │
│  [+新增] 在线报修 → 工单列表 → 工单管理 → 导出                     │
│  [-移除] 巡检管理 → 巡检计划 → 计划管理 → 删除                     │
├──────────────────────────────────────────────────────────────────┤
│                                                         [关闭]    │
└──────────────────────────────────────────────────────────────────┘

API端点

页面操作 API路径 方法 说明
列表查询 /api/v1/audit-logs/permission GET 分页查询
详情查询 /api/v1/audit-logs/permission/{id} GET 含变更前后对比

交互流程要求

  1. 页面加载流程

    • 进入页面 → 调用 GET /api/v1/audit-logs/permission 加载列表(默认倒序)
    • 并行加载操作类型下拉
    • 列表为空时显示空状态
  2. 查询交互流程

    • 填写条件 → 点击"查询"→ 调用API → 重置到第1页
    • 日期范围最多查询90天
  3. 行内操作流程

    • 查看详情:点击"查看"→ 弹窗展示变更前后对比
    • 新增权限绿色 [+新增] 标记,移除权限红色 [-移除] 标记
  4. 异常处理

    • 日期范围超限 → 提示"查询时间范围不能超过90天"
    • 详情加载失败 → 提示错误信息
  5. 权限控制交互

    • audit-log:permission:view → 页面不可见
  6. [H1]防重复请求(列表页)

    • 查询按钮点击后 disabled + loading态API返回后恢复
    • 行内"查看"按钮点击后整行操作禁用 + loading态
    • 分页切换 abort上一请求后再发新请求
  7. [H2]超时与加载反馈(列表页)

    • 列表查询 timeout=15秒
    • 超时 → ElMessage.error("请求超时,请稍后重试") + 按钮恢复
    • 加载>2秒显示全局ElLoading
  8. [H8]操作结果反馈

    • 查询成功 → 正常渲染;查询失败 → ElMessage.error(0手动关闭)
  9. [H1]防重复请求(详情弹窗)

    • 详情查看:点击"查看"后该行按钮disabled弹窗加载完成后恢复
  10. [H2]超时与加载反馈(详情弹窗)

    • 详情查询 timeout=15秒
    • 弹窗内 v-loading 展示加载态

组件规范

元素 组件 配置参数
日期范围选择 el-date-picker type="daterange", value-format="YYYY-MM-DD"
操作类型标签 el-tag 角色创建:type="success", 权限修改:type="warning", 角色分配:type="primary", 角色移除:type="danger"
变更摘要 span [+N项] color=green, [-M项] color=red
详情弹窗 el-dialog width="650px"
新增权限 div color=var(--el-color-success)
移除权限 div color=var(--el-color-danger)

校验规则

字段 规则 错误提示
日期范围 最多90天 "查询时间范围不能超过90天"

响应式布局

断点 布局调整
≥1280px桌面端 查询条件一行排列;列表完整展示所有列
1024-1279pxPad横屏 查询条件两行排列;"目标角色"列隐藏
768-1023pxPad竖屏 查询条件两行排列;列表仅显示:序号、操作时间、操作人、操作类型、操作

页面2账号操作日志页

页面编号SA-L-02-P01 端侧归属Web专属 页面路径/audit-log/account

界面布局

┌──────────────────────────────────────────────────────────────────┐
│ [面包屑] 操作日志 > 账号操作日志                                    │
├──────────────────────────────────────────────────────────────────┤
│ [查询条件区]                                                      │
│ 操作人[____] 操作类型[▼] 账号类型[▼] 日期[起始]~[结束] [查询] [重置]│
├──────────────────────────────────────────────────────────────────┤
│ [列表区]                                                          │
│ 序号 | 操作时间 | 操作人 | 操作类型 | 目标账号 | 账号类型 | 详情    │
│ 1    | 15:00   | admin  | 账号创建 | hosp01  | 医院    | 查看    │
│ 2    | 14:30   | admin  | 账号续期 | prop01  | 物业    | 查看    │
│ 3    | 10:00   | admin  | 账号禁用 | prop02  | 物业    | 查看    │
├──────────────────────────────────────────────────────────────────┤
│ [分页]  共85条  每页[20▼]  < 1 2 3 4 5 >                          │
└──────────────────────────────────────────────────────────────────┘

查询条件

字段名 控件类型 必填 默认值 说明
操作人 文本输入 模糊匹配
操作类型 下拉单选 全部 创建/编辑/启用/禁用/续期/重置密码
账号类型 下拉单选 全部 医院/物业管理员
日期范围 日期范围 操作时间范围

列表字段

序号 字段名 列宽 支持排序 说明
1 序号 60px 自增
2 操作时间 150px 默认倒序
3 操作人 100px
4 操作类型 100px 彩色标签
5 目标账号 120px
6 账号类型 90px 医院/物业管理员
7 绑定单位 150px 医院或物业公司名称
8 详情 80px 查看

操作按钮

按钮 权限编码 位置 显示条件 说明
查看详情 audit-log:list:view 行操作 始终 弹窗展示完整操作信息

操作详情弹窗

┌──────────────────────────────────────────────────────────────────┐
│ 账号操作详情                                               [×]    │
├──────────────────────────────────────────────────────────────────┤
│ 操作人:超级管理员(admin)                                          │
│ 操作时间2026-04-16 15:00:00                                     │
│ 操作IP192.168.1.100                                             │
│ 操作类型:账号创建                                                  │
│ 目标账号hosp01                                                   │
│ 账号类型:医院账号                                                  │
│ 绑定医院XX医院                                                    │
├──────────────────────────────────────────────────────────────────┤
│ 变更前数据:(无,新增操作)                                        │
│ 变更后数据:                                                       │
│   登录账号hosp01                                                 │
│   绑定医院XX医院                                                  │
│   有效期至2027-04-16                                             │
│   分配角色:医院查看模板                                            │
├──────────────────────────────────────────────────────────────────┤
│                                                         [关闭]    │
└──────────────────────────────────────────────────────────────────┘

API端点

页面操作 API路径 方法 说明
列表查询 /api/v1/audit-logs/account GET 分页查询
详情查询 /api/v1/audit-logs/account/{id} GET 含变更前后数据

交互流程要求

  1. 页面加载流程:进入页面 → 调用列表API加载默认倒序→ 并行加载操作类型和账号类型下拉

  2. 查询交互:填写条件 → 点击"查询"→ API调用 → 重置到第1页日期范围最多90天

  3. 行内操作:点击"查看"→ 弹窗展示完整操作信息操作人、时间、IP、变更前后数据对比

  4. 异常处理:日期超限提示;详情加载失败提示错误

  5. 权限控制:无 audit-log:list:view → 页面不可见

  6. [H1]防重复请求(列表页)

    • 查询按钮点击后 disabled + loading态API返回后恢复
    • 行内"查看"按钮点击后整行操作禁用 + loading态
    • 分页切换 abort上一请求后再发新请求
  7. [H2]超时与加载反馈(列表页)

    • 列表查询 timeout=15秒
    • 超时 → ElMessage.error("请求超时,请稍后重试") + 按钮恢复
    • 加载>2秒显示全局ElLoading
  8. [H8]操作结果反馈

    • 查询成功 → 正常渲染;查询失败 → ElMessage.error(0手动关闭)
  9. [H1]防重复请求(详情弹窗)

    • 详情查看:点击"查看"后该行按钮disabled弹窗加载完成后恢复
  10. [H2]超时与加载反馈(详情弹窗)

    • 详情查询 timeout=15秒
    • 弹窗内 v-loading 展示加载态

组件规范

元素 组件 配置参数
日期范围选择 el-date-picker type="daterange", value-format="YYYY-MM-DD"
操作类型标签 el-tag 创建:type="success", 编辑:type="primary", 启用:type="success", 禁用:type="danger", 续期:type="warning", 重置密码:type="info"
详情弹窗 el-dialog width="600px"
变更前数据 el-descriptions title="变更前", :column=1, border
变更后数据 el-descriptions title="变更后", :column=1, border

校验规则

字段 规则 错误提示
日期范围 最多90天 "查询时间范围不能超过90天"

响应式布局

断点 布局调整
≥1280px 查询条件一行;列表完整展示
1024-1279px 查询条件两行;"绑定单位"列隐藏
768-1023px 查询条件两行;列表仅显示:序号、操作时间、操作人、操作类型、详情

需求追溯

功能点编号 功能名称 文档来源 后续服务 关联功能
SA-L-01 权限变更日志 02-超级管理员 §4 / 03-超级管理员 §8.2 / 01 §8.5 权限管理(变更时自动记录)
SA-L-02 账号操作日志 02-超级管理员 §4 / 03-超级管理员 §8.1 账号管理(操作时自动记录)

业务规则

  1. 日志记录范围:权限管理(角色创建/修改/删除、权限分配/变更)、账号管理(创建/启停/续期/有效期修改)、系统管理(配置变更/缓存清理/版本管理来源03-超级管理员 §8.1
  2. 权限审计日志特殊展示:额外展示变更前后权限对比,用[+新增][-移除]标记来源03-超级管理员 §8.2
  3. 日志记录内容操作人、时间、IP、模块、操作类型、变更前后数据快照来源06 §4.5
  4. 日志保留期限至少保留1年支持导出来源06 §4.5
  5. 自动记录所有写操作通过AOP切面统一记录业务代码无感知来源06 §4.5
  6. 超管仅查看系统数据:超管操作日志仅涉及账号/权限/系统配置相关操作不包含任何业务数据来源01 §1.3