|
@@ -1,16 +1,37 @@
|
|
|
<template>
|
|
|
<div class="cl-container">
|
|
|
<!-- 搜索类型 -->
|
|
|
- <save-form :inline="true" save-key="teamDetails-courseList" class="searchForm" ref="searchForm" :model="searchForm"
|
|
|
- @submit="search" @reset="onReSet">
|
|
|
+ <save-form
|
|
|
+ :inline="true"
|
|
|
+ save-key="teamDetails-courseList"
|
|
|
+ class="searchForm"
|
|
|
+ ref="searchForm"
|
|
|
+ :model="searchForm"
|
|
|
+ @submit="search"
|
|
|
+ @reset="onReSet"
|
|
|
+ >
|
|
|
<el-form-item prop="courseStatus">
|
|
|
- <el-select v-model.trim="searchForm.courseStatus" clearable filterable placeholder="课程类型">
|
|
|
- <el-option v-for="(item, index) in courseArray" :key="index" :label="item.label"
|
|
|
- :value="item.value"></el-option>
|
|
|
+ <el-select
|
|
|
+ v-model.trim="searchForm.courseStatus"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="课程类型"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in courseArray"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="classStatus">
|
|
|
- <el-select v-model.trim="searchForm.classStatus" clearable filterable placeholder="课程状态">
|
|
|
+ <el-select
|
|
|
+ v-model.trim="searchForm.classStatus"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ placeholder="课程状态"
|
|
|
+ >
|
|
|
<el-option label="未开始" value="NOT_START"></el-option>
|
|
|
<el-option label="进行中" value="UNDERWAY"></el-option>
|
|
|
<el-option label="已结束" value="OVER"></el-option>
|
|
@@ -18,79 +39,151 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="class">
|
|
|
<!-- getMusicGroupAllClass -->
|
|
|
- <el-select v-model.trim="searchForm.class" placeholder="班级名称" filterable clearable>
|
|
|
- <el-option v-for="(item, index) in classList" :key="index" :value="item.id" :label="item.name"></el-option>
|
|
|
+ <el-select
|
|
|
+ v-model.trim="searchForm.class"
|
|
|
+ placeholder="班级名称"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in classList"
|
|
|
+ :key="index"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="isSettlement">
|
|
|
- <el-select v-model.trim="searchForm.isSettlement" placeholder="是否结算" filterable clearable>
|
|
|
+ <el-select
|
|
|
+ v-model.trim="searchForm.isSettlement"
|
|
|
+ placeholder="是否结算"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ >
|
|
|
<el-option value="0" label="未结算"></el-option>
|
|
|
<el-option value="1" label="已结算"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="homeworkFlag">
|
|
|
- <el-select v-model.trim="searchForm.homeworkFlag" placeholder="是否布置作业" filterable clearable>
|
|
|
+ <el-select
|
|
|
+ v-model.trim="searchForm.homeworkFlag"
|
|
|
+ placeholder="是否布置作业"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ >
|
|
|
<el-option :value="false" label="未布置"></el-option>
|
|
|
<el-option :value="true" label="已布置"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="serviceFlag">
|
|
|
- <el-select v-model.trim="searchForm.serviceFlag" placeholder="是否服务" filterable clearable>
|
|
|
+ <el-select
|
|
|
+ v-model.trim="searchForm.serviceFlag"
|
|
|
+ placeholder="是否服务"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ >
|
|
|
<el-option :value="true" label="是"></el-option>
|
|
|
<el-option :value="false" label="否"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="timer">
|
|
|
- <el-date-picker v-model.trim="searchForm.timer" style="width: 420px" type="daterange" value-format="yyyy-MM-dd"
|
|
|
- range-separator="至" start-placeholder="课程开始日期" end-placeholder="课程结束日期" :picker-options="{
|
|
|
+ <el-date-picker
|
|
|
+ v-model.trim="searchForm.timer"
|
|
|
+ style="width: 420px"
|
|
|
+ type="daterange"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="课程开始日期"
|
|
|
+ end-placeholder="课程结束日期"
|
|
|
+ :picker-options="{
|
|
|
firstDayOfWeek: 1
|
|
|
- }"></el-date-picker>
|
|
|
+ }"
|
|
|
+ ></el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button native-type="submit" type="danger">搜索</el-button>
|
|
|
<el-button type="primary" native-type="reset">重置</el-button>
|
|
|
- <el-button type="primary" v-if="permission('export/exportMusicGroupCourseScheduleDetail')"
|
|
|
- @click="exportCourse">导出</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ v-if="permission('export/exportMusicGroupCourseScheduleDetail')"
|
|
|
+ @click="exportCourse"
|
|
|
+ >导出</el-button
|
|
|
+ >
|
|
|
</el-form-item>
|
|
|
</save-form>
|
|
|
<div class="btnWraps" style="margin-bottom:20px;">
|
|
|
- <el-button type="primary" v-if="permission('courseScheduleConvert/action')" @click="transCourse">课程转换</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ v-if="permission('courseScheduleConvert/action')"
|
|
|
+ @click="transCourse"
|
|
|
+ >课程转换</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
|
|
|
<div style="font-size: 14px; padding-bottom: 10px">
|
|
|
总出勤率:<span style="color: #f85043; font-weight: 600">{{
|
|
|
detail.attendanceRate
|
|
|
}}</span>
|
|
|
- 总达标率:<span style="color: #f85043; font-weight: 600">{{ detail.standardRate }}</span>
|
|
|
- 总作业提交率:<span style="color: #f85043; font-weight: 600">{{ detail.homeworkCommitRate
|
|
|
- }}</span>
|
|
|
+ 总达标率:<span
|
|
|
+ style="color: #f85043; font-weight: 600"
|
|
|
+ >{{ detail.standardRate }}</span
|
|
|
+ >
|
|
|
+ 总作业提交率:<span
|
|
|
+ style="color: #f85043; font-weight: 600"
|
|
|
+ >{{ detail.homeworkCommitRate }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
<!-- 列表 -->
|
|
|
<div class="tableWrap">
|
|
|
- <el-table :data="tableList" :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
|
- @selection-change="handleSelectionChange">
|
|
|
- <el-table-column type="selection" width="55" :selectable="checkSelectable"></el-table-column>
|
|
|
+ <el-table
|
|
|
+ :data="tableList"
|
|
|
+ :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ type="selection"
|
|
|
+ width="55"
|
|
|
+ :selectable="checkSelectable"
|
|
|
+ ></el-table-column>
|
|
|
|
|
|
- <el-table-column align="center" prop="courseScheduleId" label="课程编号"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="courseScheduleId"
|
|
|
+ label="课程编号"
|
|
|
+ ></el-table-column>
|
|
|
<el-table-column align="center" width="180px" label="时间">
|
|
|
- <template slot-scope="scope">{{ scope.row.classDate }}
|
|
|
+ <template slot-scope="scope"
|
|
|
+ >{{ scope.row.classDate }}
|
|
|
{{
|
|
|
scope.row.startClassTime
|
|
|
- ? scope.row.startClassTime.substr(0, 5)
|
|
|
- : ""
|
|
|
+ ? scope.row.startClassTime.substr(0, 5)
|
|
|
+ : ""
|
|
|
}}-{{
|
|
|
- scope.row.endClassTime ? scope.row.endClassTime.substr(0, 5) : ""
|
|
|
-}}</template>
|
|
|
+ scope.row.endClassTime ? scope.row.endClassTime.substr(0, 5) : ""
|
|
|
+ }}</template
|
|
|
+ >
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="courseScheduleName" label="课程名称"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="courseScheduleName"
|
|
|
+ label="课程名称"
|
|
|
+ ></el-table-column>
|
|
|
|
|
|
- <el-table-column align="center" prop="courseScheduleType" label="课程类型">
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="courseScheduleType"
|
|
|
+ label="课程类型"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.courseScheduleType | coursesType }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column align="center" prop="courseScheduleStatus" label="课程状态">s
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="courseScheduleStatus"
|
|
|
+ label="课程状态"
|
|
|
+ >s
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.courseScheduleStatus | coursesStatus }}</div>
|
|
|
</template>
|
|
@@ -111,7 +204,20 @@
|
|
|
<span v-else>--</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="masterTeacherName" label="指导老师"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="masterTeacherName"
|
|
|
+ label="指导老师"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="teachingUserNames"
|
|
|
+ label="助教老师"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <copy-text>{{ scope.row.teachingUserNames }}</copy-text>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column align="center" label="结算状态">
|
|
|
<template slot-scope="scope">{{
|
|
|
scope.row.settlementTime ? "已结算" : "未结算"
|
|
@@ -131,8 +237,8 @@
|
|
|
{{
|
|
|
scope.row.courseScheduleStatistics.attendanceRate &&
|
|
|
scope.row.courseScheduleStatus == "OVER"
|
|
|
- ? scope.row.courseScheduleStatistics.attendanceRate
|
|
|
- : "--"
|
|
|
+ ? scope.row.courseScheduleStatistics.attendanceRate
|
|
|
+ : "--"
|
|
|
}}
|
|
|
</div>
|
|
|
</template>
|
|
@@ -143,8 +249,8 @@
|
|
|
{{
|
|
|
scope.row.courseScheduleStatistics.standardRate &&
|
|
|
scope.row.courseScheduleStatus == "OVER"
|
|
|
- ? scope.row.courseScheduleStatistics.standardRate
|
|
|
- : "--"
|
|
|
+ ? scope.row.courseScheduleStatistics.standardRate
|
|
|
+ : "--"
|
|
|
}}
|
|
|
</div>
|
|
|
</template>
|
|
@@ -161,8 +267,8 @@
|
|
|
<div>
|
|
|
{{
|
|
|
scope.row.courseScheduleStatistics.homeworkFlag
|
|
|
- ? "已布置"
|
|
|
- : "未布置"
|
|
|
+ ? "已布置"
|
|
|
+ : "未布置"
|
|
|
}}
|
|
|
</div>
|
|
|
</template>
|
|
@@ -173,39 +279,66 @@
|
|
|
{{
|
|
|
scope.row.courseScheduleStatistics.homeworkCommitRate &&
|
|
|
scope.row.courseScheduleStatistics.homeworkFlag
|
|
|
- ? scope.row.courseScheduleStatistics.homeworkCommitRate
|
|
|
- : "--"
|
|
|
+ ? scope.row.courseScheduleStatistics.homeworkCommitRate
|
|
|
+ : "--"
|
|
|
}}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="remark" label="备注"></el-table-column>
|
|
|
- <el-table-column align="center" width="280px" label="操作" fixed="right">
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ prop="remark"
|
|
|
+ label="备注"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ width="280px"
|
|
|
+ label="操作"
|
|
|
+ fixed="right"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
<!-- {child: 'teacherAttendance/updateTeacherAttendance', parent: '/teamDetails/courseList'} -->
|
|
|
- <el-button v-if="scope.row.courseScheduleStatus == 'OVER' &&
|
|
|
- !scope.row.settlementTime &&
|
|
|
- permission(
|
|
|
- 'teacherAttendance/updateTeacherAttendance?t=568'
|
|
|
- )
|
|
|
- " type="text" @click="onMarkAttendance(scope.row)">补考勤</el-button>
|
|
|
- <el-button v-if="scope.row.courseScheduleStatus == 'OVER' &&
|
|
|
- permission(
|
|
|
- 'studentAttendance/updateStudentAttendances?t=570'
|
|
|
- )
|
|
|
- " type="text" @click="onCallName(scope.row)">点名表</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="
|
|
|
+ scope.row.courseScheduleStatus == 'OVER' &&
|
|
|
+ !scope.row.settlementTime &&
|
|
|
+ permission(
|
|
|
+ 'teacherAttendance/updateTeacherAttendance?t=568'
|
|
|
+ )
|
|
|
+ "
|
|
|
+ type="text"
|
|
|
+ @click="onMarkAttendance(scope.row)"
|
|
|
+ >补考勤</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="
|
|
|
+ scope.row.courseScheduleStatus == 'OVER' &&
|
|
|
+ permission(
|
|
|
+ 'studentAttendance/updateStudentAttendances?t=570'
|
|
|
+ )
|
|
|
+ "
|
|
|
+ type="text"
|
|
|
+ @click="onCallName(scope.row)"
|
|
|
+ >点名表</el-button
|
|
|
+ >
|
|
|
<!-- OVER -->
|
|
|
<!-- <el-button
|
|
|
v-if="scope.row.courseScheduleStatus == 'OVER' && permission('courseSchedule/classStartDateAdjust1')"
|
|
|
type="text"
|
|
|
@click="resetClass(scope.row)"
|
|
|
>调整</el-button>-->
|
|
|
- <el-button v-if="!scope.row.settlementTime &&
|
|
|
- permission(
|
|
|
- 'courseSchedule/classStartDateAdjust/teamCourseListInfo'
|
|
|
- )
|
|
|
- " type="text" @click="resetClass(scope.row)">调整</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="
|
|
|
+ !scope.row.settlementTime &&
|
|
|
+ permission(
|
|
|
+ 'courseSchedule/classStartDateAdjust/teamCourseListInfo'
|
|
|
+ )
|
|
|
+ "
|
|
|
+ type="text"
|
|
|
+ @click="resetClass(scope.row)"
|
|
|
+ >调整</el-button
|
|
|
+ >
|
|
|
<!-- <el-button v-if="scope.row.courseScheduleStatus == 'NOT_START' && permission('courseSchedule/batchDelete')"
|
|
|
type="text"
|
|
|
@click="removeSingleClass(scope.row)">删除</el-button> -->
|
|
@@ -213,59 +346,136 @@
|
|
|
<!-- <el-button type="text"
|
|
|
@click="resetType(scope.row)"
|
|
|
v-if="permission('teamDetail/resetTpye')&&scope.row.courseScheduleType!='HIGH_ONLINE'&&scope.row.courseScheduleType!='MUSIC_NETWORK'">类型调整</el-button> -->
|
|
|
- <el-button type="text" v-if="scope.row.courseScheduleStatus == 'OVER' &&
|
|
|
- !scope.row.settlementTime &&
|
|
|
- permission(
|
|
|
- 'courseSchedule/cleanAttendancecourseSchedule/classStartDateAdjust/teamCourseListInfo'
|
|
|
- )
|
|
|
- " @click="clearAttend(scope.row)">清除考勤</el-button>
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ v-if="
|
|
|
+ scope.row.courseScheduleStatus == 'OVER' &&
|
|
|
+ !scope.row.settlementTime &&
|
|
|
+ permission(
|
|
|
+ 'courseSchedule/cleanAttendancecourseSchedule/classStartDateAdjust/teamCourseListInfo'
|
|
|
+ )
|
|
|
+ "
|
|
|
+ @click="clearAttend(scope.row)"
|
|
|
+ >清除考勤</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <pagination save-key="teamDetails-courseList" sync :total.sync="rules.total" :page.sync="rules.page"
|
|
|
- :limit.sync="rules.limit" :page-sizes="rules.page_size" @pagination="getList" />
|
|
|
+ <pagination
|
|
|
+ save-key="teamDetails-courseList"
|
|
|
+ sync
|
|
|
+ :total.sync="rules.total"
|
|
|
+ :page.sync="rules.page"
|
|
|
+ :limit.sync="rules.limit"
|
|
|
+ :page-sizes="rules.page_size"
|
|
|
+ @pagination="getList"
|
|
|
+ />
|
|
|
</div>
|
|
|
- <el-dialog title="课程调整" width="400px" :before-close="handleClose" :visible.sync="courseVisible">
|
|
|
- <el-form :model="maskForm" v-if="courseVisible" class="maskForm" ref="maskForm" :rules="maskRules"
|
|
|
- label-position="right" label-width="120px" :inline="true">
|
|
|
+ <el-dialog
|
|
|
+ title="课程调整"
|
|
|
+ width="400px"
|
|
|
+ :before-close="handleClose"
|
|
|
+ :visible.sync="courseVisible"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ :model="maskForm"
|
|
|
+ v-if="courseVisible"
|
|
|
+ class="maskForm"
|
|
|
+ ref="maskForm"
|
|
|
+ :rules="maskRules"
|
|
|
+ label-position="right"
|
|
|
+ label-width="120px"
|
|
|
+ :inline="true"
|
|
|
+ >
|
|
|
<el-form-item label="主教老师" prop="teacher">
|
|
|
- <remote-search :commit="'setTeachers'" v-model="maskForm.teacher" :width="220" />
|
|
|
+ <remote-search
|
|
|
+ :commit="'setTeachers'"
|
|
|
+ v-model="maskForm.teacher"
|
|
|
+ :width="220"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="助教老师" v-if="maskForm.courseScheduleType != 'MUSIC_NETWORK' &&
|
|
|
- maskForm.courseScheduleType != 'HIGH_ONLINE' && $helpers.permission('is/teacher/findTeachers')
|
|
|
- " prop="assistant">
|
|
|
- <remote-search :commit="'setTeachers'" v-model="maskForm.assistant" :width="220" :multiple="true" />
|
|
|
+ <el-form-item
|
|
|
+ label="助教老师"
|
|
|
+ v-if="
|
|
|
+ maskForm.courseScheduleType != 'MUSIC_NETWORK' &&
|
|
|
+ maskForm.courseScheduleType != 'HIGH_ONLINE' &&
|
|
|
+ $helpers.permission('is/teacher/findTeachers')
|
|
|
+ "
|
|
|
+ prop="assistant"
|
|
|
+ >
|
|
|
+ <remote-search
|
|
|
+ :commit="'setTeachers'"
|
|
|
+ v-model="maskForm.assistant"
|
|
|
+ :width="220"
|
|
|
+ :multiple="true"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="上课日期" prop="date">
|
|
|
- <el-date-picker v-model.trim="maskForm.date" type="date" :picker-options="beginDate()" value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期"></el-date-picker>
|
|
|
+ <el-date-picker
|
|
|
+ v-model.trim="maskForm.date"
|
|
|
+ type="date"
|
|
|
+ :picker-options="beginDate()"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ ></el-date-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="课程时长" v-if="courseVisible" prop="timer">
|
|
|
<el-select v-model="maskForm.timer" @change="changeTime">
|
|
|
- <el-option v-for="(item, index) in typeTimeList" :key="index" :disabled="item > baseTimer ? true : false"
|
|
|
- :value="parseInt(item)" :label="item"></el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in typeTimeList"
|
|
|
+ :key="index"
|
|
|
+ :disabled="item > baseTimer ? true : false"
|
|
|
+ :value="parseInt(item)"
|
|
|
+ :label="item"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="开始时间" v-if="courseVisible" prop="startTime">
|
|
|
- <el-time-picker placeholder="起始时间" v-model.trim="maskForm.startTime" @change="changeStartTime" format="HH:mm"
|
|
|
- value-format="HH:mm" :picker-options="{
|
|
|
+ <el-time-picker
|
|
|
+ placeholder="起始时间"
|
|
|
+ v-model.trim="maskForm.startTime"
|
|
|
+ @change="changeStartTime"
|
|
|
+ format="HH:mm"
|
|
|
+ value-format="HH:mm"
|
|
|
+ :picker-options="{
|
|
|
selectableRange: `${nowTime} - 23:30:00`
|
|
|
- }"></el-time-picker>
|
|
|
+ }"
|
|
|
+ ></el-time-picker>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="结束时间" v-if="courseVisible" prop="endTime">
|
|
|
- <el-time-select placeholder="结束时间" v-model.trim="maskForm.endTime" disabled :picker-options="{
|
|
|
- start: '04:30',
|
|
|
- step: '00:05',
|
|
|
- end: '23:30',
|
|
|
- minTime: maskForm.startTime
|
|
|
- }"></el-time-select>
|
|
|
+ <el-time-select
|
|
|
+ placeholder="结束时间"
|
|
|
+ v-model.trim="maskForm.endTime"
|
|
|
+ disabled
|
|
|
+ :picker-options="{
|
|
|
+ start: '04:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: maskForm.startTime
|
|
|
+ }"
|
|
|
+ ></el-time-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="教学地点" prop="schoolId" v-if="maskForm.courseScheduleType != 'HIGH_ONLINE' &&
|
|
|
- maskForm.courseScheduleType != 'MUSIC_NETWORK'
|
|
|
- ">
|
|
|
- <el-select v-model.trim="maskForm.schoolId" style="width: 220px !important" filterable clearable>
|
|
|
- <el-option v-for="(item, index) in schoolList" :key="index" :value="item.id" :label="item.name"></el-option>
|
|
|
+ <el-form-item
|
|
|
+ label="教学地点"
|
|
|
+ prop="schoolId"
|
|
|
+ v-if="
|
|
|
+ maskForm.courseScheduleType != 'HIGH_ONLINE' &&
|
|
|
+ maskForm.courseScheduleType != 'MUSIC_NETWORK'
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model.trim="maskForm.schoolId"
|
|
|
+ style="width: 220px !important"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in schoolList"
|
|
|
+ :key="index"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ ></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -274,13 +484,27 @@
|
|
|
<el-button type="primary" @click="submitResetClass">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="修改时间" width="400px" :before-close="handleCloseTimer" :visible.sync="timerVisible">
|
|
|
+ <el-dialog
|
|
|
+ title="修改时间"
|
|
|
+ width="400px"
|
|
|
+ :before-close="handleCloseTimer"
|
|
|
+ :visible.sync="timerVisible"
|
|
|
+ >
|
|
|
<el-form :model="timerMask">
|
|
|
- <el-form-item label="上课日期" :rules="[{ required: true, message: '请选择日期', trigger: 'blur' }]">
|
|
|
- <el-date-picker v-model.trim="timerMask.timer" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
|
|
+ <el-form-item
|
|
|
+ label="上课日期"
|
|
|
+ :rules="[{ required: true, message: '请选择日期', trigger: 'blur' }]"
|
|
|
+ >
|
|
|
+ <el-date-picker
|
|
|
+ v-model.trim="timerMask.timer"
|
|
|
+ type="date"
|
|
|
+ format="yyyy-MM-dd"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
:picker-options="{
|
|
|
firstDayOfWeek: 1
|
|
|
- }" placeholder="选择日期"></el-date-picker>
|
|
|
+ }"
|
|
|
+ placeholder="选择日期"
|
|
|
+ ></el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
@@ -289,7 +513,11 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog title="补考勤" width="400px" :visible.sync="markAttendance.status">
|
|
|
+ <el-dialog
|
|
|
+ title="补考勤"
|
|
|
+ width="400px"
|
|
|
+ :visible.sync="markAttendance.status"
|
|
|
+ >
|
|
|
<el-form>
|
|
|
<el-form-item label="签到状态">{{
|
|
|
markAttendance.dataInfo.signInStatus | attendanceType
|
|
@@ -306,36 +534,87 @@
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button @click="markAttendance.status = false">取 消</el-button>
|
|
|
- <el-button type="primary" :disabled="markAttendance.dataInfo.signOutStatus == 1 &&
|
|
|
- markAttendance.dataInfo.signInStatus == 1
|
|
|
- ? true
|
|
|
- : false
|
|
|
- " @click="batchAdjustmentTime">确定补卡</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ :disabled="
|
|
|
+ markAttendance.dataInfo.signOutStatus == 1 &&
|
|
|
+ markAttendance.dataInfo.signInStatus == 1
|
|
|
+ ? true
|
|
|
+ : false
|
|
|
+ "
|
|
|
+ @click="batchAdjustmentTime"
|
|
|
+ >确定补卡</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog title="点名表" width="800px" :visible.sync="rollCall.status">
|
|
|
<el-table :data="rollCall.gridData">
|
|
|
- <el-table-column align="center" property="userName" label="学员姓名"></el-table-column>
|
|
|
- <el-table-column align="center" property="phone" label="手机号"></el-table-column>
|
|
|
- <el-table-column align="center" property="subjectName" label="学员声部"></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ property="userName"
|
|
|
+ label="学员姓名"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ property="phone"
|
|
|
+ label="手机号"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ property="subjectName"
|
|
|
+ label="学员声部"
|
|
|
+ ></el-table-column>
|
|
|
<el-table-column align="center" label="到课状态">
|
|
|
<template slot-scope="scope">{{
|
|
|
scope.row.status | studentCallName
|
|
|
}}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" v-if="!rollCall.selectItem.settlementTime" label="操作" width="240px">
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ v-if="!rollCall.selectItem.settlementTime"
|
|
|
+ label="操作"
|
|
|
+ width="240px"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
- <el-button size="mini" @click="onChangeRollCall('TRUANT', scope.row)" type="primary" round>未到</el-button>
|
|
|
- <el-button size="mini" @click="onChangeRollCall('LEAVE', scope.row)" type="warning" round>请假</el-button>
|
|
|
- <el-button size="mini" @click="onChangeRollCall('NORMAL', scope.row)" type="success" round>到课</el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ @click="onChangeRollCall('TRUANT', scope.row)"
|
|
|
+ type="primary"
|
|
|
+ round
|
|
|
+ >未到</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ @click="onChangeRollCall('LEAVE', scope.row)"
|
|
|
+ type="warning"
|
|
|
+ round
|
|
|
+ >请假</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ @click="onChangeRollCall('NORMAL', scope.row)"
|
|
|
+ type="success"
|
|
|
+ round
|
|
|
+ >到课</el-button
|
|
|
+ >
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
- <pagination sync :total.sync="rollCall.total" :page.sync="rollCall.page" :limit.sync="rollCall.limit"
|
|
|
- :page-sizes="rollCall.page_size" @pagination="getCallName" />
|
|
|
+ <pagination
|
|
|
+ sync
|
|
|
+ :total.sync="rollCall.total"
|
|
|
+ :page.sync="rollCall.page"
|
|
|
+ :limit.sync="rollCall.limit"
|
|
|
+ :page-sizes="rollCall.page_size"
|
|
|
+ @pagination="getCallName"
|
|
|
+ />
|
|
|
</el-dialog>
|
|
|
- <transStart ref="transStart" :activeCourseList="activeCourseList" @getList="getList" />
|
|
|
+ <transStart
|
|
|
+ ref="transStart"
|
|
|
+ :activeCourseList="activeCourseList"
|
|
|
+ @getList="getList"
|
|
|
+ />
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -485,7 +764,7 @@ export default {
|
|
|
organId: this.organId
|
|
|
});
|
|
|
this.courseTimeList = res.data;
|
|
|
- } catch { }
|
|
|
+ } catch {}
|
|
|
|
|
|
// MusicStore.dispatch('getBaseInfo', {
|
|
|
// data: { musicGroupId: this.teamid }
|
|
@@ -589,6 +868,18 @@ export default {
|
|
|
};
|
|
|
getCourseSchedule(obj).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
+ const result = res.data.rows || [];
|
|
|
+ result.forEach(row => {
|
|
|
+ if (row.teachingTeachers && row.teachingTeachers.length > 0) {
|
|
|
+ const names = [];
|
|
|
+ row.teachingTeachers.forEach(teacher => {
|
|
|
+ names.push(teacher.userName);
|
|
|
+ });
|
|
|
+ row.teachingUserNames = names.join(",");
|
|
|
+ } else {
|
|
|
+ row.teachingUserNames = "";
|
|
|
+ }
|
|
|
+ });
|
|
|
this.tableList = res.data.rows;
|
|
|
this.rules.total = res.data.total;
|
|
|
}
|
|
@@ -697,7 +988,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
},
|
|
|
removeCourses() {
|
|
|
// 批量删除
|
|
@@ -723,7 +1014,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
},
|
|
|
submitResetClass() {
|
|
|
let maskForm = this.maskForm;
|
|
@@ -784,7 +1075,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
},
|
|
|
handleClose() {
|
|
|
this.courseVisible = false;
|
|
@@ -906,7 +1197,7 @@ export default {
|
|
|
}
|
|
|
);
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
},
|
|
|
changeStartTime(val) {
|
|
|
this.$nextTick(res => {
|