reexamine.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <el-container>
  3. <el-main>
  4. <commonFormVue :form="form" :getExamCondition="getExamCondition">
  5. </commonFormVue>
  6. <el-row>
  7. <el-col :span="24">
  8. <el-button @click="search" size="medium" type="primary"
  9. >查询</el-button
  10. >
  11. </el-col>
  12. </el-row>
  13. <el-row class="margin-top-10"
  14. ><el-col :span="24">
  15. <el-table
  16. v-loading="tableLoading"
  17. element-loading-text="数据加载中"
  18. ref="multipleTable"
  19. @selection-change="handleSelectionChange"
  20. :data="tableData"
  21. border
  22. >
  23. <el-table-column sortable label="学习中心" prop="orgName">
  24. </el-table-column>
  25. <el-table-column sortable label="姓名" prop="studentName">
  26. </el-table-column>
  27. <el-table-column sortable label="身份证号" prop="identityNumber">
  28. </el-table-column>
  29. <el-table-column sortable label="学号" prop="studentCode">
  30. </el-table-column>
  31. <el-table-column sortable label="课程" prop="courseName">
  32. </el-table-column>
  33. <el-table-column sortable label="课程层次" prop="courseLevel">
  34. </el-table-column>
  35. <el-table-column label="操作">
  36. <template slot-scope="scope">
  37. <el-button
  38. size="mini"
  39. type="info"
  40. @click="openReexamineDialog(scope.row.examStudentId);"
  41. icon="el-icon-info"
  42. >设置重考</el-button
  43. >
  44. </template>
  45. </el-table-column>
  46. </el-table>
  47. <div class="block">
  48. <el-pagination
  49. @size-change="handleSizeChange"
  50. @current-change="handleCurrentChange"
  51. :current-page.sync="form.pageNo"
  52. :page-sizes="[10, 30, 50, 100]"
  53. :page-size="form.pageSize"
  54. layout="total, sizes, prev, pager, next, jumper"
  55. :total="total"
  56. >
  57. </el-pagination></div></el-col
  58. ></el-row>
  59. <el-dialog title="设置重考" :visible.sync="dialogFormVisible">
  60. <el-form :model="reexamineForm">
  61. <el-form-item label="重考理由">
  62. <el-select
  63. v-model="reexamineForm.reexamineType"
  64. placeholder="请选择"
  65. >
  66. <el-option
  67. v-for="item in reexamineTypeList"
  68. :key="item.name"
  69. :label="item.desc"
  70. :value="item.name"
  71. >
  72. </el-option>
  73. </el-select>
  74. </el-form-item>
  75. <el-form-item label="详情描述">
  76. <el-input
  77. v-model="reexamineForm.reexamineDetail"
  78. type="textarea"
  79. :autosize="{ minRows: 6, maxRows: 10 }"
  80. placeholder="请输入内容"
  81. >
  82. </el-input>
  83. </el-form-item>
  84. <div class="dialog-footer">
  85. <el-button @click="dialogFormVisible = false;">取 消</el-button>
  86. <el-button type="primary" @click="doSetReexamine">确 定</el-button>
  87. </div>
  88. </el-form>
  89. </el-dialog>
  90. </el-main>
  91. </el-container>
  92. </template>
  93. <script>
  94. import { mapState } from "vuex";
  95. import commonFormVue from "../component/commonForm.vue";
  96. export default {
  97. components: { commonFormVue },
  98. data() {
  99. return {
  100. dialogFormVisible: false,
  101. total: 0,
  102. tableLoading: false,
  103. form: {
  104. examRecordDataId: null,
  105. hasStranger: null,
  106. courseId: null,
  107. courseLevel: null,
  108. examId: null,
  109. examRecordId: null,
  110. faceSuccessPercentLower: null,
  111. faceSuccessPercentUpper: null,
  112. livenessSuccessPercentLower: null,
  113. livenessSuccessPercentUpper: null,
  114. identityNumber: null,
  115. orgId: null,
  116. studentCode: null,
  117. studentName: null,
  118. isWarn: null,
  119. pageNo: 1,
  120. pageSize: 10
  121. },
  122. reexamineForm: {
  123. examStudentId: "",
  124. reexamineType: "",
  125. reexamineDetail: ""
  126. },
  127. getExamCondition: {
  128. params: {
  129. name: "",
  130. examTypes: "ONLINE"
  131. },
  132. filterCondition: ""
  133. },
  134. tableData: [],
  135. reexamineTypeList: [
  136. { desc: "断电", name: "POWER_FAILURE" },
  137. { desc: "机器故障", name: "MACHINE_STOPPAGE" },
  138. { desc: "其他", name: "OTHER" }
  139. ]
  140. };
  141. },
  142. computed: {
  143. ...mapState({ user: state => state.user })
  144. },
  145. methods: {
  146. search() {
  147. if (!this.form.examId) {
  148. this.$notify({
  149. title: "警告",
  150. message: "请选择考试批次",
  151. type: "warning",
  152. duration: 1000
  153. });
  154. return false;
  155. }
  156. this.tableLoading = true;
  157. this.$http
  158. .post("/api/ecs_oe_admin/exam/student/reexamine/list", this.form)
  159. .then(response => {
  160. if (response.data) {
  161. this.tableData = response.data.content;
  162. this.total = response.data.totalElements;
  163. } else {
  164. this.tableData = [];
  165. }
  166. this.tableLoading = false;
  167. });
  168. },
  169. selectable(row) {
  170. return row.isWarn;
  171. },
  172. handleSelectionChange(val) {
  173. this.multipleSelection = val;
  174. },
  175. /**
  176. * pagesize改变时触发
  177. */
  178. handleSizeChange(val) {
  179. this.form.pageSize = val;
  180. this.search();
  181. },
  182. /**
  183. * 当前页改变时触发
  184. */
  185. handleCurrentChange() {
  186. this.search();
  187. },
  188. openReexamineDialog(examStudentId) {
  189. this.dialogFormVisible = true;
  190. this.reexamineForm = {
  191. examStudentId: examStudentId,
  192. reexamineType: "",
  193. reexamineDetail: ""
  194. };
  195. },
  196. doSetReexamine() {
  197. var param = new URLSearchParams({
  198. examStudentId: this.reexamineForm.examStudentId
  199. });
  200. this.$http
  201. .post("/api/ecs_oe_admin/exam/student/reexamine", param)
  202. .then(() => {
  203. this.$notify({
  204. title: "成功",
  205. message: "操作成功",
  206. type: "success"
  207. });
  208. this.dialogFormVisible = false;
  209. this.search();
  210. });
  211. }
  212. },
  213. created() {}
  214. };
  215. </script>
  216. <style scoped>
  217. .el-row {
  218. position: static !important;
  219. }
  220. .margin-top-10 {
  221. margin-top: 10px;
  222. }
  223. </style>