RQExerciseModule.h 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. //
  2. // RQExerciseModule.h
  3. // JSJP
  4. //
  5. // Created by 张嵘 on 2021/8/12.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #define RQ_Exercise_Module [RQExerciseModule sharedInstance]
  9. /// 刷新TableView
  10. FOUNDATION_EXTERN NSString * const RQRefreshExerciseTableViewNotification;
  11. /// 答题结果
  12. FOUNDATION_EXTERN NSString * const RQAnswerResultsNotification;
  13. /// 答题结果 key
  14. FOUNDATION_EXTERN NSString * const RQAnswerResultsKey;
  15. /// 练习模式Key
  16. FOUNDATION_EXTERN NSString * const RQExerciseTypeKey;
  17. /// 考试页面弹窗弹出类型Key
  18. FOUNDATION_EXTERN NSString * const RQExerciseAlertTypeKey;
  19. /// 取消收藏成功通知
  20. FOUNDATION_EXTERN NSString * const RQCancelCollectNotification;
  21. /// 取消收藏题目Key
  22. FOUNDATION_EXTERN NSString * const RQCancelCollectExerciseModelKey;
  23. /// 取消错题成功通知
  24. FOUNDATION_EXTERN NSString * const RQCancelWrongNotification;
  25. /// 取消错题题目Key
  26. FOUNDATION_EXTERN NSString * const RQCancelWrongExerciseModelKey;
  27. /// 跳转到下一题通知
  28. FOUNDATION_EXTERN NSString * const RQAutoJumpNextNotification;
  29. /// 习题页面类型
  30. typedef NS_ENUM(NSUInteger, RQExerciseType) {
  31. /// 顺序练习
  32. RQExerciseType_Sequential,
  33. /// 背题模式
  34. RQExerciseType_Recitation,
  35. /// 随机练习
  36. RQExerciseType_Random,
  37. /// 模拟考试
  38. RQExerciseType_Exam,
  39. /// 排除的题
  40. RQExerciseType_Remove,
  41. /// 排除的题(未上传)
  42. RQExerciseType_Remove_NotUpload,
  43. /// 收藏的题
  44. RQExerciseType_Collect,
  45. /// 收藏的题(未上传)
  46. RQExerciseType_Collect_NotUpload,
  47. /// 做错的题
  48. RQExerciseType_Wrong,
  49. /// 做错的题(未上传)
  50. RQExerciseType_Wrong_NotUpload,
  51. /// 已做的题
  52. RQExerciseType_Do,
  53. /// 未做的题
  54. RQExerciseType_UnDo,
  55. /// 选择题库
  56. RQExerciseType_ChooseExLib,
  57. /// 新规题
  58. RQExerciseType_NewRule,
  59. /// 精选题
  60. RQExerciseType_HandPick,
  61. /// 秘卷一
  62. RQExerciseType_Mi_One,
  63. /// 秘卷二
  64. RQExerciseType_Mi_Two,
  65. /// 争议题
  66. RQExerciseType_Disputed,
  67. /// 易错题
  68. RQExerciseType_Fallible,
  69. /// 文字题
  70. RQExerciseType_Text,
  71. /// 图片题
  72. RQExerciseType_Image,
  73. /// 视频题
  74. RQExerciseType_Video,
  75. /// 判断题
  76. RQExerciseType_Judge,
  77. /// 单选题
  78. RQExerciseType_SingleChoice,
  79. /// 多选题
  80. RQExerciseType_MutableChoice,
  81. /// 考点题
  82. RQExerciseType_Point,
  83. /// 章节题
  84. RQExerciseType_Chapter,
  85. };
  86. typedef NS_ENUM(NSUInteger, RQExerciseAlertType) {
  87. /// 通用
  88. RQExerciseAlertType_Default = 0,
  89. /// 考试交卷
  90. RQExerciseAlertType_Exam_HandUp,
  91. /// 考试暂停
  92. RQExerciseAlertType_Exam_Suspend,
  93. /// 考试恢复
  94. RQExerciseAlertType_Exam_Resume,
  95. /// 模考须知
  96. RQExerciseAlertType_Exam_Konw,
  97. };
  98. #pragma mark - Vendor
  99. #import "DZMCoverController.h"
  100. #import "HWPanModal.h"
  101. #pragma mark - Model
  102. #import "RQExerciseModel.h"
  103. #import "RQGetScoreInfoAllModel.h"
  104. #import "RQHTTPService+RQGetScoreInfoAll.h"
  105. #import "RQHTTPService+RQAddScoreRecord.h"
  106. #import "RQHTTPService+RQGetScoreInfoList.h"
  107. #import "RQCollectionModel.h"
  108. #import "RQHTTPService+RQAddCollectionRecord.h"
  109. #import "RQHTTPService+RQAddCollectionRecords.h"
  110. #import "RQHTTPService+RQDeleteCollectionRecord.h"
  111. #import "RQHTTPService+RQCancleCollectionRecord.h"
  112. #import "RQHTTPService+RQGetCollectionList.h"
  113. #import "RQWrongModel.h"
  114. #import "RQHTTPService+RQAddWrongRecord.h"
  115. #import "RQHTTPService+RQAddWrongRecords.h"
  116. #import "RQHTTPService+RQDeleteWrongRecord.h"
  117. #import "RQHTTPService+RQGetWrongList.h"
  118. #import "RQHistoryModel.h"
  119. #import "RQHTTPService+RQGetPassRate.h"
  120. #import "RQHTTPService+RQSaveFavQuestion.h"
  121. #import "RQHTTPService+RQSaveBetchFavQuestion.h"
  122. #import "RQHTTPService+RQDeleteFav.h"
  123. #import "RQHTTPService+RQGetMyQuestionFavs.h"
  124. #import "RQHTTPService+RQDeleteQuestionFavAll.h"
  125. #import "RQHTTPService+RQMyScore.h"
  126. #import "RQHTTPService+RQSaveStuScore.h"
  127. #import "RQMyQuestionFavsModel.h"
  128. #pragma mark - ViewModel
  129. /// ExercisePage
  130. #import "RQExerciseViewModel.h"
  131. #import "RQExerciseSubViewModel.h"
  132. #import "RQTestQuestionsViewModel.h"
  133. #import "NYExerciseTestingCentreViewModel.h"
  134. #import "RQExciseExplainHeaderGroupViewModel.h"
  135. #import "RQExerciseQuestionItemViewModel.h"
  136. #import "RQExerciseOptionItemViewModel.h"
  137. #import "RQExerciseOptionSureBtnItemViewModel.h"
  138. #import "RQExerciseAnswerItemViewModel.h"
  139. /// ExerciseSubPage
  140. #import "RQExerciseSettingViewModel.h"
  141. #import "RQCatalogueViewModel.h"
  142. #import "RQSimulateExamViewModel.h"
  143. #import "RQExamResultViewModel.h"
  144. #import "RQExamProbabilityViewModel.h"
  145. #import "RQExerciseCatalogueItemViewModel.h"
  146. #import "RQSimulateExamBeginItemViewModel.h"
  147. #import "RQExerciseSituationItemViewModel.h"
  148. #import "RQSimulateExamSituationItemViewModel.h"
  149. #import "RQExamHistoryItemViewModel.h"
  150. #pragma mark - View
  151. /// ExercisePage
  152. #import "RQExerciseQuestionCell.h"
  153. #import "RQExerciseOptionCell.h"
  154. #import "RQExerciseOptionSureBtnCell.h"
  155. #import "RQExerciseAnswerCell.h"
  156. #import "RQExerciseToolBarView.h"
  157. #import "RQCountdownView.h"
  158. #import "RQExerciseExplainHeaderView.h"
  159. #import "RQExercisExplainCell.h"
  160. #import "RQExerciseVideoExplainCell.h"
  161. /// ExerciseSubPage
  162. #import "RQExerciseCatalogueToolBarView.h"
  163. #import "RQExerciseSettingHeaderView.h"
  164. #import "RQExerciseSettingCell.h"
  165. #import "RQExerciseCatalogueCell.h"
  166. #import "RQExerciseExamAlertView.h"
  167. #import "RQExerciseExamAlertHudView.h"
  168. #import "RQExerciseExamKnowAlertView.h"
  169. #import "JXCategoryTitleBackgroundView.h"
  170. #import "RQExamResultHeaderView.h"
  171. #import "RQExamSituationCell.h"
  172. #import "RQExamProbabilyCell.h"
  173. #pragma mark - ViewController
  174. /// ExercisePage
  175. #import "RQExerciseViewController.h"
  176. #import "RQExerciseSubViewController.h"
  177. #import "RQTestQuestionsViewController.h"
  178. /// ExerciseSubPage
  179. #import "RQExerciseSettingViewController.h"
  180. #import "RQCatalogueViewController.h"
  181. #import "RQSimulateExamViewController.h"
  182. #import "RQExamResultViewController.h"
  183. #import "RQExamProbabilityViewController.h"
  184. @interface RQExerciseModule : NSObject
  185. @property (nonatomic, readwrite, assign) BOOL isScrolling;
  186. @property (nonatomic, readwrite, strong) RQExerciseModel *currrentExerciseModel;
  187. /// Timer
  188. @property (nonatomic, readwrite, strong) NSTimer *timer;
  189. @property (nonatomic, readwrite, assign) NSUInteger count;
  190. @property (nonatomic, readwrite, strong) NSDate *beginDate;
  191. @property (nonatomic, readwrite, copy) NSArray *questionArr;
  192. @property (nonatomic, readwrite, copy) NSArray *correctArr;
  193. @property (nonatomic, readwrite, copy) NSArray *errorArr;
  194. @property (nonatomic, readwrite, assign) NSInteger exerciseFontSize;
  195. @property (nonatomic, readwrite, assign) BOOL isRightAutoJumpToNext;
  196. @property (nonatomic, readwrite, assign) BOOL isRightAutoRemoveError;
  197. @property (nonatomic, readwrite, assign) BOOL isExerciseSound;
  198. @property (nonatomic, readwrite, assign) RQExerciseType currentExerciseType;
  199. @property (nonatomic, readwrite, copy) NSString *otherStr;
  200. /// 单例
  201. + (instancetype) sharedInstance;
  202. /**
  203. 弹出alertController,并且有多action按钮,分别有处理事件
  204. @param alertType 弹窗类型
  205. @param dic 参数
  206. @param confirmAction 左边按钮的点击事件
  207. @param cancelAction 右按钮的点击事件
  208. */
  209. - (void)showAlertWithRQExerciseAlertType:(RQExerciseAlertType)alertType valueDic:(NSDictionary * _Nullable )dic confirmAction:(void (^__nullable)(__kindof QMUIDialogViewController * _Nonnull dialogViewController))confirmAction cancelAction:(void (^__nullable)(__kindof QMUIDialogViewController * _Nonnull dialogViewController))cancelAction;
  210. - (void)startTimer;
  211. @end