fix(智能分诊排队管理): 移除候选池和队列的硬编码假数据,消除页面加载时的数据闪现问题

- 删除 getInitialCandidatePoolList() 和 getInitialQueueList() 两个硬编码函数(共8条虚构患者/队列记录)
  - 候选池和队列 ref 初始值由硬编码假数据改为空数组 []
  - currentDate 初始值由固定日期改为空字符串,由 loadDataFromApi 动态计算
  - currentCall 初始值由假数据(郑华/4号诊室)改为占位符(-/-/-),由 syncCurrentCallFromQueue 动态同步
  - loadDataFromApi 异常回退不再注入假数据,统一清空为 []
This commit is contained in:
wangjian963
2026-06-16 16:15:13 +08:00
parent 8b6265801d
commit ea8dca058a

View File

@@ -687,15 +687,15 @@ import {
} from '../api'
// 当前日期 & 统计信息(总已签到/在队列中)
const currentDate = ref('2025/12/22 上午')
const currentDate = ref('')
const totalSignedIn = ref(0)
const totalInQueue = ref(0)
// 当前呼叫信息
const currentCall = ref({
number: '1',
name: '郑华',
room: '4号诊室'
number: '-',
name: '-',
room: '-'
})
// 当前选中的队列行(用于选呼)
@@ -785,85 +785,6 @@ const weekOptions = [
// 叫号类型
const callType = ref('选呼')
// ============ 数据初始化/刷新(前端模拟) ============
const getInitialCandidatePoolList = () => ([
{
sequenceNo: 12,
patientName: '陈明',
age: 65,
appointmentType: '专家',
room: '3号诊室',
doctor: '张医生',
matchingRule: '年龄≥60'
},
{
sequenceNo: 13,
patientName: '刘芳',
age: 58,
appointmentType: '普通',
room: '4号诊室',
doctor: '李医生',
matchingRule: '-'
},
{
sequenceNo: 14,
patientName: '周强',
age: 45,
appointmentType: '普通',
room: '5号诊室',
doctor: '王医生',
matchingRule: '-'
},
{
sequenceNo: 15,
patientName: '吴伟',
age: 72,
appointmentType: '专家',
room: '3号诊室',
doctor: '张医生',
matchingRule: '年龄≥70'
}
])
const getInitialQueueList = () => ([
{
queueOrder: 1,
patientName: '林静',
appointmentType: '专家',
room: '3号诊室',
doctor: '张医生',
waitingTime: '05:00',
status: '等待'
},
{
queueOrder: 2,
patientName: '郑华',
appointmentType: '普通',
room: '4号诊室',
doctor: '李医生',
waitingTime: '00:00',
status: '叫号中'
},
{
queueOrder: 3,
patientName: '王丽',
appointmentType: '普通',
room: '5号诊室',
doctor: '王医生',
waitingTime: '08:00',
status: '等待'
},
{
queueOrder: 4,
patientName: '张伟',
appointmentType: '专家',
room: '3号诊室',
doctor: '张医生',
waitingTime: '12:00',
status: '等待'
}
])
const syncCurrentCallFromQueue = () => {
const calling = originalQueueList.value.find((i) => i.status === '叫号中')
if (!calling) {
@@ -1108,12 +1029,12 @@ const loadDataFromApi = async () => {
}))
console.log('【心内科】候选池已加载', originalCandidatePoolList.value.length, '条今天的数据')
} else {
console.log('【心内科】候选池数据为空数组或非数组,使用默认数据')
originalCandidatePoolList.value = getInitialCandidatePoolList()
console.log('【心内科】候选池数据为空数组或非数组')
originalCandidatePoolList.value = []
}
} else {
console.log('【心内科】候选池响应为空或格式错误,使用默认数据')
originalCandidatePoolList.value = getInitialCandidatePoolList()
console.log('【心内科】候选池响应为空或格式错误')
originalCandidatePoolList.value = []
}
// 2) 队列列表:从数据库读取(可刷新、可恢复)
@@ -1161,10 +1082,8 @@ const loadDataFromApi = async () => {
console.log('【心内科】数据加载完成:候选池', originalCandidatePoolList.value.length, '条,队列', originalQueueList.value.length, '条')
ElMessage.success('【心内科】已从门诊挂号接口加载数据')
} catch (e) {
console.error('【心内科】loadDataFromApi 执行异常,使用本地假数据', e)
// 任何异常:回退本地假数据
originalCandidatePoolList.value = getInitialCandidatePoolList()
// 队列不再回退假数据,避免误导
console.error('【心内科】loadDataFromApi 执行异常:', e)
originalCandidatePoolList.value = []
originalQueueList.value = []
totalSignedIn.value = originalCandidatePoolList.value.length
totalInQueue.value = originalQueueList.value.length
@@ -1173,7 +1092,7 @@ const loadDataFromApi = async () => {
}
// 原始数据存储(用于过滤)
const originalCandidatePoolList = ref(getInitialCandidatePoolList())
const originalCandidatePoolList = ref([])
// 过滤后的智能候选池数据(按诊室过滤)
const filteredCandidatePoolList = computed(() => {
@@ -1184,7 +1103,7 @@ const filteredCandidatePoolList = computed(() => {
})
// 原始队列数据存储(用于过滤)
const originalQueueList = ref(getInitialQueueList())
const originalQueueList = ref([])
// 动态计算已加载数据中的唯一诊室列表(依赖上方两个 ref确保声明顺序正确
const uniqueRooms = computed(() => {