chore: record session journal - 握力环训练趣味化
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# 诊单编辑业务订单 tab 去除数据权限
|
||||
|
||||
## Goal
|
||||
|
||||
修正「编辑诊单」对话框中的“业务订单”tab:获取订单数据时不再受业务订单列表页的数据权限限制,只要订单与当前诊单患者相关,就应展示出来。
|
||||
|
||||
## What I verified
|
||||
|
||||
- 前端组件是 [admin/src/views/tcm/diagnosis/components/PatientOrderList.vue](/Users/long/Work/zyt/admin/src/views/tcm/diagnosis/components/PatientOrderList.vue),直接调用 `prescriptionOrderLists`。
|
||||
- 路由仍是 `GET /tcm.prescriptionOrder/lists`,控制器 [server/app/adminapi/controller/tcm/PrescriptionOrderController.php](/Users/long/Work/zyt/server/app/adminapi/controller/tcm/PrescriptionOrderController.php) 只是透传给 `PrescriptionOrderLists`。
|
||||
- 真正的权限过滤在 [server/app/adminapi/lists/tcm/PrescriptionOrderLists.php](/Users/long/Work/zyt/server/app/adminapi/lists/tcm/PrescriptionOrderLists.php):
|
||||
- `applyCreatorOrOwnPrescriptionVisibility()`
|
||||
- `applyDataScopeForPrescriptionOrder()`
|
||||
- 当前诊单 tab 已经按 `patient_id` 过滤,且支持 `diagnosis_id` 精确过滤,因此即使跳过列表权限,也仍然只会落在“当前患者/当前诊单关联订单”的安全范围内。
|
||||
|
||||
## Decision
|
||||
|
||||
- 不新增独立接口,继续复用 `/tcm.prescriptionOrder/lists`。
|
||||
- 仅为“诊单编辑业务订单 tab”增加一个显式场景参数,例如 `scene=diagnosis_edit`。
|
||||
- 只有在该场景下,`PrescriptionOrderLists` 才跳过业务订单列表页的两层权限过滤。
|
||||
- 其它页面继续保持原有权限逻辑,不改行为。
|
||||
|
||||
## Requirements
|
||||
|
||||
- 前端业务订单 tab 请求列表时附带场景参数,标记这是诊单编辑页内的患者订单查询。
|
||||
- 后端列表类识别该场景后,不执行:
|
||||
- 创建人/开方人可见性过滤
|
||||
- 数据范围过滤
|
||||
- 后端仍保留患者/诊单过滤逻辑,不允许无条件返回全量订单。
|
||||
- 原订单管理页、统计页、其它依赖 `/tcm.prescriptionOrder/lists` 的页面行为不变。
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- 打开任意诊单编辑页,“业务订单”tab 可以看到该患者实际关联的业务订单,不因当前登录人不是订单创建人或不在数据范围内而丢失数据。
|
||||
- 切换“仅本诊单”时,只显示当前诊单关联的业务订单。
|
||||
- 业务订单主列表页权限行为不变。
|
||||
- 不新增新的权限点,不修改现有 tab 显隐权限。
|
||||
|
||||
## Risks
|
||||
|
||||
- 如果跳过权限的判断条件不够收敛,可能误影响订单管理页;因此必须使用显式场景参数,不要靠 `patient_id`/`diagnosis_id` 猜测场景。
|
||||
Reference in New Issue
Block a user