diff --git a/admin/src/views/tcm/diagnosis/components/AssignLogPanel.vue b/admin/src/views/tcm/diagnosis/components/AssignLogPanel.vue index 46a56711..892b96a2 100644 --- a/admin/src/views/tcm/diagnosis/components/AssignLogPanel.vue +++ b/admin/src/views/tcm/diagnosis/components/AssignLogPanel.vue @@ -12,6 +12,12 @@ {{ assistantLogCellText(row, 'to') }} + + + 是 + 否 + + {{ relatedPoCreatorCell(row) }} diff --git a/admin/src/views/tcm/diagnosis/index.vue b/admin/src/views/tcm/diagnosis/index.vue index d771f723..498269c3 100644 --- a/admin/src/views/tcm/diagnosis/index.vue +++ b/admin/src/views/tcm/diagnosis/index.vue @@ -456,6 +456,10 @@ /> + + 继承 + 勾选后写入指派记录 + {{ batchAssignIds.length }} 条诊单记录 @@ -1340,12 +1344,14 @@ const assignLoading = ref(false) const assignMode = ref<'batch' | 'single'>('batch') const currentRow = ref(null) const assignForm = ref({ - assistant_id: null as number | null + assistant_id: null as number | null, + is_inherit: false }) function resetAssignDialog() { batchAssignIds.value = [] assignForm.value.assistant_id = null + assignForm.value.is_inherit = false } const handleSelectionChange = (selection: any[]) => { @@ -1372,6 +1378,7 @@ const handleSingleAssign = (row: any) => { batchAssignIds.value = [] // 确保类型一致,转换为数字 assignForm.value.assistant_id = Number(row.assistant_id) > 0 ? Number(row.assistant_id) : null + assignForm.value.is_inherit = false assignDialogVisible.value = true } @@ -1384,6 +1391,7 @@ const handleBatchAssign = () => { assignMode.value = 'batch' currentRow.value = null assignForm.value.assistant_id = null + assignForm.value.is_inherit = false batchAssignIds.value = [...selectedIds.value] assignDialogVisible.value = true } @@ -1400,7 +1408,8 @@ const handleConfirmAssign = async () => { // 单独指派 await tcmDiagnosisAssign({ id: currentRow.value.id, - assistant_id: assignForm.value.assistant_id + assistant_id: assignForm.value.assistant_id, + is_inherit: assignForm.value.is_inherit ? 1 : 0 }) } else { // 批量指派:使用打开弹窗时的 id 快照(避免弹窗内操作导致表格勾选被清空后提交为空) @@ -1413,6 +1422,7 @@ const handleConfirmAssign = async () => { await tcmDiagnosisAssign({ id, assistant_id: assignForm.value.assistant_id!, + is_inherit: assignForm.value.is_inherit ? 1 : 0 }) } selectedIds.value = [] diff --git a/admin/src/views/tcm/diagnosis/index_h5.vue b/admin/src/views/tcm/diagnosis/index_h5.vue index 0324f428..7cc9dacf 100644 --- a/admin/src/views/tcm/diagnosis/index_h5.vue +++ b/admin/src/views/tcm/diagnosis/index_h5.vue @@ -364,6 +364,10 @@ /> + + 继承 + 勾选后写入指派记录 + 患者:{{ currentRow?.patient_name }} @@ -1080,10 +1084,11 @@ const runAction = (cmd: string) => { const assignDialogVisible = ref(false) const assignLoading = ref(false) const currentRow = ref(null) -const assignForm = ref({ assistant_id: null as number | null }) +const assignForm = ref({ assistant_id: null as number | null, is_inherit: false }) const handleSingleAssign = (row: any) => { currentRow.value = row assignForm.value.assistant_id = row.assistant_id ? Number(row.assistant_id) : null + assignForm.value.is_inherit = false assignDialogVisible.value = true } const handleConfirmAssign = async () => { @@ -1092,7 +1097,8 @@ const handleConfirmAssign = async () => { try { await tcmDiagnosisAssign({ id: currentRow.value.id, - assistant_id: assignForm.value.assistant_id + assistant_id: assignForm.value.assistant_id, + is_inherit: assignForm.value.is_inherit ? 1 : 0 }) assignDialogVisible.value = false getLists() diff --git a/admin/src/views/tcm/follow/index.vue b/admin/src/views/tcm/follow/index.vue index 9a9ae541..633d1c7e 100644 --- a/admin/src/views/tcm/follow/index.vue +++ b/admin/src/views/tcm/follow/index.vue @@ -326,6 +326,10 @@ /> + + 继承 + 勾选后写入指派记录 + {{ selectedIds.length }} 条诊单记录 @@ -1078,7 +1082,8 @@ const assignLoading = ref(false) const assignMode = ref<'batch' | 'single'>('batch') const currentRow = ref(null) const assignForm = ref({ - assistant_id: null as number | null + assistant_id: null as number | null, + is_inherit: false }) const handleSelectionChange = (selection: any[]) => { @@ -1091,6 +1096,7 @@ const handleSingleAssign = (row: any) => { currentRow.value = row // 确保类型一致,转换为数字 assignForm.value.assistant_id = Number(row.assistant_id) > 0 ? Number(row.assistant_id) : null + assignForm.value.is_inherit = false assignDialogVisible.value = true } @@ -1103,6 +1109,7 @@ const handleBatchAssign = () => { assignMode.value = 'batch' currentRow.value = null assignForm.value.assistant_id = null + assignForm.value.is_inherit = false assignDialogVisible.value = true } @@ -1118,14 +1125,16 @@ const handleConfirmAssign = async () => { // 单独指派 await tcmDiagnosisAssign({ id: currentRow.value.id, - assistant_id: assignForm.value.assistant_id + assistant_id: assignForm.value.assistant_id, + is_inherit: assignForm.value.is_inherit ? 1 : 0 }) } else { // 批量指派 const promises = selectedIds.value.map(id => tcmDiagnosisAssign({ id, - assistant_id: assignForm.value.assistant_id + assistant_id: assignForm.value.assistant_id, + is_inherit: assignForm.value.is_inherit ? 1 : 0 }) ) await Promise.all(promises) diff --git a/server/app/adminapi/logic/tcm/DiagnosisLogic.php b/server/app/adminapi/logic/tcm/DiagnosisLogic.php index 8f643b71..e1a7b23d 100755 --- a/server/app/adminapi/logic/tcm/DiagnosisLogic.php +++ b/server/app/adminapi/logic/tcm/DiagnosisLogic.php @@ -563,6 +563,7 @@ class DiagnosisLogic extends BaseLogic try { $id = (int) ($params['id'] ?? 0); $toAssistantId = (int) ($params['assistant_id'] ?? 0); + $isInherit = (int) ($params['is_inherit'] ?? 0) === 1 && $toAssistantId > 0 ? 1 : 0; if ($id <= 0) { self::setError('诊单不存在'); @@ -623,6 +624,7 @@ class DiagnosisLogic extends BaseLogic 'ip' => (string) ($req->ip() ?? ''), 'related_po_creator_id' => $relatedPoCreatorId, 'related_po_create_time' => $relatedPoCreateTime, + 'is_inherit' => $isInherit, 'create_time' => $now, ]); } catch (\Throwable $e) { @@ -696,6 +698,9 @@ class DiagnosisLogic extends BaseLogic $r['related_po_create_time_text'] = $rpct > 0 ? date('Y-m-d H:i:s', $rpct) : ''; $r['related_po_is_cleared_assistant_creator'] = ($rcpId > 0 && $fromId > 0 && $rcpId === $fromId) ? 1 : 0; + $inherit = (int) ($r['is_inherit'] ?? 0); + $r['is_inherit'] = $inherit; + $r['is_inherit_text'] = $inherit === 1 ? '是' : '否'; } unset($r); diff --git a/server/sql/1.9.20260601/add_diagnosis_assign_log_is_inherit.sql b/server/sql/1.9.20260601/add_diagnosis_assign_log_is_inherit.sql new file mode 100644 index 00000000..f5570f88 --- /dev/null +++ b/server/sql/1.9.20260601/add_diagnosis_assign_log_is_inherit.sql @@ -0,0 +1,5 @@ +-- 诊单指派日志:是否标记为「继承」指派(后台人工指派时可勾选) +-- 首次执行即可;若列已存在重复执行会报错,可忽略 + +ALTER TABLE `zyt_tcm_diagnosis_assign_log` +ADD COLUMN `is_inherit` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '是否继承指派:1=是,0=否' AFTER `related_po_create_time`;