ether-docs/_archive/menu-and-permission.md

386 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ether 系统菜单规划与角色权限
**文档版本**: v3.0
**更新日期**: 2026-02-27
---
## 1. 菜单结构规划
### 1.1 菜单排序原则
| 排序规则 | 说明 |
| ------------ | ------------------------------------------------------------- |
| 业务流程优先 | 按业务流程顺序排列(项目→合同→设备→巡检→工单→业主→访客→收费) |
| 系统管理次之 | 用户、角色、权限等系统配置 |
### 1.2 菜单结构
```
├── 项目管理 (sortOrder: 1)
│ └── 空间管理(含车位、公共设施)
├── 合同管理 (sortOrder: 2)
├── 设备管理 (sortOrder: 3)
├── 巡检管理 (sortOrder: 4)
│ ├── 巡检计划
│ ├── 巡检任务
│ └── 巡检点管理
├── 工单管理 (sortOrder: 5)
│ ├── 工单列表
│ └── 工单统计
├── 业主管理 (sortOrder: 6)
│ ├── 业主列表
│ └── 家庭成员
├── 访客管理 (sortOrder: 7)
│ ├── 访客预约
│ └── 访客记录
├── 收费管理 (sortOrder: 8)
│ ├── 账单管理
│ └── 缴费记录
├── 用户管理 (sortOrder: 10)
├── 角色管理 (sortOrder: 11)
├── 权限管理 (sortOrder: 12)
└── 系统管理 (sortOrder: 13)
```
---
## 2. 角色体系设计
### 2.1 角色总览
| 类型 | 角色编码 | 角色名称 | 数据范围 | 终端类型 | 一线人员 |
| ------------ | ----------------- | ---------- | ---------- | ----------- | -------- |
| **系统级** |
| 系统管理 | SUPER_ADMIN | 超级管理员 | ALL | ALL | 否 |
| 系统管理 | SYS_ADMIN | 系统管理员 | ALL | ADMIN_ONLY | 否 |
| **项目管理** |
| 项目管理 | PROPERTY_MANAGER | 物业经理 | PROJECT | ALL | 否 |
| 项目管理 | PROJECT_MANAGER | 项目经理 | PROJECT | ALL | 否 |
| **部门主管** |
| 工程管理 | ENGINEERING_LEAD | 工程主管 | DEPARTMENT | ALL | 否 |
| 安保管理 | SECURITY_LEAD | 安保主管 | DEPARTMENT | ALL | 否 |
| 保洁管理 | CLEANING_LEAD | 保洁主管 | DEPARTMENT | ALL | 否 |
| 财务管理 | FINANCE_LEAD | 财务主管 | DEPARTMENT | ALL | 否 |
| **一线执行** |
| 工程执行 | MAINTENANCE_STAFF | 维修人员 | SELF | MOBILE_ONLY | 是 |
| 安保执行 | SECURITY_STAFF | 安保人员 | SELF | MOBILE_ONLY | 是 |
| 保洁执行 | CLEANING_STAFF | 保洁人员 | SELF | MOBILE_ONLY | 是 |
| **服务支持** |
| 业主服务 | CS_STAFF | 客服人员 | PROJECT | ALL | 否 |
| **外部用户** |
| 业主 | OWNER | 业主 | SELF | OWNER_APP | 否 |
### 2.2 角色职责说明
#### 2.2.1 系统级角色
| 角色 | 职责范围 | 典型场景 |
| -------------- | -------------------------------- | ------------------------------ |
| **超级管理员** | 系统最高权限,管理所有项目和用户 | 系统初始化、用户创建、项目创建 |
| **系统管理员** | 系统配置管理,不参与业务操作 | 系统参数配置、日志查看 |
#### 2.2.2 项目管理角色
| 角色 | 职责范围 | 典型场景 |
| ------------ | -------------------------------------- | -------------------------------- |
| **物业经理** | 项目经营第一负责人,拥有本项目全部权限 | 项目整体运营、费用审核、合同审批 |
| **项目经理** | 单项目管理,拥有本项目全部业务权限 | 工单管理、人员分配、报表查看 |
#### 2.2.3 部门主管角色
| 角色 | 管理模块 | 职责范围 | 典型场景 |
| ------------ | -------------------- | ------------------ | -------------------------------- |
| **工程主管** | 工单、设备、工程巡检 | 本部门工程事务管理 | 工单分配、设备管理、巡检计划制定 |
| **安保主管** | 安保巡检、访客管理 | 本部门安保事务管理 | 安保巡检计划、访客核验监督 |
| **保洁主管** | 保洁巡检、品质检查 | 本部门保洁事务管理 | 保洁巡检计划、品质检查 |
| **财务主管** | 账单、收费、费用审核 | 本部门财务事务管理 | 账单生成、费用审核、报表导出 |
#### 2.2.4 一线执行角色
| 角色 | 执行范围 | 终端限制 | 典型场景 |
| ------------ | ------------------ | -------- | ------------------------------ |
| **维修人员** | 工单处理、设备巡检 | 仅移动端 | 接单、维修、填报费用、设备巡检 |
| **安保人员** | 安保巡检、访客核验 | 仅移动端 | 扫码签到、访客核验、异常报送 |
| **保洁人员** | 保洁巡检、品质检查 | 仅移动端 | 扫码签到、品质异常报送 |
#### 2.2.5 服务支持角色
| 角色 | 职责范围 | 典型场景 |
| ------------ | ---------------------------- | -------------------------------- |
| **客服人员** | 业主服务接口,不参与工单流程 | 业主咨询、资料维护、访客辅助核验 |
#### 2.2.6 外部用户角色
| 角色 | 权限范围 | 典型场景 |
| -------- | ---------------- | ------------------------------ |
| **业主** | 本人房产相关数据 | 在线报修、缴费、访客邀请、评价 |
---
## 3. 菜单权限矩阵
### 3.1 菜单可见性矩阵
| 菜单 | 超级管理员 | 物业经理 | 项目经理 | 工程主管 | 安保主管 | 保洁主管 | 财务主管 | 维修人员 | 安保人员 | 保洁人员 | 客服人员 | 业主 |
| -------- | :--------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :------: | :--: |
| 项目管理 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 合同管理 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 设备管理 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | 👁️ | ❌ | ❌ | 👁️ | ❌ |
| 巡检管理 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅\* | ✅\* | ✅\* | ❌ | ❌ |
| 工单管理 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅\* | ❌ | ❌ | ❌ | ✅\* |
| 业主管理 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
| 访客管理 | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅\* | ❌ | ✅ | ✅\* |
| 收费管理 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | 👁️ | ✅\* |
| 用户管理 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 角色管理 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 权限管理 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 系统管理 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
**图例说明**
- ✅ 完全权限(可查看、可操作)
- 👁️ 只读权限(仅查看)
- ✅\* 受限权限(仅本人相关数据)
- ❌ 无权限(菜单不可见)
### 3.2 菜单权限详细说明
| 菜单 | 维修人员 | 安保人员 | 保洁人员 | 客服人员 | 业主 |
| ------------ | ---------------------- | ---------------------- | ---------------------- | ---------------- | -------------------- |
| **巡检管理** | 仅查看分配给自己的任务 | 仅查看分配给自己的任务 | 仅查看分配给自己的任务 | 不可见 | 不可见 |
| **工单管理** | 仅查看分配给自己的工单 | 不可见 | 不可见 | 不可见 | 仅查看本人提交的工单 |
| **访客管理** | 不可见 | 仅查看待核验访客 | 不可见 | 可查看全部访客 | 仅查看本人邀请的访客 |
| **收费管理** | 不可见 | 不可见 | 不可见 | 仅查看,不可操作 | 仅查看本人账单 |
---
## 4. 按钮级权限矩阵
### 4.1 工单管理按钮权限
| 操作按钮 | 物业经理 | 项目经理 | 工程主管 | 维修人员 | 业主 |
| -------- | :------: | :------: | :------: | :------: | :--: |
| 新增工单 | ✅ | ✅ | ✅ | ✅\* | ✅ |
| 编辑工单 | ✅ | ✅ | ✅ | ❌ | ❌ |
| 删除工单 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 分配工单 | ✅ | ✅ | ✅ | ❌ | ❌ |
| 接单 | ❌ | ❌ | ❌ | ✅ | ❌ |
| 开始处理 | ❌ | ❌ | ❌ | ✅ | ❌ |
| 完成工单 | ✅ | ✅ | ✅ | ✅ | ❌ |
| 转单 | ✅ | ✅ | ✅ | ✅\*\* | ❌ |
| 关闭工单 | ✅ | ✅ | ❌ | ❌ | ❌ |
| 评价工单 | ❌ | ❌ | ❌ | ❌ | ✅ |
| 填报费用 | ✅ | ✅ | ✅ | ✅ | ❌ |
| 费用审核 | ✅ | ✅ | ❌ | ❌ | ❌ |
**说明**
- ✅\* 维修人员仅能创建"自发现"类型工单
- ✅\*\* 维修人员仅能申请转单,需主管审批
### 4.2 巡检管理按钮权限
| 操作按钮 | 物业经理 | 工程主管 | 安保主管 | 保洁主管 | 维修人员 | 安保人员 | 保洁人员 |
| ---------- | :------: | :------: | :------: | :------: | :------: | :------: | :------: |
| 创建计划 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 编辑计划 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 删除计划 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 分配任务 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 开始巡检 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
| 完成巡检 | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |
| 强制闭环 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 生成二维码 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
### 4.3 设备管理按钮权限
| 操作按钮 | 物业经理 | 工程主管 | 维修人员 | 客服人员 |
| ---------- | :------: | :------: | :------: | :------: |
| 新增设备 | ✅ | ✅ | ❌ | ❌ |
| 编辑设备 | ✅ | ✅ | ❌ | ❌ |
| 删除设备 | ✅ | ❌ | ❌ | ❌ |
| 报告故障 | ✅ | ✅ | ✅ | ✅ |
| 生成二维码 | ✅ | ✅ | ❌ | ❌ |
| 扫码查看 | ✅ | ✅ | ✅ | ❌ |
### 4.4 访客管理按钮权限
| 操作按钮 | 物业经理 | 安保主管 | 安保人员 | 客服人员 | 业主 |
| ------------ | :------: | :------: | :------: | :------: | :--: |
| 创建访客邀请 | ❌ | ❌ | ❌ | ❌ | ✅ |
| 访客核验 | ✅ | ✅ | ✅ | ✅ | ❌ |
| 取消访客邀请 | ❌ | ❌ | ❌ | ❌ | ✅ |
| 查看访客记录 | ✅ | ✅ | ✅\* | ✅ | ✅\* |
**说明**
- ✅\* 安保人员仅查看待核验访客,业主仅查看本人邀请的访客
### 4.5 收费管理按钮权限
| 操作按钮 | 物业经理 | 财务主管 | 客服人员 | 业主 |
| -------- | :------: | :------: | :------: | :--: |
| 新增账单 | ✅ | ✅ | ❌ | ❌ |
| 编辑账单 | ✅ | ✅ | ❌ | ❌ |
| 删除账单 | ❌ | ❌ | ❌ | ❌ |
| 费用减免 | ✅ | ✅ | ❌ | ❌ |
| 导出账单 | ✅ | ✅ | ❌ | ❌ |
| 缴费 | ❌ | ❌ | ❌ | ✅ |
---
## 5. 数据权限设计
### 5.1 数据范围级别
| 数据范围 | 编码 | 说明 | SQL预设 |
| -------- | ---------- | ------------ | ----------------------------------------------------------------- |
| 全部 | ALL | 所有项目数据 | `WHERE 1=1` |
| 项目 | PROJECT | 本项目数据 | `WHERE project_id = $current_project` |
| 部门 | DEPARTMENT | 本部门数据 | `WHERE project_id = $current_project AND dept_id = $current_dept` |
| 本人 | SELF | 仅本人数据 | `WHERE assigned_to = $current_user` |
### 5.2 角色数据范围映射
| 角色 | 数据范围 | 可见数据 |
| ---------- | ---------- | -------------------------- |
| 超级管理员 | ALL | 所有项目的全部数据 |
| 系统管理员 | ALL | 系统配置数据 |
| 物业经理 | PROJECT | 本项目全部数据 |
| 项目经理 | PROJECT | 本项目全部数据 |
| 工程主管 | DEPARTMENT | 本部门工单、设备、巡检数据 |
| 安保主管 | DEPARTMENT | 本部门安保巡检、访客数据 |
| 保洁主管 | DEPARTMENT | 本部门保洁巡检数据 |
| 财务主管 | DEPARTMENT | 本部门账单、收费数据 |
| 维修人员 | SELF | 分配给自己的工单和巡检任务 |
| 安保人员 | SELF | 分配给自己的巡检任务 |
| 保洁人员 | SELF | 分配给自己的巡检任务 |
| 客服人员 | PROJECT | 本项目业主、访客数据 |
| 业主 | SELF | 本人房产相关数据 |
---
## 6. 菜单详细配置
| 菜单名称 | 路由路径 | 图标 | 排序 | 权限代码 |
| -------- | ------------------- | ------------------ | ---- | ---------------------- |
| 项目管理 | /mdm/projects | HomeOutlined | 1 | system:project:menu |
| 合同管理 | /mdm/contract | FileTextOutlined | 2 | mdm:contract:menu |
| 设备管理 | /mdm/equipments | ToolOutlined | 3 | mdm:equipment:menu |
| 巡检管理 | /mdm/inspections | FileSearchOutlined | 4 | mdm:inspection:menu |
| 工单管理 | /ops/work-order | FileTextOutlined | 5 | ops:work-order:menu |
| 业主管理 | /mdm/owners | TeamOutlined | 6 | mdm:owner:menu |
| 访客管理 | /mdm/visitors | UserAddOutlined | 7 | mdm:visitor:menu |
| 收费管理 | /mdm/fee | DollarOutlined | 8 | mdm:fee:menu |
| 用户管理 | /system/users | UserOutlined | 10 | system:user:menu |
| 角色管理 | /system/roles | TeamOutlined | 11 | system:role:menu |
| 权限管理 | /system/permissions | SafetyOutlined | 12 | system:permission:menu |
| 系统管理 | /system/settings | SettingOutlined | 13 | system:settings:menu |
---
## 7. 特殊说明
### 7.1 超级管理员
- 超级管理员是系统级角色project_id = NULL
- 可以看到所有项目的数据
- 不显示项目选择器
- 只显示系统管理相关菜单
### 7.2 项目管理角色(物业经理/项目经理)
- 需要先选择项目才能访问业务功能
- 可以管理本项目内的所有用户和业务数据
- 不能创建/删除项目,不能管理系统角色和权限
### 7.3 部门主管角色
- 只能看到本部门的数据
- 可以分配工单给本部门员工
- 可以查看本部门的统计数据
- 各主管仅管理自己负责的业务模块
### 7.4 一线执行角色
- 只能处理分配给自己的工单和任务
- 使用移动端APP进行操作
- 可以创建巡检记录和工单反馈
- 不能查看统计数据
### 7.5 客服人员
- 不参与工单流程
- 主要职责是业主服务
- 查看业主信息时敏感字段脱敏
- 可协助访客核验
### 7.6 业主用户
- 只能查看自己的缴费信息
- 可以提交工单
- 可以邀请访客
- 可以评价工单
---
## 8. 业务流程角色模拟
### 8.1 业主报修工单流程
| 步骤 | 操作 | 角色 | 权限编码 |
| ---- | ---------------- | ----------------- | ------------------------- |
| 1 | 业主提交报修 | 业主 | 无(自有房产) |
| 2 | 工单分配 | 项目经理/工程主管 | ops:work_order:assign |
| 3 | 维修工接单 | 维修人员 | ops:work_order:accept |
| 4 | 开始处理 | 维修人员 | ops:work_order:start |
| 5 | 完成工单 | 维修人员 | ops:work_order:complete |
| 6 | 填报费用(如有) | 维修人员 | ops:work_order:report_fee |
| 7 | 费用审核(如有) | 项目经理/财务主管 | ops:work_order:audit_fee |
| 8 | 业主评价 | 业主 | 无(仅报修人) |
| 9 | 关闭工单 | 项目经理 | ops:work_order:close |
### 8.2 巡检任务流程
| 步骤 | 操作 | 角色 | 权限编码 |
| ---- | ---------------- | -------------------------- | ------------------------------- |
| 1 | 制定巡检计划 | 工程主管/安保主管/保洁主管 | ops:inspection_plan:create |
| 2 | 任务分配 | 主管 | ops:inspection_task:assign |
| 3 | 扫码开始巡检 | 维修/安保/保洁人员 | ops:inspection_task:start |
| 4 | 提交巡检结果 | 执行人员 | ops:inspection_task:complete |
| 5 | 强制闭环(逾期) | 主管 | ops:inspection_task:force_close |
### 8.3 访客来访流程
| 步骤 | 操作 | 角色 | 权限编码 |
| ---- | ------------ | ----------------- | ------------------ |
| 1 | 业主邀请访客 | 业主 | 无(自有房产) |
| 2 | 门岗核验 | 安保人员 | mdm:visitor:verify |
| 3 | 异常处理 | 客服人员/安保人员 | mdm:visitor:verify |
### 8.4 费用收缴流程
| 步骤 | 操作 | 角色 | 权限编码 |
| ---- | -------- | ----------------- | ------------------- |
| 1 | 生成账单 | 财务主管 | finance:bill:create |
| 2 | 业主缴费 | 业主 | 无(自有房产) |
| 3 | 费用减免 | 物业经理/财务主管 | finance:bill:reduce |
| 4 | 账单导出 | 财务主管 | finance:bill:export |
---
## 9. 变更记录
| 日期 | 变更内容 | 变更人 |
| ---------- | ---------------------------------- | ------------ |
| 2026-02-18 | 更新菜单排序为业务流程顺序 | AI Assistant |
| 2026-02-18 | 添加主数据模块说明 | AI Assistant |
| 2026-02-18 | 移除独立的空间节点管理菜单 | AI Assistant |
| 2026-02-27 | 重构角色体系新增13个角色 | AI Assistant |
| 2026-02-27 | 新增按钮级权限矩阵 | AI Assistant |
| 2026-02-27 | 新增数据权限设计 | AI Assistant |
| 2026-02-27 | 新增业务流程角色模拟 | AI Assistant |
| 2026-02-27 | 调整客服人员职责,不再参与工单流程 | AI Assistant |
---