|
@@ -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;
|