|
@@ -197,20 +197,21 @@
|
|
|
<el-form-item label="循环周次"
|
|
|
prop="week">
|
|
|
<el-select v-model="maskForm.week">
|
|
|
- <el-option label="周一"
|
|
|
- value="周一"></el-option>
|
|
|
- <el-option label="周二"
|
|
|
- value="周二"></el-option>
|
|
|
- <el-option label="周三"
|
|
|
- value="周三"></el-option>
|
|
|
- <el-option label="周四"
|
|
|
- value="周四"></el-option>
|
|
|
- <el-option label="周五"
|
|
|
- value="周五"></el-option>
|
|
|
- <el-option label="周六"
|
|
|
- value="周六"></el-option>
|
|
|
- <el-option label="周日"
|
|
|
- value="周日"></el-option>
|
|
|
+ <el-option label="星期日"
|
|
|
+ value="0"></el-option>
|
|
|
+ <el-option label="星期一"
|
|
|
+ value="1"></el-option>
|
|
|
+ <el-option label="星期二"
|
|
|
+ value="2"></el-option>
|
|
|
+ <el-option label="星期三"
|
|
|
+ value="3"></el-option>
|
|
|
+ <el-option label="星期四"
|
|
|
+ value="4"></el-option>
|
|
|
+ <el-option label="星期五"
|
|
|
+ value="5"></el-option>
|
|
|
+ <el-option label="星期六"
|
|
|
+ value="6"></el-option>
|
|
|
+
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="上课时间"
|
|
@@ -251,16 +252,18 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div style="margin:20px 0">
|
|
|
+ <el-date-picker v-model="maskForm.courseStart"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择开课时间">
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
|
|
|
- <el-date-picker v-model="maskForm.courseStart"
|
|
|
- type="date"
|
|
|
- placeholder="请选择时间">
|
|
|
- </el-date-picker>
|
|
|
<div slot="footer"
|
|
|
class="dialog-footer">
|
|
|
<el-button @click="dialogFormVisible = false">取 消</el-button>
|
|
|
<el-button type="primary"
|
|
|
- @click="dialogFormVisible = false">确 定</el-button>
|
|
|
+ @click="setTimeTable">确 定</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
@@ -318,7 +321,9 @@ export default {
|
|
|
attribute1: '',
|
|
|
attribute2: '',
|
|
|
lookList: [], // 展示课表
|
|
|
- timeTable: [] // 真正的课表
|
|
|
+ timeTable: [], // 真正的课表
|
|
|
+ giveNum: '',
|
|
|
+ weekDay: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
|
|
|
}
|
|
|
},
|
|
|
mounted () {
|
|
@@ -354,6 +359,7 @@ export default {
|
|
|
let giveNum;
|
|
|
if (this.hotType == 'GIVE_CLASS') {
|
|
|
giveNum = parseInt((parseInt(offline) + parseInt(online)) / this.attribute1 * this.attribute2);
|
|
|
+ this.giveNum = giveNum || 0;
|
|
|
return (parseInt(offline) + parseInt(online) + '+' + giveNum) || '';
|
|
|
}
|
|
|
return parseInt(offline) + parseInt(online) || ''
|
|
@@ -426,9 +432,9 @@ export default {
|
|
|
// 点击确插入课表
|
|
|
addWeek () {
|
|
|
let courseType = this.maskForm.type;
|
|
|
- let week = this.maskForm.week;
|
|
|
+ // let week = ;
|
|
|
let startTime = this.maskForm.startTime;
|
|
|
- if (!courseType || !week || !startTime) {
|
|
|
+ if (!courseType || !this.maskForm.week || !startTime) {
|
|
|
this.$message({
|
|
|
type: 'error',
|
|
|
message: '请填写完成信息'
|
|
@@ -449,56 +455,83 @@ export default {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if (this.lookList.length <= 0) {
|
|
|
- this.lookList.push({
|
|
|
- 'type': str,
|
|
|
- 'week': week,
|
|
|
- 'startTime': startTime,
|
|
|
- 'endTime': endTime,
|
|
|
- 'time': startTime + '-' + endTime,
|
|
|
- 'id': Date.now()
|
|
|
- })
|
|
|
- } else {
|
|
|
- for (let i in this.lookList) {
|
|
|
- console.log('进入循环')
|
|
|
- // 判断周几相等
|
|
|
- if (this.lookList[i].week == week) {
|
|
|
+ // if (this.lookList.length == 0) {
|
|
|
+ // this.lookList.push({
|
|
|
+ // 'type': str,
|
|
|
+ // 'week': this.weekDay[this.maskForm.week],
|
|
|
+ // 'weekDay': this.maskForm.week,
|
|
|
+ // 'startTime': startTime,
|
|
|
+ // 'endTime': endTime,
|
|
|
+ // 'time': startTime + '-' + endTime,
|
|
|
+ // 'id': Date.now()
|
|
|
+ // })
|
|
|
|
|
|
- // 如果相等 判断时间 是否在时间段
|
|
|
- if (this.timeIsrange(this.lookList[i].startTime, this.lookList[i].endTime, startTime) || this.timeIsrange(this.lookList[i].startTime, this.lookList[i].endTime, endTime)) {
|
|
|
- // 提示语 不添加
|
|
|
- this.$message({
|
|
|
- type: 'error',
|
|
|
- message: '该时间段已排课请重选时间'
|
|
|
- })
|
|
|
- return
|
|
|
- } else {
|
|
|
- this.lookList.push({
|
|
|
- 'type': str,
|
|
|
- 'week': week,
|
|
|
- 'startTime': startTime,
|
|
|
- 'endTime': endTime,
|
|
|
- 'time': startTime + '-' + endTime,
|
|
|
- 'id': Date.now()
|
|
|
- })
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 不等就直接添加
|
|
|
- console.log(11111);
|
|
|
- this.lookList.push({
|
|
|
- 'type': str,
|
|
|
- 'week': week,
|
|
|
- 'startTime': startTime,
|
|
|
- 'endTime': endTime,
|
|
|
- 'time': startTime + '-' + endTime,
|
|
|
- 'id': Date.now()
|
|
|
- })
|
|
|
- }
|
|
|
+ // } else {
|
|
|
+ // let flag = false;
|
|
|
+ // for (let i in this.lookList) {
|
|
|
+ // // 判断周几相等
|
|
|
+ // if (this.lookList[i].weekDay == this.maskForm.week && !this.timeIsrange(this.lookList[i].startTime, this.lookList[i].endTime, startTime) && !this.timeIsrange(this.lookList[i].startTime, this.lookList[i].endTime, endTime)) {
|
|
|
+ // this.lookList.push({
|
|
|
+ // 'type': str,
|
|
|
+ // 'week': this.weekDay[this.maskForm.week],
|
|
|
+ // 'weekDay': this.maskForm.week,
|
|
|
+ // 'startTime': startTime,
|
|
|
+ // 'endTime': endTime,
|
|
|
+ // 'time': startTime + '-' + endTime,
|
|
|
+ // 'id': Date.now()
|
|
|
+ // })
|
|
|
+ // } else if (this.lookList[i].weekDay == this.maskForm.week && (this.timeIsrange(this.lookList[i].startTime, this.lookList[i].endTime, startTime) || this.timeIsrange(this.lookList[i].startTime, this.lookList[i].endTime, endTime))) {
|
|
|
+ // this.$message({
|
|
|
+ // type: 'error',
|
|
|
+ // message: '该时间段已排课请重选时间'
|
|
|
+ // })
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // // 如果相等 判断时间 是否在时间段
|
|
|
+ // // if () {
|
|
|
+ // // // 提示语 不添加
|
|
|
+
|
|
|
+ // // } else {
|
|
|
|
|
|
+ // // console.log('周相等但时间段不等添加');
|
|
|
+ // // return
|
|
|
+ // // }
|
|
|
+ // // } else {
|
|
|
+ // // // 不等就直接添加
|
|
|
+ // // // 判断一下当前星期 有没有 没有就添加
|
|
|
+ // // let arr = [];
|
|
|
+ // // for (let j in this.lookList) {
|
|
|
+ // // arr.push(parseInt(this.lookList[j].weekDay))
|
|
|
+ // // }
|
|
|
+ // // // 去重
|
|
|
+ // // arr = Array.from(new Set(arr))
|
|
|
+ // // console.log(arr, this.maskForm.week);
|
|
|
+ // // if (arr.indexOf(parseInt(this.maskForm.week)) == -1) {
|
|
|
+ // // this.lookList.push({
|
|
|
+ // // 'type': str,
|
|
|
+ // // 'week': this.weekDay[this.maskForm.week],
|
|
|
+ // // 'weekDay': this.maskForm.week,
|
|
|
+ // // 'startTime': startTime,
|
|
|
+ // // 'endTime': endTime,
|
|
|
+ // // 'time': startTime + '-' + endTime,
|
|
|
+ // // 'id': Date.now()
|
|
|
+ // // })
|
|
|
+ // // } else {
|
|
|
+
|
|
|
+ // // }
|
|
|
+
|
|
|
+ // // return
|
|
|
+ // // }
|
|
|
+
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ let flag = false;
|
|
|
+ for (let i in this.lookList) {
|
|
|
+ if (this.lookList[i].weekDay == this.maskForm.week) {
|
|
|
+ // f
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// console.log(this.lookList);
|
|
|
},
|
|
|
// 分钟小时相加减
|
|
@@ -552,6 +585,106 @@ export default {
|
|
|
this.lookList.splice(i, 1);
|
|
|
}
|
|
|
}
|
|
|
+ },
|
|
|
+ setTimeTable () {
|
|
|
+ // 拿到线上课数与线下课数 以及
|
|
|
+ let online = parseInt(this.centerForm.onlineCourseNum);
|
|
|
+ let offline = parseInt(this.centerForm.offlineCourseNum);
|
|
|
+ let giveNum = this.giveNum;
|
|
|
+ let giveClassType = this.centerForm.radio;
|
|
|
+ if (giveClassType == 'online') {
|
|
|
+ // 线上
|
|
|
+ online += giveNum;
|
|
|
+ } else {
|
|
|
+ offline += giveNum;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据周算课
|
|
|
+ // 获取选择到的时间是周几
|
|
|
+ // 获取looklist里 线上课是周几上 周一 周二
|
|
|
+ // 线下课时周几上 周三周四
|
|
|
+ // 找到最近的周几的日期 排课 判断当前所排的课时线上或者线下
|
|
|
+ // 没生成一条上课记录 所对应的 线上线下课次数-1; 当线上 线下课都为0时 这个数组生成
|
|
|
+ let date = this.maskForm.courseStart;
|
|
|
+ let date1 = this.maskForm.courseStart;
|
|
|
+ let startWeekday = this.maskForm.courseStart.getDay();
|
|
|
+ let onlineList = [];
|
|
|
+ let offlineList = [];
|
|
|
+ for (let i in this.lookList) {
|
|
|
+ if (this.lookList[i].type == '线上课') {
|
|
|
+ onlineList.push({ week: this.lookList[i].weekDay, date: this.lookList[i] })
|
|
|
+ }
|
|
|
+ if (this.lookList[i].type == '线下课') {
|
|
|
+ offlineList.push({ week: this.lookList[i].weekDay, date: this.lookList[i] })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 获取要排课的总数 获取每周要排多少次
|
|
|
+ console.log(offline)
|
|
|
+ console.log(online)
|
|
|
+ while (online >= 1) {
|
|
|
+ // 排线上课g
|
|
|
+ for (let i in onlineList) {
|
|
|
+ let num;
|
|
|
+ onlineList[i].week - date.getDay() >= 0 ? num = onlineList[i].week - date.getDay() : num = onlineList[i].week - date.getDay() + 7// +差值的天数://差值的天数+7
|
|
|
+ // console.log(num);
|
|
|
+ let dataStr = this.getThinkDate(date, num);
|
|
|
+ this.timeTable.push({
|
|
|
+ 'classDate': dataStr,
|
|
|
+ 'actualTeacherId': this.leftForm.teacher,
|
|
|
+ 'startClassTime': dataStr + ' ' + onlineList[i].date.startTime,
|
|
|
+ "endClassTime": dataStr + ' ' + onlineList[i].date.endTime,
|
|
|
+ "teachMode": 'ONLINE'
|
|
|
+ })
|
|
|
+ online--;
|
|
|
+ if (online == 0) return
|
|
|
+ }
|
|
|
+ // 加一周
|
|
|
+ date.setDate(date.getDate() + 7);
|
|
|
+ }
|
|
|
+ while (offline >= 1) {
|
|
|
+ // 排线下课
|
|
|
+ for (let i in offlineList) {
|
|
|
+ let num;
|
|
|
+ offlineList[i].week - startWeekday > 0 ? num = offlineList[i].week - startWeekday : num = offlineList[i].week - startWeekday + 7// +差值的天数://差值的天数+7
|
|
|
+ let dataStr = this.getThinkDate(date1, num);
|
|
|
+ this.timeTable.push({
|
|
|
+ 'classDate': dataStr,
|
|
|
+ 'actualTeacherId': this.leftForm.teacher,
|
|
|
+ 'startClassTime': dataStr + ' ' + offlineList[i].date.startTime,
|
|
|
+ "endClassTime": dataStr + ' ' + offlineList[i].date.endTime,
|
|
|
+ "teachMode": 'ONLINE'
|
|
|
+ })
|
|
|
+ offline--;
|
|
|
+ if (offline == 0) return
|
|
|
+ }
|
|
|
+ // 加一周
|
|
|
+ date1.setDate(date1.getDate() + 7);
|
|
|
+ }
|
|
|
+ console.log(this.timeTable);
|
|
|
+ },
|
|
|
+ getThinkDate (date, num) {
|
|
|
+
|
|
|
+ let Stamp = date;
|
|
|
+ Stamp.setDate(date.getDate() + num) // 获取当前月数的第几天
|
|
|
+ // console.log(date.getMonth() + 1)
|
|
|
+ // console.log(Stamp.getMonth() + 1)
|
|
|
+ var year = Stamp.getFullYear(); //获取完整的年份(4位,1970-????)
|
|
|
+ var month = Stamp.getMonth() + 1; //获取当前月份(0-11,0代表1月)
|
|
|
+ var mvar = '';
|
|
|
+ if (month < 10) {
|
|
|
+ mvar = '0' + month;
|
|
|
+ } else {
|
|
|
+ mvar = month + '';
|
|
|
+ }
|
|
|
+ var day = Stamp.getDate();
|
|
|
+ var dvar = '';
|
|
|
+ if (day < 10) {
|
|
|
+ dvar = '0' + day;
|
|
|
+ } else {
|
|
|
+ dvar = day + '';
|
|
|
+ }
|
|
|
+ console.log(year + "-" + mvar + '-' + dvar);
|
|
|
+ return year + "-" + mvar + '-' + dvar;
|
|
|
}
|
|
|
},
|
|
|
}
|