|
@@ -8,15 +8,34 @@
|
|
|
<!-- @change="changeMixClass" -->
|
|
|
<div class="m-core">
|
|
|
<div class="topWrap">
|
|
|
- <el-form :inline="true" :model="topForm" @submit.stop.native.prevent="submit" @reset.stop.native.prevent="reset">
|
|
|
+ <el-form
|
|
|
+ :inline="true"
|
|
|
+ :model="topForm"
|
|
|
+ @submit.stop.native.prevent="submit"
|
|
|
+ @reset.stop.native.prevent="reset"
|
|
|
+ >
|
|
|
<el-form-item>
|
|
|
- <el-select v-model.trim="topForm.type" clearable filterable placeholder="请选择班级类型">
|
|
|
- <el-option v-for="(item, index) in musicClassTypeList" :key="index" :label="item.label"
|
|
|
- :value="item.value"></el-option>
|
|
|
+ <el-select
|
|
|
+ v-model.trim="topForm.type"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="请选择班级类型"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in musicClassTypeList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-select v-model.trim="topForm.hasCourse" clearable filterable placeholder="是否有剩余课程">
|
|
|
+ <el-select
|
|
|
+ v-model.trim="topForm.hasCourse"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="是否有剩余课程"
|
|
|
+ >
|
|
|
<el-option label="是" :value="1"></el-option>
|
|
|
<el-option label="否" :value="0"></el-option>
|
|
|
</el-select>
|
|
@@ -28,11 +47,22 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<div class="btnList">
|
|
|
- <el-button type="primary" v-permission="'courseSchedule/coursePostpone'" v-if="team_status == 'PROGRESS'"
|
|
|
- @click="postpone" style="margin-bottom: 20px">课程顺延</el-button>
|
|
|
- <el-button type="primary" v-permission="'/memberClassList'"
|
|
|
- v-if="courseViewType == 2 && team_status == 'PROGRESS'" @click="gotoMemberCourse"
|
|
|
- style="margin-bottom: 20px">会员课程排课</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ v-permission="'courseSchedule/coursePostpone'"
|
|
|
+ v-if="team_status == 'PROGRESS'"
|
|
|
+ @click="postpone"
|
|
|
+ style="margin-bottom: 20px"
|
|
|
+ >课程顺延</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ v-permission="'/memberClassList'"
|
|
|
+ v-if="courseViewType == 2 && team_status == 'PROGRESS'"
|
|
|
+ @click="gotoMemberCourse"
|
|
|
+ style="margin-bottom: 20px"
|
|
|
+ >会员课程排课</el-button
|
|
|
+ >
|
|
|
<!-- <div
|
|
|
class="newBand"
|
|
|
style="width: 120px"
|
|
@@ -54,19 +84,36 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="tableWrap" style>
|
|
|
- <el-table :data="activeSingleList" style ref="multipleTable"
|
|
|
- :header-cell-style="{ background: '#EDEEF0', color: '#444' }" tooltip-effect="dark"
|
|
|
- @selection-change="handleSelectionChange">
|
|
|
+ <el-table
|
|
|
+ :data="activeSingleList"
|
|
|
+ style
|
|
|
+ ref="multipleTable"
|
|
|
+ :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
|
+ tooltip-effect="dark"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
<!-- checkSignPostpone -->
|
|
|
- <el-table-column :selectable="checkSignPostpone" type="selection" width="55"
|
|
|
- v-if="team_status == 'PROGRESS'"></el-table-column>
|
|
|
- <el-table-column align="center" prop="name" label="班级名称"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ :selectable="checkSignPostpone"
|
|
|
+ type="selection"
|
|
|
+ width="55"
|
|
|
+ v-if="team_status == 'PROGRESS'"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="name"
|
|
|
+ label="班级名称"
|
|
|
+ ></el-table-column>
|
|
|
<el-table-column align="center" prop="type" label="班级类型">
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.type | classType }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="studentNum" label="当前班级人数">
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="studentNum"
|
|
|
+ label="当前班级人数"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.studentNum }}人</div>
|
|
|
</template>
|
|
@@ -74,7 +121,10 @@
|
|
|
<el-table-column align="center" prop label="主教老师">
|
|
|
<template slot-scope="scope">
|
|
|
<div v-if="scope.row.classGroupTeacherMapperList">
|
|
|
- <p v-for="(item, index) in scope.row.classGroupTeacherMapperList" :key="index">
|
|
|
+ <p
|
|
|
+ v-for="(item, index) in scope.row.classGroupTeacherMapperList"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
<span v-if="item.teacherRole == 'BISHOP'">
|
|
|
{{ item.userName }}
|
|
|
</span>
|
|
@@ -85,7 +135,10 @@
|
|
|
<el-table-column align="center" label="助教老师">
|
|
|
<template slot-scope="scope">
|
|
|
<div v-if="scope.row.classGroupTeacherMapperList">
|
|
|
- <p v-for="(item, index) in scope.row.classGroupTeacherMapperList" :key="index">
|
|
|
+ <p
|
|
|
+ v-for="(item, index) in scope.row.classGroupTeacherMapperList"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
<span v-if="item.teacherRole == 'TEACHING'">
|
|
|
{{ item.userName }}
|
|
|
</span>
|
|
@@ -108,59 +161,124 @@
|
|
|
<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'" -->
|
|
|
- <el-button type="text" @click="resetClass(scope.row)"
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ @click="resetClass(scope.row)"
|
|
|
v-permission="'classGroupStudent/updateClassGroupStudents'"
|
|
|
- v-if="scope.row.type != 'MUSIC_NETWORK'">学员调整</el-button>
|
|
|
- <el-button type="text" @click="resetTeacher(scope.row)"
|
|
|
- v-permission="'classGroup/classGroupUpdate'">老师调整</el-button>
|
|
|
- <el-button type="text" v-if="(permission('classGroup/classGroupUpdate') ||
|
|
|
- permission('classGroup/revisionClassGroup') ||
|
|
|
- permission('classGroup/revisionAddClassGroup')) &&
|
|
|
- scope.row.studentNum > 0 &&
|
|
|
- team_status == 'PROGRESS'
|
|
|
- " @click="classAdjustment(scope.row)">排课</el-button>
|
|
|
- <el-button type="text" v-if="(scope.row.studentNum == '0' ||
|
|
|
- scope.row.totalClassTimes == '0') &&
|
|
|
- permission('classGroup/delSingle')
|
|
|
- " @click="removeClass(scope)">删除</el-button>
|
|
|
- <el-button type="text" v-if="team_status == 'PROGRESS' &&
|
|
|
- permission('courseSchedule/coursePostpone') &&
|
|
|
- checkSignPostpone(scope.row)
|
|
|
- " @click="signPostpone(scope.row)">顺延课程</el-button>
|
|
|
- <el-button type="text" v-if="team_status == 'PROGRESS' && permission('classGroup/update')
|
|
|
- " @click="resetClassName(scope.row)">班级名称调整</el-button>
|
|
|
+ v-if="scope.row.type != 'MUSIC_NETWORK'"
|
|
|
+ >学员调整</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ @click="resetTeacher(scope.row)"
|
|
|
+ v-permission="'classGroup/classGroupUpdate'"
|
|
|
+ >老师调整</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-if="
|
|
|
+ (permission('classGroup/classGroupUpdate') ||
|
|
|
+ permission('classGroup/revisionClassGroup') ||
|
|
|
+ permission('classGroup/revisionAddClassGroup')) &&
|
|
|
+ scope.row.studentNum > 0 &&
|
|
|
+ team_status == 'PROGRESS'
|
|
|
+ "
|
|
|
+ @click="classAdjustment(scope.row)"
|
|
|
+ >排课</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-if="
|
|
|
+ (scope.row.studentNum == '0' ||
|
|
|
+ scope.row.totalClassTimes == '0') &&
|
|
|
+ permission('classGroup/delSingle')
|
|
|
+ "
|
|
|
+ @click="removeClass(scope)"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-if="
|
|
|
+ team_status == 'PROGRESS' &&
|
|
|
+ permission('courseSchedule/coursePostpone') &&
|
|
|
+ checkSignPostpone(scope.row)
|
|
|
+ "
|
|
|
+ @click="signPostpone(scope.row)"
|
|
|
+ >顺延课程</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-if="
|
|
|
+ team_status == 'PROGRESS' && permission('classGroup/update')
|
|
|
+ "
|
|
|
+ @click="resetClassName(scope.row)"
|
|
|
+ >班级名称调整</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<div class="floor">
|
|
|
<div class="left">
|
|
|
- <div class="add" @click="studentResetVisiable = true" v-if="permission('classGroup/mergeClassSplitClassAffirm') &&
|
|
|
- team_status == 'PROGRESS'
|
|
|
- ">
|
|
|
+ <div
|
|
|
+ class="add"
|
|
|
+ @click="studentResetVisiable = true"
|
|
|
+ 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
|
|
|
+ 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
|
|
|
+ class="add"
|
|
|
+ v-if="permission('classGroup/create')"
|
|
|
+ @click="addNewClass('NORMAL')"
|
|
|
+ >
|
|
|
新建声部班
|
|
|
</div>
|
|
|
- <div class="add" v-if="permission('classGroup/create')" @click="addNewClass('MIX')">
|
|
|
+ <div
|
|
|
+ class="add"
|
|
|
+ v-if="permission('classGroup/create')"
|
|
|
+ @click="addNewClass('MIX')"
|
|
|
+ >
|
|
|
新建合奏班
|
|
|
</div>
|
|
|
- <div class="add" v-if="permission('classGroup/revisionAddClassGroup') && tenantId == 1
|
|
|
- " @click="addNewClass('MUSIC_NETWORK')">
|
|
|
+ <div
|
|
|
+ class="add"
|
|
|
+ v-if="
|
|
|
+ permission('classGroup/revisionAddClassGroup') && tenantId == 1
|
|
|
+ "
|
|
|
+ @click="addNewClass('MUSIC_NETWORK')"
|
|
|
+ >
|
|
|
新建乐团网管课
|
|
|
</div>
|
|
|
- <div class="add" v-if="permission('classGroup/create')" @click="newClassVisible = true">
|
|
|
+ <div
|
|
|
+ class="add"
|
|
|
+ v-if="permission('classGroup/create')"
|
|
|
+ @click="newClassVisible = true"
|
|
|
+ >
|
|
|
基础技能班
|
|
|
</div>
|
|
|
</div>
|
|
@@ -170,59 +288,147 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <el-dialog title="老师调整" width="750px" :visible.sync="teacherVisible" v-if="teacherVisible">
|
|
|
- <changeTeacher v-if="teacherVisible && teacherDetail" :classGroupId="activeClass" :activeType="activeType"
|
|
|
- :teacherList="teacherList" :cooperationList="cooperationList" :detail="teacherDetail" @submited="teacherSubmited"
|
|
|
- @close="teacherVisible = false" />
|
|
|
+ <el-dialog
|
|
|
+ title="老师调整"
|
|
|
+ width="750px"
|
|
|
+ :visible.sync="teacherVisible"
|
|
|
+ v-if="teacherVisible"
|
|
|
+ >
|
|
|
+ <changeTeacher
|
|
|
+ v-if="teacherVisible && teacherDetail"
|
|
|
+ :classGroupId="activeClass"
|
|
|
+ :activeType="activeType"
|
|
|
+ :teacherList="teacherList"
|
|
|
+ :cooperationList="cooperationList"
|
|
|
+ :detail="teacherDetail"
|
|
|
+ @submited="teacherSubmited"
|
|
|
+ @close="teacherVisible = false"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
<!-- 修改班级名称 -->
|
|
|
- <el-dialog title="班级名称调整" width="400px" :visible.sync="classNameVisible" v-if="classNameVisible">
|
|
|
- <changeClassName :detail="classDetail" @submited="submitedResetClassName" @close="classNameVisible = false" />
|
|
|
+ <el-dialog
|
|
|
+ title="班级名称调整"
|
|
|
+ width="400px"
|
|
|
+ :visible.sync="classNameVisible"
|
|
|
+ v-if="classNameVisible"
|
|
|
+ >
|
|
|
+ <changeClassName
|
|
|
+ :detail="classDetail"
|
|
|
+ @submited="submitedResetClassName"
|
|
|
+ @close="classNameVisible = false"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
<!-- 学员选择 -->
|
|
|
- <el-dialog :title="isOnlyChangeUser ? '学员调整' : '新建班级'" width="760px" :visible.sync="studentVisible"
|
|
|
- v-if="studentVisible">
|
|
|
- <selectStudent :activeListStudent="activeListStudent" :studentList="studentList" :soundList="activeSoundList"
|
|
|
- :classGroupId="activeClass" :teacherList="teacherList" :cooperationList="cooperationList"
|
|
|
- :isOnlyChangeUser="isOnlyChangeUser" :isStudentRemove="isStudentRemove" :activeType="activeType"
|
|
|
- @changeActiveChioseSound="changeActiveChioseSound" @searchStudent="searchStudent(activeClass)"
|
|
|
- @submited="studentSubmited" @close="studentVisible = false" />
|
|
|
+ <el-dialog
|
|
|
+ :title="isOnlyChangeUser ? '学员调整' : '新建班级'"
|
|
|
+ width="760px"
|
|
|
+ :visible.sync="studentVisible"
|
|
|
+ v-if="studentVisible"
|
|
|
+ >
|
|
|
+ <selectStudent
|
|
|
+ :activeListStudent="activeListStudent"
|
|
|
+ :studentList="studentList"
|
|
|
+ :soundList="activeSoundList"
|
|
|
+ :classGroupId="activeClass"
|
|
|
+ :teacherList="teacherList"
|
|
|
+ :cooperationList="cooperationList"
|
|
|
+ :isOnlyChangeUser="isOnlyChangeUser"
|
|
|
+ :isStudentRemove="isStudentRemove"
|
|
|
+ :activeType="activeType"
|
|
|
+ @changeActiveChioseSound="changeActiveChioseSound"
|
|
|
+ @searchStudent="searchStudent(activeClass)"
|
|
|
+ @submited="studentSubmited"
|
|
|
+ @close="studentVisible = false"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
<!-- 老师以及课程设置 -->
|
|
|
- <el-dialog title="班级排课" width="1200px" :visible.sync="infoVisible" :modal-append-to-body="false">
|
|
|
- <classroomSetting v-if="infoVisible" :classType="classType" :teacherList="teacherList" :musicGroupId="teamid"
|
|
|
- :activeType="activeType" :courseTypeList="courseTypeList" :cooperationList="cooperationList" :detail="infoDetail"
|
|
|
- :studentSubmitedData="studentSubmitedData" @close="infoVisible = false" @submited="getList" />
|
|
|
+ <el-dialog
|
|
|
+ title="班级排课"
|
|
|
+ width="1200px"
|
|
|
+ :visible.sync="infoVisible"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ >
|
|
|
+ <classroomSetting
|
|
|
+ v-if="infoVisible"
|
|
|
+ :classType="classType"
|
|
|
+ :teacherList="teacherList"
|
|
|
+ :musicGroupId="teamid"
|
|
|
+ :activeType="activeType"
|
|
|
+ :courseTypeList="courseTypeList"
|
|
|
+ :cooperationList="cooperationList"
|
|
|
+ :detail="infoDetail"
|
|
|
+ :studentSubmitedData="studentSubmitedData"
|
|
|
+ @close="infoVisible = false"
|
|
|
+ @submited="getList"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
<!-- 新增合奏班 -->
|
|
|
- <el-dialog title="新增合奏班" width="700px" :visible.sync="MixVisible" :modal-append-to-body="false">
|
|
|
+ <el-dialog
|
|
|
+ title="新增合奏班"
|
|
|
+ width="700px"
|
|
|
+ :visible.sync="MixVisible"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ >
|
|
|
<div class="studentMask">
|
|
|
<div class="left">
|
|
|
<div class="wrap">
|
|
|
<!-- :disabled="!isNewClass" -->
|
|
|
- <el-input placeholder="请输入合奏班名称" v-model.trim="className"></el-input>
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入合奏班名称"
|
|
|
+ v-model.trim="className"
|
|
|
+ ></el-input>
|
|
|
</div>
|
|
|
<div class="chioseStudentList">
|
|
|
<h4 style="padding-left: 10px">当前已选学生</h4>
|
|
|
- <div class="studentItem" v-for="(item, index) in activeListStudent" :key="index">
|
|
|
+ <div
|
|
|
+ class="studentItem"
|
|
|
+ v-for="(item, index) in activeListStudent"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
{{ item.name }}
|
|
|
- <el-button type="text" @click="removeSiginforMix(item)">删除班级</el-button>
|
|
|
+ <el-button type="text" @click="removeSiginforMix(item)"
|
|
|
+ >删除班级</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="right">
|
|
|
<!-- 列表开始 -->
|
|
|
<div class="tableList">
|
|
|
- <el-table tooltip-effect="dark" style="width: 100%; margin-top: 10px" :data="singleList" ref="mixList"
|
|
|
- @selection-change="SelectionMix">
|
|
|
- <el-table-column type="selection" align="center" width="55"></el-table-column>
|
|
|
- <el-table-column prop="name" align="center" width="120" label="姓名"></el-table-column>
|
|
|
- <el-table-column prop="gender" align="center" width="100" label="性别">
|
|
|
+ <el-table
|
|
|
+ tooltip-effect="dark"
|
|
|
+ style="width: 100%; margin-top: 10px"
|
|
|
+ :data="singleList"
|
|
|
+ ref="mixList"
|
|
|
+ @selection-change="SelectionMix"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ type="selection"
|
|
|
+ align="center"
|
|
|
+ width="55"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="name"
|
|
|
+ align="center"
|
|
|
+ width="120"
|
|
|
+ label="姓名"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="gender"
|
|
|
+ align="center"
|
|
|
+ width="100"
|
|
|
+ label="性别"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.gender | sex }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="subjectName" width="120" align="center" label="学员声部"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="subjectName"
|
|
|
+ width="120"
|
|
|
+ align="center"
|
|
|
+ label="学员声部"
|
|
|
+ ></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -230,37 +436,90 @@
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button @click="studentVisible = false">取 消</el-button>
|
|
|
<!-- 班级学员修改 -->
|
|
|
- <el-button type="primary" v-if="!isNewClass" @click="addSomeStudent">确 定</el-button>
|
|
|
+ <el-button type="primary" v-if="!isNewClass" @click="addSomeStudent"
|
|
|
+ >确 定</el-button
|
|
|
+ >
|
|
|
<!-- 临时调整或者新建班级 -->
|
|
|
- <el-button type="primary" v-if="isNewClass" @click="setInfoMsg">确 定</el-button>
|
|
|
+ <el-button type="primary" v-if="isNewClass" @click="setInfoMsg"
|
|
|
+ >确 定</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<el-dialog :visible.sync="newClassVisible" width="700px" title="新增班级">
|
|
|
- <el-form :model="newClassForm" :inline="true" label-width="120px" ref="newClassForm" class="newClassForm">
|
|
|
- <el-form-item label="班级名称" :rules="[
|
|
|
- { required: true, message: '请输入班级姓名', trigger: 'blur' }
|
|
|
- ]" prop="className">
|
|
|
- <el-input style="width: 180px" v-model="newClassForm.className"></el-input>
|
|
|
+ <el-form
|
|
|
+ :model="newClassForm"
|
|
|
+ :inline="true"
|
|
|
+ label-width="120px"
|
|
|
+ ref="newClassForm"
|
|
|
+ class="newClassForm"
|
|
|
+ >
|
|
|
+ <el-form-item
|
|
|
+ label="班级名称"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请输入班级姓名', trigger: 'blur' }
|
|
|
+ ]"
|
|
|
+ prop="className"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ style="width: 180px"
|
|
|
+ v-model="newClassForm.className"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="班级类型" :rules="[
|
|
|
- { required: true, message: '请选择班级类型', trigger: 'blur' }
|
|
|
- ]" prop="type">
|
|
|
- <el-select v-if="tenantId == 1" v-model.trim="newClassForm.type" clearable @change="chioseHightype">
|
|
|
- <el-option v-for="(item, index) in highTypeList" :key="index" :label="item.label"
|
|
|
- :value="item.value"></el-option>
|
|
|
+ <el-form-item
|
|
|
+ label="班级类型"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请选择班级类型', trigger: 'blur' }
|
|
|
+ ]"
|
|
|
+ prop="type"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-if="tenantId == 1"
|
|
|
+ v-model.trim="newClassForm.type"
|
|
|
+ clearable
|
|
|
+ @change="chioseHightype"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in highTypeList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-else v-model.trim="newClassForm.type" clearable @change="chioseHightype">
|
|
|
- <el-option v-for="(item, index) in highTypeList1" :key="index" :label="item.label"
|
|
|
- :value="item.value"></el-option>
|
|
|
+ <el-select
|
|
|
+ v-else
|
|
|
+ v-model.trim="newClassForm.type"
|
|
|
+ clearable
|
|
|
+ @change="chioseHightype"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in highTypeList1"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
|
|
|
<!-- highTypeList1 -->
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="主教老师" prop="bishop" :rules="[
|
|
|
- { required: true, message: '请选择主教老师', trigger: 'blur' }
|
|
|
- ]">
|
|
|
- <el-select v-model.trim="newClassForm.bishop" placeholder="请选择主教老师" clearable filterable>
|
|
|
- <el-option v-for="(item, index) in teacherList" :key="index" :label="item.realName" :value="String(item.id)">
|
|
|
+ <el-form-item
|
|
|
+ label="主教老师"
|
|
|
+ prop="bishop"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请选择主教老师', trigger: 'blur' }
|
|
|
+ ]"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model.trim="newClassForm.bishop"
|
|
|
+ placeholder="请选择主教老师"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in teacherList"
|
|
|
+ :key="index"
|
|
|
+ :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)
|
|
@@ -272,19 +531,44 @@
|
|
|
v-model="newClassForm.bishop"
|
|
|
/> -->
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="预计招生数" prop="expectStudentNum" type="number" :rules="[
|
|
|
- { required: true, message: '请输入预计招生数', trigger: 'blur' }
|
|
|
- ]" @mousewheel.native.prevent>
|
|
|
- <el-input style="width: 180px" :disabled="newClassForm.type == 'HIGH_ONLINE'"
|
|
|
- v-model="newClassForm.expectStudentNum"></el-input>
|
|
|
+ <el-form-item
|
|
|
+ label="预计招生数"
|
|
|
+ prop="expectStudentNum"
|
|
|
+ type="number"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请输入预计招生数', trigger: 'blur' }
|
|
|
+ ]"
|
|
|
+ @mousewheel.native.prevent
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ style="width: 180px"
|
|
|
+ :disabled="newClassForm.type == 'HIGH_ONLINE'"
|
|
|
+ v-model="newClassForm.expectStudentNum"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="助教老师" v-if="newClassForm.type != 'HIGH_ONLINE' &&
|
|
|
- newClassForm.type != 'HIGH' &&
|
|
|
- newClassForm.type && $helpers.permission('is/teacher/findTeachers')
|
|
|
- " prop="teaching">
|
|
|
- <el-select v-model.trim="newClassForm.teaching" placeholder="请选择助教老师" filterable clearable multiple
|
|
|
- @change="setAssistant1">
|
|
|
- <el-option v-for="(item, index) in cooperationList" :key="index" :label="item.realName" :value="item.id">
|
|
|
+ <el-form-item
|
|
|
+ label="助教老师"
|
|
|
+ v-if="
|
|
|
+ newClassForm.type != 'HIGH_ONLINE' &&
|
|
|
+ newClassForm.type != 'HIGH' &&
|
|
|
+ newClassForm.type
|
|
|
+ "
|
|
|
+ prop="teaching"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model.trim="newClassForm.teaching"
|
|
|
+ placeholder="请选择助教老师"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ multiple
|
|
|
+ @change="setAssistant1"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in cooperationList"
|
|
|
+ :key="index"
|
|
|
+ :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)
|
|
@@ -298,26 +582,63 @@
|
|
|
:multiple="true"
|
|
|
/> -->
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="声部" prop="subjectIdList" :rules="[{ required: true, message: '请选择声部', trigger: 'blur' }]"
|
|
|
- v-if="newClassForm.type == 'NORMAL'" :key="'HIGH'">
|
|
|
+ <el-form-item
|
|
|
+ label="声部"
|
|
|
+ prop="subjectIdList"
|
|
|
+ :rules="[{ required: true, message: '请选择声部', trigger: 'blur' }]"
|
|
|
+ v-if="newClassForm.type == 'NORMAL'"
|
|
|
+ :key="'HIGH'"
|
|
|
+ >
|
|
|
<el-select v-model="newClassForm.subjectIdList" clearable multiple>
|
|
|
- <el-option v-for="(item, index) in soundList" :key="index" :label="item.name" :value="item.id"></el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in soundList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<!-- 恢复可报名声部 因为建班和加学生分开所以又要添加可报名声部(焕焕狗乱吠) -->
|
|
|
- <el-form-item label="可报名声部" prop="memo" :rules="[
|
|
|
- { required: true, message: '请选择可报名声部', trigger: 'blur' }
|
|
|
- ]" v-if="newClassForm.type == 'HIGH'">
|
|
|
- <select-all v-model.trim="newClassForm.memo" multiple clearable @change="changeMemo">
|
|
|
- <el-option :disabled="item.disabled || appoint" v-for="(item, index) in soundList" :key="index"
|
|
|
- :label="item.name" :value="item.id"></el-option>
|
|
|
+ <el-form-item
|
|
|
+ label="可报名声部"
|
|
|
+ prop="memo"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请选择可报名声部', trigger: 'blur' }
|
|
|
+ ]"
|
|
|
+ v-if="newClassForm.type == 'HIGH'"
|
|
|
+ >
|
|
|
+ <select-all
|
|
|
+ v-model.trim="newClassForm.memo"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ @change="changeMemo"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ :disabled="item.disabled || appoint"
|
|
|
+ v-for="(item, index) in soundList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
</select-all>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="网络教室声部" prop="subjectId" :rules="[
|
|
|
- { required: true, message: '请选择线上声部', trigger: 'blur' }
|
|
|
- ]" v-if="newClassForm.type == 'HIGH_ONLINE'" class="higheSelect" :key="'HIGH_ONLINE'">
|
|
|
+ <el-form-item
|
|
|
+ label="网络教室声部"
|
|
|
+ prop="subjectId"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: '请选择线上声部', trigger: 'blur' }
|
|
|
+ ]"
|
|
|
+ v-if="newClassForm.type == 'HIGH_ONLINE'"
|
|
|
+ class="higheSelect"
|
|
|
+ :key="'HIGH_ONLINE'"
|
|
|
+ >
|
|
|
<el-select v-model="newClassForm.subjectId" clearable>
|
|
|
- <el-option v-for="(item, index) in soundList" :key="index" :label="item.name" :value="item.id"></el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in soundList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -334,7 +655,13 @@
|
|
|
<p>班级人数:</p>
|
|
|
<p>线上基础技能班人数上限为6人</p>
|
|
|
</div>
|
|
|
- <el-button type="text" icon="el-icon-question" slot="reference" style="color: red">线上基础技能班规则</el-button>
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-question"
|
|
|
+ slot="reference"
|
|
|
+ style="color: red"
|
|
|
+ >线上基础技能班规则</el-button
|
|
|
+ >
|
|
|
</el-popover>
|
|
|
</div>
|
|
|
<div>
|
|
@@ -343,33 +670,67 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="学员列表" :visible.sync="studentListModalVisible" v-if="studentListModalVisible">
|
|
|
- <viewStudentList :list="studentListModal" :showOk="true" @close="studentListModalVisible = false" />
|
|
|
+ <el-dialog
|
|
|
+ title="学员列表"
|
|
|
+ :visible.sync="studentListModalVisible"
|
|
|
+ v-if="studentListModalVisible"
|
|
|
+ >
|
|
|
+ <viewStudentList
|
|
|
+ :list="studentListModal"
|
|
|
+ :showOk="true"
|
|
|
+ @close="studentListModalVisible = false"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog title="学员班级调整" width="800px" :visible.sync="studentResetVisiable">
|
|
|
- <studentResetView :teacherList="teacherList" :courseTypesByType="courseTypesByType" v-if="studentResetVisiable"
|
|
|
- :classList="mergeList" @close="closeStudentReset" />
|
|
|
+ <el-dialog
|
|
|
+ title="学员班级调整"
|
|
|
+ width="800px"
|
|
|
+ :visible.sync="studentResetVisiable"
|
|
|
+ >
|
|
|
+ <studentResetView
|
|
|
+ :teacherList="teacherList"
|
|
|
+ :courseTypesByType="courseTypesByType"
|
|
|
+ v-if="studentResetVisiable"
|
|
|
+ :classList="mergeList"
|
|
|
+ @close="closeStudentReset"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog title="课程顺延" :visible.sync="postponeVisible" width="600px" :before-close="handleClose">
|
|
|
+ <el-dialog
|
|
|
+ title="课程顺延"
|
|
|
+ :visible.sync="postponeVisible"
|
|
|
+ width="600px"
|
|
|
+ :before-close="handleClose"
|
|
|
+ >
|
|
|
<el-form :model="postponeForm" ref="postponeForm" :rules="postponeRules">
|
|
|
<el-form-item label="开始日期" prop="stopTime">
|
|
|
- <el-date-picker v-model.trim="postponeForm.stopTime" type="date" :picker-options="bigin"
|
|
|
- value-format="yyyy-MM-dd" placeholder="选择日期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model.trim="postponeForm.stopTime"
|
|
|
+ type="date"
|
|
|
+ :picker-options="bigin"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="顺延日期" prop="resetTime">
|
|
|
- <el-date-picker v-model.trim="postponeForm.resetTime" type="date" :picker-options="options"
|
|
|
- value-format="yyyy-MM-dd" placeholder="选择日期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model.trim="postponeForm.resetTime"
|
|
|
+ type="date"
|
|
|
+ :picker-options="options"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ >
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="跳过节假日">
|
|
|
<el-checkbox v-model.trim="postponeForm.holiday"></el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <span style="color: #f56c6c">注意:将会把所选班级的课表,「开始日期」之后的全部未开始课程;
|
|
|
- 调整到「顺延日期」之后重新排课,可以勾选跳过节假日;</span>
|
|
|
+ <span style="color: #f56c6c"
|
|
|
+ >注意:将会把所选班级的课表,「开始日期」之后的全部未开始课程;
|
|
|
+ 调整到「顺延日期」之后重新排课,可以勾选跳过节假日;</span
|
|
|
+ >
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="postponeVisible = false">取 消</el-button>
|
|
|
<el-button type="primary" @click="submitInfo">确 定</el-button>
|
|
@@ -678,7 +1039,7 @@ export default {
|
|
|
this.courseTypesByType = d;
|
|
|
console.log(this.courseTypesByType);
|
|
|
}
|
|
|
- } catch (error) { }
|
|
|
+ } catch (error) {}
|
|
|
// 根据乐团id获取乐团所属分部
|
|
|
getTeacher({ organId: this.organId }).then(res => {
|
|
|
if (res.code == 200) {
|
|
@@ -977,9 +1338,9 @@ export default {
|
|
|
this.getList(this.activeMixClass);
|
|
|
}
|
|
|
})
|
|
|
- .catch(res => { });
|
|
|
+ .catch(res => {});
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
},
|
|
|
// 修改班级
|
|
|
resetClass(row) {
|
|
@@ -1327,7 +1688,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
},
|
|
|
toggleSelection(rows) {
|
|
|
if (rows) {
|
|
@@ -1409,7 +1770,7 @@ export default {
|
|
|
closeStudentReset() {
|
|
|
this.studentResetVisiable = false;
|
|
|
},
|
|
|
- changeMemo(val) { },
|
|
|
+ changeMemo(val) {},
|
|
|
submitInfo() {
|
|
|
this.$refs["postponeForm"].validate(res => {
|
|
|
if (res) {
|
|
@@ -1555,24 +1916,20 @@ export default {
|
|
|
flex-direction: row;
|
|
|
justify-content: flex-start;
|
|
|
align-items: center;
|
|
|
-
|
|
|
.newBand {
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
.dialog-footer.question {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: space-between;
|
|
|
}
|
|
|
-
|
|
|
.topWrap {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: space-between;
|
|
|
}
|
|
|
-
|
|
|
.floor {
|
|
|
padding-right: 20px;
|
|
|
display: flex;
|
|
@@ -1592,7 +1949,6 @@ export default {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: flex-start;
|
|
|
-
|
|
|
.remove {
|
|
|
width: 98px;
|
|
|
height: 32px;
|
|
@@ -1605,7 +1961,6 @@ export default {
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
.add {
|
|
|
width: auto;
|
|
|
padding: 0 10px;
|
|
@@ -1619,56 +1974,45 @@ export default {
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
.studentMask {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: flex-start;
|
|
|
-
|
|
|
.left {
|
|
|
width: 200px;
|
|
|
margin-right: 20px;
|
|
|
-
|
|
|
.wrap {
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
-
|
|
|
h4 {
|
|
|
font-size: 16px;
|
|
|
color: #444;
|
|
|
line-height: 38px;
|
|
|
}
|
|
|
-
|
|
|
.chioseStudentList {
|
|
|
height: 500px;
|
|
|
overflow-y: auto;
|
|
|
border: 1px solid #ccc;
|
|
|
-
|
|
|
.studentItem {
|
|
|
padding-left: 10px;
|
|
|
line-height: 25px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
.right {
|
|
|
width: calc(100% - 200px);
|
|
|
-
|
|
|
.tableList {
|
|
|
max-height: 500px;
|
|
|
overflow-y: auto;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
.resetClassForm {
|
|
|
-
|
|
|
::v-deep .el-date-editor.el-input,
|
|
|
::v-deep .el-date-editor.el-input__inner {
|
|
|
width: 180px !important;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
// ::v-deep .el-date-editor.el-input,
|
|
|
// ::v-deep .el-date-editor.el-input__inner {
|
|
|
// width: 100px !important;
|
|
@@ -1678,17 +2022,14 @@ export default {
|
|
|
height: 40px !important;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
::v-deep .el-alert__content {
|
|
|
display: block;
|
|
|
width: 100%;
|
|
|
}
|
|
|
-
|
|
|
.alert-content {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
-
|
|
|
- >strong {
|
|
|
+ > strong {
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
}
|