fix: 修复 Bug #388 #409 #410

会诊意见格式化存储,确保参加医师和意见完整回显
预约签到挂号时修正 serviceTypeId 为预约类型而非挂号类型
分诊队列显示诊室而非科室,区分预约/挂号类型
This commit is contained in:
wangjian963
2026-04-24 16:52:33 +08:00
parent 22b47fcc95
commit 76094d6eff
6 changed files with 103 additions and 12 deletions

View File

@@ -177,7 +177,7 @@
<el-tag v-else type="warning" size="small">已确认</el-tag>
</div>
<div class="opinion-content">
{{ opinion.opinion }}
{{ formatOpinionContent(opinion.opinion) }}
</div>
<div v-if="opinion.signatureTime" class="opinion-footer">
签名时间:{{ formatDateTime(opinion.signatureTime) }}
@@ -301,6 +301,16 @@ const formatDateTime = (date) => {
return `${yyyy}-${mm}-${dd} ${hh}:${mi}:${ss}`
}
// Bug #388去掉"科室-参加医师"前缀,只显示意见内容
const formatOpinionContent = (opinion) => {
if (!opinion) return ''
const colonIndex = opinion.indexOf('')
if (colonIndex > 0) {
return opinion.substring(colonIndex + 1)
}
return opinion // 向后兼容旧数据
}
const getDoctorName = () => userStore.nickName || userStore.name || '当前医生'
const getDoctorDept = () => userStore.orgName || '当前科室'

View File

@@ -710,8 +710,10 @@ const loadQueueFromDb = async () => {
id: it.id,
queueOrder: it.queueOrder,
patientName: it.patientName ?? '-',
appointmentType: it.healthcareName ?? '普通',
room: it.organizationName ?? '-',
// 队列数据已从入队时存储的 healthcareName 读取(包含"预约"或"挂号"后缀)
appointmentType: it.healthcareName ?? '普通号挂号',
// Bug #410使用 roomNo诊室而非 organizationName科室
room: it.roomNo ?? it.organizationName ?? '-',
doctor: it.practitionerName ?? '-',
waitingTime: waitingTime,
createTime: it.createTime, // 保存创建时间,用于定时器计算
@@ -820,15 +822,18 @@ const loadDataFromApi = async () => {
organizationName: item.organizationName,
patientName: item.patientName ?? '-',
age: parseAge(item.age),
appointmentType: item.healthcareName ?? '普通',
room: item.organizationName ? `${item.organizationName}` : '-',
// Bug #409/410根据 isFromAppointment 区分预约/挂号,使用 clinicRoom 诊室
appointmentType: (item.healthcareName || '').replace('挂号', '') + (item.isFromAppointment ? '预约' : '挂号'),
room: item.clinicRoom ?? item.organizationName ?? '-',
doctor: item.practitionerName ?? '-',
// 当前接口返回的是 practitionerUserId保存为 practitionerId 供入队使用
practitionerId: item.practitionerUserId ?? null,
matchingRule: '-', // 这里先不做智能规则匹配
// 号源池和槽位信息(用于分诊队列)
poolId: item.poolId ?? null,
slotId: item.slotId ?? null
slotId: item.slotId ?? null,
// 保存原始 isFromAppointment 用于调试
isFromAppointment: item.isFromAppointment ?? false
}))
console.log('【心内科】候选池已加载', originalCandidatePoolList.value.length, '条今天的数据')
} else {
@@ -1046,7 +1051,8 @@ const handleAddToQueue = async () => {
healthcareName: c.appointmentType,
practitionerName: c.doctor,
practitionerId: c.practitionerId ?? null,
roomNo: c.roomNo ?? c.room ?? null,
// Bug #410c.room 已是诊室名称
roomNo: c.room ?? null,
poolId: c.poolId ?? null,
slotId: c.slotId ?? null
})
@@ -1163,7 +1169,8 @@ const handleAddAllToQueue = async () => {
healthcareName: c.appointmentType,
practitionerName: c.doctor,
practitionerId: c.practitionerId ?? null,
roomNo: c.roomNo ?? c.room ?? null,
// Bug #410c.room 已是诊室名称
roomNo: c.room ?? null,
poolId: c.poolId ?? null,
slotId: c.slotId ?? null
})