MarkDetailReject.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <template>
  2. <div class="mark-detail-reject">
  3. <div class="part-box part-box-filter part-box-flex">
  4. <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
  5. <el-form-item label="评阅题目">
  6. <el-select
  7. v-model="filter.groupNumber"
  8. placeholder="评阅题目"
  9. clearable
  10. >
  11. <el-option
  12. v-for="group in questions"
  13. :key="group.groupNumber"
  14. :value="group.groupNumber"
  15. :label="group.groupQuestions"
  16. ></el-option>
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item label="评卷员">
  20. <el-input
  21. v-model.trim="filter.loginName"
  22. placeholder="评卷员姓名"
  23. clearable
  24. >
  25. </el-input>
  26. </el-form-item>
  27. <el-form-item label="学号">
  28. <el-input
  29. v-model.trim="filter.studentCode"
  30. placeholder="学号"
  31. clearable
  32. >
  33. </el-input>
  34. </el-form-item>
  35. <el-form-item label="密号">
  36. <el-input
  37. v-model.trim="filter.secretNumber"
  38. placeholder="密号"
  39. clearable
  40. >
  41. </el-input>
  42. </el-form-item>
  43. <el-form-item label-width="0px">
  44. <el-button type="primary" @click="search">查询</el-button>
  45. </el-form-item>
  46. </el-form>
  47. </div>
  48. <div class="part-box part-box-pad">
  49. <el-table ref="TableList" :data="dataList">
  50. <el-table-column
  51. type="index"
  52. label="序号"
  53. width="70"
  54. :index="indexMethod"
  55. ></el-table-column>
  56. <el-table-column
  57. prop="groupQuestions"
  58. label="评阅题目"
  59. min-width="200"
  60. ></el-table-column>
  61. <el-table-column
  62. prop="studentCode"
  63. label="学号"
  64. width="180"
  65. ></el-table-column>
  66. <el-table-column
  67. prop="studentName"
  68. label="姓名"
  69. width="120"
  70. ></el-table-column>
  71. <el-table-column
  72. prop="secretNumber"
  73. label="密号"
  74. width="100"
  75. ></el-table-column>
  76. <el-table-column
  77. prop="teachClassName"
  78. label="教学班"
  79. min-width="200"
  80. ></el-table-column>
  81. <el-table-column prop="userName" label="评卷员" min-width="200">
  82. <template slot-scope="scope">
  83. <span v-if="scope.row.userName">
  84. {{ scope.row.userName }}({{ scope.row.loginName }})
  85. </span>
  86. <span v-else>--</span>
  87. </template>
  88. </el-table-column>
  89. <el-table-column
  90. prop="markerScore"
  91. label="评卷总分"
  92. width="90"
  93. ></el-table-column>
  94. <el-table-column
  95. prop="markerScoreList"
  96. label="给分明细"
  97. width="90"
  98. ></el-table-column>
  99. <el-table-column prop="markerTime" label="评卷时间" width="170">
  100. <span slot-scope="scope">{{
  101. scope.row.markerTime | timestampFilter
  102. }}</span>
  103. </el-table-column>
  104. <el-table-column prop="rejectUserName" label="打回人" min-width="200">
  105. <template slot-scope="scope">
  106. <span v-if="scope.row.rejectUserName">
  107. {{ scope.row.rejectUserName }}({{ scope.row.rejectLoginName }})
  108. </span>
  109. <span v-else>--</span>
  110. </template>
  111. </el-table-column>
  112. <el-table-column prop="rejectTime" label="打回时间" width="170">
  113. <span slot-scope="scope">{{
  114. scope.row.rejectTime | timestampFilter
  115. }}</span>
  116. </el-table-column>
  117. <el-table-column
  118. prop="rejectReason"
  119. label="打回原因"
  120. width="120"
  121. ></el-table-column>
  122. </el-table>
  123. <div class="part-page">
  124. <el-pagination
  125. background
  126. layout="total, sizes, prev, pager, next, jumper"
  127. :pager-count="5"
  128. :current-page="current"
  129. :total="total"
  130. :page-size="size"
  131. @current-change="toPage"
  132. @size-change="pageSizeChange"
  133. >
  134. </el-pagination>
  135. </div>
  136. </div>
  137. </div>
  138. </template>
  139. <script>
  140. import { markRejectHistoryListPage, markGroupQuestions } from "../../api";
  141. export default {
  142. name: "mark-detail-reject",
  143. props: {
  144. baseInfo: {
  145. type: Object,
  146. default() {
  147. return {};
  148. },
  149. },
  150. },
  151. data() {
  152. return {
  153. filter: {
  154. groupNumber: "",
  155. loginName: "",
  156. studentCode: "",
  157. secretNumber: "",
  158. },
  159. current: 1,
  160. size: this.GLOBAL.pageSize,
  161. total: 0,
  162. dataList: [],
  163. questions: [],
  164. };
  165. },
  166. mounted() {
  167. this.getQuestions();
  168. this.search();
  169. },
  170. methods: {
  171. async getQuestions() {
  172. const res = await markGroupQuestions({
  173. examId: this.baseInfo.examId,
  174. paperNumber: this.baseInfo.paperNumber,
  175. });
  176. this.questions = res || [];
  177. },
  178. async getList() {
  179. const datas = {
  180. ...this.filter,
  181. examId: this.baseInfo.examId,
  182. paperNumber: this.baseInfo.paperNumber,
  183. pageNumber: this.current,
  184. pageSize: this.size,
  185. };
  186. const data = await markRejectHistoryListPage(datas);
  187. this.dataList = data.records;
  188. this.total = data.total;
  189. },
  190. toPage(page) {
  191. this.current = page;
  192. this.getList();
  193. },
  194. search() {
  195. this.toPage(1);
  196. },
  197. },
  198. };
  199. </script>