diff --git a/healthlink-his-ui/src/views/doctorstation/components/inspection/inspectionApplication.vue b/healthlink-his-ui/src/views/doctorstation/components/inspection/inspectionApplication.vue index 0251d4517..bddfe373c 100755 --- a/healthlink-his-ui/src/views/doctorstation/components/inspection/inspectionApplication.vue +++ b/healthlink-his-ui/src/views/doctorstation/components/inspection/inspectionApplication.vue @@ -81,6 +81,7 @@ class="inspection-table" :row-config="{ keyField: 'applicationId', keyField: 'itemId' }" @checkbox-change="handleSelectionChange" + @current-change="handleRowClick" @cell-click="handleCellClick" > { let hasErrors = false // 修复【#406】:保存前尝试从 props 同步患者信息,避免因加载时序导致信息缺失 - if (props.patientInfo && props.patientInfo.encounterId) { - // encounterId 来自 adm_encounter 表,lab_apply 表无此字段,需始终从 props 同步 - if (!formData.encounterId) { - formData.encounterId = props.patientInfo.encounterId || '' - } - if (!formData.patientName?.trim()) { - formData.patientName = props.patientInfo.patientName || '' - } - if (!formData.medicalrecordNumber?.trim()) { - formData.medicalrecordNumber = props.patientInfo.identifierNo || '' - } - if (!formData.visitNo) { - formData.visitNo = props.patientInfo.busNo || '' - } - if (!formData.patientId) { - formData.patientId = props.patientInfo.patientId || '' - } - if (!formData.applyDepartment) { - formData.applyDepartment = props.patientInfo.organizationName || '' - } - if (!formData.applyDeptCode) { - formData.applyDeptCode = props.patientInfo.organizationName || '' - } - if (!formData.applyOrganizationId) { - formData.applyOrganizationId = props.patientInfo.orgId || '' - } + if ((!formData.patientName?.trim() || !formData.medicalrecordNumber?.trim()) && props.patientInfo && props.patientInfo.encounterId) { + formData.patientName = props.patientInfo.patientName || '' + formData.medicalrecordNumber = props.patientInfo.identifierNo || '' + formData.encounterId = props.patientInfo.encounterId || '' + formData.visitNo = props.patientInfo.busNo || '' + formData.patientId = props.patientInfo.patientId || '' + formData.applyDepartment = props.patientInfo.organizationName || '' + formData.applyDeptCode = props.patientInfo.organizationName || '' + formData.applyOrganizationId = props.patientInfo.orgId || '' } // P0:检查患者信息是否已加载 @@ -2473,13 +2457,10 @@ const handleDelete = (row) => { } // 单元格点击 - 点击表格行时加载申请单详情 -const handleCellClick = (params) => { - // vxe-table cell-click 事件参数是 { row, column, $event, ... } 对象,需安全提取行数据 - const row = params.row || params; - const column = params.column || params; +const handleCellClick = (row, column) => { // 如果点击的是操作列或展开列,不触发数据填充 - if (column.type === 'expand' || column.type === 'selection' || - column.title === '操作' || column.property === '操作') { + if (column.property === '操作' || column.label === '操作' || + column.type === 'expand' || column.type === 'selection') { return; } // 点击表格行时,将该申请单的数据加载到表单中 @@ -2489,6 +2470,15 @@ const handleCellClick = (params) => { } } +// 行点击事件处理 +const handleRowClick = (currentRow, oldRow) => { + // 点击表格行时,将该申请单的数据加载到表单中 + // 使用 applyNo 判断是否有效,同时检查是否处于删除状态 + if (currentRow && currentRow.applyNo && !isDeleting.value) { + loadApplicationToForm(currentRow); + } +} + // 提取公共方法加载申请单到表单 const loadApplicationToForm = async (row) => { // 停止申请日期实时更新(加载已保存的申请单)