|  | @@ -51,9 +51,7 @@
 | 
	
		
			
				|  |  |              label="当前班级人数"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  |              <template slot-scope="scope">
 | 
	
		
			
				|  |  | -              <div>
 | 
	
		
			
				|  |  | -                {{ scope.row.studentNum}}人
 | 
	
		
			
				|  |  | -              </div>
 | 
	
		
			
				|  |  | +              <div>{{ scope.row.studentNum }}人</div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |            </el-table-column>
 | 
	
		
			
				|  |  |            <el-table-column align="center" prop label="主教老师">
 | 
	
	
		
			
				|  | @@ -154,7 +152,11 @@
 | 
	
		
			
				|  |  |          </el-table>
 | 
	
		
			
				|  |  |          <div class="floor">
 | 
	
		
			
				|  |  |            <div class="left">
 | 
	
		
			
				|  |  | -            <div class="add" @click="studentResetVisiable = true" v-if="permission('classGroup/mergeClassSplitClassAffirm')">
 | 
	
		
			
				|  |  | +            <div
 | 
	
		
			
				|  |  | +              class="add"
 | 
	
		
			
				|  |  | +              @click="studentResetVisiable = true"
 | 
	
		
			
				|  |  | +              v-if="permission('classGroup/mergeClassSplitClassAffirm')"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  |                学员班级调整
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  |            </div>
 | 
	
	
		
			
				|  | @@ -201,7 +203,7 @@
 | 
	
		
			
				|  |  |        :modal-append-to-body="false"
 | 
	
		
			
				|  |  |      >
 | 
	
		
			
				|  |  |        <classroomSetting
 | 
	
		
			
				|  |  | -      v-if="infoVisible"
 | 
	
		
			
				|  |  | +        v-if="infoVisible"
 | 
	
		
			
				|  |  |          :classType="classType"
 | 
	
		
			
				|  |  |          :teacherList="teacherList"
 | 
	
		
			
				|  |  |          :musicGroupId="teamid"
 | 
	
	
		
			
				|  | @@ -301,7 +303,7 @@
 | 
	
		
			
				|  |  |        <el-form
 | 
	
		
			
				|  |  |          :model="newClassForm"
 | 
	
		
			
				|  |  |          :inline="true"
 | 
	
		
			
				|  |  | -         label-width="120px"
 | 
	
		
			
				|  |  | +        label-width="120px"
 | 
	
		
			
				|  |  |          ref="newClassForm"
 | 
	
		
			
				|  |  |          class="newClassForm"
 | 
	
		
			
				|  |  |        >
 | 
	
	
		
			
				|  | @@ -344,11 +346,10 @@
 | 
	
		
			
				|  |  |              { required: true, message: '请选择主教老师', trigger: 'blur' },
 | 
	
		
			
				|  |  |            ]"
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  | -         <remote-search
 | 
	
		
			
				|  |  | +          <remote-search
 | 
	
		
			
				|  |  |              :commit="'setTeachers'"
 | 
	
		
			
				|  |  |              v-model="newClassForm.bishop"
 | 
	
		
			
				|  |  |            />
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |          <el-form-item
 | 
	
		
			
				|  |  |            label="预计招生数"
 | 
	
	
		
			
				|  | @@ -370,7 +371,7 @@
 | 
	
		
			
				|  |  |            v-if="newClassForm.type != 'HIGH_ONLINE'"
 | 
	
		
			
				|  |  |            prop="teaching"
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  | -             <remote-search
 | 
	
		
			
				|  |  | +          <remote-search
 | 
	
		
			
				|  |  |              :commit="'setTeachers'"
 | 
	
		
			
				|  |  |              v-model="newClassForm.teaching"
 | 
	
		
			
				|  |  |              @change="setAssistant1"
 | 
	
	
		
			
				|  | @@ -381,7 +382,7 @@
 | 
	
		
			
				|  |  |            label="声部"
 | 
	
		
			
				|  |  |            prop="subjectIdList"
 | 
	
		
			
				|  |  |            :rules="[{ required: true, message: '请选择声部', trigger: 'blur' }]"
 | 
	
		
			
				|  |  | -          v-if=" newClassForm.type == 'NORMAL'"
 | 
	
		
			
				|  |  | +          v-if="newClassForm.type == 'NORMAL'"
 | 
	
		
			
				|  |  |            :key="'HIGH'"
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  |            <el-select v-model="newClassForm.subjectIdList" clearable multiple>
 | 
	
	
		
			
				|  | @@ -399,11 +400,18 @@
 | 
	
		
			
				|  |  |            :rules="[
 | 
	
		
			
				|  |  |              { required: true, message: '请选择可报名声部', trigger: 'blur' },
 | 
	
		
			
				|  |  |            ]"
 | 
	
		
			
				|  |  | -          v-if="newClassForm.type == 'HIGH' || newClassForm.type == 'HIGH_ONLINE'"
 | 
	
		
			
				|  |  | +          v-if="
 | 
	
		
			
				|  |  | +            newClassForm.type == 'HIGH' || newClassForm.type == 'HIGH_ONLINE'
 | 
	
		
			
				|  |  | +          "
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  | -          <el-select v-model.trim="newClassForm.memo" multiple clearable   @change="changeMemo">
 | 
	
		
			
				|  |  | +          <el-select
 | 
	
		
			
				|  |  | +            v-model.trim="newClassForm.memo"
 | 
	
		
			
				|  |  | +            multiple
 | 
	
		
			
				|  |  | +            clearable
 | 
	
		
			
				|  |  | +            @change="changeMemo"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  |              <el-option
 | 
	
		
			
				|  |  | -               :disabled="item.disabled || appoint"
 | 
	
		
			
				|  |  | +              :disabled="item.disabled || appoint"
 | 
	
		
			
				|  |  |                v-for="(item, index) in soundList"
 | 
	
		
			
				|  |  |                :key="index"
 | 
	
		
			
				|  |  |                :label="item.name"
 | 
	
	
		
			
				|  | @@ -443,7 +451,7 @@
 | 
	
		
			
				|  |  |      >
 | 
	
		
			
				|  |  |        <viewStudentList
 | 
	
		
			
				|  |  |          :list="studentListModal"
 | 
	
		
			
				|  |  | -        :showOk='true'
 | 
	
		
			
				|  |  | +        :showOk="true"
 | 
	
		
			
				|  |  |          @close="studentListModalVisible = false"
 | 
	
		
			
				|  |  |        />
 | 
	
		
			
				|  |  |      </el-dialog>
 | 
	
	
		
			
				|  | @@ -454,7 +462,7 @@
 | 
	
		
			
				|  |  |        :visible.sync="studentResetVisiable"
 | 
	
		
			
				|  |  |      >
 | 
	
		
			
				|  |  |        <studentResetView
 | 
	
		
			
				|  |  | -      :courseTypesByType ="courseTypesByType"
 | 
	
		
			
				|  |  | +        :courseTypesByType="courseTypesByType"
 | 
	
		
			
				|  |  |          v-if="studentResetVisiable"
 | 
	
		
			
				|  |  |          :classList="mergeList"
 | 
	
		
			
				|  |  |          @close="closeStudentReset"
 | 
	
	
		
			
				|  | @@ -490,9 +498,7 @@ import {
 | 
	
		
			
				|  |  |    removeStudents,
 | 
	
		
			
				|  |  |    addStudents,
 | 
	
		
			
				|  |  |  } from "@/api/studentManager";
 | 
	
		
			
				|  |  | -import {
 | 
	
		
			
				|  |  | -  getOrganizationCourseUnitPriceSettings
 | 
	
		
			
				|  |  | -} from '@/api/specialSetting'
 | 
	
		
			
				|  |  | +import { getOrganizationCourseUnitPriceSettings } from "@/api/specialSetting";
 | 
	
		
			
				|  |  |  import { queryEmployByOrganId } from "@/api/systemManage";
 | 
	
		
			
				|  |  |  import { diffTimerFormMinute, addTimerFormMinute } from "@/utils/date";
 | 
	
		
			
				|  |  |  import dayjs from "dayjs";
 | 
	
	
		
			
				|  | @@ -504,7 +510,7 @@ import classroomSetting from "./modals/classroom-setting";
 | 
	
		
			
				|  |  |  import studentResetView from "./modals/student-reset-view";
 | 
	
		
			
				|  |  |  import qs from "qs";
 | 
	
		
			
				|  |  |  import { permission } from "@/utils/directivePage";
 | 
	
		
			
				|  |  | -import  {getCourseType} from "@/utils/utils"
 | 
	
		
			
				|  |  | +import { getCourseType } from "@/utils/utils";
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    props: ["musicGroupInfo"],
 | 
	
		
			
				|  |  |    name: "tresetClass",
 | 
	
	
		
			
				|  | @@ -635,10 +641,10 @@ export default {
 | 
	
		
			
				|  |  |        maxMun: 16,
 | 
	
		
			
				|  |  |        courseTime: "",
 | 
	
		
			
				|  |  |        studentResetVisiable: false,
 | 
	
		
			
				|  |  | -      courseTypesByType:null,
 | 
	
		
			
				|  |  | -      mergeList:[],
 | 
	
		
			
				|  |  | -      activeSoundList:[],
 | 
	
		
			
				|  |  | -      appoint:false
 | 
	
		
			
				|  |  | +      courseTypesByType: null,
 | 
	
		
			
				|  |  | +      mergeList: [],
 | 
	
		
			
				|  |  | +      activeSoundList: [],
 | 
	
		
			
				|  |  | +      appoint: false,
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    created() {
 | 
	
	
		
			
				|  | @@ -654,26 +660,24 @@ export default {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      async init() {
 | 
	
		
			
				|  |  |        this.teamid = this.$route.query.id;
 | 
	
		
			
				|  |  | -      this.organId = this.musicGroupInfo.organId
 | 
	
		
			
				|  |  | -      this.chargeTypeId = this.musicGroupInfo.chargeTypeId
 | 
	
		
			
				|  |  | +      this.organId = this.musicGroupInfo.organId;
 | 
	
		
			
				|  |  | +      this.chargeTypeId = this.musicGroupInfo.chargeTypeId;
 | 
	
		
			
				|  |  |        // 根据分部id和缴费类型获取 可选课程类型
 | 
	
		
			
				|  |  | -      try{
 | 
	
		
			
				|  |  | -          if (this.organId && this.chargeTypeId) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        if (this.organId && this.chargeTypeId) {
 | 
	
		
			
				|  |  |            const res = await getOrganizationCourseUnitPriceSettings({
 | 
	
		
			
				|  |  |              chargeTypeId: this.chargeTypeId,
 | 
	
		
			
				|  |  |              organId: this.organId,
 | 
	
		
			
				|  |  | -            rows: 9999
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | -          const d = {}
 | 
	
		
			
				|  |  | -          this.courseTypes = res.data.rows
 | 
	
		
			
				|  |  | +            rows: 9999,
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +          const d = {};
 | 
	
		
			
				|  |  | +          this.courseTypes = res.data.rows;
 | 
	
		
			
				|  |  |            for (const item of this.courseTypes) {
 | 
	
		
			
				|  |  | -            d[item.courseType] = item
 | 
	
		
			
				|  |  | +            d[item.courseType] = item;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          this.courseTypesByType = d
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +          this.courseTypesByType = d;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      } catch (error) { }
 | 
	
		
			
				|  |  | +      } catch (error) {}
 | 
	
		
			
				|  |  |        // 根据乐团id获取乐团所属分部
 | 
	
		
			
				|  |  |        getTeacher({ organId: this.organId }).then((res) => {
 | 
	
		
			
				|  |  |          if (res.code == 200) {
 | 
	
	
		
			
				|  | @@ -738,9 +742,9 @@ export default {
 | 
	
		
			
				|  |  |          (res) => {
 | 
	
		
			
				|  |  |            if (res.code == 200) {
 | 
	
		
			
				|  |  |              this.activeSingleList = res.data;
 | 
	
		
			
				|  |  | -            this.mergeList = res.data.filter(item=>{
 | 
	
		
			
				|  |  | -              return item.type!='MUSIC_NETWORK'
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +            this.mergeList = res.data.filter((item) => {
 | 
	
		
			
				|  |  | +              return item.type != "MUSIC_NETWORK";
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // this.topForm.count = this.activeSingleList.length
 | 
	
		
			
				|  |  |            }
 | 
	
	
		
			
				|  | @@ -765,8 +769,8 @@ export default {
 | 
	
		
			
				|  |  |        this.getNoClassStudent("SNAP");
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      setType(type) {
 | 
	
		
			
				|  |  | -      this.courseTypeList = getCourseType(type)
 | 
	
		
			
				|  |  | -      console.log(this.courseTypeList)
 | 
	
		
			
				|  |  | +      this.courseTypeList = getCourseType(type);
 | 
	
		
			
				|  |  | +      console.log(this.courseTypeList);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // 新增班级
 | 
	
		
			
				|  |  |      addNewClass(type) {
 | 
	
	
		
			
				|  | @@ -803,7 +807,11 @@ export default {
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -        this.getNoClassStudent(this.activeType, this.activeChioseSound,classGroupId);
 | 
	
		
			
				|  |  | +        this.getNoClassStudent(
 | 
	
		
			
				|  |  | +          this.activeType,
 | 
	
		
			
				|  |  | +          this.activeChioseSound,
 | 
	
		
			
				|  |  | +          classGroupId
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // 选择学生的方法修改
 | 
	
	
		
			
				|  | @@ -888,18 +896,18 @@ export default {
 | 
	
		
			
				|  |  |            });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  | -      if( this.activeType == 'HIGH' || this.activeType=='HIGH_ONLINE'){
 | 
	
		
			
				|  |  | -        this.getNoClassStudent(row.type,row.memo);
 | 
	
		
			
				|  |  | -        let arr = row.memo.split(',')
 | 
	
		
			
				|  |  | -        console.log(arr)
 | 
	
		
			
				|  |  | -        this.activeSoundList = this.soundList.filter(sound=>{
 | 
	
		
			
				|  |  | -          return arr.indexOf(sound.id+'') != -1
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        console.log(this.activeSoundList)
 | 
	
		
			
				|  |  | -      }else{
 | 
	
		
			
				|  |  | -        this.activeSoundList = this.soundList
 | 
	
		
			
				|  |  | +      if (this.activeType == "HIGH" || this.activeType == "HIGH_ONLINE") {
 | 
	
		
			
				|  |  | +        this.getNoClassStudent(row.type, row.memo);
 | 
	
		
			
				|  |  | +        let arr = row.memo.split(",");
 | 
	
		
			
				|  |  | +        console.log(arr);
 | 
	
		
			
				|  |  | +        this.activeSoundList = this.soundList.filter((sound) => {
 | 
	
		
			
				|  |  | +          return arr.indexOf(sound.id + "") != -1;
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        console.log(this.activeSoundList);
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        this.activeSoundList = this.soundList;
 | 
	
		
			
				|  |  |          this.getNoClassStudent(row.type);
 | 
	
		
			
				|  |  | -          console.log(this.activeSoundList)
 | 
	
		
			
				|  |  | +        console.log(this.activeSoundList);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      // 班级调整
 | 
	
	
		
			
				|  | @@ -925,12 +933,12 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        this.infoVisible = true;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    async getNoClassStudent(type, actualSubjectId,classGroupId) {
 | 
	
		
			
				|  |  | +    async getNoClassStudent(type, actualSubjectId, classGroupId) {
 | 
	
		
			
				|  |  |        const params = {
 | 
	
		
			
				|  |  |          musicGroupId: this.teamid,
 | 
	
		
			
				|  |  |          type,
 | 
	
		
			
				|  |  |          actualSubjectId,
 | 
	
		
			
				|  |  | -        classGroupId
 | 
	
		
			
				|  |  | +        classGroupId,
 | 
	
		
			
				|  |  |        };
 | 
	
		
			
				|  |  |        await getMusicGroupStuNoClassType(params).then((res) => {
 | 
	
		
			
				|  |  |          if (res.code == 200) {
 | 
	
	
		
			
				|  | @@ -963,7 +971,7 @@ export default {
 | 
	
		
			
				|  |  |                this.activeListStudent = res.data;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            });
 | 
	
		
			
				|  |  | -          this.getNoClassStudent(this.activeType,null,this.activeClass);
 | 
	
		
			
				|  |  | +          this.getNoClassStudent(this.activeType, null, this.activeClass);
 | 
	
		
			
				|  |  |            // getNoClassStudentAll({ musicGroupId: this.teamid }).then(res => {
 | 
	
		
			
				|  |  |            //   if (res.code == 200) {
 | 
	
		
			
				|  |  |            //     this.$message.success('删除成功');
 | 
	
	
		
			
				|  | @@ -1282,12 +1290,26 @@ export default {
 | 
	
		
			
				|  |  |              if (res.code == 200) {
 | 
	
		
			
				|  |  |                this.$message.success("创建成功");
 | 
	
		
			
				|  |  |                this.getList();
 | 
	
		
			
				|  |  | +              this.resetClassFrom();
 | 
	
		
			
				|  |  |                this.newClassVisible = false;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |            });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    resetClassFrom() {
 | 
	
		
			
				|  |  | +      this.newClassForm = {
 | 
	
		
			
				|  |  | +        className: null,
 | 
	
		
			
				|  |  | +        type: null,
 | 
	
		
			
				|  |  | +        subjectIdList: [],
 | 
	
		
			
				|  |  | +        subjectId: "",
 | 
	
		
			
				|  |  | +        expectStudentNum: null,
 | 
	
		
			
				|  |  | +        bishop: null,
 | 
	
		
			
				|  |  | +        teaching: [],
 | 
	
		
			
				|  |  | +        memo: [],
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +      this.changeMemo([]);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      setAssistant1(val) {
 | 
	
		
			
				|  |  |        for (let i in val) {
 | 
	
		
			
				|  |  |          if (val[i] == this.newClassForm.bishop) {
 | 
	
	
		
			
				|  | @@ -1415,7 +1437,7 @@ export default {
 | 
	
		
			
				|  |  |      closeStudentReset() {
 | 
	
		
			
				|  |  |        this.studentResetVisiable = false;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -        changeMemo(val) {
 | 
	
		
			
				|  |  | +    changeMemo(val) {
 | 
	
		
			
				|  |  |        // 声部id
 | 
	
		
			
				|  |  |        let flag = false;
 | 
	
		
			
				|  |  |        if (val.length < 1) {
 |