261 lines
7.1 KiB
TypeScript
261 lines
7.1 KiB
TypeScript
export interface ExamClient {
|
|
id: string;
|
|
name: string;
|
|
gender: '男' | '女';
|
|
age: number;
|
|
level: string;
|
|
packageName: string;
|
|
status: '体检中' | '已签到' | '用餐';
|
|
elapsed: string;
|
|
checkedItems: string[];
|
|
pendingItems: string[];
|
|
timeSlot: '上午' | '下午';
|
|
vipType: '高客' | '普客';
|
|
signStatus: '已登记' | '未登记';
|
|
customerType: '团客' | '散客';
|
|
guidePrinted?: boolean;
|
|
addonCount?: number;
|
|
[key: string]: unknown;
|
|
}
|
|
|
|
export type ExamModalTab = 'detail' | 'sign' | 'addon' | 'print';
|
|
export type QuickActionType = 'none' | 'meal' | 'vip' | 'delivery' | 'note';
|
|
|
|
export const HOME_STATS: [string, number][] = [
|
|
['今日预约', 80],
|
|
['签到人数', 60],
|
|
['在检人数', 25],
|
|
['打印导检单', 40],
|
|
['已完成人数', 30],
|
|
];
|
|
|
|
export const REVENUE_STATS: [string, string][] = [
|
|
['体检收入', '¥ 86,000'],
|
|
['加项收入', '¥ 12,400'],
|
|
['整体收入', '¥ 98,400'],
|
|
['目标收入', '¥ 120,000'],
|
|
['完成百分比', '82%'],
|
|
['缺口', '¥ 21,600'],
|
|
];
|
|
|
|
export const B1_ROWS: [string, string, number, number, number, number][] = [
|
|
['B超1', '张医生', 6, 2, 2, 15],
|
|
['B超2', '李医生', 5, 2, 1, 14],
|
|
['B超3', '王医生', 4, 2, 2, 16],
|
|
['耳鼻喉', '王医生', 10, 3, 2, 10],
|
|
['外科', '周医生', 8, 3, 2, 20],
|
|
];
|
|
|
|
export const B1_SUMMARY = {
|
|
totalClients: B1_ROWS.reduce((s, r) => s + r[2] + r[3] + r[4], 0),
|
|
waiting: B1_ROWS.reduce((s, r) => s + r[4], 0),
|
|
inExam: B1_ROWS.reduce((s, r) => s + r[3], 0),
|
|
};
|
|
|
|
export const NORTH3_ROWS: [string, number, number][] = [
|
|
['刘医生', 15, 9],
|
|
['高医生', 12, 7],
|
|
['马医生', 18, 10],
|
|
];
|
|
|
|
export const NORTH3_SUMMARY = {
|
|
totalDoctor: NORTH3_ROWS.length,
|
|
totalAssigned: NORTH3_ROWS.reduce((s, r) => s + r[1], 0),
|
|
consult: NORTH3_ROWS.reduce((s, r) => s + r[2], 0),
|
|
};
|
|
|
|
export const EXAM_CLIENTS: ExamClient[] = [
|
|
{
|
|
id: 'A001',
|
|
name: '张伟',
|
|
gender: '男',
|
|
age: 35,
|
|
level: 'VIP',
|
|
packageName: '高端入职体检套餐',
|
|
status: '体检中',
|
|
elapsed: '00:45',
|
|
checkedItems: ['签到', '更衣', '预检', '抽血'],
|
|
pendingItems: ['家医面诊', 'B超'],
|
|
timeSlot: '上午',
|
|
vipType: '高客',
|
|
signStatus: '已登记',
|
|
customerType: '团客',
|
|
guidePrinted: true,
|
|
addonCount: 2,
|
|
addonOptions: [
|
|
{
|
|
id: 'addon_001',
|
|
name: '胸部 CT',
|
|
paid: true,
|
|
tags: [{ title: '热门', type: 1 }, { title: '肺结节筛查', type: 2 }],
|
|
originalPrice: '400.00',
|
|
currentPrice: '320.00',
|
|
},
|
|
{
|
|
id: 'addon_002',
|
|
name: '肿瘤标志物组合',
|
|
paid: true,
|
|
tags: [{ title: '医生推荐', type: 3 }],
|
|
originalPrice: '300.00',
|
|
currentPrice: '260.00',
|
|
},
|
|
{
|
|
id: 'addon_003',
|
|
name: '颈动脉超声',
|
|
paid: false,
|
|
tags: [{ title: '脑卒中风险', type: 2 }],
|
|
originalPrice: '260.00',
|
|
currentPrice: '220.00',
|
|
},
|
|
{
|
|
id: 'addon_004',
|
|
name: '幽门螺杆菌检测',
|
|
paid: false,
|
|
tags: [{ title: '胃病筛查', type: 2 }],
|
|
originalPrice: '180.00',
|
|
currentPrice: '150.00',
|
|
},
|
|
{
|
|
id: 'addon_005',
|
|
name: '骨密度检查',
|
|
paid: false,
|
|
tags: [{ title: '骨质疏松', type: 2 }],
|
|
originalPrice: '260.00',
|
|
currentPrice: '210.00',
|
|
},
|
|
{
|
|
id: 'addon_006',
|
|
name: '心脏彩超',
|
|
paid: false,
|
|
tags: [{ title: '心功能评估', type: 2 }],
|
|
originalPrice: '380.00',
|
|
currentPrice: '320.00',
|
|
},
|
|
{
|
|
id: 'addon_007',
|
|
name: '甲状腺功能全套',
|
|
paid: false,
|
|
tags: [{ title: '内分泌', type: 2 }],
|
|
originalPrice: '260.00',
|
|
currentPrice: '230.00',
|
|
},
|
|
{
|
|
id: 'addon_008',
|
|
name: '颅脑核磁共振',
|
|
paid: false,
|
|
tags: [{ title: '高价值项目', type: 1 }],
|
|
originalPrice: '1200.00',
|
|
currentPrice: '980.00',
|
|
},
|
|
{
|
|
id: 'addon_009',
|
|
name: '眼底照相 + 眼压',
|
|
paid: false,
|
|
tags: [{ title: '糖尿病并发症', type: 2 }],
|
|
originalPrice: '220.00',
|
|
currentPrice: '180.00',
|
|
},
|
|
{
|
|
id: 'addon_010',
|
|
name: '女性宫颈癌筛查 (TCT+HPV)',
|
|
paid: false,
|
|
tags: [{ title: '女性建议加选', type: 3 }],
|
|
originalPrice: '600.00',
|
|
currentPrice: '520.00',
|
|
},
|
|
{
|
|
id: 'addon_011',
|
|
name: '男性前列腺专项',
|
|
paid: false,
|
|
tags: [{ title: '男性专项', type: 2 }],
|
|
originalPrice: '260.00',
|
|
currentPrice: '220.00',
|
|
},
|
|
{
|
|
id: 'addon_012',
|
|
name: '脑血管 CT (CTA)',
|
|
paid: false,
|
|
tags: [{ title: '高风险人群', type: 1 }],
|
|
originalPrice: '1500.00',
|
|
currentPrice: '1200.00',
|
|
},
|
|
{
|
|
id: 'addon_013',
|
|
name: '肝纤维化评估',
|
|
paid: false,
|
|
tags: [{ title: '肝病风险', type: 2 }],
|
|
originalPrice: '360.00',
|
|
currentPrice: '300.00',
|
|
},
|
|
{
|
|
id: 'addon_014',
|
|
name: '全身动脉硬化筛查',
|
|
paid: false,
|
|
tags: [{ title: '血管评估', type: 2 }],
|
|
originalPrice: '480.00',
|
|
currentPrice: '420.00',
|
|
},
|
|
{
|
|
id: 'addon_015',
|
|
name: '睡眠呼吸监测',
|
|
paid: false,
|
|
tags: [{ title: '打鼾/睡眠差', type: 2 }],
|
|
originalPrice: '520.00',
|
|
currentPrice: '460.00',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 'A002',
|
|
name: '李静',
|
|
gender: '女',
|
|
age: 29,
|
|
level: '普通',
|
|
packageName: '基础体检套餐',
|
|
status: '已签到',
|
|
elapsed: '00:10',
|
|
checkedItems: ['签到'],
|
|
pendingItems: ['更衣', '预检', '抽血'],
|
|
timeSlot: '上午',
|
|
vipType: '普客',
|
|
signStatus: '已登记',
|
|
customerType: '散客',
|
|
guidePrinted: false,
|
|
addonCount: 0,
|
|
},
|
|
{
|
|
id: 'A003',
|
|
name: '孙丽',
|
|
gender: '女',
|
|
age: 31,
|
|
level: 'VIP',
|
|
packageName: '健康管理套餐',
|
|
status: '用餐',
|
|
elapsed: '00:50',
|
|
checkedItems: ['签到', '更衣', '预检', '抽血', '家医面诊'],
|
|
pendingItems: ['B超'],
|
|
timeSlot: '下午',
|
|
vipType: '高客',
|
|
signStatus: '已登记',
|
|
customerType: '团客',
|
|
guidePrinted: true,
|
|
addonCount: 1,
|
|
},
|
|
];
|
|
|
|
export const EXAM_STATS: [string, number][] = [
|
|
['预约人数', EXAM_CLIENTS.length],
|
|
['已签到', EXAM_CLIENTS.filter((c) => c.status === '已签到').length],
|
|
['体检中', EXAM_CLIENTS.filter((c) => c.status === '体检中').length],
|
|
['用餐', EXAM_CLIENTS.filter((c) => c.status === '用餐').length],
|
|
];
|
|
|
|
export const EXAM_TAGS = ['全部', '上午', '下午', '高客', '普客', '已登记', '未登记', '散客', '团客'] as const;
|
|
|
|
export const BOOKING_DOCTORS = [
|
|
{ id: 'zhang', name: '张主任', dept: '内科 · 主任医师', period: '上午', total: 20, remain: 8 },
|
|
{ id: 'wang', name: '王教授', dept: '外科 · 主任医师', period: '下午', total: 16, remain: 10 },
|
|
];
|
|
|
|
|