exam.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  1. // src/api/exam.ts 考试相关的接口
  2. import request from '../utils/request.ts'
  3. import type { ApiResponse } from '@/types/types' // 引入类型
  4. // 1. 新建编辑考试接口
  5. export const createExamSubject = (data:any): Promise<ApiResponse> => {
  6. return request({
  7. url: '/api/v1/ai_home/create_exam_subject',
  8. method: 'post',
  9. data
  10. })
  11. }
  12. // 2. 获取头部筛选信息
  13. export const getHeadData = ():Promise<ApiResponse> => {
  14. return request({
  15. url: '/api/v1/ai_home/find_smart_head_data',
  16. method: 'get'
  17. })
  18. }
  19. // 3. 获取选择题智能判分首页列表
  20. export const getExamList = (data:any):Promise<ApiResponse> => {
  21. return request({
  22. url: '/api/v1/ai_home/query_smart_exam_page',
  23. method: 'get',
  24. params: data
  25. })
  26. }
  27. // 4. 获取考试类型相关数据
  28. export const getExamTypeData= (data:any):Promise<ApiResponse> => {
  29. return request({
  30. url: '/api/v1/common_exam/find_all_info_under_school',
  31. method: 'get',
  32. params: data
  33. })
  34. }
  35. // 5. 删除考试接口
  36. export const deleteExam= (data:any):Promise<ApiResponse> => {
  37. return request({
  38. url: '/api/v1/ai_home/remove_ai_exam',
  39. method: 'post',
  40. data
  41. })
  42. }
  43. // 6. 获取模版信息列表
  44. export const getTemplateList= (data:any):Promise<ApiResponse> => {
  45. return request({
  46. url: '/api/v1/smart_template/query_template_by_page',
  47. method: 'get',
  48. params: data
  49. })
  50. }
  51. // 7. 更换模板 使用模版
  52. export const useTemplate= (data:any):Promise<ApiResponse> => {
  53. return request({
  54. url: '/api/v1/smart_question/use_smart_template',
  55. method: 'post',
  56. data
  57. })
  58. }
  59. // 8. 获取试题列表
  60. export const getSmartQuestionList= (data:any):Promise<ApiResponse> => {
  61. return request({
  62. url: '/api/v1/smart_question/find_question_tbl',
  63. method: 'get',
  64. params: data
  65. })
  66. }
  67. // 9. 试题结构 设置题目
  68. export const setQuestion= (data:any):Promise<ApiResponse> => {
  69. return request({
  70. url: '/api/v1/smart_question/set_question',
  71. method: 'post',
  72. data
  73. })
  74. }
  75. // 10. 试题结构 查询模板信息
  76. export const getTemplateInfo= (data:any):Promise<ApiResponse> => {
  77. return request({
  78. url: '/api/v1/smart_template/find_ai_exam_template',
  79. method: 'get',
  80. params: data
  81. })
  82. }
  83. // 11. 试题结构 删除所有题目
  84. export const deleteAllQuestion= (data:any):Promise<ApiResponse> => {
  85. return request({
  86. url: '/api/v1/smart_question/remove_all_question',
  87. method: 'post',
  88. data
  89. })
  90. }
  91. // 12. 试题结构 删除单个题目
  92. export const deleteSingleQuestion= (data:any):Promise<ApiResponse> => {
  93. return request({
  94. url: '/api/v1/smart_question/remove_single_question',
  95. method: 'post',
  96. data
  97. })
  98. }
  99. // 13. 试题结构 保存题目数据
  100. export const saveQuestion= (data:any):Promise<ApiResponse> => {
  101. return request({
  102. url: '/api/v1/smart_question/finish_smart_question',
  103. method: 'post',
  104. data
  105. })
  106. }
  107. // 14. 扫描学生 查询是否导入了学生名单
  108. export const hasImportStudent= (data:any):Promise<ApiResponse> => {
  109. return request({
  110. url: '/api/v1/ai_exam_scan/has_import_student',
  111. method: 'get',
  112. params: data
  113. })
  114. }
  115. // 15. 扫描学生 查询班级名单
  116. export const getClassList= (data:any):Promise<ApiResponse> => {
  117. return request({
  118. url: '/api/v1/ai_exam_room/find_class',
  119. method: 'get',
  120. params: data
  121. })
  122. }
  123. // 16. 扫描学生 使用班级名单
  124. export const useClassList= (data:any):Promise<ApiResponse> => {
  125. return request({
  126. url: '/api/v1/ai_exam_room/use_sys_class_roster',
  127. method: 'post',
  128. data
  129. })
  130. }
  131. // 17. 扫描学生 查询考场列表数据
  132. export const getExamRoomList= (data:any):Promise<ApiResponse> => {
  133. return request({
  134. url: '/api/v1/ai_exam_room/find_exam_room',
  135. method: 'get',
  136. params: data
  137. })
  138. }
  139. // 18. 扫描学生 查询考场的学生列表数据
  140. export const getExamRoomStudentList= (data:any):Promise<ApiResponse> => {
  141. return request({
  142. url: '/api/v1/ai_exam_room/find_scan_student_by_exam_room',
  143. method: 'get',
  144. params: data
  145. })
  146. }
  147. // 19. 扫描学生 删除单个未扫描的学生
  148. export const deleteExamRoomStudent= (data:any):Promise<ApiResponse> => {
  149. return request({
  150. url: '/api/v1/ai_exam_room/delete_not_scan_student',
  151. method: 'post',
  152. data
  153. })
  154. }
  155. // 20. 扫描学生 查询批次列表
  156. export const getBatchList= (data:any):Promise<ApiResponse> => {
  157. return request({
  158. url: '/api/v1/ai_exam_scan/find_scanned_batch',
  159. method: 'get',
  160. params: data
  161. })
  162. }
  163. // 21. 扫描学生 点击开始扫描获取当前批次
  164. export const getCurrentBatchNo= (data:any):Promise<ApiResponse> => {
  165. return request({
  166. url: '/api/v1/ai_exam_scan/obtain_current_batch_no',
  167. method: 'get',
  168. params: data
  169. })
  170. }
  171. // 22. 扫描学生 删除批次信息
  172. export const deleteBatch= (data:any):Promise<ApiResponse> => {
  173. return request({
  174. url: '/api/v1/ai_exam_scan/delete_batch',
  175. method: 'post',
  176. data
  177. })
  178. }
  179. // 23. 扫描学生 更新扫描张数
  180. export const updateScanCount= (data:any):Promise<ApiResponse> => {
  181. return request({
  182. url: '/api/v1/ai_exam_scan/record_batch_scan_number',
  183. method: 'post',
  184. data
  185. })
  186. }
  187. // 24. 扫描学生 查看批次详情 列表模式 分页接口
  188. export const getBatchDetailList= (data:any):Promise<ApiResponse> => {
  189. return request({
  190. url: '/api/v1/ai_exam_scan/find_scanned_batch_detail',
  191. method: 'get',
  192. params: data
  193. })
  194. }
  195. // 25. 扫描学生 查看批次详情 图片模式 分页接口
  196. export const getBatchDetailImage= (data:any):Promise<ApiResponse> => {
  197. return request({
  198. url: '/api/v1/ai_exam_scan/find_scanned_batch_pics',
  199. method: 'get',
  200. params: data
  201. })
  202. }
  203. // 26. 扫描学生 获取未扫描 缺考 已上传的学生列表数据
  204. export const getExamStudentList= (data:any):Promise<ApiResponse> => {
  205. return request({
  206. url: '/api/v1/ai_exam_scan/find_stu_by_condition',
  207. method: 'get',
  208. params: data
  209. })
  210. }
  211. // 27. 扫描学生 标记缺考 恢复正常
  212. export const updateScannedStatus= (data:any):Promise<ApiResponse> => {
  213. return request({
  214. url: '/api/v1/ai_exam_scan/update_scanned_status',
  215. method: 'post',
  216. data
  217. })
  218. }
  219. // 28. 扫描学生 标记考号异常
  220. export const updateExamNumberException= (data:any):Promise<ApiResponse> => {
  221. return request({
  222. url: '/api/v1/ai_exam_scan/mark_to_card_number_exception',
  223. method: 'post',
  224. data
  225. })
  226. }
  227. // 29. 扫描学生 获取异常列表数据
  228. export const getExamAbnormalList= (data:any):Promise<ApiResponse> => {
  229. return request({
  230. url: '/api/v1/ai_exam_scan/find_abnormal_detail',
  231. method: 'get',
  232. params: data
  233. })
  234. }
  235. // 30. 扫描学生 考号异常搜索学生列表
  236. export const getSearchScanStudents= (data:any,config?: { signal?: AbortSignal }):Promise<ApiResponse> => {
  237. return request({
  238. url: '/api/v1/ai_exam_scan/find_scan_student_by_condition',
  239. method: 'get',
  240. params: data ,
  241. ...config
  242. })
  243. }
  244. // 31. 扫描学生 考号异常 认领答题卡
  245. export const claimAnswerCard= (data:any):Promise<ApiResponse> => {
  246. return request({
  247. url: '/api/v1/ai_exam_scan/claim_card',
  248. method: 'post',
  249. data
  250. })
  251. }
  252. // 32. 扫描学生 考号异常 删除当前试卷信息
  253. export const deletePaper= (data:any):Promise<ApiResponse> => {
  254. return request({
  255. url: '/api/v1/ai_exam_scan/delete_paper',
  256. method: 'post',
  257. data
  258. })
  259. }
  260. // 33. 扫描学生 考号异常 将此考生的所有纸张标记为定位异常
  261. export const markPositionAbnormal= (data:any):Promise<ApiResponse> => {
  262. return request({
  263. url: '/api/v1/ai_exam_scan/mark_normal_to_dw_exception',
  264. method: 'post',
  265. data
  266. })
  267. }
  268. // 34. 扫描学生 客观题异常 校正
  269. export const correctObjectiveQuestion= (data:any):Promise<ApiResponse> => {
  270. return request({
  271. url: '/api/v1/ai_exam_scan/validate_objective_question',
  272. method: 'post',
  273. data
  274. })
  275. }
  276. // 35. 扫描学生 定位异常 重新识别
  277. export const reRecognizePosition= (data:any):Promise<ApiResponse> => {
  278. return request({
  279. url: '/api/v1/ai_exam_scan/ai_hand_recognize_again',
  280. method: 'post',
  281. data
  282. })
  283. }
  284. // 36. 扫描学生 定位异常 获取模板详细信息
  285. export const getTemplateDetail= (data:any):Promise<ApiResponse> => {
  286. return request({
  287. url: '/api/v1/smart_template/find_ai_template_information',
  288. method: 'get',
  289. params: data ,
  290. })
  291. }
  292. // 37. 扫描学生 扫描完成
  293. export const finishScanned= (data:any):Promise<ApiResponse> => {
  294. return request({
  295. url: '/api/v1/ai_exam_scan/finish_ai_scanned',
  296. method: 'post',
  297. data ,
  298. })
  299. }
  300. // 38 扫描学生 设置扫描弹窗设置
  301. export const setExamScanSetting= (data:any):Promise<ApiResponse> => {
  302. return request({
  303. url: '/api/v1/scan_setting/setting_alter_window',
  304. method: 'get',
  305. params: data
  306. })
  307. }
  308. // 39. 扫描学生 获取扫描弹窗设置
  309. export const saveChooseCode= (data:any):Promise<ApiResponse> => {
  310. return request({
  311. url: '/api/v1/ai_exam_scan/save_choose_code',
  312. method: 'post',
  313. data
  314. })
  315. }
  316. // 40. 扫描学生 获取成绩发布汇总接口
  317. export const getExamScoreSummary= (data:any):Promise<ApiResponse> => {
  318. return request({
  319. url: '/api/v1/ai_analysis/calculateAiExam',
  320. method: 'post',
  321. data
  322. })
  323. }
  324. // 41. 扫描学生 考号填涂位置设置
  325. export const setExamNumberPosition= (data:any):Promise<ApiResponse> => {
  326. return request({
  327. url: '/api/v1/ai_exam_scan/set_card_number_seq',
  328. method: 'post',
  329. data
  330. })
  331. }
  332. // 42. 扫描学生 新增学生 搜索学生信息
  333. export const getExamStudentInfo= (data:any):Promise<ApiResponse> => {
  334. data.useNew=1;
  335. return request({
  336. url: '/api/v1/pc_student/find_student_by_code',
  337. method: 'get',
  338. params: data
  339. })
  340. }
  341. // 43. 扫描学生 新增学生 获取考场页面编辑弹窗里面的考场行政班教学班下拉列表数据
  342. export const getClassListData= (data:any):Promise<ApiResponse> => {
  343. return request({
  344. url: '/api/v1/ai_exam_room/find_multi_select_data',
  345. method: 'get',
  346. params:data
  347. })
  348. }
  349. // 44. 扫描学生 新增学生 添加学生 修改学生信息
  350. export const updateExamStudentInfo= (data:any):Promise<ApiResponse> => {
  351. return request({
  352. url: '/api/v1/ai_exam_room/save_update_scan_student',
  353. method: 'post',
  354. data
  355. })
  356. }
  357. // 45. 扫描学生 新增学生 添加学生 删除学生答题卡信息
  358. export const deleteAnswerCard= (data:any):Promise<ApiResponse> => {
  359. return request({
  360. url: '/api/v1/ai_exam_scan/delete_batch_pic',
  361. method: 'post',
  362. data
  363. })
  364. }
  365. // 46. 扫描学生 重新识别 识别客观题和全部重新识别
  366. export const recognizeAgain= (data:any):Promise<ApiResponse> => {
  367. return request({
  368. url: '/api/v1/ai_exam_scan/ai_hand_recognize_again',
  369. method: 'post',
  370. data
  371. })
  372. }
  373. // 47. 扫描学生 获取考试流程步骤
  374. export const getExamProcess= (data:any):Promise<ApiResponse> => {
  375. return request({
  376. url: '/api/v1/ai_exam_step/find_ai_exam_step',
  377. method: 'get',
  378. params: data
  379. })
  380. }