Răsfoiți Sursa

系统管理调试

zhangjie 1 an în urmă
părinte
comite
a7ad86c4f1

+ 11 - 0
src/components/base/CourseSelect.vue

@@ -47,6 +47,17 @@ export default {
       },
     },
     filterData(val, oldval) {
+      if (val && oldval) {
+        const vse = `${val.semesterId}-${val.examId}`;
+        const oldvse = `${oldval.semesterId}-${oldval.examId}`;
+        if (vse !== oldvse) {
+          this.search();
+          this.$emit("input", "");
+          this.$emit("change", {});
+        }
+        return;
+      }
+
       if (val !== oldval) {
         this.search();
         this.$emit("input", "");

+ 111 - 48
src/modules/base/components/ModifyStudent.vue

@@ -4,7 +4,7 @@
     :visible.sync="modalIsShow"
     :title="title"
     top="10vh"
-    width="448px"
+    width="500px"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
@@ -16,7 +16,7 @@
       :model="modalForm"
       :rules="rules"
       :key="modalForm.id"
-      label-position="top"
+      label-width="100px"
     >
       <el-form-item prop="studentName" label="姓名:">
         <el-input
@@ -30,38 +30,67 @@
           v-model.trim="modalForm.studentCode"
           placeholder="请输入学号"
           clearable
+          :disabled="isEdit"
         ></el-input>
       </el-form-item>
-      <!-- <el-form-item prop="phoneNumber" label="手机号:">
+      <el-form-item prop="collegeName" label="学院:">
         <el-input
-          v-model.trim="modalForm.phoneNumber"
-          placeholder="请输入手机号"
+          v-model.trim="modalForm.collegeName"
+          placeholder="请输入学院"
           clearable
         ></el-input>
-      </el-form-item> -->
-      <el-form-item prop="collegeId" label="学院:">
-        <college-select
-          v-model="modalForm.collegeId"
-          placeholder="学院"
-          style="width: 100%"
-        ></college-select>
       </el-form-item>
       <el-form-item prop="majorName" label="专业:">
-        <major-select
-          v-model="modalForm.majorName"
-          :college-id="modalForm.collegeId"
-          cascader
-          placeholder="请选择专业"
-          style="width: 100%"
-        ></major-select>
+        <el-input
+          v-model.trim="modalForm.majorName"
+          placeholder="请输入专业"
+          clearable
+        ></el-input>
+      </el-form-item>
+      <el-form-item prop="className" label="班级:">
+        <el-input
+          v-model.trim="modalForm.className"
+          placeholder="请输入班级"
+          clearable
+        ></el-input>
+      </el-form-item>
+      <el-form-item prop="courseName" label="课程名称:">
+        <el-input
+          v-model.trim="modalForm.courseName"
+          placeholder="请输入课程名称"
+          clearable
+        ></el-input>
+      </el-form-item>
+      <el-form-item prop="courseCode" label="课程代码:">
+        <el-input
+          v-model.trim="modalForm.courseCode"
+          placeholder="请输入课程代码"
+          clearable
+        ></el-input>
       </el-form-item>
-      <el-form-item prop="clazzName" label="班级:">
-        <class-select
-          v-model="modalForm.clazzName"
-          :major-name="modalForm.majorName"
-          cascader
-          placeholder="班级"
-        ></class-select>
+      <el-form-item prop="examRoom" label="考场:">
+        <el-input
+          v-model.trim="modalForm.examRoom"
+          placeholder="请输入考场"
+          clearable
+        ></el-input>
+      </el-form-item>
+      <el-form-item prop="score" label="成绩:">
+        <el-input-number
+          v-model="modalForm.score"
+          :min="0"
+          :max="999"
+          :step="1"
+          step-strictly
+          :controls="false"
+        ></el-input-number>
+      </el-form-item>
+      <el-form-item prop="remark" label="备注:">
+        <el-input
+          v-model.trim="modalForm.remark"
+          placeholder="请输入备注"
+          clearable
+        ></el-input>
       </el-form-item>
     </el-form>
     <div slot="footer">
@@ -78,12 +107,21 @@ import { updateStudent } from "../api";
 
 const initModalForm = {
   id: null,
+  semesterId: "",
+  examId: "",
+  courseName: "",
+  courseCode: "",
   studentName: "",
   studentCode: "",
   phoneNumber: "",
-  collegeId: "",
+  collegeName: "",
   majorName: "",
-  clazzName: "",
+  className: "",
+  teacher: "",
+  teachClass: "",
+  examRoom: "",
+  score: "",
+  remark: "",
 };
 
 export default {
@@ -101,7 +139,7 @@ export default {
       return !!this.instance.id;
     },
     title() {
-      return (this.isEdit ? "编辑" : "新增") + "生";
+      return (this.isEdit ? "编辑" : "新增") + "生";
     },
   },
   data() {
@@ -134,32 +172,62 @@ export default {
             trigger: "change",
           },
         ],
-        phoneNumber: [
+        collegeName: [
+          {
+            message: "学院不能超过50字符",
+            max: 50,
+            trigger: "change",
+          },
+        ],
+        majorName: [
           {
-            required: false,
-            pattern: /^1\d{10}$/,
-            message: "请输入合适的手机号码",
+            message: "专业不能超过50字符",
+            max: 50,
             trigger: "change",
           },
         ],
-        collegeId: [
+        className: [
           {
-            required: false,
-            message: "请选择机构",
+            message: "班级不能超过50字符",
+            max: 50,
             trigger: "change",
           },
         ],
-        majorName: [
+        courseName: [
+          {
+            required: true,
+            message: "请输入课程名称",
+            trigger: "change",
+          },
+          {
+            message: "课程名称不能超过50字符",
+            max: 50,
+            trigger: "change",
+          },
+        ],
+        courseCode: [
           {
-            required: false,
-            message: "请选择专业",
+            required: true,
+            message: "请输入课程代码",
+            trigger: "change",
+          },
+          {
+            message: "课程代码不能超过50字符",
+            max: 50,
             trigger: "change",
           },
         ],
-        clazzName: [
+        examRoom: [
           {
-            required: false,
-            message: "请选择班级",
+            message: "考场不能超过50字符",
+            max: 50,
+            trigger: "change",
+          },
+        ],
+        remark: [
+          {
+            message: "备注不能超过50字符",
+            max: 50,
             trigger: "change",
           },
         ],
@@ -168,12 +236,7 @@ export default {
   },
   methods: {
     initData(val) {
-      if (val.id) {
-        this.modalForm = this.$objAssign(initModalForm, val);
-        this.getClazz();
-      } else {
-        this.modalForm = { ...initModalForm };
-      }
+      this.modalForm = this.$objAssign(initModalForm, val);
     },
     visibleChange() {
       this.initData(this.instance);

+ 20 - 28
src/modules/base/views/StudentManage.vue

@@ -26,7 +26,7 @@
       </el-form>
       <div class="part-box-action">
         <el-button
-          v-if="checkPrivilege('button', 'delete')"
+          v-if="checkPrivilege('button', 'BatchDelete')"
           type="danger"
           icon="el-icon-delete"
           @click="toBatchDelete"
@@ -39,12 +39,6 @@
           @click="toImportStudent"
           >导入考生</el-button
         >
-        <el-button
-          v-if="checkPrivilege('button', 'import')"
-          type="primary"
-          @click="viewResult"
-          >导入结果</el-button
-        >
         <el-button
           v-if="checkPrivilege('button', 'add')"
           type="primary"
@@ -71,12 +65,12 @@
         <el-table-column prop="studentCode" label="学号"></el-table-column>
         <el-table-column prop="collegeName" label="学院"></el-table-column>
         <el-table-column prop="majorName" label="专业"></el-table-column>
-        <el-table-column prop="clazzName" label="班级"></el-table-column>
-        <el-table-column prop="clazzName" label="任课老师"></el-table-column>
-        <el-table-column prop="clazzName" label="教学班"></el-table-column>
-        <el-table-column prop="clazzName" label="成绩"></el-table-column>
-        <el-table-column prop="clazzName" label="考场"></el-table-column>
-        <el-table-column prop="clazzName" label="备注"></el-table-column>
+        <el-table-column prop="className" label="班级"></el-table-column>
+        <el-table-column prop="teacher" label="任课老师"></el-table-column>
+        <el-table-column prop="teachClass" label="教学班"></el-table-column>
+        <el-table-column prop="score" label="成绩"></el-table-column>
+        <el-table-column prop="examRoom" label="考场"></el-table-column>
+        <el-table-column prop="remark" label="备注"></el-table-column>
         <el-table-column prop="createTime" label="创建时间" width="170">
           <span slot-scope="scope">{{
             scope.row.createTime | timestampFilter
@@ -140,24 +134,17 @@
       :auto-upload="false"
       @upload-success="uploadSuccess"
     ></import-file>
-    <!-- DataTaskDialog -->
-    <data-task-dialog
-      v-if="checkPrivilege('button', 'import')"
-      ref="DataTaskDialog"
-      task-type="STUDENT_IMPORT"
-    ></data-task-dialog>
   </div>
 </template>
 
 <script>
 import { studentListQuery, deleteStudent } from "../api";
-import ModifyStudent from "../components/ModifyStudent";
+import ModifyStudent from "../components/ModifyStudent.vue";
 import ImportFile from "../../../components/ImportFile.vue";
-import DataTaskDialog from "../components/DataTaskDialog.vue";
 
 export default {
   name: "student-manage",
-  components: { ModifyStudent, ImportFile, DataTaskDialog },
+  components: { ModifyStudent, ImportFile },
   data() {
     return {
       filter: {
@@ -202,11 +189,18 @@ export default {
       this.$refs.ImportFile.open();
     },
     toAdd() {
-      this.curRow = {};
+      this.curRow = {
+        semesterId: this.filter.semesterId,
+        examId: this.filter.examId,
+      };
       this.$refs.ModifyStudent.open();
     },
     toEdit(row) {
-      this.curRow = row;
+      this.curRow = {
+        ...row,
+        semesterId: this.filter.semesterId,
+        examId: this.filter.examId,
+      };
       this.$refs.ModifyStudent.open();
     },
     toBatchDelete() {
@@ -238,10 +232,8 @@ export default {
     },
     // import
     uploadSuccess() {
-      this.$message.success("任务提交成功,结果请在导入结果中查看!");
-    },
-    viewResult() {
-      this.$refs.DataTaskDialog.open();
+      this.$message.success("导入成功");
+      this.getList();
     },
   },
 };