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

4.4 KiB

院方管理角色 Building 权限设置说明

一、数据库迁移

首先需要运行数据库迁移,创建 admin_building_links 表:

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. 修改楼栋关联时,系统会先删除旧的关联关系,再创建新的关联关系

七、数据表结构

字段 类型 说明
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 表。