|
@@ -24,7 +24,13 @@
|
|
|
style>
|
|
|
<el-table :data="activeSingleList"
|
|
|
style
|
|
|
- :header-cell-style="{background:'#EDEEF0',color:'#444'}">
|
|
|
+ :header-cell-style="{background:'#EDEEF0',color:'#444'}"
|
|
|
+ tooltip-effect="dark"
|
|
|
+ @selection-change="handleSelectionChange">
|
|
|
+ <el-table-column type="selection"
|
|
|
+ v-bind:selectable="chkstu"
|
|
|
+ width="55">
|
|
|
+ </el-table-column>
|
|
|
<el-table-column align="center"
|
|
|
prop="name"
|
|
|
label="班级名称"></el-table-column>
|
|
@@ -134,9 +140,9 @@
|
|
|
<div class="add"
|
|
|
@click="addNewClass('MIX')">新建合奏班</div>
|
|
|
<div class="add"
|
|
|
- @click="addNewClass('HIGH')">基础技能班</div>
|
|
|
- <div class="add"
|
|
|
- @click="addNewClass('HIGH_ONLINE')">线上基础技能班</div>
|
|
|
+ @click="newClassVisible = true">基础技能班</div>
|
|
|
+ <!-- <div class="add"
|
|
|
+ @click="addNewClass('HIGH_ONLINE')">线上基础技能班</div> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -282,16 +288,6 @@
|
|
|
:rules="teacherRules"
|
|
|
label-position="right"
|
|
|
label-width="100px;">
|
|
|
- <!-- <el-form-item label="合奏班"
|
|
|
- v-if='!isTemporary&&activeType=="NORMAL"'
|
|
|
- prop="mixClassGroupId">
|
|
|
- <el-select v-model.trim="teacherForm.mixClassGroupId">
|
|
|
- <el-option v-for="(item,index) in maxClassList"
|
|
|
- :label="item.name"
|
|
|
- :key="index"
|
|
|
- :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>-->
|
|
|
<el-form-item label="调整方式"
|
|
|
v-if="!isNewClass"
|
|
|
prop="isAdd">
|
|
@@ -514,141 +510,124 @@
|
|
|
@click="setInfoMsg">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <!-- 班级调整 -->
|
|
|
- <!-- <el-dialog title="班级调整"
|
|
|
- width="500px"
|
|
|
- :visible.sync="resetClassVisible"
|
|
|
- :modal-append-to-body="false">
|
|
|
- <el-form :model="resetClassForm"
|
|
|
- class="resetClassForm">
|
|
|
- <el-form-item label="主教老师">
|
|
|
- <el-select v-model.trim="resetClassForm.coreTeacher">
|
|
|
- <el-option v-for="(item,index) in teacherList"
|
|
|
+ <el-dialog :visible.sync="newClassVisible"
|
|
|
+ width="700px"
|
|
|
+ title="新增班级">
|
|
|
+ <el-form :model="newClassForm"
|
|
|
+ :inline="true"
|
|
|
+ label-width="100px"
|
|
|
+ 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-model.trim="newClassForm.type"
|
|
|
+ clearable
|
|
|
+ filterable>
|
|
|
+ <el-option v-for="(item,index) in highTypeList"
|
|
|
:key="index"
|
|
|
- :label="item.realName"
|
|
|
- :value="item.id"></el-option>
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="助教老师">
|
|
|
- <el-select v-model.trim="resetClassForm.assistant"
|
|
|
- filterable
|
|
|
- @change="setAssistant"
|
|
|
+ <el-form-item label="声部"
|
|
|
+ prop="subjectIdList"
|
|
|
+ :rules="[{ required: true, message: '请选择声部',trigger: 'blur'}]"
|
|
|
+ v-if="newClassForm.type =='HIGH' || newClassForm.type =='NORMAL'">
|
|
|
+ <el-select v-model.trim="newClassForm.subjectIdList"
|
|
|
+ clearable
|
|
|
multiple>
|
|
|
- <el-option v-for="(item,index) in cooperationList"
|
|
|
+ <el-option v-for="(item,index) in soundList"
|
|
|
:key="index"
|
|
|
- :label="item.realName"
|
|
|
+ :label="item.name"
|
|
|
:value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="开始时间">
|
|
|
- <el-time-select placeholder="开始时间"
|
|
|
- v-model.trim="resetClassForm.startTime"
|
|
|
- :picker-options="{
|
|
|
- start: '06:30',
|
|
|
- step: '00:05',
|
|
|
- end: '23:30'
|
|
|
- }">
|
|
|
- </el-time-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="结束时间">
|
|
|
- <el-time-select placeholder="结束时间"
|
|
|
- v-model.trim="resetClassForm.endTime"
|
|
|
- :picker-options="{
|
|
|
- start: '06:30',
|
|
|
- step: '00:05',
|
|
|
- end: '23:30',
|
|
|
- minTime:resetClassForm.startTime
|
|
|
- }">
|
|
|
- </el-time-select>
|
|
|
+ <el-form-item label="声部"
|
|
|
+ prop="subjectIdList"
|
|
|
+ :rules="[{ required: true, message: '请选择声部',trigger: 'blur'}]"
|
|
|
+ v-if=" newClassForm.type == 'HIGH_ONLINE'">
|
|
|
+ <el-select v-model.trim="newClassForm.subjectIdList"
|
|
|
+ clearable>
|
|
|
+ <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>
|
|
|
- <div slot="footer"
|
|
|
- class="dialog-footer">
|
|
|
- <el-button @click="resetClassVisible = false">取 消</el-button>
|
|
|
- <el-button type="primary"
|
|
|
- @click="">确 定</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>-->
|
|
|
- <!-- 重新排课 -->
|
|
|
- <!-- <el-dialog title="重新排课"
|
|
|
- width="700px"
|
|
|
- :visible.sync="resetCourseVisible"
|
|
|
- :modal-append-to-body="false">
|
|
|
- <el-form :model="recourseForm"
|
|
|
- label-width="120px"
|
|
|
- label-position="right">
|
|
|
- <p style="border-bottom:1px solid #ccc; padding-bottom:10px; font-size:16px; margin-bottom:30px;">上课时间设置</p>
|
|
|
- <el-form-item label="课程类型">
|
|
|
- <el-select v-model.trim="recourseForm.courseType">
|
|
|
- <el-option v-for="(item,index) in courseTypeList"
|
|
|
+ <el-form-item label="可报名声部"
|
|
|
+ prop="subjectIdList"
|
|
|
+ :rules="[{ required: true, message: '请选择可报名声部',trigger: 'blur'}]"
|
|
|
+ v-if=" newClassForm.type == 'HIGH_ONLINE'">
|
|
|
+ <el-select v-model.trim="newClassForm.memo"
|
|
|
+ multiple
|
|
|
+ clearable>
|
|
|
+ <el-option v-for="(item,index) in soundList"
|
|
|
:key="index"
|
|
|
- :value="item.value"
|
|
|
- :label="item.label"></el-option>
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="排课起始时间">
|
|
|
- <el-date-picker v-model.trim="recourseForm.courseTime"
|
|
|
- style="width:200px;"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期">
|
|
|
- </el-date-picker>
|
|
|
- <el-checkbox style='margin-left:10px;'
|
|
|
- v-model.trim="recourseForm.checked">是否跳过节假日</el-checkbox>
|
|
|
+ <el-form-item label="预计招生数"
|
|
|
+ prop="expectStudentNum"
|
|
|
+ :rules="[{ required: true, message: '请输入预计招生数',trigger: 'blur'},{pattern:/[3-5]/,message:'班级人数必须为3-5人',trigger: 'blur'}]"
|
|
|
+ v-if=" newClassForm.type == 'HIGH_ONLINE'">
|
|
|
+ <el-input style="width:180px;"
|
|
|
+ type="number"
|
|
|
+ @mousewheel.native.prevent
|
|
|
+ v-model="newClassForm.expectStudentNum"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="预计招生数"
|
|
|
+ prop="expectStudentNum"
|
|
|
+ type="number"
|
|
|
+ :rules="[{ required: true, message: '请输入预计招生数',trigger: 'blur'}]"
|
|
|
+ @mousewheel.native.prevent
|
|
|
+ v-else>
|
|
|
+ <el-input style="width:180px;"
|
|
|
+ v-model="newClassForm.expectStudentNum"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="主教老师"
|
|
|
+ prop="bishop"
|
|
|
+ :rules="[{ required: true, message: '请选择主教老师',trigger: 'blur'}]">
|
|
|
+ <el-select placeholder="请选择主教老师"
|
|
|
+ v-model="newClassForm.bishop"
|
|
|
+ clearable
|
|
|
+ filterable>
|
|
|
+ <el-option v-for="(item,index) in teacherList"
|
|
|
+ :label="item.realName"
|
|
|
+ :value="item.id"
|
|
|
+ :key="index"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="助教老师"
|
|
|
+ v-if=" newClassForm.type != 'HIGH_ONLINE'"
|
|
|
+ prop="teaching">
|
|
|
+ <el-select placeholder="请选择助教老师"
|
|
|
+ v-model="newClassForm.teaching"
|
|
|
+ @change="setAssistant1"
|
|
|
+ clearable
|
|
|
+ multiple
|
|
|
+ filterable>
|
|
|
+ <el-option v-for="(item,index) in teacherList"
|
|
|
+ :label="item.realName"
|
|
|
+ :value="item.id"
|
|
|
+ :key="index"></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
- <div class="WeekWrap">
|
|
|
- <p style="border-bottom:1px solid #ccc; padding-bottom:10px; font-size:16px; margin-bottom:30px;">
|
|
|
- 循环次数 <el-button type="text"
|
|
|
- style='margin-left:10px;'
|
|
|
- @click="addWeek">添加</el-button>
|
|
|
- </p>
|
|
|
- <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">
|
|
|
- <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="{
|
|
|
- start: '08:30',
|
|
|
- step: '00:05',
|
|
|
- end: '23:55'
|
|
|
- }">
|
|
|
- </el-time-select>
|
|
|
- <span>结束时间</span>
|
|
|
- <el-time-select placeholder=""
|
|
|
- v-model.trim="item.endClassTime"
|
|
|
- :picker-options="{
|
|
|
- start: '08: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>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
<div slot="footer"
|
|
|
class="dialog-footer">
|
|
|
- <el-button @click="resetCourseVisible = false">取 消</el-button>
|
|
|
+ <el-button @click="newClassVisible = false">取 消</el-button>
|
|
|
<el-button type="primary"
|
|
|
- @click="">确 定</el-button>
|
|
|
+ @click="newClassHight">确 定</el-button>
|
|
|
</div>
|
|
|
- </el-dialog>-->
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -670,7 +649,8 @@ import {
|
|
|
classGroupUpdate,
|
|
|
getTeamBaseInfo,
|
|
|
clearClassCourse,
|
|
|
- superFindClassGroups
|
|
|
+ superFindClassGroups,
|
|
|
+ createClass
|
|
|
} from "@/api/buildTeam";
|
|
|
import {
|
|
|
getClassAllStudent,
|
|
@@ -764,6 +744,11 @@ export default {
|
|
|
{ value: "HIGH_ONLINE", label: "线上基础技能班" },
|
|
|
{ value: "MUSIC_NETWORK", label: "乐团网管课" }
|
|
|
],
|
|
|
+ // 基础技能班类型
|
|
|
+ highTypeList: [
|
|
|
+ { value: "HIGH", label: "基础技能班" },
|
|
|
+ { value: "HIGH_ONLINE", label: "线上基础技能班" },
|
|
|
+ ],
|
|
|
cooperationList: [],
|
|
|
singleList: [],
|
|
|
activeSingleLists: [],
|
|
@@ -781,7 +766,17 @@ export default {
|
|
|
courseTime: "",
|
|
|
courseNum: ""
|
|
|
},
|
|
|
- organId: ""
|
|
|
+ organId: "",
|
|
|
+ newClassVisible: false,
|
|
|
+ newClassForm: {
|
|
|
+ className: null,
|
|
|
+ type: null,
|
|
|
+ subjectIdList: null,
|
|
|
+ expectStudentNum: null,
|
|
|
+ bishop: null,
|
|
|
+ teaching: [],
|
|
|
+ memo: []
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
created () {
|
|
@@ -1433,6 +1428,66 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
});
|
|
|
+ },
|
|
|
+ // 新建基础技能班
|
|
|
+ newClassHight () {
|
|
|
+ this.$refs["newClassForm"].validate(res => {
|
|
|
+ if (res) {
|
|
|
+ let obj = {};
|
|
|
+ obj.musicGroupId = this.teamid;
|
|
|
+ obj.name = this.newClassForm.className;
|
|
|
+ obj.type = this.newClassForm.type;
|
|
|
+ obj.groupType = "MUSIC";
|
|
|
+ if (this.newClassForm.memo.length > 0) {
|
|
|
+ obj.memo = this.newClassForm.memo.join(',')
|
|
|
+ } else {
|
|
|
+ obj.memo = null
|
|
|
+ }
|
|
|
+
|
|
|
+ let subjectIdList;
|
|
|
+ if (this.newClassForm.type == "HIGH_ONLINE") {
|
|
|
+ subjectIdList = this.newClassForm.subjectIdList;
|
|
|
+ } else {
|
|
|
+ subjectIdList =
|
|
|
+ this.newClassForm.subjectIdList.length > 0
|
|
|
+ ? this.newClassForm.subjectIdList.join(",")
|
|
|
+ : null;
|
|
|
+ }
|
|
|
+ obj.subjectIdList = subjectIdList;
|
|
|
+ obj.expectStudentNum = this.newClassForm.expectStudentNum;
|
|
|
+ obj.teacherMapperList = [];
|
|
|
+ obj.teacherMapperList.push({
|
|
|
+ userId: this.newClassForm.bishop,
|
|
|
+ teacherRole: "BISHOP"
|
|
|
+ });
|
|
|
+ for (let i in this.newClassForm.teaching) {
|
|
|
+ obj.teacherMapperList.push({
|
|
|
+ userId: this.newClassForm.teaching[i],
|
|
|
+ teacherRole: "TEACHING"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ createClass(obj).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success("创建成功");
|
|
|
+ this.getList();
|
|
|
+ this.newClassVisible = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ setAssistant1 (val) {
|
|
|
+ for (let i in val) {
|
|
|
+ if (val[i] == this.newClassForm.bishop) {
|
|
|
+ val.splice(i, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleSelectionChange (val) {
|
|
|
+
|
|
|
+ },
|
|
|
+ chkstu (row, index) {
|
|
|
+ return row.type == 'HIGH_ONLINE' || row.type == 'HIGH'
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -1453,7 +1508,20 @@ export default {
|
|
|
this.$refs["teacherForm"].resetFields();
|
|
|
this.weekList = [];
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ newClassVisible (val) {
|
|
|
+ if (!val) {
|
|
|
+ this.newClassForm = {
|
|
|
+ className: null,
|
|
|
+ type: null,
|
|
|
+ subjectIdList: null,
|
|
|
+ expectStudentNum: null,
|
|
|
+ bishop: null,
|
|
|
+ teaching: null,
|
|
|
+ memo: []
|
|
|
+ };
|
|
|
+ }
|
|
|
+ },
|
|
|
}
|
|
|
};
|
|
|
</script>
|