| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455 |
- import { EnumPaperBuildType, EnumPaperWorkState, EnumReviewMode, EnumSimulatedRecordStatus } from "@/common/enum";
- export interface TeachClass {
- classId: number;
- schoolId: number;
- year: number;
- name: string;
- }
- export interface StudentStat {
- id: number;
- avatar?: string;
- name: string;
- questionNum: number;
- dateNum: number;
- rate: number;
- }
- /**
- * 班级知识点记录
- */
- export interface ClassKnowledgeRecord {
- rate: number;
- list: StudentPlanStudyRecord[];
- }
- /**
- * 班级学生刷题记录
- */
- export interface StudentPlanStudyRecord {
- id: number;
- avatar?: string;
- name: string;
- rate: number;
- time: number;
- total: number;
- value: number;
- }
- export interface StudentPracticeRecord {
- id: number;
- avatar?: string;
- name: string;
- rate: number;
- time: number;
- total: number;
- value: number;
- }
- export interface StudentExamRecord {
- id: number;
- name: string;
- total: number;
- value: number;
- rate: number;
- }
- /**
- * 组卷批次信息
- */
- export interface Batch {
- batchId: number;
- name: string;
- year: number;
- }
- /**
- * 班级学生视频学习记录
- */
- export interface StudentVideoRecord {
- id: number;
- name: string;
- total: string;
- value: number;
- seq: number;
- }
- export interface PaperWorkRecord {
- buildStatus: number | null;
- count: number | null;
- }
- export interface PaperWorkRecordQuery {
- buildStatus: number | null;
- batchId: number | null;
- buildType: EnumPaperBuildType;
- classId: number | null;
- subjectId: number | null;
- }
- export interface PaperWorkRecordDetail {
- className: string;
- nickName: string;
- state: string;
- studentId: number;
- }
- /**
- * 学习计划
- */
- export interface StudyPlan {
- id?: number;
- beginTime?: string;
- questionCnt: number;
- studentId?: number;
- videoTime: number;
- status?: number;
- }
- /**
- * 学习计划统计数据
- */
- export interface StudyStats {
- questionCnt: number; // 答题数
- videoTime: number; // 课程学习数量
- videoTimes: number; // 学习时长
- rightRate: number; // 正确率
- questionPlan: number; // 计划答题数
- videoPlan: number; // 计划课程学习时长
- }
- export interface StudyStatsHistory {
- date: string; // 日期 2025-10-12
- data: StudyStats; // 数据
- }
- export interface StudyPlanStats {
- doneDay: number; // 本月完成
- undoneDay: number; // 本月未完成
- videoTimes: number; // 本月课程学习时长
- questionCnt: number; // 本月答题数
- studyList: StudyStatsHistory[]; // 历史数据(包含今天)
- today: StudyStats,
- plan: StudyPlan
- }
- export interface Subject {
- subjectId: number;
- subjectName: string;
- }
- export interface Knowledge {
- id: number;
- name: string;
- status: number;
- questionCount: number;
- children: Knowledge[];
- finishedCount: number;
- finishedRatio: number;
- }
- export type KnowledgeNode = Pick<Knowledge, 'id' | 'name' | 'status' | 'questionCount' | 'finishedCount' | 'finishedRatio'> & {
- isExpanded: boolean;
- isLeaf: boolean;
- children: KnowledgeNode[];
- }
- export interface QuestionState {
- isDone?: boolean;
- isMark?: boolean;
- isNotKnow?: boolean;
- isNotAnswer?: boolean;
- isFavorite?: boolean;
- isCorrect?: boolean;
- isLeaf?: boolean; // 是否是叶子节点
- progress?: number;
- //
- showParse?: boolean; // 是否显示解析
- hasParsed?: boolean; // 是否已经解析过,用于背题模式
- }
- /**
- * 开卷信息,包含上次做题历史数据
- */
- export interface ExamineeQuestion {
- id: number;
- typeId: number;
- answer1: string;
- answer2: string;
- score: number;
- title?: string;
- options?: string[];
- isFavorite: boolean;
- isMark: boolean;
- isNotKnow: boolean;
- answers: string[];
- subQuestions: ExamineeQuestion[];
- parse?: string;
- totalScore: number;
- }
- export interface Examinee {
- examineeId: number;
- name: string;
- paperId: number;
- duration: number;
- knowledgeId: number;
- questions: ExamineeQuestion[];
- //
- paperInfo: ExamineePaperInfo;
- collegeName: string;
- majorName: string;
- collegeId: number;
- majorId: number;
- subjectName: string;
- subjectId: number;
- totalCount: number;
- wrongCount: number;
- stats: ExamineeStats;
- }
- export interface ExamineePaperInfo {
- score: number;
- time: number;
- types: {
- type: string;
- count: number;
- score: number;
- }[]
- }
- export interface ExamineeStats {
- averageScore: number;
- hitRate: number;
- maxScore: number;
- rate: number;
- score: number;
- }
- /**
- * 试卷
- */
- export interface ExamPaper {
- id: number;
- paperName: string;
- paperType: string;
- questions: ExamineeQuestion[];
- score?: number;
- subjectId: number;
- year: number;
- }
- export type ExamPaperQuestion = Pick<ExamineeQuestion, 'id' | 'title' | 'options' | 'subQuestions'>;
- export interface ExamPaperSubmit {
- id: number;
- paperName: string;
- paperType: string;
- questions: Question[];
- score?: number;
- subjectId: number;
- year: number;
- duration?: number;
- examineeId?: number;
- isDone?: boolean;
- }
- export interface QuestionOptionState {
- isAnswer: boolean;
- isCorrect: boolean;
- isSelected: boolean;
- isMissed: boolean;
- isIncorrect: boolean;
- }
- export interface PracticeSettings {
- reviewMode: EnumReviewMode;
- autoNext: boolean;
- }
- export interface QuestionOption extends QuestionOptionState {
- id: number;
- no: string; // A, B, C, D
- name: string;
- }
- export interface Question extends QuestionState {
- id: number;
- title: string;
- typeId: number;
- options: QuestionOption[];
- answers: string[];
- answer1: string;
- answer2: string;
- parse?: string;
- subQuestions: Question[];
- totalScore: number;
- //
- index: number; // 当前题目在原始数组中的索引,如果是子题,则index和父题的 index 一致
- offset: number; // 前面所有子题数量的偏移量
- isSubQuestion?: boolean; // 是否是子题
- //
- parentIndex?: number; // 子题中父题在原始数组中的索引
- parentId?: number; // 父题ID
- parentTypeId?: number; // 父题类型
- subIndex?: number; // 子题在父题中的索引
- //
- virtualIndex: number; // 在平铺数组中的虚拟索引
- activeSubIndex: number; // 父题中正在展示的子题索引
- // 单题做题时间
- duration: number;
- // 是否有子题
- hasSubQuestions: boolean;
- }
- export interface SubjectListRequestDTO {
- directed: boolean;
- }
- export interface KnowledgeListRequestDTO {
- subjectId: number;
- directed: boolean;
- }
- export interface OpenExamineeRequestDTO {
- paperType: string,
- relateId?: number,
- directed: boolean,
- subjectId?: number,
- testType?: string
- }
- export interface GetExamPaperRequestDTO {
- type: string,
- id: number
- }
- export interface DirectedSchool extends SelectedUniversityMajor {
- code: string;
- notice: string;
- }
- export interface University {
- code: string;
- id: number;
- name: string;
- logo: string;
- type: string;
- }
- export interface UniversityMajor {
- ancestors: string;
- code: string;
- id: number;
- name: string;
- type: string
- }
- //
- export interface SelectedUniversityMajor {
- universityLogo: string;
- universityId: string;
- universityName: string;
- majorId: string;
- majorName: string;
- majorAncestors: string;
- }
- export interface SimulationTestOptions {
- universityId: string;
- universityName: string;
- majorId: string;
- majorName: string;
- }
- export interface SimulationTestInfo {
- evalCount: number;
- subjects: string[]
- }
- // 学习记录
- export interface KnowledgeRecord {
- name: string;
- total: number;
- rate: number;
- directed: boolean; // 是否是定向
- }
- export interface SimulatedRecord {
- id: number;
- rate: number;
- name: string;
- score: number;
- total: number;
- date: string;
- //
- subjectName: string;
- state: EnumSimulatedRecordStatus;
- }
- /**
- * 视频学习统计
- */
- export interface VideoStudy {
- study: number;
- total: number;
- list: VideoStudyRecord[]
- }
- /**
- * 视频学习记录
- */
- export interface VideoStudyRecord {
- name: string;
- date: string;
- study: string;
- }
- export interface PracticeRecord {
- rate: number;
- total: number;
- studyDays: number;
- list: {
- rate: number;
- date: string;
- study: number;
- }[]
- }
- /**
- * 模拟考试科目
- */
- export interface SimulationExamSubject {
- subjectId: number;
- subject: string;
- examTime: number;
- icon: string;
- }
- export interface PracticeHistory {
- directed: number;
- endTime: string;
- examineeId: number;
- paperName: string;
- }
- /**
- * 组卷作业
- */
- export interface PaperWork {
- id: number;
- name: string;
- subjectId: number;
- total: number;
- state: EnumPaperWorkState;
- subjectName: string;
- date: string;
- campusName: string;
- directed: boolean;
- majorName: string;
- publishUser: string;
- publishTime: string;
- schoolName: string;
- score: number;
- universityName: string;
- endTime: string;
- duration: number;
- }
|