| | |
| | | </div> |
| | | |
| | | <!-- 医生装机列表 --> |
| | | <!-- 【本次需求】操作功能区与已完成记录之间的标题栏 --> |
| | | <div class="records-title"> |
| | | <span class="records-title__bar"></span> |
| | | <span class="records-title__text">已完成列表</span> |
| | | </div> |
| | | <div class="records-host"> |
| | | <ContentWrap class="records-wrap"> |
| | | <el-table |
| | |
| | | </el-table-column> |
| | | <el-table-column label="装机情况" align="center" prop="lost"> |
| | | <template #default="scope"> |
| | | <span v-if="scope.row.jobType === 10">"已装机"</span> |
| | | <!-- 【本需求】完成被撤销过:该条记录显示「已撤销」;再次完成时后端 undone 自动变回 false --> |
| | | <el-tag v-if="scope.row.undone" type="danger" size="small">已撤销</el-tag> |
| | | <span v-else-if="scope.row.jobType === 10">"已装机"</span> |
| | | <span v-if="scope.row.jobType === 35">"已放弃"</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | formData.value.doctor = queueVO?.doctor |
| | | formData.value.doctorTime = queueVO?.doctorTime |
| | | formData.value.patSrc = queueVO?.patSrc |
| | | // 【本次修复】条码/打印小票依赖 patDetails(含 source/appointmentId), |
| | | // 队列行本就带着它;原先只在 getFreeRentInfo() 查到"待检查单"时才赋值, |
| | | // 导致绝大多数情况下 patDetails 为 undefined → 条码不显示。 |
| | | formData.value.patDetails = queueVO?.patDetails |
| | | formData.value.patMobile = queueVO?.patMobile |
| | | formData.value.patPhone = queueVO?.patPhone |
| | | formData.value.patWardDesc = queueVO?.patWardDesc |
| | |
| | | getReadyRentInfo(formData.value) // 获取领用信息 |
| | | copyBarcode() |
| | | } |
| | | defineExpose({ setPatient }) // 提供 setPatient 方法,用于设置患者 |
| | | defineExpose({ setPatient, getList: () => getList() }) // 提供 setPatient 方法,用于设置患者 |
| | | |
| | | |
| | | /** 提交表单 */ |
| | |
| | | if (!formData.value.checkType) |
| | | return "" |
| | | |
| | | const displayBarcode: number[] = checkTypeStore.getCheckTypeDispBarCode(formData.value.checkType!) |
| | | if (formData.value.patDetails == null || formData.value.patDetails.source == null || |
| | | !displayBarcode.includes(formData.value.patDetails.source)) |
| | | // 【本次修复】「患者条码显示」未配置(null/空)→ 不显示(按现场确认口径) |
| | | const displayBarcode: number[] | undefined = checkTypeStore.getCheckTypeDispBarCode(formData.value.checkType!) |
| | | if (displayBarcode == null || displayBarcode.length === 0) |
| | | return "" |
| | | |
| | | // 【本次修复】来源优先取 patDetails.source,缺失时回退到平铺的 patSrc |
| | | // (原来直接取 patDetails.source,patDetails 缺失时 `.includes` 还会抛异常) |
| | | const patSource = formData.value.patDetails?.source ?? formData.value.patSrc |
| | | if (patSource == null) |
| | | return "" |
| | | if (!displayBarcode.map(Number).includes(Number(patSource))) |
| | | return "" |
| | | |
| | | return getBarcode() |
| | |
| | | if (!formData.value.checkType) |
| | | return "" |
| | | |
| | | const patSource = formData.value.patDetails?.source |
| | | const patSource = formData.value.patDetails?.source ?? formData.value.patSrc |
| | | if (patSource == null) |
| | | return "" |
| | | |
| | | if (1 === patSource || 2 === patSource) |
| | | // 门诊/急诊 → 申请单号;住院/体检 → 就诊流水号 |
| | | if (1 === Number(patSource) || 2 === Number(patSource)) |
| | | return formData.value.applyNo ?? "" |
| | | else if (3 === patSource || 4 === patSource) |
| | | else if (3 === Number(patSource) || 4 === Number(patSource)) |
| | | return formData.value.episodeId ?? "" |
| | | |
| | | return "" |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | |
| | | /* 【本次需求】「已完成列表」标题栏:左侧主色竖线 + 加粗小标题,紧凑高度不挤压表格 */ |
| | | .records-title { |
| | | display: flex; |
| | | align-items: center; |
| | | flex: none; |
| | | gap: 6px; |
| | | padding: 2px 0 6px; |
| | | |
| | | &__bar { |
| | | width: 3px; |
| | | height: 14px; |
| | | background-color: var(--el-color-primary); |
| | | border-radius: 2px; |
| | | } |
| | | |
| | | &__text { |
| | | font-size: 14px; |
| | | font-weight: 600; |
| | | color: var(--el-text-color-primary); |
| | | } |
| | | } |
| | | /* ========================================================================== |
| | | 需求:表单内容挤占了下方记录表格的空间 —— 压缩行间距。 |
| | | Element Plus 默认 `.el-form-item { margin-bottom: 18px }`; |
| | |
| | | .patient-actions { |
| | | display: flex; |
| | | flex: none; |
| | | flex-wrap: nowrap; |
| | | /* 按钮多时允许换行,避免挤在一行(检查页最多 6 个按钮) */ |
| | | flex-wrap: wrap; |
| | | gap: 8px; |
| | | align-items: center; |
| | | /* 上下留白 + 分隔线,形成独立功能块 */ |
| | | padding: 6px 4px; |
| | | margin-bottom: 6px; |
| | | background-color: var(--el-bg-color); |
| | | border-top: 1px solid var(--el-border-color-lighter); |
| | | border-bottom: 1px solid var(--el-border-color-lighter); |
| | | /* |
| | | 【本次需求】操作功能区做一点视觉区分,方便医生一眼定位: |
| | | 极浅的主色底 + 细边框 + 左侧 3px 主色竖条(与「▎已完成列表」标题条同款语言)。 |
| | | 只做"稍有区分",不改按钮本身的尺寸/颜色/顺序。 |
| | | */ |
| | | padding: 8px 10px; |
| | | margin: 2px 0 10px; |
| | | background-color: var(--el-color-primary-light-9); |
| | | border: 1px solid var(--el-color-primary-light-7); |
| | | border-left: 3px solid var(--el-color-primary); |
| | | border-radius: 4px; |
| | | |
| | | /* Element Plus 给相邻 el-button 默认加了 margin-left:12px,会与 gap 叠加,清掉 */ |
| | | :deep(.el-button + .el-button) { |