zhangjie 1 year ago
parent
commit
7b7fff176b

+ 10 - 2
src/components/SecSelect.vue

@@ -14,8 +14,8 @@
       <exam-select
         v-model="filter.examId"
         :semester-id="filter.semesterId"
-        :clearable="!defaultSelectExam"
-        :default-select="defaultSelectExam"
+        :clearable="!defaultSelectExam || !defaultSelectCourse"
+        :default-select="defaultSelectExam || defaultSelectCourse"
         @default-selected="examDefaultSelect"
         @change="examChange"
       ></exam-select>
@@ -30,6 +30,8 @@
         :filter-data="{ semesterId: filter.semesterId, examId: filter.examId }"
         placeholder="课程(代码)"
         clearable
+        :default-select="defaultSelectCourse"
+        @default-selected="courseDefaultSelect"
         @change="courseChange"
       ></course-select>
     </el-form-item>
@@ -58,6 +60,7 @@ export default {
       default: true,
     },
     defaultSelectExam: { type: Boolean, default: false },
+    defaultSelectCourse: { type: Boolean, default: false },
   },
   data() {
     return {
@@ -102,9 +105,14 @@ export default {
       this.$emit("semester-default", this.getFilterData());
     },
     examDefaultSelect() {
+      if (this.defaultSelectCourse) return;
       this.emitChange();
       this.$emit("exam-default", this.getFilterData());
     },
+    courseDefaultSelect() {
+      this.emitChange();
+      this.$emit("course-default", this.getFilterData());
+    },
     semesterChange(val) {
       this.selectData.semester = val || {};
       this.$emit("change", this.selectData);

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

@@ -32,6 +32,7 @@ export default {
       type: Object,
       default: null,
     },
+    defaultSelect: { type: Boolean, default: false },
   },
   data() {
     return {
@@ -82,6 +83,7 @@ export default {
 
       const res = await commonCourseQuery(datas);
       this.optionList = res;
+      if (this.defaultSelect && !this.value) this.selectDefault();
     },
     select() {
       this.$emit("input", this.selected);
@@ -90,6 +92,14 @@ export default {
         this.optionList.find((item) => item.code === this.selected)
       );
     },
+    selectDefault() {
+      const defaultData = this.optionList[0];
+      if (defaultData) {
+        this.selected = defaultData.code;
+        this.select();
+        this.$emit("default-selected", defaultData);
+      }
+    },
   },
 };
 </script>

+ 5 - 1
src/modules/client/views/Scan.vue

@@ -6,7 +6,11 @@
           <h3 class="filter-title">选择考试</h3>
         </el-form-item>
         <el-form-item>
-          <sec-select v-model="filter" default-select-exam></sec-select>
+          <sec-select
+            v-model="filter"
+            default-select-course
+            @course-default="search"
+          ></sec-select>
         </el-form-item>
         <el-form-item label-width="0px">
           <el-button type="primary" :disabled="!searchEnable" @click="search"