签到状态判断优化

This commit is contained in:
xianyi
2026-01-12 10:35:19 +08:00
parent 48bfb6318b
commit c2e0f0f382
6 changed files with 12 additions and 1362 deletions

View File

@@ -127,9 +127,9 @@ export interface InputPhysicalExamCustomerList {
is_high_customer: number; is_high_customer: number;
/** 是否普客 1-是 0-否) */ /** 是否普客 1-是 0-否) */
is_general_customer: number; is_general_customer: number;
/** 是否已登记 1-是 0-否) */ /** 是否已签到 1-是 0-否) */
is_registered: number; is_registered: number;
/** 是否未登记 1-是 0-否) */ /** 是否未签到 1-是 0-否) */
is_not_registered: number; is_not_registered: number;
/** 是否散客 1-是 0-否) */ /** 是否散客 1-是 0-否) */
is_individual_customer: number; is_individual_customer: number;

View File

@@ -30,7 +30,7 @@ export const ExamModal = ({ client, tab, onTabChange, onClose }: ExamModalProps)
const idCardSignInDone = isExamActionDone(client.id, 'idCardSignIn'); const idCardSignInDone = isExamActionDone(client.id, 'idCardSignIn');
const printSignDone = isExamActionDone(client.id, 'printSign'); const printSignDone = isExamActionDone(client.id, 'printSign');
const signDone = idCardSignInDone || client.signStatus === '已登记' || client.checkedItems.includes('签到'); const signDone = ((client as any).is_sign_in === 1) || idCardSignInDone || client.signStatus === '已签到' || client.checkedItems.includes('签到');
const addonDone = (client.addonCount || 0) > 0; const addonDone = (client.addonCount || 0) > 0;
const printDone = printSignDone || !!client.guidePrinted; const printDone = printSignDone || !!client.guidePrinted;
const deliveryDone = !!client.deliveryDone; const deliveryDone = !!client.deliveryDone;

View File

@@ -219,11 +219,12 @@ export const ExamSection = ({
const idCardSignInDone = isExamActionDone(client.id, 'idCardSignIn'); const idCardSignInDone = isExamActionDone(client.id, 'idCardSignIn');
const printSignDone = isExamActionDone(client.id, 'printSign'); const printSignDone = isExamActionDone(client.id, 'printSign');
const signDone = idCardSignInDone || client.signStatus === '已登记' || client.checkedItems.includes('签到'); const signDone = idCardSignInDone || client.signStatus === '已签到' || client.checkedItems.includes('签到');
const addonCount = client.addonCount || 0; const addonCount = client.addonCount || 0;
const printDone = printSignDone || !!client.guidePrinted; const printDone = printSignDone || !!client.guidePrinted;
const openModal = (tab: ExamModalTab) => onOpenModal(client.id, tab); const openModal = (tab: ExamModalTab) => onOpenModal(client.id, tab);
return ( return (
<div <div
key={client.id} key={client.id}
@@ -266,7 +267,7 @@ export const ExamSection = ({
}} }}
> >
<span></span> <span></span>
{(signDone && printDone) && <span></span>} {((client as any).is_sign_in === 1) && <span></span>}
</button> </button>
<button <button
type='button' type='button'

View File

@@ -11,7 +11,7 @@ export interface ExamClient {
pendingItems: string[]; pendingItems: string[];
channel: string; channel: string;
vipType: '高客' | '普客'; vipType: '高客' | '普客';
signStatus: '已登记' | '未登记'; signStatus: '已签到' | '未签到';
customerType: '团客' | '散客'; customerType: '团客' | '散客';
guidePrinted?: boolean; guidePrinted?: boolean;
addonCount?: number; addonCount?: number;
@@ -22,7 +22,7 @@ export interface ExamClient {
export type ExamModalTab = 'detail' | 'sign' | 'addon' | 'print' | 'delivery'; export type ExamModalTab = 'detail' | 'sign' | 'addon' | 'print' | 'delivery';
export type QuickActionType = 'none' | 'meal' | 'vip' | 'note'; export type QuickActionType = 'none' | 'meal' | 'vip' | 'note';
export const EXAM_TAGS = ['全部', '上午', '下午', '高客', '普客', '已登记', '未登记', '散客', '团客'] as const; export const EXAM_TAGS = ['全部', '上午', '下午', '高客', '普客', '已签到', '未签到', '散客', '团客'] as const;
export interface BookingDoctor { export interface BookingDoctor {
id: string; id: string;

View File

@@ -51,8 +51,8 @@ export const ExamPage = () => {
const is_afternoon = examFilterTags.has('下午') ? 1 : 0; const is_afternoon = examFilterTags.has('下午') ? 1 : 0;
const is_high_customer = examFilterTags.has('高客') ? 1 : 0; const is_high_customer = examFilterTags.has('高客') ? 1 : 0;
const is_general_customer = examFilterTags.has('普客') ? 1 : 0; const is_general_customer = examFilterTags.has('普客') ? 1 : 0;
const is_registered = examFilterTags.has('已登记') ? 1 : 0; const is_registered = examFilterTags.has('已签到') ? 1 : 0;
const is_not_registered = examFilterTags.has('未登记') ? 1 : 0; const is_not_registered = examFilterTags.has('未签到') ? 1 : 0;
const is_individual_customer = examFilterTags.has('散客') ? 1 : 0; const is_individual_customer = examFilterTags.has('散客') ? 1 : 0;
const is_group_customer = examFilterTags.has('团客') ? 1 : 0; const is_group_customer = examFilterTags.has('团客') ? 1 : 0;
@@ -85,7 +85,7 @@ export const ExamPage = () => {
? '用餐' ? '用餐'
: '体检中'; : '体检中';
const signStatus: ExamClient['signStatus'] = item.is_register === 1 ? '已登记' : '未登记'; const signStatus: ExamClient['signStatus'] = item.is_register === 1 ? '已签到' : '未签到';
const customerType: ExamClient['customerType'] = item.customer_type === 1 ? '团客' : '散客'; const customerType: ExamClient['customerType'] = item.customer_type === 1 ? '团客' : '散客';
const vipType: ExamClient['vipType'] = item.is_vip === 1 ? '高客' : '普客'; const vipType: ExamClient['vipType'] = item.is_vip === 1 ? '高客' : '普客';
@@ -112,6 +112,7 @@ export const ExamPage = () => {
addonCount: item.add_item_count ?? 0, addonCount: item.add_item_count ?? 0,
appointmentRemarks: item.appointment_remarks || null, appointmentRemarks: item.appointment_remarks || null,
physical_exam_status_name: item.physical_exam_status_name || null, physical_exam_status_name: item.physical_exam_status_name || null,
is_sign_in: item.is_sign_in ?? 0,
}; };
}); });
setClients(mapped); setClients(mapped);

File diff suppressed because it is too large Load Diff