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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 院方管理角色 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` 表。