2025-08-20 16:29:11 +08:00
|
|
|
import { useState, useEffect } from "react";
|
2025-08-15 16:16:41 +08:00
|
|
|
import StartClass from "./components/StartClass";
|
|
|
|
|
import QuickAccess from "./components/QuickAccess";
|
|
|
|
|
import CalendarTaskModule from "./components/CalendarTaskModule";
|
|
|
|
|
import StudyStatus from "./components/StudyStatus";
|
|
|
|
|
import Rank from "@/components/Rank";
|
|
|
|
|
import StageProgress from "@/components/StageProgress";
|
|
|
|
|
import TaskList from "./components/TaskList";
|
2025-08-22 10:32:57 +08:00
|
|
|
import { getClassRanking, getLearningProgressSummary } from "@/services";
|
2025-08-15 16:16:41 +08:00
|
|
|
import "./index.css";
|
|
|
|
|
|
|
|
|
|
const Dashboard = () => {
|
2025-08-22 10:32:57 +08:00
|
|
|
const [rankData, setRankData] = useState([]); // 班级排名数据
|
|
|
|
|
|
|
|
|
|
// 获取整体学习进度
|
|
|
|
|
const queryLearningProgressSummary = async () => {
|
|
|
|
|
const res = await getLearningProgressSummary({ period: "semester" });
|
|
|
|
|
console.log("learningProgressSummary", res);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 获取班级排名
|
|
|
|
|
const queryRankData = async () => {
|
|
|
|
|
const res = await getClassRanking();
|
|
|
|
|
if (res.success) {
|
|
|
|
|
setRankData(res.data);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
queryRankData();
|
|
|
|
|
queryLearningProgressSummary();
|
|
|
|
|
}, []);
|
|
|
|
|
|
2025-08-15 16:16:41 +08:00
|
|
|
return (
|
|
|
|
|
<div className="dashboard">
|
|
|
|
|
<StageProgress showBlockageAlert={true} />
|
|
|
|
|
|
|
|
|
|
<div className="dashboard-grid">
|
|
|
|
|
<StartClass />
|
|
|
|
|
<QuickAccess />
|
|
|
|
|
<CalendarTaskModule />
|
|
|
|
|
<StudyStatus />
|
2025-08-22 10:32:57 +08:00
|
|
|
<Rank data={rankData} />
|
2025-08-15 16:16:41 +08:00
|
|
|
<TaskList />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default Dashboard;
|