ExamStudentManagementDialog.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <template>
  2. <el-dialog
  3. ref="dialog"
  4. :title="(isEdit ? '编辑' : '新增') + '考生'"
  5. width="450px"
  6. :visible.sync="visible"
  7. @close="closeDialog"
  8. >
  9. <el-form
  10. :model="form"
  11. ref="form"
  12. :rules="rules"
  13. label-position="right"
  14. label-width="120px"
  15. >
  16. <el-row>
  17. <el-form-item label="批次名称" prop="examId">
  18. <ExamSelect v-model="form.examId" styles="width: 100%" />
  19. </el-form-item>
  20. </el-row>
  21. <el-row>
  22. <el-form-item label="场次代码">
  23. <ActivitySelect
  24. :examId="form.examId"
  25. v-model="form.examActivityId"
  26. styles="width: 100%"
  27. />
  28. </el-form-item>
  29. </el-row>
  30. <el-row>
  31. <el-form-item label="考场名称">
  32. <ExamRoomSelect v-model="form.roomCode" styles="width: 100%" />
  33. </el-form-item>
  34. </el-row>
  35. <el-row>
  36. <el-form-item label="科目">
  37. <CourseSelect
  38. :examId="form.examId"
  39. v-model="form.courseCode"
  40. styles="width: 100%"
  41. />
  42. </el-form-item>
  43. </el-row>
  44. <el-row>
  45. <el-form-item label="姓名">
  46. <el-input v-model.trim="form.name"></el-input>
  47. </el-form-item>
  48. </el-row>
  49. <el-row>
  50. <el-form-item label="证件号">
  51. <el-input v-model.trim="form.identity"></el-input>
  52. </el-form-item>
  53. </el-row>
  54. <el-row>
  55. <el-form-item label="年级">
  56. <el-input v-model.trim="form.grade"></el-input>
  57. </el-form-item>
  58. </el-row>
  59. <el-row>
  60. <el-form-item label="教学班级">
  61. <el-input v-model.trim="form.classNo"></el-input>
  62. </el-form-item>
  63. </el-row>
  64. <el-row>
  65. <el-form-item label="状态" prop="enable">
  66. <el-radio-group class="pull_right_sm" v-model="form.enable">
  67. <el-radio :label="1">启用</el-radio>
  68. <el-radio :label="0">禁用</el-radio>
  69. </el-radio-group>
  70. </el-form-item>
  71. </el-row>
  72. <el-row class="d-flex justify-content-center">
  73. <el-button type="primary" @click="submitForm">保 存</el-button>
  74. <el-button @click="closeDialog">取 消</el-button>
  75. </el-row>
  76. </el-form>
  77. </el-dialog>
  78. </template>
  79. <script>
  80. import { saveExamStudent } from "@/api/examwork-examstudent";
  81. export default {
  82. name: "ExamStudentManagementDialog",
  83. props: {
  84. examId: String,
  85. examStudent: Object,
  86. },
  87. computed: {
  88. isEdit() {
  89. return this.examStudent.id;
  90. },
  91. },
  92. data() {
  93. return {
  94. visible: false,
  95. form: {
  96. id: "",
  97. examId: "",
  98. activityId: "",
  99. roomCode: "",
  100. courseCode: "",
  101. name: "",
  102. identity: "",
  103. grade: "",
  104. classNo: "",
  105. },
  106. rules: {},
  107. };
  108. },
  109. watch: {
  110. examStudent(val) {
  111. let tmp = { ...val };
  112. if (!tmp.id) {
  113. tmp = {
  114. id: "",
  115. examId: "",
  116. activityId: "",
  117. roomCode: "",
  118. courseCode: "",
  119. name: "",
  120. identity: "",
  121. grade: "",
  122. classNo: "",
  123. };
  124. }
  125. this.form = tmp;
  126. },
  127. },
  128. methods: {
  129. openDialog() {
  130. this.visible = true;
  131. },
  132. closeDialog() {
  133. this.visible = false;
  134. },
  135. async submitForm() {
  136. try {
  137. const valid = await this.$refs.form.validate();
  138. if (!valid) return;
  139. } catch (error) {
  140. console.log(error);
  141. return;
  142. }
  143. let data = this.form;
  144. if (this.isEdit) {
  145. data = { ...data, id: this.examStudent.id };
  146. }
  147. await saveExamStudent(data);
  148. this.$emit("reload");
  149. this.closeDialog();
  150. },
  151. },
  152. };
  153. </script>
  154. <style></style>