44 lines
1.2 KiB
TypeScript
Executable File
44 lines
1.2 KiB
TypeScript
Executable File
export interface Course {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
instructor: string;
|
|
price: number;
|
|
originalPrice: number;
|
|
category: string;
|
|
level: string;
|
|
thumbnail: string;
|
|
rating: number;
|
|
enrollments: number;
|
|
duration: string;
|
|
}
|
|
|
|
export const categories = [
|
|
"计算机科学",
|
|
"数据科学",
|
|
"商业管理",
|
|
"人工智能",
|
|
"软件开发",
|
|
"网络安全",
|
|
"云计算",
|
|
"前端开发",
|
|
"后端开发",
|
|
"移动开发"
|
|
];
|
|
|
|
export const levels = ["入门", "初级", "中级", "高级"];
|
|
|
|
export const mockCourses: Course[] = Array.from({ length: 50 }, (_, i) => ({
|
|
id: `course-${i + 1}`,
|
|
title: `${categories[i % categories.length]}课程 ${i + 1}`,
|
|
description: "本课程将带你深入了解该领域的核心概念和实践应用,通过实战项目提升你的专业技能。",
|
|
instructor: `讲师 ${i + 1}`,
|
|
price: Math.floor(Math.random() * 500 + 99),
|
|
originalPrice: Math.floor(Math.random() * 1000 + 299),
|
|
category: categories[i % categories.length],
|
|
level: levels[i % levels.length],
|
|
thumbnail: `/api/placeholder/280/160`,
|
|
rating: Number((Math.random() * 2 + 3).toFixed(1)),
|
|
enrollments: Math.floor(Math.random() * 10000),
|
|
duration: `${Math.floor(Math.random() * 20 + 10)}小时`
|
|
})); |