subject.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import axios from 'axios';
  2. import {
  3. SubjectTotalScoreStatItem,
  4. SubjectListPageParam,
  5. SubjectListPageRes,
  6. SubjectSettingInfo,
  7. PaperStructureListPageRes,
  8. PaperStructureItem,
  9. PaperStructureUpdateParams,
  10. SubjectItem,
  11. OptionalQuestionItem,
  12. OptionalRuleUpdateParam,
  13. OptionalRuleItem,
  14. } from './types/subject';
  15. // 科目管理
  16. // 获取科目总分统计列表
  17. export function getSubjectTotalScoreStatList(
  18. examId: number
  19. ): Promise<SubjectTotalScoreStatItem[]> {
  20. return axios.get(`/api/subject/total-score-stat/${examId}`);
  21. }
  22. // 获取科目列表
  23. export function getSubjectList(
  24. params: SubjectListPageParam
  25. ): Promise<SubjectListPageRes> {
  26. return axios.post('/api/subject/list', {}, { params });
  27. }
  28. // 获取科目详情
  29. export function getSubjectDetail(subjectId: number): Promise<SubjectItem> {
  30. return axios.post('/api/subject/list', {}, { params: { subjectId } });
  31. }
  32. // 科目分析计算
  33. export function subjectAnalysis(
  34. examId: number,
  35. subjectId?: number
  36. ): Promise<boolean> {
  37. return axios.post('/api/subject/analysis', { params: { examId, subjectId } });
  38. }
  39. // 客观题统分
  40. export function subjectObjectiveMarkScore(examId: number): Promise<boolean> {
  41. return axios.post(
  42. '/api/subject/objective-stat',
  43. {},
  44. {
  45. params: { examId },
  46. }
  47. );
  48. }
  49. // 获取科目试卷结构列表
  50. export function getPaperStructureList(
  51. subjectId: number
  52. ): Promise<PaperStructureListPageRes> {
  53. return axios.post(`/api/subject/paper-structure/${subjectId}`);
  54. }
  55. // 获取科目设置信息
  56. export function getSubjectSetting(
  57. subjectId: number
  58. ): Promise<SubjectSettingInfo> {
  59. return axios.post('/api/subject/setting', {}, { params: { subjectId } });
  60. }
  61. // 保存科目设置信息
  62. export function saveSubjectSetting(
  63. data: SubjectSettingInfo
  64. ): Promise<SubjectSettingInfo> {
  65. return axios.post('/api/subject/setting', data);
  66. }
  67. // 新增/编辑试卷结构
  68. export function savePaperStructure(
  69. data: PaperStructureUpdateParams
  70. ): Promise<PaperStructureItem> {
  71. return axios.post('/api/subject/paper-structure', data);
  72. }
  73. // 批量删除试卷结构
  74. export function deletePaperStructures(ids: number[]): Promise<boolean> {
  75. return axios.post(
  76. '/api/subject/paper-structure/batch',
  77. {},
  78. {
  79. params: { ids },
  80. }
  81. );
  82. }
  83. // 选做题设置
  84. // 获取选做题试题列表
  85. export function getOptionalQuestionList(
  86. subjectId: number
  87. ): Promise<OptionalQuestionItem[]> {
  88. return axios.post(
  89. '/api/subject/optional-question/list',
  90. {},
  91. {
  92. params: { subjectId },
  93. }
  94. );
  95. }
  96. // 获取选做题规则列表
  97. export function getOptionalQuestionRuleList(
  98. subjectId: number
  99. ): Promise<OptionalRuleItem[]> {
  100. return axios.post(
  101. '/api/subject/optional-question/rule/list',
  102. {},
  103. {
  104. params: { subjectId },
  105. }
  106. );
  107. }
  108. // 保存选做题设置
  109. export function saveOptionalQuestionRule(
  110. params: OptionalRuleUpdateParam
  111. ): Promise<boolean> {
  112. return axios.post('/api/subject/optional-question/rule', params);
  113. }
  114. // 删除选做题规则
  115. export function deleteOptionalQuestionRule(id: number): Promise<boolean> {
  116. return axios.post(
  117. '/api/subject/optional-question/rule/delete',
  118. {},
  119. {
  120. params: { id },
  121. }
  122. );
  123. }