diff --git a/server/app/adminapi/lists/tcm/DiagnosisLists.php b/server/app/adminapi/lists/tcm/DiagnosisLists.php index fb91b5bb..f067c4e5 100644 --- a/server/app/adminapi/lists/tcm/DiagnosisLists.php +++ b/server/app/adminapi/lists/tcm/DiagnosisLists.php @@ -74,16 +74,17 @@ class DiagnosisLists extends BaseAdminDataLists implements ListsSearchInterface : $this->searchWhere; $query = Diagnosis::where($baseWhere); - // 如果是医助角色(role_id=2),只显示自己关联的诊单;待分配列表(未宽搜)放开以便看到全体未分配记录 - if (in_array(2, $roleIds) && (!$pendingAssign || $pendingWideSearch)) { + // 医助角色(role_id=2):仅在普通列表(非待分配、非待分配宽搜)下限制为本人诊单;待分配窄列表与宽搜均不设此限 + if (in_array(2, $roleIds) && !$pendingAssign && !$pendingWideSearch) { $query->where('assistant_id', $this->adminId); } - if (!$pendingAssign || $pendingWideSearch) { + // 数据权限:待分配(窄列表与宽搜)均不按 assistant 范围过滤;宽搜额外豁免以便全库关键词命中(与即时需求对齐) + if (!$pendingAssign && !$pendingWideSearch) { $this->applyDataScopeByOwner($query, 'assistant_id'); } - // 关键字:待分配 Tab 用多字段宽搜;其它 Tab 仍为姓名/手机。窄「待分配列表」不套数据权限;宽搜与「全部」一致会套数据权限。 + // 关键字:待分配 Tab 用多字段宽搜;其它 Tab 仍为姓名/手机。 $this->applyDiagnosisListKeywordFilter($query, $pendingAssign); // 待分配医助列表:assistant_id 为 NULL 或 0(宽搜不加此条件) @@ -487,11 +488,11 @@ class DiagnosisLists extends BaseAdminDataLists implements ListsSearchInterface : $this->searchWhere; $query = Diagnosis::where($baseWhere); - if (in_array(2, $roleIds) && (!$pendingAssign || $pendingWideSearch)) { + if (in_array(2, $roleIds) && !$pendingAssign && !$pendingWideSearch) { $query->where('assistant_id', $this->adminId); } - if (!$pendingAssign || $pendingWideSearch) { + if (!$pendingAssign && !$pendingWideSearch) { $this->applyDataScopeByOwner($query, 'assistant_id'); }