|
@@ -6,161 +6,186 @@
|
|
|
班级调整
|
|
|
</h2>-->
|
|
|
<div class="m-core">
|
|
|
- <el-form :inline="true" :model="topForm">
|
|
|
+ <el-form :inline="true"
|
|
|
+ :model="topForm">
|
|
|
<el-form-item label="班级类型">
|
|
|
- <el-select v-model.trim="topForm.classType" clearable filterable @change="changeMixClass">
|
|
|
- <el-option
|
|
|
- v-for="(item,index) in classTypeList"
|
|
|
- :key="index"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- ></el-option>
|
|
|
+ <el-select v-model.trim="topForm.classType"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ @change="changeMixClass">
|
|
|
+ <el-option v-for="(item,index) in classTypeList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <div class="tableWrap" style>
|
|
|
- <el-table
|
|
|
- :data="activeSingleList"
|
|
|
- style
|
|
|
- :header-cell-style="{background:'#EDEEF0',color:'#444'}"
|
|
|
- >
|
|
|
- <el-table-column align="center" prop="name" label="班级名称"></el-table-column>
|
|
|
- <el-table-column align="center" prop="type" label="班级类型">
|
|
|
+ <div class="tableWrap"
|
|
|
+ style>
|
|
|
+ <el-table :data="activeSingleList"
|
|
|
+ style
|
|
|
+ :header-cell-style="{background:'#EDEEF0',color:'#444'}">
|
|
|
+ <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>
|
|
|
- <el-table-column align="center" prop label="主教老师">
|
|
|
+ <el-table-column align="center"
|
|
|
+ prop="studentNum"
|
|
|
+ label="班级人数"></el-table-column>
|
|
|
+ <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"
|
|
|
- v-if="item.teacherRole == 'BISHOP'"
|
|
|
- :key="index"
|
|
|
- >{{item.userName}}</p>
|
|
|
+ <p v-for="(item,index) in scope.row.classGroupTeacherMapperList"
|
|
|
+ v-if="item.teacherRole == 'BISHOP'"
|
|
|
+ :key="index">{{item.userName}}</p>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" label="助教老师">
|
|
|
+ <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"
|
|
|
- v-if="item.teacherRole == 'TEACHING'"
|
|
|
- :key="index"
|
|
|
- >{{item.userName}}</p>
|
|
|
+ <p v-for="(item,index) in scope.row.classGroupTeacherMapperList"
|
|
|
+ v-if="item.teacherRole == 'TEACHING'"
|
|
|
+ :key="index">{{item.userName}}</p>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" label="已上课时">
|
|
|
+ <el-table-column align="center"
|
|
|
+ label="已上课时">
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{scope.row.currentClassTimes}}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" label="总课数">
|
|
|
+ <el-table-column align="center"
|
|
|
+ label="总课数">
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{scope.row.totalClassTimes}}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" width="400px" label="操作">
|
|
|
+ <el-table-column align="center"
|
|
|
+ width="400px"
|
|
|
+ label="操作">
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
<!-- v-if="scope.row.type !='MIX'" -->
|
|
|
- <el-button type="text" @click="resetClass(scope.row)">学员调整</el-button>
|
|
|
- <el-button type="text" @click="classAdjustment(scope.row)">班级调整</el-button>
|
|
|
+ <el-button type="text"
|
|
|
+ @click="resetClass(scope.row)">学员调整</el-button>
|
|
|
+ <el-button type="text"
|
|
|
+ @click="classAdjustment(scope.row)">班级调整</el-button>
|
|
|
<!--<el-button type="text"
|
|
|
@click="recourse(scope.row)">重新排课</el-button>-->
|
|
|
- <el-popover placement="top" width="160" :ref="scope.$index">
|
|
|
+ <el-popover placement="top"
|
|
|
+ width="160"
|
|
|
+ :ref="`popover-${scope.$index}`">
|
|
|
<p>确定删除?</p>
|
|
|
<div style="text-align: right; margin: 0">
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- @click="scope._self.$refs[scope.$index].doClose()"
|
|
|
- >取消</el-button>
|
|
|
- <el-button type="primary" size="mini" @click="removeClass(scope)">确定</el-button>
|
|
|
+ <el-button size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="scope._self.$refs[`popover-${scope.$index}`].doClose()">取消</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="removeClass(scope)">确定</el-button>
|
|
|
</div>
|
|
|
<!-- v-if="scope.row.type !='MIX'" -->
|
|
|
- <el-button type="text" slot="reference">删除班级</el-button>
|
|
|
+ <el-button type="text"
|
|
|
+ slot="reference">删除班级</el-button>
|
|
|
</el-popover>
|
|
|
|
|
|
- <el-popover placement="top" width="160" :ref="scope.$index">
|
|
|
+ <el-popover placement="top"
|
|
|
+ width="160"
|
|
|
+ :ref="scope.$index">
|
|
|
<p>是否清空课表?</p>
|
|
|
<div style="text-align: right; margin: 0">
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- @click="scope._self.$refs[scope.$index].doClose()"
|
|
|
- >取消</el-button>
|
|
|
- <el-button type="primary" size="mini" @click="clearCourse(scope)">确定</el-button>
|
|
|
+ <el-button size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="scope._self.$refs[scope.$index].doClose()">取消</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="clearCourse(scope)">确定</el-button>
|
|
|
</div>
|
|
|
<!-- v-if="scope.row.type !='MIX'" -->
|
|
|
- <el-button type="text" slot="reference">清空课表</el-button>
|
|
|
+ <el-button type="text"
|
|
|
+ slot="reference">清空课表</el-button>
|
|
|
</el-popover>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<div class="floor">
|
|
|
- <div class="add" @click="temporary">新建临时班</div>
|
|
|
- <div class="add" @click="addNewClass('NORMAL')">新建单技班</div>
|
|
|
- <div class="add" @click="addNewClass('MIX')">新建合奏班</div>
|
|
|
- <div class="add" @click="addNewClass('HIGH')">基础技能班</div>
|
|
|
+ <div class="add"
|
|
|
+ @click="temporary">新建临时班</div>
|
|
|
+ <div class="add"
|
|
|
+ @click="addNewClass('NORMAL')">新建单技班</div>
|
|
|
+ <div class="add"
|
|
|
+ @click="addNewClass('MIX')">新建合奏班</div>
|
|
|
+ <div class="add"
|
|
|
+ @click="addNewClass('HIGH')">基础技能班</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 学员选择 -->
|
|
|
- <el-dialog
|
|
|
- title="学员选择"
|
|
|
- width="700px"
|
|
|
- :visible.sync="studentVisible"
|
|
|
- :modal-append-to-body="false"
|
|
|
- >
|
|
|
+ <el-dialog title="学员选择"
|
|
|
+ width="700px"
|
|
|
+ :visible.sync="studentVisible"
|
|
|
+ :modal-append-to-body="false">
|
|
|
<div class="studentMask">
|
|
|
<div class="left">
|
|
|
<div class="wrap">
|
|
|
- <el-input placeholder="请输入班级名称" :disabled="!isNewClass" v-model.trim="className"></el-input>
|
|
|
+ <el-input placeholder="请输入班级名称"
|
|
|
+ :disabled="!isNewClass"
|
|
|
+ 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-popover
|
|
|
- v-if="!isNewClass"
|
|
|
- placement="top"
|
|
|
- v-model.trim="item.isVisible"
|
|
|
- width="160"
|
|
|
- >
|
|
|
+ <el-popover v-if="!isNewClass"
|
|
|
+ placement="top"
|
|
|
+ v-model.trim="item.isVisible"
|
|
|
+ width="160">
|
|
|
<p>确定删除?</p>
|
|
|
<div style="text-align: right; margin: 0">
|
|
|
- <el-button size="mini" type="text" @click="item.isVisible = false">取消</el-button>
|
|
|
- <el-button type="primary" size="mini" @click="removeStudent(item)">确定</el-button>
|
|
|
+ <el-button size="mini"
|
|
|
+ type="text"
|
|
|
+ @click="item.isVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="removeStudent(item)">确定</el-button>
|
|
|
</div>
|
|
|
- <el-button type="text" slot="reference">删除</el-button>
|
|
|
+ <el-button type="text"
|
|
|
+ slot="reference">删除</el-button>
|
|
|
</el-popover>
|
|
|
- <el-button v-if="isNewClass" type="text" @click="temporaryRemoveStudent(item)">删除</el-button>
|
|
|
+ <el-button v-if="isNewClass"
|
|
|
+ type="text"
|
|
|
+ @click="temporaryRemoveStudent(item)">删除</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="right">
|
|
|
<!-- multiple
|
|
|
collapse-tags-->
|
|
|
- <el-select
|
|
|
- v-if="isSearch"
|
|
|
- v-model.trim="activeChioseSound"
|
|
|
- style="width:180px"
|
|
|
- @change="searchStudent"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- placeholder="声部选择"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item,index) in soundList"
|
|
|
- :key="index"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- ></el-option>
|
|
|
+ <el-select v-if="isSearch"
|
|
|
+ v-model.trim="activeChioseSound"
|
|
|
+ style="width:180px"
|
|
|
+ @change="searchStudent"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="声部选择">
|
|
|
+ <el-option v-for="(item,index) in soundList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
<!-- <el-button v-if="isSearch"
|
|
|
type="danger"
|
|
@@ -169,62 +194,86 @@
|
|
|
|
|
|
<!-- 列表开始 -->
|
|
|
<div class="tableList">
|
|
|
- <el-table
|
|
|
- tooltip-effect="dark"
|
|
|
- v-if="!isNewClass"
|
|
|
- style="width: 100%; margin-top:10px;"
|
|
|
- :data="studentList"
|
|
|
- ref="studentList"
|
|
|
- @selection-change="SelectionStudent"
|
|
|
- >
|
|
|
- <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"
|
|
|
+ v-if="!isNewClass"
|
|
|
+ style="width: 100%; margin-top:10px;"
|
|
|
+ :data="studentList"
|
|
|
+ ref="studentList"
|
|
|
+ @selection-change="SelectionStudent">
|
|
|
+ <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="100" align="center" label="学员声部"></el-table-column>
|
|
|
+ <el-table-column prop="subjectName"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ label="学员声部"></el-table-column>
|
|
|
</el-table>
|
|
|
<!-- 临时调整table -->
|
|
|
- <el-table
|
|
|
- tooltip-effect="dark"
|
|
|
- v-if="isNewClass"
|
|
|
- style="width: 100%; margin-top:10px;"
|
|
|
- :data="studentList"
|
|
|
- ref="temporaryStudentList"
|
|
|
- @selection-change="NewselectionStudent"
|
|
|
- >
|
|
|
- <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"
|
|
|
+ v-if="isNewClass"
|
|
|
+ style="width: 100%; margin-top:10px;"
|
|
|
+ :data="studentList"
|
|
|
+ ref="temporaryStudentList"
|
|
|
+ @selection-change="NewselectionStudent">
|
|
|
+ <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="100" align="center" label="学员声部"></el-table-column>
|
|
|
+ <el-table-column prop="subjectName"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ label="学员声部"></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
+ <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 title="班级设置" width="700px" :visible.sync="infoVisible" :modal-append-to-body="false">
|
|
|
- <el-form
|
|
|
- :inline="true"
|
|
|
- :model="teacherForm"
|
|
|
- ref="teacherForm"
|
|
|
- :rules="teacherRules"
|
|
|
- label-position="right"
|
|
|
- label-width="100px;"
|
|
|
- >
|
|
|
+ <el-dialog title="班级设置"
|
|
|
+ width="700px"
|
|
|
+ :visible.sync="infoVisible"
|
|
|
+ :modal-append-to-body="false">
|
|
|
+ <el-form :inline="true"
|
|
|
+ :model="teacherForm"
|
|
|
+ ref="teacherForm"
|
|
|
+ :rules="teacherRules"
|
|
|
+ label-position="right"
|
|
|
+ label-width="100px;">
|
|
|
<!-- <el-form-item label="合奏班"
|
|
|
v-if='!isTemporary&&activeType=="NORMAL"'
|
|
|
prop="mixClassGroupId">
|
|
@@ -235,167 +284,202 @@
|
|
|
:value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>-->
|
|
|
- <el-form-item label="调整方式" v-if="!isNewClass" prop="isAdd">
|
|
|
- <el-radio v-model.trim="teacherForm.isAdd" label="new">班级加课</el-radio>
|
|
|
- <el-radio v-model.trim="teacherForm.isAdd" label="renew">重新排课</el-radio>
|
|
|
- <el-radio v-model.trim="teacherForm.isAdd" label="onlyUpdateTeacher">修改老师</el-radio>
|
|
|
+ <el-form-item label="调整方式"
|
|
|
+ v-if="!isNewClass"
|
|
|
+ prop="isAdd">
|
|
|
+ <el-radio v-model.trim="teacherForm.isAdd"
|
|
|
+ label="new">班级加课</el-radio>
|
|
|
+ <el-radio v-model.trim="teacherForm.isAdd"
|
|
|
+ label="renew">重新排课</el-radio>
|
|
|
+ <el-radio v-model.trim="teacherForm.isAdd"
|
|
|
+ label="onlyUpdateTeacher">修改老师</el-radio>
|
|
|
</el-form-item>
|
|
|
<br />
|
|
|
- <el-form-item label="主教老师" prop="coreTeacher">
|
|
|
- <el-select v-model.trim="teacherForm.coreTeacher" clearable filterable>
|
|
|
- <el-option
|
|
|
- v-for="(item,index) in teacherList"
|
|
|
- :key="index"
|
|
|
- :label="item.realName"
|
|
|
- :value="item.id"
|
|
|
- ></el-option>
|
|
|
+ <el-form-item label="主教老师"
|
|
|
+ prop="coreTeacher">
|
|
|
+ <el-select v-model.trim="teacherForm.coreTeacher"
|
|
|
+ clearable
|
|
|
+ filterable>
|
|
|
+ <el-option v-for="(item,index) in teacherList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.realName"
|
|
|
+ :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="助教老师" prop="assistant">
|
|
|
- <el-select
|
|
|
- v-model.trim="teacherForm.assistant"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- @change="setAssistant"
|
|
|
- multiple
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item,index) in cooperationList"
|
|
|
- :key="index"
|
|
|
- :label="item.realName"
|
|
|
- :value="item.id"
|
|
|
- ></el-option>
|
|
|
+ <el-form-item label="助教老师"
|
|
|
+ prop="assistant">
|
|
|
+ <el-select v-model.trim="teacherForm.assistant"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ @change="setAssistant"
|
|
|
+ multiple>
|
|
|
+ <el-option v-for="(item,index) in cooperationList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.realName"
|
|
|
+ :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="课程类型" prop="courseType" v-if="teacherForm.isAdd !='onlyUpdateTeacher'">
|
|
|
- <el-select v-model.trim="teacherForm.courseType" clearable filterable>
|
|
|
- <el-option
|
|
|
- v-for="(item,index) in courseTypeList"
|
|
|
- :key="index"
|
|
|
- :value="item.value"
|
|
|
- :label="item.label"
|
|
|
- ></el-option>
|
|
|
+ <el-form-item label="课程类型"
|
|
|
+ prop="courseType"
|
|
|
+ v-if="teacherForm.isAdd !='onlyUpdateTeacher'">
|
|
|
+ <el-select v-model.trim="teacherForm.courseType"
|
|
|
+ clearable
|
|
|
+ filterable>
|
|
|
+ <el-option v-for="(item,index) in courseTypeList"
|
|
|
+ :key="index"
|
|
|
+ :value="item.value"
|
|
|
+ :label="item.label"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<br />
|
|
|
- <el-form-item label="排课次数" prop="courseNum" v-if="teacherForm.isAdd !='onlyUpdateTeacher'">
|
|
|
- <el-input type="number" @mousewheel.native.prevent v-model.trim="teacherForm.courseNum"></el-input>
|
|
|
+ <el-form-item label="排课次数"
|
|
|
+ prop="courseNum"
|
|
|
+ v-if="teacherForm.isAdd !='onlyUpdateTeacher'">
|
|
|
+ <el-input type="number"
|
|
|
+ @mousewheel.native.prevent
|
|
|
+ v-model.trim="teacherForm.courseNum"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="排课起始时间"
|
|
|
- prop="courseTime"
|
|
|
- v-if="teacherForm.isAdd !='onlyUpdateTeacher'"
|
|
|
- >
|
|
|
- <el-date-picker
|
|
|
- v-model.trim="teacherForm.courseTime"
|
|
|
- :picker-options="pickerOptions"
|
|
|
- style="width:200px!important;"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期"
|
|
|
- ></el-date-picker>
|
|
|
- <el-checkbox style="margin-left:10px;" v-model.trim="teacherForm.checked">是否跳过节假日</el-checkbox>
|
|
|
+ <el-form-item label="排课起始时间"
|
|
|
+ prop="courseTime"
|
|
|
+ v-if="teacherForm.isAdd !='onlyUpdateTeacher'">
|
|
|
+ <el-date-picker v-model.trim="teacherForm.courseTime"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ style="width:200px!important;"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"></el-date-picker>
|
|
|
+ <el-checkbox style="margin-left:10px;"
|
|
|
+ v-model.trim="teacherForm.checked">是否跳过节假日</el-checkbox>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <div class="WeekWrap" v-if="teacherForm.isAdd !='onlyUpdateTeacher'">
|
|
|
+ <div class="WeekWrap"
|
|
|
+ v-if="teacherForm.isAdd !='onlyUpdateTeacher'">
|
|
|
<h3 style="margin-bottom:20px;">
|
|
|
循环次数
|
|
|
- <el-button type="text" style="margin-left:10px;" @click="addWeek">添加</el-button>
|
|
|
+ <el-button type="text"
|
|
|
+ style="margin-left:10px;"
|
|
|
+ @click="addWeek">添加</el-button>
|
|
|
</h3>
|
|
|
- <div class="countWrap" style="margin-bottom:10px;">
|
|
|
- <div
|
|
|
- class="countItem"
|
|
|
- style="margin-bottom:20px;"
|
|
|
- v-for="(item,index) in weekList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
+ <div class="countWrap"
|
|
|
+ style="margin-bottom:10px;">
|
|
|
+ <div class="countItem"
|
|
|
+ style="margin-bottom:20px;"
|
|
|
+ v-for="(item,index) in weekList"
|
|
|
+ :key="index">
|
|
|
<span>循环周期:</span>
|
|
|
- <el-select v-model.trim="item.dayOfWeek" clearable filterable>
|
|
|
- <el-option
|
|
|
- v-for="(item,index) in weekDateList"
|
|
|
- :key="index"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- ></el-option>
|
|
|
+ <el-select v-model.trim="item.dayOfWeek"
|
|
|
+ clearable
|
|
|
+ filterable>
|
|
|
+ <el-option v-for="(item,index) in weekDateList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
<span>开始时间</span>
|
|
|
- <el-time-select
|
|
|
- placeholder
|
|
|
- v-model.trim="item.startClassTime"
|
|
|
- :picker-options="{
|
|
|
+ <el-time-select placeholder
|
|
|
+ v-model.trim="item.startClassTime"
|
|
|
+ :picker-options="{
|
|
|
start: '04:30',
|
|
|
step: '00:05',
|
|
|
end: '23:55'
|
|
|
- }"
|
|
|
- ></el-time-select>
|
|
|
+ }"></el-time-select>
|
|
|
<span>结束时间</span>
|
|
|
- <el-time-select
|
|
|
- placeholder
|
|
|
- v-model.trim="item.endClassTime"
|
|
|
- :picker-options="{
|
|
|
+ <el-time-select placeholder
|
|
|
+ v-model.trim="item.endClassTime"
|
|
|
+ :picker-options="{
|
|
|
start: '04:30',
|
|
|
step: '00:05',
|
|
|
end: '23:55',
|
|
|
minTime:item.startClassTime
|
|
|
- }"
|
|
|
- ></el-time-select>
|
|
|
- <el-button type="danger" @click="removeWeek(item)" icon="el-icon-delete" circle></el-button>
|
|
|
+ }"></el-time-select>
|
|
|
+ <el-button type="danger"
|
|
|
+ @click="removeWeek(item)"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ circle></el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
+ <div slot="footer"
|
|
|
+ class="dialog-footer">
|
|
|
<!-- 1为临时班级 -->
|
|
|
- <el-button type="primary" v-if="isTemporary&&isNewClass" @click="submitTemporary(1)">确 定</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ v-if="isTemporary&&isNewClass"
|
|
|
+ @click="submitTemporary(1)">确 定</el-button>
|
|
|
<!-- 2为新增班级 -->
|
|
|
- <el-button type="primary" v-if="!isTemporary&&isNewClass" @click="submitTemporary(2)">确 定</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ v-if="!isTemporary&&isNewClass"
|
|
|
+ @click="submitTemporary(2)">确 定</el-button>
|
|
|
<!-- 修改班级信息 -->
|
|
|
- <el-button type="primary" v-if="!isNewClass" @click="submitTemporary(3)">确 定</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ v-if="!isNewClass"
|
|
|
+ @click="submitTemporary(3)">确 定</el-button>
|
|
|
</div>
|
|
|
</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>
|
|
|
</div>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
+ <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>
|
|
|
<!-- 班级调整 -->
|
|
@@ -566,10 +650,10 @@ import axios from "axios";
|
|
|
import qs from "qs";
|
|
|
export default {
|
|
|
name: "tresetClass",
|
|
|
- data() {
|
|
|
+ data () {
|
|
|
return {
|
|
|
pickerOptions: {
|
|
|
- disabledDate(time) {
|
|
|
+ disabledDate (time) {
|
|
|
return time.getTime() + 86400000 <= new Date().getTime();
|
|
|
}
|
|
|
},
|
|
@@ -661,15 +745,15 @@ export default {
|
|
|
organId: ""
|
|
|
};
|
|
|
},
|
|
|
- created() {
|
|
|
+ created () {
|
|
|
this.init();
|
|
|
},
|
|
|
- activated() {
|
|
|
+ activated () {
|
|
|
this.init();
|
|
|
},
|
|
|
- mounted() {},
|
|
|
+ mounted () { },
|
|
|
methods: {
|
|
|
- init() {
|
|
|
+ init () {
|
|
|
this.teamid = this.$route.query.id;
|
|
|
// 根据乐团id获取乐团所属分部
|
|
|
getTeamBaseInfo({ musicGroupId: this.teamid }).then(res => {
|
|
@@ -734,7 +818,7 @@ export default {
|
|
|
// 获取分部所有老师
|
|
|
// 助教是从员工表里选
|
|
|
},
|
|
|
- recourse(row) {
|
|
|
+ recourse (row) {
|
|
|
(this.weekList = [
|
|
|
{
|
|
|
week: "",
|
|
@@ -745,22 +829,22 @@ export default {
|
|
|
]),
|
|
|
(this.resetCourseVisible = true);
|
|
|
},
|
|
|
- addMix() {
|
|
|
+ addMix () {
|
|
|
this.MixVisible = true;
|
|
|
},
|
|
|
- setAssistant(val) {
|
|
|
+ setAssistant (val) {
|
|
|
for (let i in val) {
|
|
|
if (val[i] == this.teacherForm.coreTeacher) {
|
|
|
val.splice(i, 1);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- changeMixClass(val) {
|
|
|
+ changeMixClass (val) {
|
|
|
// 根据合奏班id获取合奏班下的所有单技班
|
|
|
this.getList(val);
|
|
|
this.activeMixClass = val;
|
|
|
},
|
|
|
- getList(val) {
|
|
|
+ getList (val) {
|
|
|
getAllSignClassandTeacher({ musicGroupId: this.teamid, type: val }).then(
|
|
|
res => {
|
|
|
if (res.code == 200) {
|
|
@@ -771,7 +855,7 @@ export default {
|
|
|
);
|
|
|
},
|
|
|
// 临时调整
|
|
|
- temporary() {
|
|
|
+ temporary () {
|
|
|
this.activeClass = "";
|
|
|
this.activeListStudent = [];
|
|
|
this.studentList = [];
|
|
@@ -783,7 +867,7 @@ export default {
|
|
|
this.setType("SNAP");
|
|
|
this.getNoClassStudent("SNAP");
|
|
|
},
|
|
|
- setType(type) {
|
|
|
+ setType (type) {
|
|
|
switch (type) {
|
|
|
case "NORMAL": {
|
|
|
this.courseTypeList = [
|
|
@@ -827,7 +911,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 新增班级
|
|
|
- addNewClass(type) {
|
|
|
+ addNewClass (type) {
|
|
|
/**
|
|
|
* { value: 'NORMAL', label: '单技班' },
|
|
|
{ value: 'MIX', label: '合奏班' },
|
|
@@ -846,7 +930,7 @@ export default {
|
|
|
this.isTemporary = false;
|
|
|
this.getNoClassStudent(type);
|
|
|
},
|
|
|
- searchStudent() {
|
|
|
+ searchStudent () {
|
|
|
// 搜索学生
|
|
|
// 根据声部id 乐团id搜索学生
|
|
|
teamSoundStudent({
|
|
@@ -859,11 +943,11 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
// 选择学生的方法修改
|
|
|
- SelectionStudent(val) {
|
|
|
+ SelectionStudent (val) {
|
|
|
this.chioseStudent = val;
|
|
|
},
|
|
|
// 新增选中的学生
|
|
|
- NewselectionStudent(val) {
|
|
|
+ NewselectionStudent (val) {
|
|
|
this.chioseStudent = val;
|
|
|
// 这里新增的添加到选中的学生列表 根据学生id去重
|
|
|
if (this.chioseStudent.length > 0) {
|
|
@@ -884,7 +968,7 @@ export default {
|
|
|
);
|
|
|
// 将其填入选中的学生
|
|
|
},
|
|
|
- clearCourse(scope) {
|
|
|
+ clearCourse (scope) {
|
|
|
clearClassCourse({ classGroupId: scope.row.id })
|
|
|
.then(res => {
|
|
|
if (res.code == 200) {
|
|
@@ -903,25 +987,26 @@ export default {
|
|
|
// 清空课表
|
|
|
},
|
|
|
// 删除班级
|
|
|
- removeClass(scope) {
|
|
|
+ removeClass (scope) {
|
|
|
removeSingleClass({ classGroupId: scope.row.id })
|
|
|
.then(res => {
|
|
|
if (res.code == 200) {
|
|
|
+ scope._self.$refs[`popover-${scope.$index}`].doClose()
|
|
|
this.$message.success("删除成功");
|
|
|
- scope._self.$refs[scope.$index].doClose();
|
|
|
+
|
|
|
// 重新请求列表
|
|
|
this.getList(this.activeMixClass);
|
|
|
} else {
|
|
|
this.$message.error(res.msg);
|
|
|
- scope._self.$refs[scope.$index].doClose();
|
|
|
+ scope._self.$refs[`popover-${scope.$index}`].doClose()
|
|
|
}
|
|
|
})
|
|
|
.catch(res => {
|
|
|
- scope._self.$refs[scope.$index].doClose();
|
|
|
+ scope._self.$refs[`popover-${scope.$index}`].doClose()
|
|
|
});
|
|
|
},
|
|
|
// 修改班级
|
|
|
- resetClass(row) {
|
|
|
+ resetClass (row) {
|
|
|
this.isNewClass = false;
|
|
|
this.className = row.name;
|
|
|
this.studentVisible = true;
|
|
@@ -940,7 +1025,7 @@ export default {
|
|
|
this.getNoClassStudent(row.type);
|
|
|
},
|
|
|
// 班级调整
|
|
|
- classAdjustment(row) {
|
|
|
+ classAdjustment (row) {
|
|
|
this.activeType = row.type;
|
|
|
this.activeClass = row.id;
|
|
|
// this.activeListStudent = row.subjectIdList.split(',')
|
|
@@ -961,7 +1046,7 @@ export default {
|
|
|
}
|
|
|
this.infoVisible = true;
|
|
|
},
|
|
|
- getNoClassStudent(type) {
|
|
|
+ getNoClassStudent (type) {
|
|
|
// 获取乐团内所有未分班的学生
|
|
|
// if (type && type == 'SNAP') {
|
|
|
// teamSoundStudent({ musicGroupId: this.teamid }).then(res => {
|
|
@@ -1007,7 +1092,7 @@ export default {
|
|
|
);
|
|
|
},
|
|
|
// 删除学生 调整
|
|
|
- removeStudent(item) {
|
|
|
+ removeStudent (item) {
|
|
|
// removeStudents({ classGroupId:}).then(res => {
|
|
|
removeStudents({
|
|
|
classGroupId: this.activeClass,
|
|
@@ -1037,7 +1122,7 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
// 批量添加学生
|
|
|
- addSomeStudent() {
|
|
|
+ addSomeStudent () {
|
|
|
// 获取勾选的学生
|
|
|
let arr = this.chioseStudent.map(item => {
|
|
|
return item.userId;
|
|
@@ -1057,17 +1142,17 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- SelectionMix(val) {
|
|
|
+ SelectionMix (val) {
|
|
|
this.activeSingleLists = val;
|
|
|
},
|
|
|
- removeSiginforMix(item) {
|
|
|
+ removeSiginforMix (item) {
|
|
|
for (let k in this.activeSingleLists) {
|
|
|
if (this.activeSingleLists[k].id == item.id) {
|
|
|
this.$refs["mixList"].toggleRowSelection(item, false);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- temporaryRemoveStudent(item) {
|
|
|
+ temporaryRemoveStudent (item) {
|
|
|
// 列表中删除
|
|
|
for (let i in this.activeListStudent) {
|
|
|
if (this.activeListStudent[i].userId == item.userId) {
|
|
@@ -1084,7 +1169,7 @@ export default {
|
|
|
// this.$refs['temporaryStudentList'].toggleRowSelection(row, selected);
|
|
|
},
|
|
|
// 对象数组去重
|
|
|
- objArrayRemoval(arr, attr) {
|
|
|
+ objArrayRemoval (arr, attr) {
|
|
|
let obj = {};
|
|
|
let result = [];
|
|
|
for (let x in arr) {
|
|
@@ -1095,7 +1180,7 @@ export default {
|
|
|
}
|
|
|
return result;
|
|
|
},
|
|
|
- setInfoMsg() {
|
|
|
+ setInfoMsg () {
|
|
|
// 判断班级名称是否输入
|
|
|
if (!this.className) {
|
|
|
this.$message.error("请输入班级名称");
|
|
@@ -1109,7 +1194,7 @@ export default {
|
|
|
}
|
|
|
this.infoVisible = true;
|
|
|
},
|
|
|
- addWeek() {
|
|
|
+ addWeek () {
|
|
|
// 添加循环周期
|
|
|
this.weekList.push({
|
|
|
dayOfWeek: "",
|
|
@@ -1119,7 +1204,7 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
// 删除循环周
|
|
|
- removeWeek(item) {
|
|
|
+ removeWeek (item) {
|
|
|
for (let i in this.weekList) {
|
|
|
if (this.weekList[i].id == item.id) {
|
|
|
this.weekList.splice(i, 1);
|
|
@@ -1127,7 +1212,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 提交临时班的信息
|
|
|
- submitTemporary(type) {
|
|
|
+ submitTemporary (type) {
|
|
|
// 参数是一样 type为1 新增临时班
|
|
|
// type为2 新增单技班
|
|
|
// type为3 修改班级信息
|
|
@@ -1190,14 +1275,14 @@ export default {
|
|
|
this.$message.error("新增班级至少排一节课");
|
|
|
return;
|
|
|
}
|
|
|
- if( this.teacherForm.isAdd == "onlyUpdateTeacher"){
|
|
|
- startDate = null
|
|
|
- courseType= null
|
|
|
- students= null
|
|
|
- holiday= null
|
|
|
- courseTimes= null
|
|
|
- courseList = null,
|
|
|
- mineType=null
|
|
|
+ if (this.teacherForm.isAdd == "onlyUpdateTeacher") {
|
|
|
+ startDate = null
|
|
|
+ courseType = null
|
|
|
+ students = null
|
|
|
+ holiday = null
|
|
|
+ courseTimes = null
|
|
|
+ courseList = null,
|
|
|
+ mineType = null
|
|
|
}
|
|
|
// mixClassGroupId,
|
|
|
let mineType = this.activeType;
|
|
@@ -1255,7 +1340,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
- infoVisible(val) {
|
|
|
+ infoVisible (val) {
|
|
|
if (!val) {
|
|
|
this.$refs["teacherForm"].resetFields();
|
|
|
this.weekList = [];
|