constants.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import MD5 from "js-md5";
  2. export const YYYYMMDDHHmmss = "YYYY-MM-DD HH:mm:ss";
  3. export const PLATFORM = "WEB";
  4. if (!localStorage.getItem("deviceId")) {
  5. localStorage.setItem("deviceId", MD5(Math.random() + "-" + Date.now()));
  6. }
  7. export const DEVICE_ID = localStorage.getItem("deviceId");
  8. export const INVIGILATOR_IMPORT_TEMPLATE_DOWNLOAD_URL =
  9. "http://qmth-test.oss-cn-shenzhen.aliyuncs.com/file/考场监考老师导入.xlsx";
  10. export const EXAM_STUDENT_IMPORT_TEMPLATE_DOWNLOAD_URL =
  11. "http://qmth-test.oss-cn-shenzhen.aliyuncs.com/file/考生导入_在线考试.xlsx";
  12. // 交卷方式
  13. export const STUDENT_FINISH_EXAM_TYPE = {
  14. MANUAL: "手动交卷",
  15. AUTO: "自动交卷",
  16. BREACH: "违纪交卷",
  17. INTERRUPT: "监考强制交卷",
  18. };
  19. // 是 / 否
  20. export const BOOLEAN_TYPE = {
  21. 0: "否",
  22. 1: "是",
  23. };
  24. // 审核状态
  25. export const AUDITING_STATUS = {
  26. 0: "通过",
  27. 1: "不通过",
  28. };
  29. // 是 / 否
  30. export const BOOLEAN_INVERSE_TYPE = {
  31. 1: "否",
  32. 0: "是",
  33. };
  34. // 视频流类型
  35. export const VIDEO_SOURCE_TYPE = {
  36. CLIENT_CAMERA: "电脑摄像头",
  37. CLIENT_SCREEN: "电脑屏幕",
  38. MOBILE_FIRST: "手机主机位",
  39. MOBILE_SECOND: "手机辅机位",
  40. };
  41. // 考生在线状态
  42. export const STUDENT_ONLINE_STATUS = {
  43. FIRST_PREPARE: "已待考",
  44. EXAMING: "考试中",
  45. BREAK_OFF: "通讯故障",
  46. };
  47. // 推流通讯
  48. export const STUDENT_EXAM_STATUS = {
  49. FIRST_PREPARE: "首次候考",
  50. ANSWERING: "正在答题",
  51. BREAK_OFF: "",
  52. RESUME_PREPARE: "",
  53. FINISHED: "",
  54. PERSISTED: "",
  55. };
  56. // 违纪、缺考
  57. export const STUDENT_BEHAVIOR_STATUS = {
  58. 0: "违纪",
  59. 1: "正常",
  60. };
  61. // 违规类型
  62. export const BREACH_REASON_TYPE = {
  63. PLAGIARIZE: "夹带抄袭",
  64. LOOK_AROUND: "左顾右盼",
  65. ILLEGAL_ITEMS: "考中携带违规物品",
  66. TAKER: "他人替考",
  67. ASSISTANCE: "他人协助作答",
  68. BLACK_LIST_SOFTWARE: "考中使用违规(远程协助、直播等)软件",
  69. OTHER: "其他",
  70. };
  71. // 违规撤销原因
  72. export const BREACH_REPEAL_TYPE = {
  73. SOFTWARE_MISSING: "软件误操作",
  74. INCONSISTENT_FACTS: "违规事实不符",
  75. CANCEL_OTHER: "其他",
  76. };
  77. // 异常状态
  78. export const EXCEPTION_TYPE = {
  79. NET_TIME_OUT: "软件误操作",
  80. MACHING_STOP: "机器硬件故障、死机",
  81. NET_TIME_BREAK: "网络断开",
  82. SOFTWARE_STOP: "软件故障",
  83. POWER_CUT: "停电",
  84. OTHER: "其他",
  85. };
  86. //
  87. export const VERIFY_EXCEPTION_TYPE = {
  88. FACE_COUNT_ERROR: "人脸数量异常",
  89. FACE_COMPARE_ERROR: "人脸比对异常",
  90. EYE_CLOSE_ERROR: "闭眼检测异常",
  91. LIVENESS_ACTION_ERROR: "活检动作错误",
  92. NONE: "无异常",
  93. REALNESS: "真实性检测异常",
  94. };
  95. // 考试状态
  96. export const EXAM_TYPE = {
  97. FIRST_START: "初次开考",
  98. RESUME_START: "恢复开考",
  99. IN_PROCESS: "过程中",
  100. };
  101. // 审阅状态
  102. export const APPROVE_STATUS = {
  103. 0: "未审阅",
  104. 1: "已审阅",
  105. };
  106. // 重考方式
  107. export const REEXAM_TYPE = {
  108. 0: "批次内",
  109. 1: "换批次",
  110. };
  111. // 重考原因
  112. export const REEXAM_REASON = {
  113. EXCEPTION_TIME_OUT: "异常处理时效过期",
  114. BREAK_TIME_OUT: "断点续考次数用完",
  115. INVIGILATE_MISS: "监考人员误操作",
  116. };
  117. // 通讯状态
  118. export const CLIENT_WEBSOCKET_STATUS = {
  119. ON_LINE: 1,
  120. OFF_LINE: 0,
  121. };
  122. // 推流通讯
  123. export const MONITOR_STATUS_SOURCE = {
  124. INIT: 1,
  125. STOP: 0,
  126. START: 1,
  127. FINISH: 0,
  128. };
  129. export const IMPORT_EXPORT_TASKS = [
  130. { code: "CALCULATE_EXAM_SCORE", name: "考试重新算分" },
  131. { code: "IMPORT_EXAM_STUDENT", name: "导入考生" },
  132. { code: "IMPORT_EXAM_PAPER", name: "导入试卷" },
  133. { code: "IMPORT_INVIGILATE_USER", name: "导入监考员" },
  134. { code: "EXPORT_INVIGILATE_USER", name: "导出监考员" },
  135. { code: "EXPORT_EXAM_STUDENT", name: "导出考生" },
  136. { code: "EXPORT_MARK_RESULT_SIMPLE", name: "导出成绩简版" },
  137. { code: "EXPORT_MARK_RESULT_STANDARD", name: "导出成绩标准版" },
  138. ];
  139. let domain;
  140. if (process.env.VUE_APP_SELF_DEFINE_DOMAIN === "true") {
  141. domain = window.localStorage.getItem("domain_in_url");
  142. }
  143. if (!domain) domain = window.location.hostname.split(".")[0];
  144. export const ORG_CODE = domain;