|
@@ -8,34 +8,15 @@
|
|
|
<!-- @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>
|
|
@@ -47,22 +28,11 @@
|
|
|
</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"
|
|
@@ -84,36 +54,19 @@
|
|
|
</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>
|
|
@@ -121,10 +74,7 @@
|
|
|
<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>
|
|
@@ -135,10 +85,7 @@
|
|
|
<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>
|
|
@@ -161,124 +108,59 @@
|
|
|
<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>
|
|
@@ -288,147 +170,59 @@
|
|
|
</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>
|
|
@@ -436,90 +230,37 @@
|
|
|
<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)
|
|
@@ -531,44 +272,19 @@
|
|
|
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
|
|
|
- "
|
|
|
- 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 && $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">
|
|
|
<span style="float: left">{{ item.realName }}</span>
|
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{
|
|
|
String(item.id)
|
|
@@ -582,63 +298,26 @@
|
|
|
: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>
|
|
@@ -655,13 +334,7 @@
|
|
|
<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>
|
|
@@ -670,67 +343,33 @@
|
|
|
</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>
|
|
@@ -1039,7 +678,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) {
|
|
@@ -1338,9 +977,9 @@ export default {
|
|
|
this.getList(this.activeMixClass);
|
|
|
}
|
|
|
})
|
|
|
- .catch(res => {});
|
|
|
+ .catch(res => { });
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => { });
|
|
|
},
|
|
|
// 修改班级
|
|
|
resetClass(row) {
|
|
@@ -1688,7 +1327,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => { });
|
|
|
},
|
|
|
toggleSelection(rows) {
|
|
|
if (rows) {
|
|
@@ -1770,7 +1409,7 @@ export default {
|
|
|
closeStudentReset() {
|
|
|
this.studentResetVisiable = false;
|
|
|
},
|
|
|
- changeMemo(val) {},
|
|
|
+ changeMemo(val) { },
|
|
|
submitInfo() {
|
|
|
this.$refs["postponeForm"].validate(res => {
|
|
|
if (res) {
|
|
@@ -1916,20 +1555,24 @@ 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;
|
|
@@ -1949,6 +1592,7 @@ export default {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: flex-start;
|
|
|
+
|
|
|
.remove {
|
|
|
width: 98px;
|
|
|
height: 32px;
|
|
@@ -1961,6 +1605,7 @@ export default {
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.add {
|
|
|
width: auto;
|
|
|
padding: 0 10px;
|
|
@@ -1974,45 +1619,56 @@ 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;
|
|
@@ -2022,14 +1678,17 @@ 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;
|
|
|
}
|
|
|
}
|