数据结构添加interface

This commit is contained in:
unknown 2023-08-04 16:03:03 +08:00
parent 9d12bf1c0d
commit 3c34f8356f
5 changed files with 62 additions and 146 deletions

View File

@ -13,18 +13,6 @@ type TabModel = {
label: string; label: string;
}; };
type CourseModel = {
charge: number;
class_hour: number;
created_at: string;
id: number;
is_required: number;
is_show: number;
short_desc: string;
thumb: string;
title: string;
};
type AttachModel = { type AttachModel = {
id: number; id: number;
course_id: number; course_id: number;
@ -39,17 +27,6 @@ type HoursModel = {
[key: number]: HourModel[]; [key: number]: HourModel[];
}; };
type HourModel = {
chapter_id: number;
course_id: number;
duration: number;
id: number;
rid: number;
sort: number;
title: string;
type: string;
};
type ChapterModel = { type ChapterModel = {
course_id: number; course_id: number;
created_at: string; created_at: string;
@ -60,34 +37,7 @@ type ChapterModel = {
}; };
type LearnHourRecordsModel = { type LearnHourRecordsModel = {
[key: number]: HourRecordsModel; [key: number]: HourRecordModel;
};
type HourRecordsModel = {
course_id: number;
created_at: string;
finished_at?: string;
finished_duration: number;
hour_id: number;
id: number;
is_finished: number;
real_duration: number;
total_duration: number;
updated_at: string;
user_id: number;
};
type LearnRecordModel = {
course_id: number;
created_at: string;
finished_at?: string;
finished_count: number;
hour_count: number;
id: number;
is_finished: number;
progress: number;
updated_at: string;
user_id: number;
}; };
const CoursePage = () => { const CoursePage = () => {
@ -98,7 +48,9 @@ const CoursePage = () => {
const [course, setCourse] = useState<CourseModel | null>(null); const [course, setCourse] = useState<CourseModel | null>(null);
const [chapters, setChapters] = useState<ChapterModel[]>([]); const [chapters, setChapters] = useState<ChapterModel[]>([]);
const [hours, setHours] = useState<HoursModel>({}); const [hours, setHours] = useState<HoursModel>({});
const [learnRecord, setLearnRecord] = useState<LearnRecordModel | null>(null); const [learnRecord, setLearnRecord] = useState<CourseRecordModel | null>(
null
);
const [learnHourRecord, setLearnHourRecord] = useState<LearnHourRecordsModel>( const [learnHourRecord, setLearnHourRecord] = useState<LearnHourRecordsModel>(
{} {}
); );

View File

@ -8,43 +8,6 @@ import { message } from "antd";
declare const window: any; declare const window: any;
type HourModel = {
chapter_id: number;
course_id: number;
duration: number;
id: number;
rid: number;
sort: number;
title: string;
type: string;
};
type CourseModel = {
charge: number;
class_hour: number;
created_at: string;
id: number;
is_required: number;
is_show: number;
short_desc: string;
thumb: string;
title: string;
};
type UserHourRecordModel = {
course_id: number;
created_at: string;
finished_at?: string;
finished_duration: number;
hour_id: number;
id: number;
is_finished: number;
real_duration: number;
total_duration: number;
updated_at: string;
user_id: number;
};
const CoursePalyPage = () => { const CoursePalyPage = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const params = useParams(); const params = useParams();
@ -134,7 +97,7 @@ const CoursePalyPage = () => {
setCourse(res.data.course); setCourse(res.data.course);
setHour(res.data.hour); setHour(res.data.hour);
document.title = res.data.hour.title; document.title = res.data.hour.title;
let record: UserHourRecordModel = res.data.user_hour_record; let record: HourRecordModel = res.data.user_hour_record;
let params = null; let params = null;
if (record && record.finished_duration && record.is_finished === 0) { if (record && record.finished_duration && record.is_finished === 0) {
params = { params = {

View File

@ -11,18 +11,6 @@ import studyTime from "../../assets/images/commen/icon-studytime.png";
import iconRoute from "../../assets/images/commen/icon-route.png"; import iconRoute from "../../assets/images/commen/icon-route.png";
import { studyTimeFormat } from "../../utils/index"; import { studyTimeFormat } from "../../utils/index";
type CourseModel = {
id: number;
class_hour: number;
charge: number;
is_show: number;
is_required: number;
title: string;
thumb: string;
short_desc: string;
created_at: string;
};
type StatsModel = { type StatsModel = {
learn_duration: number; learn_duration: number;
nun_required_course_count: number; nun_required_course_count: number;
@ -37,20 +25,7 @@ type StatsModel = {
}; };
type LearnCourseRecordsModel = { type LearnCourseRecordsModel = {
[key: number]: CourseRecordsModel; [key: number]: CourseRecordModel;
};
type CourseRecordsModel = {
course_id: number;
created_at: string;
finished_at: string | null;
finished_count: number;
hour_count: number;
id: number;
is_finished: number;
progress: number;
updated_at: string;
user_id: number;
}; };
type CategoryModel = { type CategoryModel = {

View File

@ -12,13 +12,13 @@ type LastLearnModel = {
}; };
type LearnModel = { type LearnModel = {
course: CourseModel; course: LastCourseModel;
hour_record: HourRecordModel; hour_record: HourRecordModel;
last_learn_hour: LastHourModel; last_learn_hour: LastHourModel;
record: RecordModel; record: CourseRecordModel;
}; };
type CourseModel = { type LastCourseModel = {
charge?: number; charge?: number;
class_hour: number; class_hour: number;
created_at?: string; created_at?: string;
@ -30,20 +30,6 @@ type CourseModel = {
title: string; title: string;
}; };
type HourRecordModel = {
course_id: number;
created_at: string;
finished_at: string;
finished_duration: number;
hour_id: number;
id: number;
is_finished: number;
real_duration: number;
total_duration: number;
updated_at: string;
user_id: number;
};
type LastHourModel = { type LastHourModel = {
chapter_id: number; chapter_id: number;
course_id: number; course_id: number;
@ -55,19 +41,6 @@ type LastHourModel = {
type: string; type: string;
}; };
type RecordModel = {
course_id: number;
created_at: string;
finished_at?: string;
finished_count: number;
hour_count: number;
id: number;
is_finished: number;
progress: number;
updated_at: string;
user_id: number;
};
const LatestLearnPage = () => { const LatestLearnPage = () => {
document.title = "最近学习"; document.title = "最近学习";
const navigate = useNavigate(); const navigate = useNavigate();

53
src/playedu.d.ts vendored Normal file
View File

@ -0,0 +1,53 @@
declare global {
interface CourseModel {
charge: number;
class_hour: number;
created_at: string;
id: number;
is_required: number;
is_show: number;
short_desc: string;
thumb: string;
title: string;
}
interface HourModel {
chapter_id: number;
course_id: number;
duration: number;
id: number;
rid: number;
sort: number;
title: string;
type: string;
}
interface HourRecordModel {
course_id: number;
created_at: string;
finished_at?: string;
finished_duration: number;
hour_id: number;
id: number;
is_finished: number;
real_duration: number;
total_duration: number;
updated_at: string;
user_id: number;
}
interface CourseRecordModel {
course_id: number;
created_at: string;
finished_at?: string;
finished_count: number;
hour_count: number;
id: number;
is_finished: number;
progress: number;
updated_at: string;
user_id: number;
}
}
export {};