review.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. import request from "@/util/request";
  2. import { REVIEW_MODULE } from "./_prefix";
  3. // ====================== TEACHER ======================
  4. /**
  5. * 新建互评作业
  6. * @param {number} documentHwId 作业id
  7. * @param {number} startAt 开始时间
  8. * @param {number} reviewDdl 互评结束时间
  9. * @param {number} argueDdl argue结束时间
  10. * @param {number} endDdl 最后结束时间
  11. * @param {number} taskNumber 互评任务数
  12. * @returns {Promise<ReviewSimpleSerializerType>}
  13. * @throws {StatusException} 输入不合法
  14. */
  15. export const createReview = ({
  16. documentHwId,
  17. startAt,
  18. reviewDdl,
  19. argueDdl,
  20. endDdl,
  21. taskNumber
  22. }) => {
  23. return request(`${REVIEW_MODULE}/review`, {
  24. method: "POST",
  25. body: { documentHwId, startAt, reviewDdl, argueDdl, endDdl, taskNumber }
  26. });
  27. };
  28. /**
  29. * 老师查看互评作业列表
  30. * @param {string|number} courseId
  31. * @return {Promise<{data:ReviewSimpleSerializerType[]}>}
  32. */
  33. export const getTeacherCourseReviewList = courseId => {
  34. return request(`${REVIEW_MODULE}/teacher/course/${courseId}/review`);
  35. };
  36. /**
  37. * 老师查看互评作业详情
  38. * @param {string|number} reviewId
  39. * @return {Promise<{data:ReviewDetailSerializerType}>}
  40. */
  41. export const getTeacherReviewDetail = reviewId => {
  42. return request(`${REVIEW_MODULE}/teacher/review/${reviewId}`);
  43. };
  44. /**
  45. * 老师查看互评作业汇总结果
  46. * @param {string|number} reviewId
  47. * @return {Promise<{data:ReviewResultSerializerType}>}
  48. */
  49. export const getTeacherReviewResult = reviewId => {
  50. return request(`${REVIEW_MODULE}/sum/${reviewId}`);
  51. };
  52. /**
  53. * 老师查看某次互评作业所有小组
  54. * @param reviewId
  55. * @return {Promise<{data:GroupSerializerType}>}
  56. */
  57. export const getTeacherReviewAllGroups = reviewId => {
  58. return request(`${REVIEW_MODULE}/sum/${reviewId}/group`);
  59. };
  60. /**
  61. * 老师查看某次互评作业一个小组的详细结果
  62. * @param reviewId
  63. * @param groupId
  64. * @return {Promise<{data:ReviewDocResultSerializerType}>}
  65. */
  66. export const getTeacherReviewGroupDetail = (reviewId, groupId) => {
  67. return request(`${REVIEW_MODULE}/sum/${reviewId}/group/${groupId}`);
  68. };
  69. /**
  70. * 老师开始对某次互评作业一个小组进行评价
  71. * @param {string|number} reviewId
  72. * @param {string|number} groupId
  73. * @return {Promise<{data:ReviewDocDetailSerializerType}>}
  74. */
  75. export const getTeacherStartArgue = (reviewId, groupId) => {
  76. return request(`${REVIEW_MODULE}/sum/${reviewId}/argue/${groupId}`);
  77. };
  78. /**
  79. * 老师提交对某次互评作业一个小组的评价结果
  80. * @param {string|number} reviewId
  81. * @param {string|number} groupId
  82. * @param {CheckListItemSerializerType[]} checkList
  83. * @return {Promise<{checkList:CheckListItemSerializerType[]}>}
  84. */
  85. export const postTeacherArgueResult = (reviewId, groupId, checkList) => {
  86. return request(`${REVIEW_MODULE}/sum/${reviewId}/argue/${groupId}`, {
  87. method: "POST",
  88. body: { checkList }
  89. });
  90. };
  91. /**
  92. * 老师更新作业评分标准
  93. * @param {string|number} reviewId
  94. * @param {*} level
  95. * @return {Promise<{}>}
  96. * @throws {StatusException} 输入不合法
  97. */
  98. export const postReviewSumLevel = (reviewId, level) => {
  99. return request(`${REVIEW_MODULE}/sum/${reviewId}/level`, {
  100. method: "POST",
  101. body: level
  102. });
  103. };
  104. // ====================== STUDENT ======================
  105. /**
  106. * 学生查看老师发布的互评作业列表
  107. * @param {string|number} courseId
  108. * @return {Promise<{data:ReviewSimpleSerializerType[]}>}
  109. */
  110. export const getStudentCourseReviewList = courseId => {
  111. return request(`${REVIEW_MODULE}/student/course/${courseId}/review`);
  112. };
  113. /**
  114. * 学生查看互评作业详情
  115. * @param {string|number} reviewId
  116. * @return {Promise<{data:ReviewDetailSerializerType}>}
  117. */
  118. export const getStudentReviewDetail = reviewId => {
  119. return request(`${REVIEW_MODULE}/student/review/${reviewId}`);
  120. };
  121. /**
  122. * 学生获取某次互评作业中某个文档
  123. * @param {string|number} reviewId
  124. * @param {string|number} docReviewId
  125. * @return {Promise<{data:ReviewDocDetailSerializerType}>}
  126. */
  127. export const getStudentReviewDocDetail = (reviewId, docReviewId) => {
  128. return request(
  129. `${REVIEW_MODULE}/student/review/${reviewId}/doc-review/${docReviewId}`
  130. );
  131. };
  132. /**
  133. * 学生提交某次互评作业中的某个文档
  134. * @param {string|number} reviewId
  135. * @param {string|number} docReviewId
  136. * @param {{data:CheckListItemSerializerType[]}} checkListBody
  137. * @return {Promise<{data:CheckListItemSerializerType[]}>}
  138. * @throws {StatusException} 输入不合法
  139. */
  140. export const postStudentReviewWork = (reviewId, docReviewId, checkListBody) => {
  141. return request(
  142. `${REVIEW_MODULE}/student/review/${reviewId}/doc-review/${docReviewId}`,
  143. {
  144. method: "POST",
  145. body: checkListBody
  146. }
  147. );
  148. };
  149. /**
  150. * 学生选择查看某次互评作业中自己的文档
  151. * @param {string|number} reviewId
  152. * @return {Promise<{data:ReviewDocResultSerializerType}>}
  153. */
  154. export const getStudentReviewSelfDetail = reviewId => {
  155. return request(`${REVIEW_MODULE}/student/review/${reviewId}/result`);
  156. };
  157. /**
  158. * 学生对某个组的某条checklist提出argue
  159. * @param {string|number} reviewId 作业id
  160. * @param {string|number} id 某个checkList的id
  161. * @param {string|number} groupId 某个小组的id
  162. * @param {string} remark 评论
  163. * @returns {Promise<{}>}
  164. * @throws {StatusException} 输入不合法 | 已评审,不可重复评审
  165. */
  166. export const postStudentArgueReview = ({
  167. reviewId,
  168. id,
  169. groupId,
  170. remark = ""
  171. }) => {
  172. return request(`${REVIEW_MODULE}/student/argue`, {
  173. method: "POST",
  174. body: { reviewId, id, groupId, remark }
  175. });
  176. };
  177. /**
  178. * 学生(评审方)判断是否愿意处理argue
  179. * @param {string|number} reviewId
  180. * @param {string|number} checkListId
  181. * @param {boolean} accept
  182. * @return {Promise<{data:CheckListItemSerializerType[]}>}
  183. */
  184. export const postStudentArgueAcceptation = (reviewId, checkListId, accept) => {
  185. return request(
  186. `${REVIEW_MODULE}/student/review/${reviewId}/checklist/${checkListId}/argue/acceptation`,
  187. {
  188. method: "POST",
  189. body: { accept }
  190. }
  191. );
  192. };
  193. /**
  194. * 学生(评审方)提交argue [标记为已处理完成]
  195. * @param {string|number} reviewId
  196. * @param {string|number} checkListId
  197. * @param {CheckListItemSerializerType} checkListItem
  198. * @return {Promise<{data:CheckListItemSerializerType[]}>}
  199. */
  200. export const postStudentArgueEnd = (reviewId, checkListId, checkListItem) => {
  201. return request(
  202. `${REVIEW_MODULE}/student/review/${reviewId}/checklist/${checkListId}/argue/end`,
  203. {
  204. method: "POST",
  205. body: { data: checkListItem }
  206. }
  207. );
  208. };