77 门诊挂号-》预约签到
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
<option value="booked">已预约</option>
|
||||
<option value="checked">已取号</option>
|
||||
<option value="cancelled">已停诊</option>
|
||||
<option value="returned">已退号</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="patientSearch" class="patient-search">
|
||||
@@ -254,6 +255,7 @@ const STATUS_CLASS_MAP = {
|
||||
'未预约': 'status-unbooked',
|
||||
'已预约': 'status-booked',
|
||||
'已取号': 'status-checked',
|
||||
'已退号': 'status-returned',
|
||||
'已停诊': 'status-cancelled',
|
||||
'已取消': 'status-cancelled'
|
||||
};
|
||||
@@ -703,10 +705,36 @@ export default {
|
||||
return;
|
||||
}
|
||||
const records = payload.list || payload.records || [];
|
||||
const filteredRecords = this.applyStatusFilter(records);
|
||||
const total = Number(payload.total);
|
||||
this.tickets = [...records];
|
||||
this.allTickets = [...records];
|
||||
this.totalTickets = Number.isFinite(total) ? total : this.tickets.length;
|
||||
this.tickets = [...filteredRecords];
|
||||
this.allTickets = [...filteredRecords];
|
||||
// 当按状态筛选时,优先使用前端过滤后的数量,避免后端状态未生效导致“显示全部”
|
||||
if (this.selectedStatus && this.selectedStatus !== 'all') {
|
||||
this.totalTickets = this.tickets.length;
|
||||
} else {
|
||||
this.totalTickets = Number.isFinite(total) ? total : this.tickets.length;
|
||||
}
|
||||
},
|
||||
applyStatusFilter(records = []) {
|
||||
if (!Array.isArray(records) || records.length === 0) {
|
||||
return [];
|
||||
}
|
||||
if (!this.selectedStatus || this.selectedStatus === 'all') {
|
||||
return records;
|
||||
}
|
||||
const statusMap = {
|
||||
unbooked: ['未预约'],
|
||||
booked: ['已预约'],
|
||||
checked: ['已取号'],
|
||||
cancelled: ['已停诊', '已取消'],
|
||||
returned: ['已退号']
|
||||
};
|
||||
const matchedStatusList = statusMap[this.selectedStatus] || [];
|
||||
if (matchedStatusList.length === 0) {
|
||||
return records;
|
||||
}
|
||||
return records.filter(item => matchedStatusList.includes(item?.status));
|
||||
},
|
||||
updateDoctorsListFromApi(doctorResponse) {
|
||||
let doctorList = [];
|
||||
@@ -1376,6 +1404,11 @@ export default {
|
||||
color: #52c41a;
|
||||
}
|
||||
|
||||
.status-returned {
|
||||
background-color: #fff7e6;
|
||||
color: #d46b08;
|
||||
}
|
||||
|
||||
.status-cancelled {
|
||||
background-color: #fff1f0;
|
||||
color: #ff4d4f;
|
||||
|
||||
Reference in New Issue
Block a user