fix: Bug #395 疾病报告卡添加撤销审核功能 | Bug #398/#399 门诊预约已预约和已取号记录不应被时间过滤

This commit is contained in:
2026-04-23 17:14:30 +08:00
parent 0b8a7245f6
commit 2a8e662b44
2 changed files with 50 additions and 2 deletions

View File

@@ -739,9 +739,15 @@ export default {
status: record.statusEnum_enumText || record.status status: record.statusEnum_enumText || record.status
})); }));
// 先进行时间过滤(过滤掉已过期的号源) // 🔧 BugFix#398/#399: 时间过滤仅对"未预约"号源生效
// 已预约、已取号、已退号等状态的记录不应因时间过期被过滤
const currentTime = new Date().getTime(); const currentTime = new Date().getTime();
const timeFilteredRecords = mappedRecords.filter(ticket => { const timeFilteredRecords = mappedRecords.filter(ticket => {
// 非未预约状态的记录不过滤时间
if (ticket.status && ticket.status !== '未预约') {
return true;
}
// 未预约号源:过滤已过期的
const ticketTime = new Date(ticket.dateTime).getTime(); const ticketTime = new Date(ticket.dateTime).getTime();
return ticketTime > currentTime; return ticketTime > currentTime;
}); });
@@ -765,10 +771,11 @@ export default {
if (!this.selectedStatus || this.selectedStatus === 'all') { if (!this.selectedStatus || this.selectedStatus === 'all') {
return records; return records;
} }
// 🔧 BugFix#399: 确保已取号状态正确匹配
const statusMap = { const statusMap = {
unbooked: ['未预约'], unbooked: ['未预约'],
booked: ['已预约'], booked: ['已预约'],
checked: ['已取号'], checked: ['已取号', '已签到'],
cancelled: ['已停诊', '已取消'], cancelled: ['已停诊', '已取消'],
returned: ['已退号'] returned: ['已退号']
}; };

View File

@@ -205,6 +205,14 @@
> >
审核 审核
</el-button> </el-button>
<el-button
v-if="row.status === 2"
type="warning"
link
@click="handleRevokeAudit(row)"
>
撤销审核
</el-button>
<el-button <el-button
type="info" type="info"
link link
@@ -825,6 +833,39 @@ function handleView(row) {
loadCardDetail(row.cardNo); loadCardDetail(row.cardNo);
} }
// 撤销审核
async function handleRevokeAudit(row) {
try {
await ElMessageBox.confirm(
'确定要撤销此报卡的审核吗?',
'确认撤销',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
);
const res = await returnInfectiousCard({
cardNo: row.cardNo,
returnReason: '撤销审核'
});
if (res.code === 200) {
ElMessage.success('撤销审核成功');
loadTableData();
loadStats();
} else {
ElMessage.error(res.msg || '撤销审核失败');
}
} catch (err) {
if (err !== 'cancel') {
ElMessage.error('撤销审核失败');
console.error(err);
}
}
}
// 加载卡片详情 // 加载卡片详情
async function loadCardDetail(cardNo) { async function loadCardDetail(cardNo) {
drawerLoading.value = true; drawerLoading.value = true;