// // RQExerciseModule.h // JSJP // // Created by 张嵘 on 2021/8/12. // #import #define RQ_Exercise_Module [RQExerciseModule sharedInstance] /// 刷新TableView FOUNDATION_EXTERN NSString * const RQRefreshExerciseTableViewNotification; /// 答题结果 FOUNDATION_EXTERN NSString * const RQAnswerResultsNotification; /// 答题结果 key FOUNDATION_EXTERN NSString * const RQAnswerResultsKey; /// 练习模式Key FOUNDATION_EXTERN NSString * const RQExerciseTypeKey; /// 考试页面弹窗弹出类型Key FOUNDATION_EXTERN NSString * const RQExerciseAlertTypeKey; /// 取消收藏成功通知 FOUNDATION_EXTERN NSString * const RQCancelCollectNotification; /// 取消收藏题目Key FOUNDATION_EXTERN NSString * const RQCancelCollectExerciseModelKey; /// 取消错题成功通知 FOUNDATION_EXTERN NSString * const RQCancelWrongNotification; /// 取消错题题目Key FOUNDATION_EXTERN NSString * const RQCancelWrongExerciseModelKey; /// 跳转到下一题通知 FOUNDATION_EXTERN NSString * const RQAutoJumpNextNotification; /// 习题页面类型 typedef NS_ENUM(NSUInteger, RQExerciseType) { /// 顺序练习 RQExerciseType_Sequential, /// 背题模式 RQExerciseType_Recitation, /// 随机练习 RQExerciseType_Random, /// 模拟考试 RQExerciseType_Exam, /// 排除的题 RQExerciseType_Remove, /// 排除的题(未上传) RQExerciseType_Remove_NotUpload, /// 收藏的题 RQExerciseType_Collect, /// 收藏的题(未上传) RQExerciseType_Collect_NotUpload, /// 做错的题 RQExerciseType_Wrong, /// 做错的题(未上传) RQExerciseType_Wrong_NotUpload, /// 已做的题 RQExerciseType_Do, /// 未做的题 RQExerciseType_UnDo, /// 选择题库 RQExerciseType_ChooseExLib, /// 新规题 RQExerciseType_NewRule, /// 精选题 RQExerciseType_HandPick, /// 秘卷一 RQExerciseType_Mi_One, /// 秘卷二 RQExerciseType_Mi_Two, /// 争议题 RQExerciseType_Disputed, /// 易错题 RQExerciseType_Fallible, /// 文字题 RQExerciseType_Text, /// 图片题 RQExerciseType_Image, /// 视频题 RQExerciseType_Video, /// 判断题 RQExerciseType_Judge, /// 单选题 RQExerciseType_SingleChoice, /// 多选题 RQExerciseType_MutableChoice, /// 考点题 RQExerciseType_Point, /// 章节题 RQExerciseType_Chapter, }; typedef NS_ENUM(NSUInteger, RQExerciseAlertType) { /// 通用 RQExerciseAlertType_Default = 0, /// 考试交卷 RQExerciseAlertType_Exam_HandUp, /// 考试暂停 RQExerciseAlertType_Exam_Suspend, /// 考试恢复 RQExerciseAlertType_Exam_Resume, /// 模考须知 RQExerciseAlertType_Exam_Konw, }; #pragma mark - Vendor #import "DZMCoverController.h" #import "HWPanModal.h" #pragma mark - Model #import "RQExerciseModel.h" #import "RQGetScoreInfoAllModel.h" #import "RQHTTPService+RQGetScoreInfoAll.h" #import "RQHTTPService+RQAddScoreRecord.h" #import "RQHTTPService+RQGetScoreInfoList.h" #import "RQCollectionModel.h" #import "RQHTTPService+RQAddCollectionRecord.h" #import "RQHTTPService+RQAddCollectionRecords.h" #import "RQHTTPService+RQDeleteCollectionRecord.h" #import "RQHTTPService+RQCancleCollectionRecord.h" #import "RQHTTPService+RQGetCollectionList.h" #import "RQWrongModel.h" #import "RQHTTPService+RQAddWrongRecord.h" #import "RQHTTPService+RQAddWrongRecords.h" #import "RQHTTPService+RQDeleteWrongRecord.h" #import "RQHTTPService+RQGetWrongList.h" #import "RQHistoryModel.h" #import "RQHTTPService+RQGetPassRate.h" #import "RQHTTPService+RQSaveFavQuestion.h" #import "RQHTTPService+RQSaveBetchFavQuestion.h" #import "RQHTTPService+RQDeleteFav.h" #import "RQHTTPService+RQGetMyQuestionFavs.h" #import "RQHTTPService+RQDeleteQuestionFavAll.h" #import "RQHTTPService+RQMyScore.h" #import "RQHTTPService+RQSaveStuScore.h" #import "RQMyQuestionFavsModel.h" #pragma mark - ViewModel /// ExercisePage #import "RQExerciseViewModel.h" #import "RQExerciseSubViewModel.h" #import "RQTestQuestionsViewModel.h" #import "NYExerciseTestingCentreViewModel.h" #import "RQExciseExplainHeaderGroupViewModel.h" #import "RQExerciseQuestionItemViewModel.h" #import "RQExerciseOptionItemViewModel.h" #import "RQExerciseOptionSureBtnItemViewModel.h" #import "RQExerciseAnswerItemViewModel.h" /// ExerciseSubPage #import "RQExerciseSettingViewModel.h" #import "RQCatalogueViewModel.h" #import "RQSimulateExamViewModel.h" #import "RQExamResultViewModel.h" #import "RQExamProbabilityViewModel.h" #import "RQExerciseCatalogueItemViewModel.h" #import "RQSimulateExamBeginItemViewModel.h" #import "RQExerciseSituationItemViewModel.h" #import "RQSimulateExamSituationItemViewModel.h" #import "RQExamHistoryItemViewModel.h" #pragma mark - View /// ExercisePage #import "RQExerciseQuestionCell.h" #import "RQExerciseOptionCell.h" #import "RQExerciseOptionSureBtnCell.h" #import "RQExerciseAnswerCell.h" #import "RQExerciseToolBarView.h" #import "RQCountdownView.h" #import "RQExerciseExplainHeaderView.h" #import "RQExercisExplainCell.h" #import "RQExerciseVideoExplainCell.h" /// ExerciseSubPage #import "RQExerciseCatalogueToolBarView.h" #import "RQExerciseSettingHeaderView.h" #import "RQExerciseSettingCell.h" #import "RQExerciseCatalogueCell.h" #import "RQExerciseExamAlertView.h" #import "RQExerciseExamAlertHudView.h" #import "RQExerciseExamKnowAlertView.h" #import "JXCategoryTitleBackgroundView.h" #import "RQExamResultHeaderView.h" #import "RQExamSituationCell.h" #import "RQExamProbabilyCell.h" #pragma mark - ViewController /// ExercisePage #import "RQExerciseViewController.h" #import "RQExerciseSubViewController.h" #import "RQTestQuestionsViewController.h" /// ExerciseSubPage #import "RQExerciseSettingViewController.h" #import "RQCatalogueViewController.h" #import "RQSimulateExamViewController.h" #import "RQExamResultViewController.h" #import "RQExamProbabilityViewController.h" @interface RQExerciseModule : NSObject @property (nonatomic, readwrite, assign) BOOL isScrolling; @property (nonatomic, readwrite, strong) RQExerciseModel *currrentExerciseModel; /// Timer @property (nonatomic, readwrite, strong) NSTimer *timer; @property (nonatomic, readwrite, assign) NSUInteger count; @property (nonatomic, readwrite, strong) NSDate *beginDate; @property (nonatomic, readwrite, copy) NSArray *questionArr; @property (nonatomic, readwrite, copy) NSArray *correctArr; @property (nonatomic, readwrite, copy) NSArray *errorArr; @property (nonatomic, readwrite, assign) NSInteger exerciseFontSize; @property (nonatomic, readwrite, assign) BOOL isRightAutoJumpToNext; @property (nonatomic, readwrite, assign) BOOL isRightAutoRemoveError; @property (nonatomic, readwrite, assign) BOOL isExerciseSound; @property (nonatomic, readwrite, assign) RQExerciseType currentExerciseType; @property (nonatomic, readwrite, copy) NSString *otherStr; /// 单例 + (instancetype) sharedInstance; /** 弹出alertController,并且有多action按钮,分别有处理事件 @param alertType 弹窗类型 @param dic 参数 @param confirmAction 左边按钮的点击事件 @param cancelAction 右按钮的点击事件 */ - (void)showAlertWithRQExerciseAlertType:(RQExerciseAlertType)alertType valueDic:(NSDictionary * _Nullable )dic confirmAction:(void (^__nullable)(__kindof QMUIDialogViewController * _Nonnull dialogViewController))confirmAction cancelAction:(void (^__nullable)(__kindof QMUIDialogViewController * _Nonnull dialogViewController))cancelAction; - (void)startTimer; @end