Browse Source

feat(GradeClassSelector): 实现选择兴趣班级时显示对应班级

优化班级筛选逻辑,当选择兴趣班级(grade为1)时显示兴趣班级
同时修改addCourse3组件中年级变化的处理逻辑,使用组件自身的selectedGrade状态
lsc 4 days ago
parent
commit
72fc6333da

+ 4 - 1
src/components/common/GradeClassSelector.vue

@@ -88,6 +88,9 @@ export default {
     filteredClassOptions() {
       if (this.selectedGrade === '') {
         return this.classOptions;
+      }else if(this.selectedGrade === '1'){
+        // 选择了兴趣班级,显示兴趣班级
+        return this.classOptions.filter(item => item.pid === '' || !item.pid);
       } else {
         return this.classOptions.filter(item => item.pid === this.selectedGrade);
       }
@@ -127,7 +130,7 @@ export default {
       this.selectedGrade = grade.id;
       // this.selectedClasses = [];
       // this.$emit('input', this.selectedClasses);
-      this.$emit('gradeChange', this.selectedGrade);
+      // this.$emit('gradeChange', this.selectedGrade);
     },
     toggleClass(classId) {
       const index = this.selectedClasses.indexOf(classId);

+ 3 - 6
src/components/pages/pptEasy/addCourse3.vue

@@ -1415,16 +1415,13 @@ export default {
       this.filteredClassOptions = this.classOptions;
     },
     // 年级选择变化时筛选班级
-    onGradeChange(selectedGrade) {
-      if (selectedGrade === '') {
+    onGradeChange() {
+      if (this.selectedGrade === '') {
         // 选择了全部班级,显示所有班级
         this.filteredClassOptions = this.classOptions;
-      }else if(selectedGrade === '1'){
-        // 选择了兴趣班级,显示兴趣班级
-        this.filteredClassOptions = this.classOptions.filter(item => item.pid === '' || !item.pid);
       }else {
         // 根据选择的年级筛选班级
-        this.filteredClassOptions = this.classOptions.filter(item => item.pid === selectedGrade);
+        this.filteredClassOptions = this.classOptions.filter(item => item.pid === this.selectedGrade);
       }
       // 清空已选择的班级,因为筛选后班级列表可能已经改变
       // this.checkboxList2 = [];