feat: 🎸 对接了一些接口
This commit is contained in:
@@ -1,14 +1,23 @@
|
||||
import "./index.css";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import icon1 from "@/assets/images/Dashboard/QuickAccess/icon1.png";
|
||||
import icon2 from "@/assets/images/Dashboard/QuickAccess/icon2.png";
|
||||
import icon3 from "@/assets/images/Dashboard/QuickAccess/icon3.png";
|
||||
import "./index.css";
|
||||
|
||||
const QuickAccess = () => {
|
||||
const navigate = useNavigate();
|
||||
|
||||
const handleClick = (path) => {
|
||||
navigate(path);
|
||||
};
|
||||
return (
|
||||
<div className="module-quick-access-wrapper">
|
||||
<p className="module-quick-access-title">快捷入口</p>
|
||||
<ul className="module-quick-access-list">
|
||||
<li className="module-quick-access-item">
|
||||
<li
|
||||
className="module-quick-access-item"
|
||||
onClick={() => handleClick("/expert-support")}
|
||||
>
|
||||
<img
|
||||
src={icon1}
|
||||
alt="icon1"
|
||||
@@ -16,7 +25,10 @@ const QuickAccess = () => {
|
||||
/>
|
||||
<p className="module-quick-access-item-text">专家支持中心</p>
|
||||
</li>
|
||||
<li className="module-quick-access-item">
|
||||
<li
|
||||
className="module-quick-access-item"
|
||||
onClick={() => handleClick("/live")}
|
||||
>
|
||||
<img
|
||||
src={icon2}
|
||||
alt="icon1"
|
||||
@@ -24,7 +36,10 @@ const QuickAccess = () => {
|
||||
/>
|
||||
<p className="module-quick-access-item-text">课程直播间</p>
|
||||
</li>
|
||||
<li className="module-quick-access-item">
|
||||
<li
|
||||
className="module-quick-access-item"
|
||||
onClick={() => handleClick("/career-tree")}
|
||||
>
|
||||
<img
|
||||
src={icon3}
|
||||
alt="icon1"
|
||||
|
||||
@@ -6,9 +6,31 @@ import StudyStatus from "./components/StudyStatus";
|
||||
import Rank from "@/components/Rank";
|
||||
import StageProgress from "@/components/StageProgress";
|
||||
import TaskList from "./components/TaskList";
|
||||
import { getClassRanking, getLearningProgressSummary } from "@/services";
|
||||
import "./index.css";
|
||||
|
||||
const Dashboard = () => {
|
||||
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();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="dashboard">
|
||||
<StageProgress showBlockageAlert={true} />
|
||||
@@ -18,7 +40,7 @@ const Dashboard = () => {
|
||||
<QuickAccess />
|
||||
<CalendarTaskModule />
|
||||
<StudyStatus />
|
||||
<Rank />
|
||||
<Rank data={rankData} />
|
||||
<TaskList />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -27,7 +27,7 @@ const ProfileCard = () => {
|
||||
<li className="profile-card-achievement-info-item">
|
||||
<span className="profile-card-achievement-info-item-title">学分</span>
|
||||
<span className="profile-card-achievement-info-item-text">
|
||||
{studentInfo?.totalCredits || 0}
|
||||
{studentInfo?.myRank?.score || "-"}
|
||||
</span>
|
||||
</li>
|
||||
<li className="profile-card-achievement-info-item">
|
||||
@@ -35,7 +35,7 @@ const ProfileCard = () => {
|
||||
班级排名
|
||||
</span>
|
||||
<span className="profile-card-achievement-info-item-text">
|
||||
{studentInfo?.badges?.classRank || "-"}
|
||||
{studentInfo?.myRank?.rank || "-"}
|
||||
</span>
|
||||
</li>
|
||||
<li className="profile-card-achievement-info-item">
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import * as echarts from "echarts";
|
||||
import { useState, useEffect } from "react";
|
||||
import { useSelector } from "react-redux";
|
||||
import StudyProgress from "../StudyProgress";
|
||||
import ScoreRingChart from "../ScoreRingChart";
|
||||
import AttendanceRingChart from "../AttendanceRingChart";
|
||||
import { getLoginStudentProgress } from "@/services";
|
||||
import { getDashboardStatistics } from "@/services";
|
||||
import "./index.css";
|
||||
import { useEffect } from "react";
|
||||
|
||||
const ringData = [
|
||||
{
|
||||
@@ -54,17 +54,14 @@ const attendanceData = [
|
||||
const StudyStudes = () => {
|
||||
const studentInfo = useSelector((state) => state.student.studentInfo);
|
||||
|
||||
const [progressData, setProgressData] = useState({});
|
||||
|
||||
const queryLoginStudentProgress = async () => {
|
||||
const res = await getLoginStudentProgress();
|
||||
if (res.success) {
|
||||
setProgressData(res.data);
|
||||
}
|
||||
// 获取仪表盘数据
|
||||
const queryDashboardStatistics = async () => {
|
||||
const res = await getDashboardStatistics();
|
||||
console.log(res);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
queryLoginStudentProgress();
|
||||
queryDashboardStatistics();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,10 +1,40 @@
|
||||
import { useState, useEffect } from "react";
|
||||
import { useDispatch } from "react-redux";
|
||||
import ProfileCard from "./components/ProfileCard";
|
||||
import Rank from "@/components/Rank";
|
||||
import StageProgress from "@/components/StageProgress";
|
||||
import StudyStudes from "./components/StudyStudes";
|
||||
import { updateStudentInfo } from "@/store/slices/studentSlice";
|
||||
import { getClassRanking, getLearningProgressSummary } from "@/services";
|
||||
import "./index.css";
|
||||
|
||||
const PersonalProfile = () => {
|
||||
const dispatch = useDispatch();
|
||||
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) {
|
||||
const studentInfo = {
|
||||
myRank: res.data.myRank,
|
||||
classInfo: res.data.classInfo,
|
||||
};
|
||||
setRankData(res.data);
|
||||
dispatch(updateStudentInfo(studentInfo));
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
queryRankData();
|
||||
queryLearningProgressSummary();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="personal-profile">
|
||||
<StageProgress />
|
||||
@@ -13,7 +43,7 @@ const PersonalProfile = () => {
|
||||
<div className="unified-profile-layout">
|
||||
<div className="unified-profile-left">
|
||||
<ProfileCard />
|
||||
<Rank className="unified-profile-rank" />
|
||||
<Rank className="unified-profile-rank" data={rankData} />
|
||||
</div>
|
||||
<div className="unified-profile-right">
|
||||
<StudyStudes />
|
||||
|
||||
Reference in New Issue
Block a user