fix(智能分诊排队管理): 移除候选池和队列的硬编码假数据,消除页面加载时的数据闪现问题
- 删除 getInitialCandidatePoolList() 和 getInitialQueueList() 两个硬编码函数(共8条虚构患者/队列记录) - 候选池和队列 ref 初始值由硬编码假数据改为空数组 [] - currentDate 初始值由固定日期改为空字符串,由 loadDataFromApi 动态计算 - currentCall 初始值由假数据(郑华/4号诊室)改为占位符(-/-/-),由 syncCurrentCallFromQueue 动态同步 - loadDataFromApi 异常回退不再注入假数据,统一清空为 []
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
Reference in New Issue
Block a user