|
@@ -24,10 +24,23 @@
|
|
|
<el-table-column align="center" prop="classDate" label="上课日期">
|
|
|
<template slot-scope="scope">
|
|
|
{{ scope.row.classDate | dayjsFormat }}
|
|
|
+ {{ scope.row.startClassTime | dayjsFormat('HH:mm') }}~{{ scope.row.endClassTime | dayjsFormat('HH:mm') }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column align="center" prop="startClassTime" label="开始时间"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="endClassTime" label="结束时间"></el-table-column> -->
|
|
|
+ <el-table-column label="操作" width="180" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div>
|
|
|
+ <el-button type="text" v-if="scope.row.id &&
|
|
|
+ !scope.row.isSettlement &&
|
|
|
+ $helpers.permission(
|
|
|
+ 'courseSchedule/classStartDateAdjust/liveReset'
|
|
|
+ )
|
|
|
+ " @click="resetClass(scope.row)">调整</el-button>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="center" prop="startClassTime" label="开始时间"></el-table-column>
|
|
|
- <el-table-column align="center" prop="endClassTime" label="结束时间"></el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
|
|
@@ -38,17 +51,17 @@
|
|
|
<el-input disabled v-model.trim="adjustmentForm.count"></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="课程类型" prop="courseType">
|
|
|
+ <!-- <el-form-item label="课程类型" prop="courseType">
|
|
|
<el-select clearable v-model.trim="adjustmentForm.courseType" disabled>
|
|
|
<el-option label="线上课" value="ONLINE"></el-option>
|
|
|
<el-option label="线下课" value="OFFLINE"></el-option>
|
|
|
</el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="教学地点" v-if="adjustmentForm.courseType == 'OFFLINE'">
|
|
|
+ </el-form-item> -->
|
|
|
+ <!-- <el-form-item label="教学地点" v-if="adjustmentForm.courseType == 'OFFLINE'">
|
|
|
<el-select v-model.trim="adjustmentForm.address" 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-item> -->
|
|
|
<br />
|
|
|
<el-form-item label="排课起始时间" prop="courseTime">
|
|
|
<el-date-picker v-model.trim="adjustmentForm.courseTime" :picker-options="pickerOptions()"
|
|
@@ -89,13 +102,48 @@
|
|
|
<el-button type="primary" @click="submitAdjustment">确 定</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <el-dialog title="课程调整" width="400px" :before-close="handleClose" :visible.sync="courseVisible">
|
|
|
+ <el-form :model="maskForm" class="maskForm" ref="maskForm" :rules="maskRules" label-position="right"
|
|
|
+ label-width="80px" :inline="true">
|
|
|
+ <el-form-item label="上课日期" prop="date">
|
|
|
+ <el-date-picker v-model.trim="maskForm.date" type="date" :picker-options="coursesDate()"
|
|
|
+ value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="开始时间" prop="startTime">
|
|
|
+ <el-time-picker placeholder="起始时间" v-model.trim="startTime" @change="changeStartTime" format="HH:mm"
|
|
|
+ value-format="HH:mm" :picker-options="{
|
|
|
+ selectableRange: `${nowTime} - 23:30:00`
|
|
|
+ }"></el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="结束时间" prop="endTime">
|
|
|
+ <el-time-picker placeholder="结束时间" format="HH:mm" value-format="HH:mm" v-model="maskForm.endTime" disabled>
|
|
|
+ </el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <!--v-if="maskForm.teachMode=='OFFLINE'"-->
|
|
|
+ <!-- <el-form-item label="课程类型" prop="courseType">
|
|
|
+ <el-select clearable v-model.trim="maskForm.teachMode">
|
|
|
+ <el-option label="线上课" value="ONLINE"></el-option>
|
|
|
+ <el-option label="线下课" value="OFFLINE"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="教学地点" v-if="maskForm.teachMode == 'OFFLINE'">
|
|
|
+ <el-select v-model.trim="maskForm.address" 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>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="courseVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitResetClass">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {
|
|
|
- vipCourseAdjust
|
|
|
-} from "@/api/vipSeting";
|
|
|
+import { resetCourse } from "@/api/buildTeam";
|
|
|
+import { vipCourseAdjust } from "@/api/vipSeting";
|
|
|
import { liveCourseList } from '../../api'
|
|
|
import { diffTimerFormMinute, addTimerFormMinute } from "@/utils/date";
|
|
|
import dayjs from 'dayjs';
|
|
@@ -147,7 +195,20 @@ export default {
|
|
|
endTime: "",
|
|
|
moid: new Date().getTime()
|
|
|
}
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ courseVisible: false,
|
|
|
+ maskForm: {
|
|
|
+ date: "",
|
|
|
+ startTime: "",
|
|
|
+ endTime: "",
|
|
|
+ id: "",
|
|
|
+ address: "",
|
|
|
+ teachMode: ""
|
|
|
+ },
|
|
|
+ maskRules: {
|
|
|
+ date: [{ required: true, message: "请选择上课时间", trigger: "blur" }]
|
|
|
+ },
|
|
|
+ startTime: "",
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -205,6 +266,15 @@ export default {
|
|
|
this.adjustmentVisible = true;
|
|
|
}
|
|
|
},
|
|
|
+ coursesDate(dateStr) {
|
|
|
+ let self = this;
|
|
|
+ return {
|
|
|
+ firstDayOfWeek: 1,
|
|
|
+ disabledDate: time => {
|
|
|
+ return time.getTime() + 86400000 <= new Date().getTime();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ },
|
|
|
pickerOptions(dateStr) {
|
|
|
return {
|
|
|
firstDayOfWeek: 1,
|
|
@@ -213,6 +283,71 @@ export default {
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
+ resetClass(row) {
|
|
|
+ /**
|
|
|
+ * maskForm.startTime
|
|
|
+ */
|
|
|
+ this.maskForm.date = row.classDate.split(" ")[0];
|
|
|
+ this.startTime = row.startClassTimeStr.substring(0, 5);
|
|
|
+ this.maskForm.endTime = row.endClassTimeStr.substring(0, 5);
|
|
|
+ // this.maskForm.endTime = row.endClassTimeStr;
|
|
|
+ this.maskForm.id = row.id;
|
|
|
+ this.maskForm.address = row.schoolId || null;
|
|
|
+ this.maskForm.teachMode = row.teachMode;
|
|
|
+ // 修改课时
|
|
|
+ this.courseVisible = true;
|
|
|
+ },
|
|
|
+ handleClose() {
|
|
|
+ this.courseVisible = false;
|
|
|
+ this.startTime = "";
|
|
|
+ this.maskForm = {
|
|
|
+ date: "",
|
|
|
+ startTime: "",
|
|
|
+ endTime: "",
|
|
|
+ id: "",
|
|
|
+ address: "",
|
|
|
+ teachMode: ""
|
|
|
+ };
|
|
|
+ this.$refs["maskForm"].resetFields();
|
|
|
+ },
|
|
|
+ submitResetClass() {
|
|
|
+ // endClassTimeStr: this.maskForm.endTime,
|
|
|
+ if (!this.startTime) {
|
|
|
+ this.$message.error("请填写修改时间");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let classTime = this.maskForm.date
|
|
|
+ ? new Date(this.maskForm.date)
|
|
|
+ : new Date();
|
|
|
+ let ymd =
|
|
|
+ classTime.getFullYear() +
|
|
|
+ "-" +
|
|
|
+ (classTime.getMonth() + 1) +
|
|
|
+ "-" +
|
|
|
+ classTime.getDate();
|
|
|
+ let tempStartTime = this.startTime;
|
|
|
+ if (this.startTime.length <= 5) {
|
|
|
+ tempStartTime = tempStartTime + ":00";
|
|
|
+ }
|
|
|
+ let obj = {
|
|
|
+ startClassTime: ymd + " " + this.startTime,
|
|
|
+ // startClassTimeStr: this.startTime,
|
|
|
+ id: this.maskForm.id,
|
|
|
+ classDate: this.maskForm.date,
|
|
|
+ schoolId: this.maskForm.address || null,
|
|
|
+ teachMode: this.maskForm.teachMode || null,
|
|
|
+ groupType: "VIP"
|
|
|
+ };
|
|
|
+ resetCourse(obj).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success("修改成功");
|
|
|
+ this.courseVisible = false;
|
|
|
+ this.getList();
|
|
|
+ } //else {
|
|
|
+ // this.$message.error(res.msg)
|
|
|
+ // }
|
|
|
+ });
|
|
|
+ },
|
|
|
submitAdjustment() {
|
|
|
this.$refs["adjustmentForm"].validate(item => {
|
|
|
if (item) {
|
|
@@ -246,6 +381,22 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ changeStartTime(val) {
|
|
|
+ this.$nextTick(res => {
|
|
|
+ if (val) {
|
|
|
+ this.$set(
|
|
|
+ this.maskForm,
|
|
|
+ "endTime",
|
|
|
+ addTimerFormMinute(this.maskForm.date, val, this.courseTime)
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ this.$set(this.maskForm, "endTime", "");
|
|
|
+ }
|
|
|
+ if (!this.maskForm.endTime) {
|
|
|
+ this.$set(this, "startTime", "");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
changeStartTimes(val, item) {
|
|
|
this.$nextTick(res => {
|
|
|
if (val) {
|
|
@@ -265,6 +416,17 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ nowTime() {
|
|
|
+ // console.log(that.maskForm.date)
|
|
|
+ let str = "06:00:00";
|
|
|
+ if (this.maskForm.date == dayjs(new Date()).format("YYYY-MM-DD")) {
|
|
|
+ str = dayjs(new Date()).format("HH:mm:ss");
|
|
|
+ }
|
|
|
+
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+ },
|
|
|
filters: {
|
|
|
formatterTime(val) {
|
|
|
let result;
|