数据结构添加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;
};
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 = {
id: number;
course_id: number;
@ -39,17 +27,6 @@ type HoursModel = {
[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 = {
course_id: number;
created_at: string;
@ -60,34 +37,7 @@ type ChapterModel = {
};
type LearnHourRecordsModel = {
[key: number]: HourRecordsModel;
};
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;
[key: number]: HourRecordModel;
};
const CoursePage = () => {
@ -98,7 +48,9 @@ const CoursePage = () => {
const [course, setCourse] = useState<CourseModel | null>(null);
const [chapters, setChapters] = useState<ChapterModel[]>([]);
const [hours, setHours] = useState<HoursModel>({});
const [learnRecord, setLearnRecord] = useState<LearnRecordModel | null>(null);
const [learnRecord, setLearnRecord] = useState<CourseRecordModel | null>(
null
);
const [learnHourRecord, setLearnHourRecord] = useState<LearnHourRecordsModel>(
{}
);

View File

@ -8,43 +8,6 @@ import { message } from "antd";
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 navigate = useNavigate();
const params = useParams();
@ -134,7 +97,7 @@ const CoursePalyPage = () => {
setCourse(res.data.course);
setHour(res.data.hour);
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;
if (record && record.finished_duration && record.is_finished === 0) {
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 { 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 = {
learn_duration: number;
nun_required_course_count: number;
@ -37,20 +25,7 @@ type StatsModel = {
};
type LearnCourseRecordsModel = {
[key: number]: CourseRecordsModel;
};
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;
[key: number]: CourseRecordModel;
};
type CategoryModel = {

View File

@ -12,13 +12,13 @@ type LastLearnModel = {
};
type LearnModel = {
course: CourseModel;
course: LastCourseModel;
hour_record: HourRecordModel;
last_learn_hour: LastHourModel;
record: RecordModel;
record: CourseRecordModel;
};
type CourseModel = {
type LastCourseModel = {
charge?: number;
class_hour: number;
created_at?: string;
@ -30,20 +30,6 @@ type CourseModel = {
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 = {
chapter_id: number;
course_id: number;
@ -55,19 +41,6 @@ type LastHourModel = {
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 = () => {
document.title = "最近学习";
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 {};