添加体检客户列表 耗时计算&渠道显示
This commit is contained in:
@@ -110,6 +110,29 @@ export const ExamPage = () => {
|
||||
const customerType: ExamClient['customerType'] = item.customer_type === 1 ? '团客' : '散客';
|
||||
const vipType: ExamClient['vipType'] = item.is_vip === 1 ? '高客' : '普客';
|
||||
|
||||
let elapsed = '00:00';
|
||||
// 计算耗时:体检完成时间 - 体检时间
|
||||
if (item.physical_exam_time && item.physical_exam_complete_time) {
|
||||
try {
|
||||
const startTime = new Date(item.physical_exam_time).getTime();
|
||||
const completeTime = new Date(item.physical_exam_complete_time).getTime();
|
||||
|
||||
// 检查时间是否有效
|
||||
if (!isNaN(startTime) && !isNaN(completeTime) && completeTime >= startTime) {
|
||||
const diffMs = completeTime - startTime;
|
||||
const diffMinutes = Math.floor(diffMs / 1000 / 60);
|
||||
const hours = Math.floor(diffMinutes / 60);
|
||||
const minutes = diffMinutes % 60;
|
||||
elapsed = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('计算体检耗时失败', err, {
|
||||
physical_exam_time: item.physical_exam_time,
|
||||
physical_exam_complete_time: item.physical_exam_complete_time,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 粗略判断上午/下午
|
||||
const timeSlot: ExamClient['timeSlot'] =
|
||||
(item.physical_exam_time || '').includes('下午') ? '下午' : '上午';
|
||||
@@ -122,13 +145,15 @@ export const ExamPage = () => {
|
||||
level: item.member_level || (item.is_vip === 1 ? 'VIP' : '普通'),
|
||||
packageName: item.package_name || '未提供套餐',
|
||||
status,
|
||||
elapsed: '',
|
||||
elapsed,
|
||||
checkedItems: [],
|
||||
pendingItems: [],
|
||||
timeSlot,
|
||||
channel: item.channel || '',
|
||||
vipType,
|
||||
signStatus,
|
||||
customerType,
|
||||
familyDoctorName: item.family_doctor_name || '',
|
||||
guidePrinted: item.is_print === 1,
|
||||
addonCount: item.add_item_count ?? 0,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user