MarkResultManagement.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <template>
  2. <div class="student-management">
  3. <div class="part-box-head">
  4. <div class="part-box-head-left"><h1>成绩查询</h1></div>
  5. </div>
  6. <div class="part-filter">
  7. <div class="part-filter-form">
  8. <el-form ref="form" :model="form" :rules="rules" inline>
  9. <el-form-item label="批次名称" prop="examId">
  10. <ExamSelect v-model="form.examId" />
  11. </el-form-item>
  12. <el-form-item label="场次代码">
  13. <ActivitySelect
  14. :examId="form.examId"
  15. v-model="form.examActivityId"
  16. exam-required
  17. />
  18. </el-form-item>
  19. <el-form-item label="科目">
  20. <CourseSelect
  21. :examId="form.examId"
  22. v-model="form.courseCode"
  23. exam-required
  24. />
  25. </el-form-item>
  26. <el-form-item label="姓名">
  27. <el-input v-model.trim="form.name"></el-input>
  28. </el-form-item>
  29. <el-form-item label="证件号">
  30. <el-input v-model.trim="form.identity"></el-input>
  31. </el-form-item>
  32. <el-form-item>
  33. <el-button type="primary" @click="handleCurrentChange(0)"
  34. >查询</el-button
  35. >
  36. <el-dropdown
  37. class="mx-2"
  38. split-button
  39. type="primary"
  40. @command="exportMarkResult"
  41. >
  42. 导出
  43. <el-dropdown-menu slot="dropdown">
  44. <el-dropdown-item command="simple">简化版</el-dropdown-item>
  45. <el-dropdown-item command="standard">标准版</el-dropdown-item>
  46. </el-dropdown-menu>
  47. </el-dropdown>
  48. </el-form-item>
  49. </el-form>
  50. </div>
  51. </div>
  52. <el-table :data="tableData">
  53. <el-table-column type="selection" width="42" />
  54. <el-table-column width="100" label="场次代码">
  55. <span slot-scope="scope">{{ scope.row.examActivityCode }}</span>
  56. </el-table-column>
  57. <el-table-column width="100" label="姓名">
  58. <span slot-scope="scope">{{ scope.row.name }}</span>
  59. </el-table-column>
  60. <el-table-column width="200" label="证件号">
  61. <span slot-scope="scope">{{ scope.row.identity }}</span>
  62. </el-table-column>
  63. <el-table-column width="100" label="科目代码">
  64. <span slot-scope="scope">{{ scope.row.courseCode }}</span>
  65. </el-table-column>
  66. <el-table-column width="100" label="科目名称">
  67. <span slot-scope="scope">{{ scope.row.courseName }}</span>
  68. </el-table-column>
  69. <el-table-column width="100" label="考场代码">
  70. <span slot-scope="scope">{{ scope.row.roomCode }}</span>
  71. </el-table-column>
  72. <el-table-column width="100" label="考场名称">
  73. <span slot-scope="scope">{{ scope.row.roomName }}</span>
  74. </el-table-column>
  75. <el-table-column width="100" label="年级">
  76. <span slot-scope="scope">{{ scope.row.grade }}</span>
  77. </el-table-column>
  78. <el-table-column width="100" label="教学班级">
  79. <span slot-scope="scope">{{ scope.row.classNo }}</span>
  80. </el-table-column>
  81. <el-table-column width="100" label="缺考">
  82. <span slot-scope="scope">{{ scope.row.examAbsent }}</span>
  83. </el-table-column>
  84. <el-table-column width="100" label="违纪次数">
  85. <span slot-scope="scope">{{ scope.row.breachCount }}</span>
  86. </el-table-column>
  87. <el-table-column width="100" label="考试次数">
  88. <span slot-scope="scope">{{ scope.row.examCount }}</span>
  89. </el-table-column>
  90. <el-table-column width="100" label="客观分">
  91. <span slot-scope="scope">{{ scope.row.objectiveScore }}</span>
  92. </el-table-column>
  93. <el-table-column width="100" label="主观分">
  94. <span slot-scope="scope">{{ scope.row.subjectiveScore }}</span>
  95. </el-table-column>
  96. <el-table-column width="100" label="总分">
  97. <span slot-scope="scope">{{ scope.row.sumScore }}</span>
  98. </el-table-column>
  99. </el-table>
  100. <div class="part-page">
  101. <el-pagination
  102. background
  103. @current-change="handleCurrentChange"
  104. :current-page="currentPage"
  105. :page-size="pageSize"
  106. :page-sizes="[10, 20, 50, 100, 200, 300]"
  107. @size-change="handleSizeChange"
  108. layout="total, sizes, prev, pager, next, jumper"
  109. :total="total"
  110. />
  111. </div>
  112. </div>
  113. </template>
  114. <script>
  115. import { searchMarkResult, exportMarkResult } from "@/api/examwork-markresult";
  116. export default {
  117. name: "MarkResultManagement",
  118. data() {
  119. return {
  120. form: {
  121. examId: "",
  122. examActivityId: "",
  123. courseCode: "",
  124. name: "",
  125. identity: "",
  126. },
  127. rules: {
  128. examId: [{ required: true, message: "批次必选" }],
  129. },
  130. tableData: [],
  131. currentPage: 1,
  132. pageSize: 10,
  133. total: 10,
  134. };
  135. },
  136. async created() {},
  137. methods: {
  138. async searchForm() {
  139. try {
  140. const valid = await this.$refs.form.validate();
  141. if (!valid) return;
  142. } catch (error) {
  143. console.log("校验失败", error);
  144. return;
  145. }
  146. const res = await searchMarkResult({
  147. examId: this.form.examId,
  148. examActivityId: this.form.examActivityId,
  149. identity: this.form.identity,
  150. courseCode: this.form.courseCode,
  151. name: this.form.name,
  152. pageNumber: this.currentPage,
  153. pageSize: this.pageSize,
  154. });
  155. this.tableData = res.data.data.records;
  156. this.total = res.data.data.total;
  157. if (this.total > 0 && this.tableData.length === 0) {
  158. this.handleCurrentChange(this.currentPage - 1);
  159. }
  160. },
  161. handleCurrentChange(val) {
  162. this.currentPage = val;
  163. this.searchForm();
  164. },
  165. handleSizeChange(val) {
  166. this.pageSize = val;
  167. this.currentPage = 1;
  168. this.searchForm();
  169. },
  170. async exportMarkResult(type) {
  171. try {
  172. const valid = await this.$refs.form.validate();
  173. if (!valid) return;
  174. } catch (error) {
  175. console.log("校验失败", error);
  176. return;
  177. }
  178. await exportMarkResult({
  179. examId: this.form.examId,
  180. examActivityId: this.form.examActivityId,
  181. identity: this.form.identity,
  182. courseCode: this.form.courseCode,
  183. name: this.form.name,
  184. type,
  185. });
  186. this.$notify({ title: "导入任务已成功启动", type: "success" });
  187. },
  188. },
  189. };
  190. </script>
  191. <style></style>