You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
v2.tiantianxinye.365care/院方管理权限设置说明.md

123 lines
4.4 KiB

5 months ago
# 院方管理角色 Building 权限设置说明
## 一、数据库迁移
首先需要运行数据库迁移,创建 `admin_building_links` 表:
```bash
php artisan migrate
```
这将创建 `admin_building_links` 表,用于存储管理员与楼栋的关联关系。
## 二、角色设置
### 1. 确保存在"院方管理"角色
在系统中需要有一个角色名称包含"院方管理"的角色(例如:"院方管理"、"院方管理员"等)。
### 2. 为管理员分配角色
1. 进入 **系统管理 > 管理员管理**
2. 编辑需要设置为"院方管理"的管理员
3. 在角色设置中,为该管理员分配"院方管理"角色
4. 确保该管理员的 `project_ids` 字段包含其需要管理的项目ID逗号分隔
## 三、楼栋权限关联设置
### 方法一:创建新楼栋时设置
1. 进入 **医院/项目管理 > 床位管理**
2. 选择对应的项目
3. 点击楼栋下拉框旁边的 **"+"** 按钮,创建新楼栋
4. 在弹出的对话框中:
- 填写楼栋名称
- 设置排序号
- **在"院方管理"下拉框中选择需要关联的院方管理员**(可多选)
5. 点击"保存"
### 方法二:编辑现有楼栋时设置
1. 进入 **医院/项目管理 > 床位管理**
2. 选择对应的项目
3. 选择需要编辑的楼栋
4. 点击楼栋下拉框旁边的 **"编辑"** 按钮(铅笔图标)
5. 在弹出的对话框中:
- 可以修改楼栋名称和排序号
- **在"院方管理"下拉框中选择需要关联的院方管理员**(可多选)
6. 点击"保存"
## 四、权限控制效果
设置完成后,具有"院方管理"角色的管理员将:
### 1. 订单列表页面 (`/admin/orders`)
- 只能查看其管理的楼栋下的所有订单
- 楼栋下拉框只显示其有权限的楼栋
- 病区下拉框只显示其有权限楼栋下的病区
### 2. 统计页面
- **财务统计** (`/admin/statistics/finance`):只能查看其管理楼栋下的充值、退款记录
- **护理统计** (`/admin/statistics/huli`):只能查看其管理楼栋下的病区数据
### 3. 陪护一览页面 (`/admin/orders/artboard`)
- 只显示其管理楼栋下的病区和床位信息
## 五、权限层级说明
系统的权限控制采用三级结构:
1. **项目级权限**:通过 `admins.project_ids` 字段控制,管理员只能访问其关联的项目
2. **角色级权限**
- **护士长**:通过 `admin_area_links` 表关联病区,只能查看其管理病区下的数据
- **院方管理**:通过 `admin_building_links` 表关联楼栋,只能查看其管理楼栋下的数据(包括该楼栋下所有病区)
3. **数据级权限**:根据角色和关联关系,自动过滤查询结果
## 六、注意事项
1. **一个管理员可以同时拥有多个角色**,但权限控制逻辑为:
- 如果同时是"护士长"和"院方管理",优先使用"护士长"的权限(更细粒度)
- 如果只是"院方管理",则使用楼栋级别的权限
2. **一个楼栋可以关联多个院方管理员**,这些管理员都可以查看该楼栋下的所有数据
3. **删除楼栋时**,相关的 `admin_building_links` 记录会通过软删除保留,但权限会失效
4. **修改楼栋关联**时,系统会先删除旧的关联关系,再创建新的关联关系
## 七、数据表结构
### admin_building_links 表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | int | 主键 |
| building_id | int | 楼栋ID |
| project_id | int | 项目ID |
| admin_id | string | 管理员ID |
| created_at | timestamp | 创建时间 |
| updated_at | timestamp | 更新时间 |
| deleted_at | timestamp | 软删除时间 |
## 八、API 接口
新增的接口:
- `GET /admin/project/get-yuanfang`:获取院方管理列表
- 参数:`project_id`(必填)、`building_id`(可选,用于编辑时标记已选中的管理员)
## 九、常见问题
### Q1: 为什么设置了权限但看不到数据?
A: 请检查:
1. 管理员是否已分配"院方管理"角色
2. 管理员的 `project_ids` 是否包含当前项目ID
3. 楼栋是否已正确关联到该管理员
### Q2: 如何查看某个楼栋关联了哪些管理员?
A: 可以通过编辑该楼栋,在"院方管理"下拉框中查看已选中的管理员。
### Q3: 如何批量设置多个楼栋的权限?
A: 目前需要逐个楼栋进行设置,或者可以通过数据库直接操作 `admin_building_links` 表。