Merge remote-tracking branch 'origin/develop' into zhaoyun
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div class="table-container">
|
||||
<vxe-table
|
||||
:row-config="{ isCurrent: true }" :data="filteredCandidatePoolList"
|
||||
:data="filteredCandidatePoolList"
|
||||
stripe
|
||||
border
|
||||
height="100%"
|
||||
@@ -802,17 +802,6 @@ const syncCurrentCallFromQueue = () => {
|
||||
}
|
||||
|
||||
// ============ 与后端接口联动 ============
|
||||
// 注意:后端未实现或出错时会自动退回本地假数据
|
||||
// 将分钟数转换为 MM:SS 格式
|
||||
const formatMinutesToMmSs = (minutes) => {
|
||||
if (minutes == null || minutes < 0) return '00:00'
|
||||
const hours = Math.floor(minutes / 60)
|
||||
const mins = minutes % 60
|
||||
const hoursStr = String(hours).padStart(2, '0')
|
||||
const minsStr = String(mins).padStart(2, '0')
|
||||
return `${hoursStr}:${minsStr}`
|
||||
}
|
||||
|
||||
// 将年龄字符串转换为数字(处理 "20岁"、"1小时" 等格式)
|
||||
const parseAge = (ageStr) => {
|
||||
if (!ageStr) return 0
|
||||
@@ -944,20 +933,6 @@ const loadQueueFromDb = async (dateStr) => {
|
||||
}
|
||||
}
|
||||
|
||||
// 根据状态枚举文本转换为前端状态
|
||||
const mapStatusToFrontend = (statusEnumText) => {
|
||||
if (!statusEnumText) return '等待'
|
||||
// 状态映射:就诊中 -> 叫号中,其他 -> 等待
|
||||
if (statusEnumText.includes('就诊中') || statusEnumText.includes('在诊')) {
|
||||
return '叫号中'
|
||||
} else if (statusEnumText.includes('已完成') || statusEnumText.includes('已出院')) {
|
||||
return '已完成'
|
||||
} else if (statusEnumText.includes('已取消') || statusEnumText.includes('退号')) {
|
||||
return '已取消'
|
||||
}
|
||||
return '等待'
|
||||
}
|
||||
|
||||
// 判断日期是否是今天
|
||||
const isToday = (date) => {
|
||||
if (!date) return false
|
||||
@@ -977,7 +952,7 @@ const filterTodayData = (data) => {
|
||||
tomorrow.setDate(tomorrow.getDate() + 1)
|
||||
|
||||
return data.filter(item => {
|
||||
if (!item.registerTime) return false
|
||||
if (!item.registerTime) return true // 无挂号时间的保留(如当天挂号未设置时间)
|
||||
const registerDate = new Date(item.registerTime)
|
||||
return registerDate >= today && registerDate < tomorrow
|
||||
})
|
||||
@@ -1150,27 +1125,13 @@ const filteredQueueList = computed(() => {
|
||||
return filtered
|
||||
})
|
||||
|
||||
const handleQueueRowClick = (row) => {
|
||||
const handleQueueRowClick = ({ row }) => {
|
||||
selectedQueueRow.value = row
|
||||
}
|
||||
|
||||
// 候选池选择变化
|
||||
const handleCandidateSelectionChange = (selection) => {
|
||||
selectedCandidates.value = selection
|
||||
}
|
||||
|
||||
// 获取下一个队序号
|
||||
const getNextQueueOrder = () => {
|
||||
if (originalQueueList.value.length === 0) return 1
|
||||
const maxOrder = Math.max(...originalQueueList.value.map(item => item.queueOrder))
|
||||
return maxOrder + 1
|
||||
}
|
||||
|
||||
// 重新计算队序号(保持连续)
|
||||
const recalculateQueueOrders = () => {
|
||||
originalQueueList.value.forEach((item, index) => {
|
||||
item.queueOrder = index + 1
|
||||
})
|
||||
const handleCandidateSelectionChange = ({ records }) => {
|
||||
selectedCandidates.value = records
|
||||
}
|
||||
|
||||
// 加入队列(选中的候选池患者)——落库
|
||||
@@ -1442,18 +1403,18 @@ const handleRemoveFromQueue = async () => {
|
||||
|
||||
// 是否可以上移
|
||||
const canMoveUp = computed(() => {
|
||||
if (!selectedQueueRow.value) return false
|
||||
if (!selectedQueueRow.value || selectedQueueRow.value.id == null) return false
|
||||
const index = originalQueueList.value.findIndex(
|
||||
item => item.queueOrder === selectedQueueRow.value.queueOrder
|
||||
item => item.id === selectedQueueRow.value.id
|
||||
)
|
||||
return index > 0
|
||||
})
|
||||
|
||||
// 是否可以下移
|
||||
const canMoveDown = computed(() => {
|
||||
if (!selectedQueueRow.value) return false
|
||||
if (!selectedQueueRow.value || selectedQueueRow.value.id == null) return false
|
||||
const index = originalQueueList.value.findIndex(
|
||||
item => item.queueOrder === selectedQueueRow.value.queueOrder
|
||||
item => item.id === selectedQueueRow.value.id
|
||||
)
|
||||
return index >= 0 && index < originalQueueList.value.length - 1
|
||||
})
|
||||
@@ -1533,7 +1494,7 @@ const stopWaitingTimer = () => {
|
||||
const getRowClassName = ({ row }) => {
|
||||
const classes = []
|
||||
if (row.status === '叫号中') classes.push('calling-row')
|
||||
if (selectedQueueRow.value && row.queueOrder === selectedQueueRow.value.queueOrder) {
|
||||
if (selectedQueueRow.value && row.id != null && row.id === selectedQueueRow.value.id) {
|
||||
classes.push('selected-row')
|
||||
}
|
||||
return classes.join(' ')
|
||||
@@ -2029,7 +1990,7 @@ const handleTestRule = () => {
|
||||
|
||||
// 组件挂载
|
||||
onMounted(() => {
|
||||
// 初始化:优先从后端加载,失败则回退本地假数据
|
||||
// 初始化:从后端加载数据
|
||||
loadDataFromApi()
|
||||
startWaitingTimer()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user