subject.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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('/api/subject/objective-stat', {
  42. params: { examId },
  43. });
  44. }
  45. // 获取科目试卷结构列表
  46. export function getPaperStructureList(
  47. subjectId: number
  48. ): Promise<PaperStructureListPageRes> {
  49. return axios.post(`/api/subject/paper-structure/${subjectId}`);
  50. }
  51. // 获取科目设置信息
  52. export function getSubjectSetting(
  53. subjectId: number
  54. ): Promise<SubjectSettingInfo> {
  55. return axios.post('/api/subject/setting', { params: { subjectId } });
  56. }
  57. // 保存科目设置信息
  58. export function saveSubjectSetting(
  59. data: SubjectSettingInfo
  60. ): Promise<SubjectSettingInfo> {
  61. return axios.post('/api/subject/setting', data);
  62. }
  63. // 新增/编辑试卷结构
  64. export function savePaperStructure(
  65. data: PaperStructureUpdateParams
  66. ): Promise<PaperStructureItem> {
  67. return axios.post('/api/subject/paper-structure', data);
  68. }
  69. // 批量删除试卷结构
  70. export function deletePaperStructures(ids: number[]): Promise<boolean> {
  71. return axios.post('/api/subject/paper-structure/batch', {
  72. data: { ids },
  73. });
  74. }
  75. // 选做题设置
  76. // 获取选做题试题列表
  77. export function getOptionalQuestionList(
  78. subjectId: number
  79. ): Promise<OptionalQuestionItem[]> {
  80. return axios.post('/api/subject/optional-question/list', {
  81. params: { subjectId },
  82. });
  83. }
  84. // 获取选做题规则列表
  85. export function getOptionalQuestionRuleList(
  86. subjectId: number
  87. ): Promise<OptionalRuleItem[]> {
  88. return axios.post('/api/subject/optional-question/rule/list', {
  89. params: { subjectId },
  90. });
  91. }
  92. // 保存选做题设置
  93. export function saveOptionalQuestionRule(
  94. params: OptionalRuleUpdateParam
  95. ): Promise<boolean> {
  96. return axios.post('/api/subject/optional-question/rule', params);
  97. }
  98. // 删除选做题规则
  99. export function deleteOptionalQuestionRule(id: number): Promise<boolean> {
  100. return axios.post('/api/subject/optional-question/rule/delete', {
  101. params: { id },
  102. });
  103. }