|  | @@ -1,6 +1,6 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <!-- m-container -->
 | 
	
		
			
				|  |  | -  <div class>
 | 
	
		
			
				|  |  | +  <div>
 | 
	
		
			
				|  |  |      <!-- <h2>
 | 
	
		
			
				|  |  |        <div class='squrt'></div>
 | 
	
		
			
				|  |  |        班级调整
 | 
	
	
		
			
				|  | @@ -25,15 +25,27 @@
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |          </el-form>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  | -      <div
 | 
	
		
			
				|  |  | -        class="newBand"
 | 
	
		
			
				|  |  | -        style="width: 120px"
 | 
	
		
			
				|  |  | -        v-permission="'courseSchedule/coursePostpone'"
 | 
	
		
			
				|  |  | -        v-if="team_status == 'PROGRESS'"
 | 
	
		
			
				|  |  | -        @click="postpone"
 | 
	
		
			
				|  |  | -      >
 | 
	
		
			
				|  |  | -        课程顺延
 | 
	
		
			
				|  |  | +      <div class="btnList">
 | 
	
		
			
				|  |  | +        <div
 | 
	
		
			
				|  |  | +          class="newBand"
 | 
	
		
			
				|  |  | +          style="width: 120px"
 | 
	
		
			
				|  |  | +          v-permission="'courseSchedule/coursePostpone'"
 | 
	
		
			
				|  |  | +          v-if="team_status == 'PROGRESS'"
 | 
	
		
			
				|  |  | +          @click="postpone"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          课程顺延
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        <div
 | 
	
		
			
				|  |  | +          class="newBand"
 | 
	
		
			
				|  |  | +          style="width: 120px"
 | 
	
		
			
				|  |  | +          v-permission="'courseSchedule/coursePostpone'"
 | 
	
		
			
				|  |  | +          v-if="courseViewType == 1"
 | 
	
		
			
				|  |  | +          @click="gotoMemberCourse"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          会员课程排课
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        <div class="tableWrap" style>
 | 
	
		
			
				|  |  |          <el-table
 | 
	
		
			
				|  |  |            :data="activeSingleList"
 | 
	
	
		
			
				|  | @@ -43,9 +55,9 @@
 | 
	
		
			
				|  |  |            tooltip-effect="dark"
 | 
	
		
			
				|  |  |            @selection-change="handleSelectionChange"
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  | -        <!-- checkSignPostpone -->
 | 
	
		
			
				|  |  | +          <!-- checkSignPostpone -->
 | 
	
		
			
				|  |  |            <el-table-column
 | 
	
		
			
				|  |  | -          :selectable="checkSignPostpone"
 | 
	
		
			
				|  |  | +            :selectable="checkSignPostpone"
 | 
	
		
			
				|  |  |              type="selection"
 | 
	
		
			
				|  |  |              width="55"
 | 
	
		
			
				|  |  |              v-if="team_status == 'PROGRESS'"
 | 
	
	
		
			
				|  | @@ -74,10 +86,11 @@
 | 
	
		
			
				|  |  |                <div v-if="scope.row.classGroupTeacherMapperList">
 | 
	
		
			
				|  |  |                  <p
 | 
	
		
			
				|  |  |                    v-for="(item, index) in scope.row.classGroupTeacherMapperList"
 | 
	
		
			
				|  |  | -                  v-if="item.teacherRole == 'BISHOP'"
 | 
	
		
			
				|  |  |                    :key="index"
 | 
	
		
			
				|  |  |                  >
 | 
	
		
			
				|  |  | -                  {{ item.userName }}
 | 
	
		
			
				|  |  | +                  <span v-if="item.teacherRole == 'BISHOP'">
 | 
	
		
			
				|  |  | +                    {{ item.userName }}
 | 
	
		
			
				|  |  | +                  </span>
 | 
	
		
			
				|  |  |                  </p>
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
	
		
			
				|  | @@ -87,10 +100,11 @@
 | 
	
		
			
				|  |  |                <div v-if="scope.row.classGroupTeacherMapperList">
 | 
	
		
			
				|  |  |                  <p
 | 
	
		
			
				|  |  |                    v-for="(item, index) in scope.row.classGroupTeacherMapperList"
 | 
	
		
			
				|  |  | -                  v-if="item.teacherRole == 'TEACHING'"
 | 
	
		
			
				|  |  |                    :key="index"
 | 
	
		
			
				|  |  |                  >
 | 
	
		
			
				|  |  | -                  {{ item.userName }}
 | 
	
		
			
				|  |  | +                  <span v-if="item.teacherRole == 'TEACHING'">
 | 
	
		
			
				|  |  | +                    {{ item.userName }}
 | 
	
		
			
				|  |  | +                  </span>
 | 
	
		
			
				|  |  |                  </p>
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
	
		
			
				|  | @@ -110,7 +124,12 @@
 | 
	
		
			
				|  |  |                <div>{{ scope.row.lockFlag | yesOrNo }}</div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |            </el-table-column>
 | 
	
		
			
				|  |  | -          <el-table-column align="center" width="240px" label="操作"   v-if="team_status == 'PREPARE'||team_status == 'PROGRESS'">
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            align="center"
 | 
	
		
			
				|  |  | +            width="240px"
 | 
	
		
			
				|  |  | +            label="操作"
 | 
	
		
			
				|  |  | +            v-if="team_status == 'PREPARE' || team_status == 'PROGRESS'"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  |              <template slot-scope="scope" v-if="scope.row.lockFlag != 1">
 | 
	
		
			
				|  |  |                <div>
 | 
	
		
			
				|  |  |                  <!-- v-if="scope.row.type !='MIX'" -->
 | 
	
	
		
			
				|  | @@ -130,9 +149,11 @@
 | 
	
		
			
				|  |  |                  <el-button
 | 
	
		
			
				|  |  |                    type="text"
 | 
	
		
			
				|  |  |                    v-if="
 | 
	
		
			
				|  |  | -                   ( permission('classGroup/classGroupUpdate') ||
 | 
	
		
			
				|  |  | -                    permission('classGroup/revisionClassGroup') ||
 | 
	
		
			
				|  |  | -                    permission('classGroup/revisionAddClassGroup'))&&scope.row.studentNum>0&&team_status == 'PROGRESS'
 | 
	
		
			
				|  |  | +                    (permission('classGroup/classGroupUpdate') ||
 | 
	
		
			
				|  |  | +                      permission('classGroup/revisionClassGroup') ||
 | 
	
		
			
				|  |  | +                      permission('classGroup/revisionAddClassGroup')) &&
 | 
	
		
			
				|  |  | +                    scope.row.studentNum > 0 &&
 | 
	
		
			
				|  |  | +                    team_status == 'PROGRESS'
 | 
	
		
			
				|  |  |                    "
 | 
	
		
			
				|  |  |                    @click="classAdjustment(scope.row)"
 | 
	
		
			
				|  |  |                    >排课</el-button
 | 
	
	
		
			
				|  | @@ -141,7 +162,8 @@
 | 
	
		
			
				|  |  |                    type="text"
 | 
	
		
			
				|  |  |                    v-if="
 | 
	
		
			
				|  |  |                      (scope.row.studentNum == '0' ||
 | 
	
		
			
				|  |  | -                    scope.row.totalClassTimes == '0')&& permission('classGroup/delSingle')
 | 
	
		
			
				|  |  | +                      scope.row.totalClassTimes == '0') &&
 | 
	
		
			
				|  |  | +                    permission('classGroup/delSingle')
 | 
	
		
			
				|  |  |                    "
 | 
	
		
			
				|  |  |                    @click="removeClass(scope)"
 | 
	
		
			
				|  |  |                    >删除</el-button
 | 
	
	
		
			
				|  | @@ -150,7 +172,8 @@
 | 
	
		
			
				|  |  |                    type="text"
 | 
	
		
			
				|  |  |                    v-if="
 | 
	
		
			
				|  |  |                      team_status == 'PROGRESS' &&
 | 
	
		
			
				|  |  | -                    permission('courseSchedule/coursePostpone')&&checkSignPostpone(scope.row)
 | 
	
		
			
				|  |  | +                    permission('courseSchedule/coursePostpone') &&
 | 
	
		
			
				|  |  | +                    checkSignPostpone(scope.row)
 | 
	
		
			
				|  |  |                    "
 | 
	
		
			
				|  |  |                    @click="signPostpone(scope.row)"
 | 
	
		
			
				|  |  |                    >顺延课程</el-button
 | 
	
	
		
			
				|  | @@ -164,19 +187,53 @@
 | 
	
		
			
				|  |  |              <div
 | 
	
		
			
				|  |  |                class="add"
 | 
	
		
			
				|  |  |                @click="studentResetVisiable = true"
 | 
	
		
			
				|  |  | -              v-if="permission('classGroup/mergeClassSplitClassAffirm')&&team_status == 'PROGRESS'"
 | 
	
		
			
				|  |  | +              v-if="
 | 
	
		
			
				|  |  | +                permission('classGroup/mergeClassSplitClassAffirm') &&
 | 
	
		
			
				|  |  | +                team_status == 'PROGRESS'
 | 
	
		
			
				|  |  | +              "
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  |                拆分班级
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  | -          <div class="right"  v-if="team_status == 'PREPARE'||team_status == 'PROGRESS'">
 | 
	
		
			
				|  |  | -            <div class="add" v-if="permission('classGroup/create')" @click="temporary">新建临时班</div>
 | 
	
		
			
				|  |  | -            <div class="add" v-if="permission('classGroup/create')" @click="addNewClass('NORMAL')">新建声部班</div>
 | 
	
		
			
				|  |  | -            <div class="add" v-if="permission('classGroup/create')" @click="addNewClass('MIX')">新建合奏班</div>
 | 
	
		
			
				|  |  | -            <div class="add" v-if="permission('classGroup/revisionAddClassGroup')"   @click="addNewClass('MUSIC_NETWORK')">
 | 
	
		
			
				|  |  | +          <div
 | 
	
		
			
				|  |  | +            class="right"
 | 
	
		
			
				|  |  | +            v-if="team_status == 'PREPARE' || team_status == 'PROGRESS'"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <div
 | 
	
		
			
				|  |  | +              class="add"
 | 
	
		
			
				|  |  | +              v-if="permission('classGroup/create')"
 | 
	
		
			
				|  |  | +              @click="temporary"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              新建临时班
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div
 | 
	
		
			
				|  |  | +              class="add"
 | 
	
		
			
				|  |  | +              v-if="permission('classGroup/create')"
 | 
	
		
			
				|  |  | +              @click="addNewClass('NORMAL')"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              新建声部班
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div
 | 
	
		
			
				|  |  | +              class="add"
 | 
	
		
			
				|  |  | +              v-if="permission('classGroup/create')"
 | 
	
		
			
				|  |  | +              @click="addNewClass('MIX')"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              新建合奏班
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div
 | 
	
		
			
				|  |  | +              class="add"
 | 
	
		
			
				|  |  | +              v-if="permission('classGroup/revisionAddClassGroup')"
 | 
	
		
			
				|  |  | +              @click="addNewClass('MUSIC_NETWORK')"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  |                新建乐团网管课
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  | -            <div class="add" v-if="permission('classGroup/create')" @click="newClassVisible = true">基础技能班</div>
 | 
	
		
			
				|  |  | +            <div
 | 
	
		
			
				|  |  | +              class="add"
 | 
	
		
			
				|  |  | +              v-if="permission('classGroup/create')"
 | 
	
		
			
				|  |  | +              @click="newClassVisible = true"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +              基础技能班
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |            <!-- <div class="add"
 | 
	
	
		
			
				|  | @@ -387,8 +444,10 @@
 | 
	
		
			
				|  |  |                :label="item.realName"
 | 
	
		
			
				|  |  |                :value="String(item.id)"
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -             <span style="float: left">{{ item.realName }}</span>
 | 
	
		
			
				|  |  | -      <span style="float: right; color: #8492a6; font-size: 13px">{{String(item.id)}}</span>
 | 
	
		
			
				|  |  | +              <span style="float: left">{{ item.realName }}</span>
 | 
	
		
			
				|  |  | +              <span style="float: right; color: #8492a6; font-size: 13px">{{
 | 
	
		
			
				|  |  | +                String(item.id)
 | 
	
		
			
				|  |  | +              }}</span>
 | 
	
		
			
				|  |  |              </el-option>
 | 
	
		
			
				|  |  |            </el-select>
 | 
	
		
			
				|  |  |            <!-- <remote-search
 | 
	
	
		
			
				|  | @@ -434,8 +493,10 @@
 | 
	
		
			
				|  |  |                :label="item.realName"
 | 
	
		
			
				|  |  |                :value="item.id"
 | 
	
		
			
				|  |  |              >
 | 
	
		
			
				|  |  | -                         <span style="float: left">{{ item.realName }}</span>
 | 
	
		
			
				|  |  | -      <span style="float: right; color: #8492a6; font-size: 13px">{{String(item.id)}}</span>
 | 
	
		
			
				|  |  | +              <span style="float: left">{{ item.realName }}</span>
 | 
	
		
			
				|  |  | +              <span style="float: right; color: #8492a6; font-size: 13px">{{
 | 
	
		
			
				|  |  | +                String(item.id)
 | 
	
		
			
				|  |  | +              }}</span>
 | 
	
		
			
				|  |  |              </el-option>
 | 
	
		
			
				|  |  |            </el-select>
 | 
	
		
			
				|  |  |            <!-- <remote-search
 | 
	
	
		
			
				|  | @@ -468,9 +529,7 @@
 | 
	
		
			
				|  |  |            :rules="[
 | 
	
		
			
				|  |  |              { required: true, message: '请选择可报名声部', trigger: 'blur' },
 | 
	
		
			
				|  |  |            ]"
 | 
	
		
			
				|  |  | -          v-if="
 | 
	
		
			
				|  |  | -            newClassForm.type == 'HIGH'
 | 
	
		
			
				|  |  | -          "
 | 
	
		
			
				|  |  | +          v-if="newClassForm.type == 'HIGH'"
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  |            <select-all
 | 
	
		
			
				|  |  |              v-model.trim="newClassForm.memo"
 | 
	
	
		
			
				|  | @@ -516,9 +575,7 @@
 | 
	
		
			
				|  |  |                <p>
 | 
	
		
			
				|  |  |                  可创建班级数量=各个声部学员数/6向上取整+乐团在读学员数/30向上取整
 | 
	
		
			
				|  |  |                </p>
 | 
	
		
			
				|  |  | -              <p>
 | 
	
		
			
				|  |  | -                上低音号、长号学员数合并计算
 | 
	
		
			
				|  |  | -              </p>
 | 
	
		
			
				|  |  | +              <p>上低音号、长号学员数合并计算</p>
 | 
	
		
			
				|  |  |                <p>班级人数:</p>
 | 
	
		
			
				|  |  |                <p>线上基础技能班人数上限为6人</p>
 | 
	
		
			
				|  |  |              </div>
 | 
	
	
		
			
				|  | @@ -819,7 +876,8 @@ export default {
 | 
	
		
			
				|  |  |        bigin: this.beginDate(),
 | 
	
		
			
				|  |  |        options: this.processDate(),
 | 
	
		
			
				|  |  |        team_status: "",
 | 
	
		
			
				|  |  | -      activeList:[]
 | 
	
		
			
				|  |  | +      activeList: [],
 | 
	
		
			
				|  |  | +      courseViewType:''
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    created() {
 | 
	
	
		
			
				|  | @@ -839,12 +897,14 @@ export default {
 | 
	
		
			
				|  |  |        if (this.musicGroupInfo) {
 | 
	
		
			
				|  |  |          this.organId = this.musicGroupInfos.organId;
 | 
	
		
			
				|  |  |          this.chargeTypeId = this.musicGroupInfos.chargeTypeId;
 | 
	
		
			
				|  |  | +        this.courseViewType = this.musicGroupInfos.courseViewType
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  |          getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
 | 
	
		
			
				|  |  |            if (res.code == 200) {
 | 
	
		
			
				|  |  |              this.musicGroupInfos = res.data.musicGroup;
 | 
	
		
			
				|  |  |              this.organId = this.musicGroupInfos.organId;
 | 
	
		
			
				|  |  |              this.chargeTypeId = this.musicGroupInfos.chargeTypeId;
 | 
	
		
			
				|  |  | +                this.courseViewType = this.musicGroupInfos.courseViewType
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -926,8 +986,7 @@ export default {
 | 
	
		
			
				|  |  |          type: this.activeType,
 | 
	
		
			
				|  |  |          name: data?.name,
 | 
	
		
			
				|  |  |          musicGroupId: this.teamid,
 | 
	
		
			
				|  |  | -        subjectIdList:
 | 
	
		
			
				|  |  | -          data?.sound.length > 0 ? data?.sound.join(",") : null,
 | 
	
		
			
				|  |  | +        subjectIdList: data?.sound.length > 0 ? data?.sound.join(",") : null,
 | 
	
		
			
				|  |  |          teacherMapperList: formatClassGroupTeacherMapperList(
 | 
	
		
			
				|  |  |            data.coreTeacher,
 | 
	
		
			
				|  |  |            data.assistant
 | 
	
	
		
			
				|  | @@ -936,7 +995,6 @@ export default {
 | 
	
		
			
				|  |  |        };
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      async submitClass(data) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |        const list = this.getSubmitData(data, { onlyCreateClassGroup: true });
 | 
	
		
			
				|  |  |        let obj = this.getClassDate(data);
 | 
	
		
			
				|  |  |        if (this.activeType == "MUSIC_NETWORK") {
 | 
	
	
		
			
				|  | @@ -1018,6 +1076,7 @@ export default {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      changeMixClass(val) {
 | 
	
		
			
				|  |  |        // 根据合奏班id获取合奏班下的所有声部班
 | 
	
		
			
				|  |  | +      console.log(val)
 | 
	
		
			
				|  |  |        this.getList(val);
 | 
	
		
			
				|  |  |        this.activeMixClass = val;
 | 
	
		
			
				|  |  |      },
 | 
	
	
		
			
				|  | @@ -1621,8 +1680,8 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        this.postponeVisible = true;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    checkSignPostpone(row){
 | 
	
		
			
				|  |  | -      return row.totalClassTimes - row.currentClassTimes >0
 | 
	
		
			
				|  |  | +    checkSignPostpone(row) {
 | 
	
		
			
				|  |  | +      return row.totalClassTimes - row.currentClassTimes > 0;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      handleClose() {
 | 
	
		
			
				|  |  |        // 弹窗关闭之前
 | 
	
	
		
			
				|  | @@ -1659,6 +1718,13 @@ export default {
 | 
	
		
			
				|  |  |        this.activeClass = row.id;
 | 
	
		
			
				|  |  |        this.postponeVisible = true;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    gotoMemberCourse(){
 | 
	
		
			
				|  |  | +      // 这里跳转到课表
 | 
	
		
			
				|  |  | +      this.$router.push({
 | 
	
		
			
				|  |  | +        path:'/business/memberClassList',
 | 
	
		
			
				|  |  | +        query:{...this.$route.query}
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    watch: {
 | 
	
	
		
			
				|  | @@ -1704,6 +1770,15 @@ export default {
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style lang="scss" scoped>
 | 
	
		
			
				|  |  | +.btnList {
 | 
	
		
			
				|  |  | +  display: flex;
 | 
	
		
			
				|  |  | +  flex-direction: row;
 | 
	
		
			
				|  |  | +  justify-content: flex-start;
 | 
	
		
			
				|  |  | +  align-items: center;
 | 
	
		
			
				|  |  | +  .newBand {
 | 
	
		
			
				|  |  | +    margin-right: 10px;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  .dialog-footer.question {
 | 
	
		
			
				|  |  |    display: flex;
 | 
	
		
			
				|  |  |    flex-direction: row;
 |