import { FC } from 'react';
const AppointmentScreen: FC = () => {
const mockAppointments = [
{
id: 1,
title: '商务会议翻译',
date: '2024-01-20',
time: '10:00-12:00',
language: '中文 ⇄ 英文',
status: '已确认',
translator: '李译员'
},
{
id: 2,
title: '医疗咨询翻译',
date: '2024-01-22',
time: '14:00-15:00',
language: '中文 ⇄ 西班牙文',
status: '待确认',
translator: '王译员'
},
{
id: 3,
title: '法律文件翻译',
date: '2024-01-25',
time: '09:00-11:00',
language: '中文 ⇄ 法文',
status: '已取消',
translator: '张译员'
},
];
return (
{/* 新建预约 */}
预约翻译服务
{/* 快速预约选项 */}
快速预约
{/* 我的预约 */}
我的预约
{mockAppointments.map((appointment) => (
{appointment.title}
{appointment.status}
📅 日期时间
{appointment.date} {appointment.time}
🌐 语言
{appointment.language}
👤 译员
{appointment.translator}
))}
{/* 预约统计 */}
);
};
const styles = {
container: {
display: 'flex',
flexDirection: 'column' as const,
height: '100%',
backgroundColor: '#f5f5f5',
},
content: {
flex: 1,
padding: '16px',
paddingBottom: '100px',
},
section: {
marginBottom: '24px',
},
sectionTitle: {
fontSize: '18px',
fontWeight: 'bold',
color: '#333',
margin: '0 0 16px 0',
},
newAppointmentButton: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
width: '100%',
padding: '16px',
backgroundColor: '#1890ff',
color: '#fff',
border: 'none',
borderRadius: '12px',
cursor: 'pointer',
fontSize: '16px',
fontWeight: 'bold',
boxShadow: '0 4px 12px rgba(24, 144, 255, 0.3)',
},
buttonIcon: {
fontSize: '20px',
marginRight: '8px',
},
buttonText: {
fontSize: '16px',
},
quickOptions: {
display: 'grid',
gridTemplateColumns: 'repeat(2, 1fr)',
gap: '12px',
},
quickOption: {
display: 'flex',
flexDirection: 'column' as const,
alignItems: 'center',
padding: '20px',
backgroundColor: '#fff',
border: 'none',
borderRadius: '12px',
cursor: 'pointer',
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
transition: 'transform 0.2s ease',
},
optionIcon: {
fontSize: '32px',
marginBottom: '8px',
},
optionLabel: {
fontSize: '14px',
color: '#333',
fontWeight: 'bold',
},
appointmentsList: {
display: 'flex',
flexDirection: 'column' as const,
gap: '16px',
},
appointmentItem: {
backgroundColor: '#fff',
borderRadius: '12px',
padding: '16px',
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
},
appointmentHeader: {
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
marginBottom: '12px',
},
appointmentTitle: {
fontSize: '16px',
fontWeight: 'bold',
color: '#333',
margin: 0,
},
appointmentStatus: {
padding: '4px 8px',
borderRadius: '4px',
fontSize: '12px',
fontWeight: 'bold',
},
appointmentDetails: {
marginBottom: '16px',
},
appointmentRow: {
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
marginBottom: '8px',
},
appointmentLabel: {
fontSize: '14px',
color: '#666',
},
appointmentValue: {
fontSize: '14px',
color: '#333',
fontWeight: 'bold',
},
appointmentActions: {
display: 'flex',
gap: '8px',
},
actionButton: {
flex: 1,
padding: '8px 16px',
backgroundColor: '#1890ff',
color: '#fff',
border: 'none',
borderRadius: '6px',
cursor: 'pointer',
fontSize: '14px',
fontWeight: 'bold',
},
statsContainer: {
display: 'grid',
gridTemplateColumns: 'repeat(4, 1fr)',
gap: '12px',
},
statItem: {
display: 'flex',
flexDirection: 'column' as const,
alignItems: 'center',
padding: '16px 8px',
backgroundColor: '#fff',
borderRadius: '12px',
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
},
statValue: {
fontSize: '20px',
fontWeight: 'bold',
color: '#1890ff',
marginBottom: '4px',
},
statLabel: {
fontSize: '12px',
color: '#666',
textAlign: 'center' as const,
},
};
export default AppointmentScreen;