2025-02-06 16:32:31 +08:00
|
|
|
import HeroSection from './components/HeroSection';
|
|
|
|
import CategorySection from './components/CategorySection';
|
|
|
|
import CoursesSection from './components/CoursesSection';
|
|
|
|
import FeaturedTeachersSection from './components/FeaturedTeachersSection';
|
2025-02-24 11:50:56 +08:00
|
|
|
import { api } from '@nice/client';
|
2025-02-24 21:47:34 +08:00
|
|
|
import { useEffect, useState } from 'react';
|
|
|
|
interface Courses{
|
|
|
|
id: number;
|
|
|
|
title: string;
|
|
|
|
instructor: string;
|
|
|
|
students: number;
|
|
|
|
rating: number;
|
|
|
|
level: string;
|
|
|
|
duration: string;
|
|
|
|
category: string;
|
|
|
|
progress: number;
|
|
|
|
thumbnail: string;
|
|
|
|
}
|
2025-02-06 16:32:31 +08:00
|
|
|
const HomePage = () => {
|
2025-02-24 21:47:34 +08:00
|
|
|
// const mockCourses = [
|
|
|
|
// {
|
|
|
|
// id: 1,
|
|
|
|
// title: 'Python 零基础入门',
|
|
|
|
// instructor: '张教授',
|
|
|
|
// students: 12000,
|
|
|
|
// rating: 4.8,
|
|
|
|
// level: '入门',
|
|
|
|
// duration: '36小时',
|
|
|
|
// category: '编程语言',
|
|
|
|
// progress: 16,
|
|
|
|
// thumbnail: '/images/course1.jpg',
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 2,
|
|
|
|
// title: '数据结构与算法',
|
|
|
|
// instructor: '李教授',
|
|
|
|
// students: 8500,
|
|
|
|
// rating: 4.9,
|
|
|
|
// level: '进阶',
|
|
|
|
// duration: '48小时',
|
|
|
|
// category: '计算机基础',
|
|
|
|
// progress: 35,
|
|
|
|
// thumbnail: '/images/course2.jpg',
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 3,
|
|
|
|
// title: '前端开发实战',
|
|
|
|
// instructor: '王教授',
|
|
|
|
// students: 10000,
|
|
|
|
// rating: 4.7,
|
|
|
|
// level: '中级',
|
|
|
|
// duration: '42小时',
|
|
|
|
// category: '前端开发',
|
|
|
|
// progress: 68,
|
|
|
|
// thumbnail: '/images/course3.jpg',
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 4,
|
|
|
|
// title: 'Java企业级开发',
|
|
|
|
// instructor: '刘教授',
|
|
|
|
// students: 9500,
|
|
|
|
// rating: 4.6,
|
|
|
|
// level: '高级',
|
|
|
|
// duration: '56小时',
|
|
|
|
// category: '编程语言',
|
|
|
|
// progress: 15,
|
|
|
|
// thumbnail: '/images/course4.jpg',
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 5,
|
|
|
|
// title: '人工智能基础',
|
|
|
|
// instructor: '陈教授',
|
|
|
|
// students: 11000,
|
|
|
|
// rating: 4.9,
|
|
|
|
// level: '中级',
|
|
|
|
// duration: '45小时',
|
|
|
|
// category: '人工智能',
|
|
|
|
// progress: 20,
|
|
|
|
// thumbnail: '/images/course5.jpg',
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 6,
|
|
|
|
// title: '大数据分析',
|
|
|
|
// instructor: '赵教授',
|
|
|
|
// students: 8000,
|
|
|
|
// rating: 4.8,
|
|
|
|
// level: '进阶',
|
|
|
|
// duration: '50小时',
|
|
|
|
// category: '数据科学',
|
|
|
|
// progress: 45,
|
|
|
|
// thumbnail: '/images/course6.jpg',
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 7,
|
|
|
|
// title: '云计算实践',
|
|
|
|
// instructor: '孙教授',
|
|
|
|
// students: 7500,
|
|
|
|
// rating: 4.7,
|
|
|
|
// level: '高级',
|
|
|
|
// duration: '48小时',
|
|
|
|
// category: '云计算',
|
|
|
|
// progress: 15,
|
|
|
|
// thumbnail: '/images/course7.jpg',
|
|
|
|
// },
|
|
|
|
// {
|
|
|
|
// id: 8,
|
|
|
|
// title: '移动应用开发',
|
|
|
|
// instructor: '周教授',
|
|
|
|
// students: 9000,
|
|
|
|
// rating: 4.8,
|
|
|
|
// level: '中级',
|
|
|
|
// duration: '40小时',
|
|
|
|
// category: '移动开发',
|
|
|
|
// progress: 70,
|
|
|
|
// thumbnail: '/images/course8.jpg',
|
|
|
|
// },
|
|
|
|
// ];
|
|
|
|
const { data ,isLoading}: { data: Courses[] , isLoading:boolean} = api.post.findMany.useQuery({
|
|
|
|
where: {},
|
|
|
|
include: {
|
|
|
|
instructors: true,
|
2025-02-06 16:32:31 +08:00
|
|
|
},
|
2025-02-24 21:47:34 +08:00
|
|
|
orderBy: {
|
|
|
|
createdAt: 'desc' // 按创建时间降序排列
|
2025-02-06 16:32:31 +08:00
|
|
|
},
|
2025-02-24 21:47:34 +08:00
|
|
|
take: 8 // 只获取前8个课程
|
|
|
|
});
|
|
|
|
useEffect(() => {
|
|
|
|
if (data) {
|
|
|
|
console.log('mockCourses data:', data);
|
|
|
|
}
|
|
|
|
}, [data]);
|
|
|
|
|
|
|
|
// 数据处理逻辑
|
|
|
|
// 修正依赖数组
|
|
|
|
return (
|
|
|
|
<div className="min-h-screen">
|
|
|
|
<HeroSection />
|
|
|
|
<CoursesSection
|
|
|
|
title="推荐课程"
|
|
|
|
description="最受欢迎的精品课程,助你快速成长"
|
|
|
|
courses={data}
|
|
|
|
isLoading={isLoading}
|
|
|
|
/>
|
|
|
|
{/* {formattedCourses.map((course)=>{
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<span>course.title</span>
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
})} */}
|
|
|
|
{/* <CoursesSection
|
2025-02-06 16:32:31 +08:00
|
|
|
title="热门课程"
|
|
|
|
description="最受欢迎的精品课程,助你快速成长"
|
|
|
|
courses={mockCourses}
|
2025-02-24 08:52:50 +08:00
|
|
|
/> */}
|
2025-02-24 21:47:34 +08:00
|
|
|
<CategorySection />
|
|
|
|
{/* <FeaturedTeachersSection /> */}
|
|
|
|
</div>
|
|
|
|
);
|
2025-01-03 09:24:46 +08:00
|
|
|
};
|
|
|
|
|
2025-02-06 16:32:31 +08:00
|
|
|
export default HomePage;
|