首页课程展示数据渲染

This commit is contained in:
禺狨
2023-03-24 13:56:39 +08:00
parent 0dc5c49ef8
commit 95732983f7
4 changed files with 77 additions and 21 deletions

View File

@@ -7,10 +7,13 @@ import { AnyIfEmpty, useSelector } from "react-redux";
import { CoursesModel } from "./compenents/courses-model";
import myLesoon from "../../assets/images/commen/icon-mylesoon.png";
import studyTime from "../../assets/images/commen/icon-studytime.png";
import { studyTimeFormat } from "../../utils/index";
const IndexPage = () => {
const [tabKey, setTabKey] = useState(0);
const [coursesList, setCoursesList] = useState<any>([]);
const [learnCourseRecords, setLearnCourseRecords] = useState<any>({});
const [stats, setStats] = useState<any>({});
const departments = useSelector(
(state: any) => state.loginUser.value.departments
@@ -18,12 +21,31 @@ const IndexPage = () => {
useEffect(() => {
getData();
}, [departments]);
}, [tabKey]);
const getData = () => {
user.courses(departments[0].id).then((res: any) => {
setCoursesList(res.data.courses);
console.log(res.data.courses);
setStats(res.data.stats);
setLearnCourseRecords(res.data.learn_course_records);
if (tabKey === 0) {
setCoursesList(res.data.courses);
} else if (tabKey === 1) {
const arr: any = [];
res.data.courses.map((item: any) => {
if (item.is_required === 1) {
arr.push(item);
}
});
setCoursesList(arr);
} else if (tabKey === 2) {
const arr: any = [];
res.data.courses.map((item: any) => {
if (item.is_required === 0) {
arr.push(item);
}
});
setCoursesList(arr);
}
});
};
@@ -64,10 +86,14 @@ const IndexPage = () => {
</div>
<div className={styles["info"]}>
<div className={styles["info-item"]}>
<strong>3 </strong>/ 10
<span></span>
<strong> {stats.required_finished_hour_count} </strong>
<span>/ {stats.required_hour_count}</span>
</div>
<div className={styles["info-item"]}>
<strong>3 </strong>/ 10
<span></span>
<strong> {stats.nun_required_finished_hour_count} </strong>
<span>/ {stats.nun_required_hour_count}</span>
</div>
</div>
</div>
@@ -78,10 +104,39 @@ const IndexPage = () => {
</div>
<div className={styles["info"]}>
<div className={styles["info-item"]}>
<strong>1</strong> <strong>23</strong>
{studyTimeFormat(stats.today_learn_duration)[0] !== 0 && (
<>
<strong>
{" "}
{studyTimeFormat(stats.today_learn_duration)[0]}{" "}
</strong>
</>
)}
<strong>
{" "}
{studyTimeFormat(stats.today_learn_duration)[1]}{" "}
</strong>
<strong>
{" "}
{studyTimeFormat(stats.today_learn_duration)[2]}{" "}
</strong>
</div>
<div className={styles["info-item"]}>
<strong>24</strong> <strong>33</strong>
{studyTimeFormat(stats.learn_duration)[0] !== 0 && (
<>
<strong> {studyTimeFormat(stats.learn_duration)[0]} </strong>
</>
)}
<strong> {studyTimeFormat(stats.learn_duration || 0)[1]} </strong>
<strong> {studyTimeFormat(stats.learn_duration || 0)[2]} </strong>
</div>
</div>
</div>
@@ -97,7 +152,7 @@ const IndexPage = () => {
<CoursesModel
title={item.title}
thumb={item.thumb}
isRequired={item.isRequired}
isRequired={item.is_required}
progress={30}
></CoursesModel>
</div>