|
@@ -5,11 +5,25 @@
|
|
|
content='VIP修改'>
|
|
|
</el-page-header>
|
|
|
</h2>
|
|
|
- <div class='newBand' v-permission="'vipGroupManage/appendVipGroupCourseSchedules'"
|
|
|
- @click="addCourse">VIP加课</div>
|
|
|
+ <div class="vipwrap">
|
|
|
+ <div class='newBand'
|
|
|
+ v-permission="'vipGroupManage/appendVipGroupCourseSchedules'"
|
|
|
+ @click="addCourse">VIP加课</div>
|
|
|
+ <div class='newBand'
|
|
|
+ v-permission="'courseSchedule/vipCourseAdjust'"
|
|
|
+ @click="adjustment">批量调整</div>
|
|
|
+ <div class='newBand'
|
|
|
+ v-permission="'vipGroupManage/updateVipBaseInfo'"
|
|
|
+ @click="addrVisible = true">修改教学点</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
<div class="tableWrap">
|
|
|
<el-table :data='tableList'
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
:header-cell-style="{background:'#EDEEF0',color:'#444'}">
|
|
|
+ <el-table-column type="selection"
|
|
|
+ width="55">
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="课程名称"
|
|
|
align="center"
|
|
|
prop="name">
|
|
@@ -90,6 +104,7 @@
|
|
|
<el-form-item label="上课日期"
|
|
|
prop="date">
|
|
|
<el-date-picker v-model="maskForm.date"
|
|
|
+ style="width:200px!important;"
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
placeholder="选择日期">
|
|
@@ -98,6 +113,7 @@
|
|
|
<el-form-item label="开始时间"
|
|
|
prop="startTime">
|
|
|
<el-time-select placeholder="起始时间"
|
|
|
+ style="width:200px!important;"
|
|
|
v-model="maskForm.startTime"
|
|
|
:picker-options="{
|
|
|
start: '04:30',
|
|
@@ -106,7 +122,7 @@
|
|
|
}">
|
|
|
</el-time-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="结束时间"
|
|
|
+ <!-- <el-form-item label="结束时间"
|
|
|
prop="endTime">
|
|
|
<el-time-select placeholder="结束时间"
|
|
|
v-model="maskForm.endTime"
|
|
@@ -117,7 +133,7 @@
|
|
|
minTime: maskForm.startTime
|
|
|
}">
|
|
|
</el-time-select>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item> -->
|
|
|
<el-form-item label="教学地点"
|
|
|
v-if='maskForm.teachMode == "OFFLINE"'>
|
|
|
<el-select v-model="maskForm.address">
|
|
@@ -200,25 +216,119 @@
|
|
|
@click="submitAdd">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
+ <!-- 批量调整 -->
|
|
|
+ <el-dialog title="批量调整"
|
|
|
+ width="800px"
|
|
|
+ :visible.sync="adjustmentVisible">
|
|
|
+ <el-form :model='adjustmentForm'
|
|
|
+ ref='adjustmentForm'
|
|
|
+ :rules="adjustmentRules"
|
|
|
+ :inline="true">
|
|
|
+ <el-form-item label="已选择课时数">
|
|
|
+ <el-input disabled
|
|
|
+ v-model="adjustmentForm.count"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <br>
|
|
|
+ <el-form-item label="排课起始时间"
|
|
|
+ prop="courseTime">
|
|
|
+ <el-date-picker v-model="adjustmentForm.courseTime"
|
|
|
+ style="width:200px!important;"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+ <el-checkbox style='margin-left:10px;'
|
|
|
+ v-model="adjustmentForm.checked">是否跳过节假日</el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div class="WeekWrap ">
|
|
|
+ <h3 style="margin-bottom:20px;">循环次数 <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">
|
|
|
+ <span>循环周期: </span>
|
|
|
+ <el-select v-model="item.dayOfWeek">
|
|
|
+ <el-option v-for="(item,index) in weekDateList"
|
|
|
+ :key='index'
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <span style="margin-left:10px;">开始时间</span>
|
|
|
+ <el-time-select style="margin-left:10px;"
|
|
|
+ placeholder=""
|
|
|
+ v-model="item.startClassTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '04:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '23:55'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ <el-button style="margin-left:10px;"
|
|
|
+ type="danger"
|
|
|
+ @click="removeWeek(item)"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ circle></el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div slot="footer"
|
|
|
+ class="dialog-footer">
|
|
|
+ <el-button @click="adjustmentVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ @click="submitAdjustment">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 批量修改教学点 -->
|
|
|
+ <el-dialog title='教学点'
|
|
|
+ :visible.sync="addrVisible">
|
|
|
+ <el-form :model="addrForm">
|
|
|
+ <el-form-item label="教学点">
|
|
|
+ <el-select v-model="addrForm.address">
|
|
|
+ <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>
|
|
|
+ <span slot="footer"
|
|
|
+ class="dialog-footer">
|
|
|
+ <el-button @click="addrVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary"
|
|
|
+ @click="resetAddrSubmit">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import { resetCourse } from '@/api/buildTeam'
|
|
|
import { getSchool } from '@/api/systemManage'
|
|
|
import pagination from '@/components/Pagination/index'
|
|
|
-import { findVipGroupCourseSchedules, bathDelete, appendVipGroupCourseSchedules } from '@/api/vipSeting'
|
|
|
+import { findVipGroupCourseSchedules, bathDelete, appendVipGroupCourseSchedules, vipCourseAdjust, updateVipBaseInfo } from '@/api/vipSeting'
|
|
|
+import { getTeachSchool } from '@/api/teacherManager'
|
|
|
export default {
|
|
|
components: {
|
|
|
pagination
|
|
|
},
|
|
|
data () {
|
|
|
return {
|
|
|
+ addrVisible: false,
|
|
|
+ adjustmentVisible: false,
|
|
|
addCourseVisible: false,
|
|
|
courseVisible: false,
|
|
|
tableList: [],
|
|
|
addTable: [],
|
|
|
courseTime: '',
|
|
|
vipid: '',
|
|
|
+ addrForm: {
|
|
|
+ address: ''
|
|
|
+ },
|
|
|
maskForm: {
|
|
|
date: '',
|
|
|
startTime: '',
|
|
@@ -232,7 +342,7 @@ export default {
|
|
|
limit: 10, // 限制显示条数
|
|
|
page: 1, // 当前页
|
|
|
total: 0, // 总条数
|
|
|
- page_size: [10, 20, 30, 40] // 选择限制显示条数
|
|
|
+ page_size: [50, 100] // 选择限制显示条数
|
|
|
},
|
|
|
maskRules: {
|
|
|
date: [{ required: true, message: '请选择上课时间', trigger: 'blur' },],
|
|
@@ -241,7 +351,31 @@ export default {
|
|
|
},
|
|
|
schoolList: [],
|
|
|
Frules: null,
|
|
|
- FsearchForm: null
|
|
|
+ FsearchForm: null,
|
|
|
+ adjustmentForm: {
|
|
|
+ count: '',
|
|
|
+ courseTime: '',
|
|
|
+ checked: ''
|
|
|
+ },
|
|
|
+ adjustmentRules: {
|
|
|
+ courseTime: [{ required: true, message: '请选择开始时间' }],
|
|
|
+ },
|
|
|
+ weekDateList: [
|
|
|
+ { value: '1', label: '星期一' },
|
|
|
+ { value: '2', label: '星期二' },
|
|
|
+ { value: '3', label: '星期三' },
|
|
|
+ { value: '4', label: '星期四' },
|
|
|
+ { value: '5', label: '星期五' },
|
|
|
+ { value: '6', label: '星期六' },
|
|
|
+ { value: '7', label: '星期日' },
|
|
|
+ ],
|
|
|
+ weekList: [{
|
|
|
+ dayOfWeek: '',
|
|
|
+ startTime: '',
|
|
|
+ endTime: '',
|
|
|
+ id: new Date()
|
|
|
+ }],
|
|
|
+ activeList: []
|
|
|
}
|
|
|
},
|
|
|
created () {
|
|
@@ -255,11 +389,11 @@ export default {
|
|
|
},
|
|
|
mounted () {
|
|
|
this.getList();
|
|
|
- getSchool({ organId: null }).then(res => {
|
|
|
- if (res.code == 200) {
|
|
|
- this.schoolList = res.data;
|
|
|
- }
|
|
|
- })
|
|
|
+ // getTeachSchool({ organId: null }).then(res => {
|
|
|
+ // if (res.code == 200) {
|
|
|
+ // this.schoolList = res.data;
|
|
|
+ // }
|
|
|
+ // })
|
|
|
},
|
|
|
methods: {
|
|
|
getList () {
|
|
@@ -269,6 +403,11 @@ export default {
|
|
|
this.tableList = res.data.pageInfo.rows;
|
|
|
this.rules.total = res.data.pageInfo.total;
|
|
|
this.courseTime = res.data.singleClassMinutes;
|
|
|
+ getTeachSchool({ userId: res.data.pageInfo.rows[0].teacherId }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.schoolList = res.data;
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
)
|
|
@@ -279,7 +418,7 @@ export default {
|
|
|
resetClass (row) {
|
|
|
this.maskForm.date = row.classDate;
|
|
|
this.maskForm.startTime = row.startClassTimeStr;
|
|
|
- this.maskForm.endTime = row.endClassTimeStr;
|
|
|
+ // this.maskForm.endTime = row.endClassTimeStr;
|
|
|
this.maskForm.id = row.id;
|
|
|
this.maskForm.address = row.schoolId
|
|
|
this.maskForm.teachMode = row.teachMode
|
|
@@ -291,9 +430,9 @@ export default {
|
|
|
this.$refs['maskForm'].resetFields()
|
|
|
},
|
|
|
submitResetClass () {
|
|
|
+ // endClassTimeStr: this.maskForm.endTime,
|
|
|
let obj = {
|
|
|
startClassTimeStr: this.maskForm.startTime,
|
|
|
- endClassTimeStr: this.maskForm.endTime,
|
|
|
id: this.maskForm.id,
|
|
|
classDate: this.maskForm.date,
|
|
|
schoolId: this.maskForm.address || null
|
|
@@ -380,8 +519,110 @@ export default {
|
|
|
if (M < 10) M = '0' + M;
|
|
|
return H + ':' + M
|
|
|
},
|
|
|
+ handleSelectionChange (val) {
|
|
|
+ // console.log(val)
|
|
|
+ this.adjustmentForm.count = val.length;
|
|
|
+ this.activeList = val;
|
|
|
+ },
|
|
|
+ addWeek () {
|
|
|
+ // 添加循环周期
|
|
|
+ this.weekList.push({
|
|
|
+ dayOfWeek: '',
|
|
|
+ startClassTime: '',
|
|
|
+ endClassTime: '',
|
|
|
+ id: new Date()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除循环周
|
|
|
+ removeWeek (item) {
|
|
|
+ for (let i in this.weekList) {
|
|
|
+ if (this.weekList[i].id == item.id) {
|
|
|
+ this.weekList.splice(i, 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ adjustment () {
|
|
|
+ if (this.adjustmentForm.count <= 0) {
|
|
|
+ this.$message.error('请至少勾选一节课')
|
|
|
+ } else {
|
|
|
+ this.adjustmentVisible = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ submitAdjustment () {
|
|
|
+ // console.log('提交')
|
|
|
+
|
|
|
+ this.$refs['adjustmentForm'].validate(item => {
|
|
|
+ if (item) {
|
|
|
+ let week = this.weekList;
|
|
|
+ if (!week[0] || !week[0].startClassTime || !week[0].dayOfWeek) {
|
|
|
+ this.$message.error('至少排一节课');
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 开始
|
|
|
+ let obj = {}
|
|
|
+ obj.courseCreateStartTime = this.adjustmentForm.courseTime;
|
|
|
+ let idArr = this.activeList.map(item => { return item.id });
|
|
|
+ let courseScheduleIds = idArr.join(',')
|
|
|
+ obj.courseScheduleIds = courseScheduleIds;
|
|
|
+ obj.courseTimes = this.weekList;
|
|
|
+ obj.holiday = this.adjustmentForm.checked;
|
|
|
+ obj.vipGroupId = this.vipid;
|
|
|
+ vipCourseAdjust(obj).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success('恭喜您修改成功');
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ resetAddrSubmit () {
|
|
|
+ if (!this.addrForm.address) {
|
|
|
+ this.$message.error('请选择一个教学点')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 修改教学点
|
|
|
+ updateVipBaseInfo({ id: this.vipid, teacherSchoolId: this.addrForm.address }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success('修改成功')
|
|
|
+ this.addrVisible = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ adjustmentVisible (val) {
|
|
|
+ if (!val) {
|
|
|
+ this.$refs['adjustmentForm'].resetFields();
|
|
|
+ this.weekList = [];
|
|
|
+ this.addWeek();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ addrVisible (val) {
|
|
|
+ if (!val) {
|
|
|
+ this.addrForm.address = '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
-<style lang="scss">
|
|
|
+<style lang="scss" scoped>
|
|
|
+.vipwrap {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ .newBand {
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.resetClassForm {
|
|
|
+ /deep/.el-date-editor.el-input,
|
|
|
+ /deep/.el-date-editor.el-input__inner {
|
|
|
+ width: 180px !important;
|
|
|
+ }
|
|
|
+}
|
|
|
+/deep/.el-date-editor.el-input,
|
|
|
+/deep/.el-date-editor.el-input__inner {
|
|
|
+ width: 100px !important;
|
|
|
+}
|
|
|
</style>
|