|
@@ -0,0 +1,351 @@
|
|
|
+<template>
|
|
|
+ <div class='course-container'>
|
|
|
+ <div class="left">
|
|
|
+ <el-form :model="leftFrom"
|
|
|
+ :inline="true">
|
|
|
+ <el-form-item label="合奏班">
|
|
|
+ <el-select v-model="leftFrom.all">
|
|
|
+ <el-option label="11"
|
|
|
+ value='1'></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="排课起始时间">
|
|
|
+ <el-date-picker v-model="leftFrom.time"
|
|
|
+ align="right"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ :picker-options="pickerOptions">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="排课次数">
|
|
|
+ <el-input type="number"
|
|
|
+ v-model="leftFrom.num"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <p>周次循环<span style="margin-left:10px;">上课时间</span></p>
|
|
|
+ <div class="checkWrap">
|
|
|
+ <el-checkbox-group v-model="checkList">
|
|
|
+ <div class="chioseday">
|
|
|
+ <el-checkbox label="周一"></el-checkbox>
|
|
|
+ <el-time-select placeholder="起始"
|
|
|
+ v-model="week.Monday.startTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '06:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '18:30'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+
|
|
|
+ <el-time-select placeholder="结束"
|
|
|
+ v-model="week.Monday.endTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: week.Monday.startTime
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ </div>
|
|
|
+ <div class="chioseday">
|
|
|
+ <el-checkbox label="周二"></el-checkbox>
|
|
|
+ <el-time-select placeholder="起始"
|
|
|
+ v-model="week.Tuesday.startTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '06:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '18:30'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ <el-time-select placeholder="结束"
|
|
|
+ v-model="week.Tuesday.endTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: week.Tuesday.startTime
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ </div>
|
|
|
+ <div class="chioseday">
|
|
|
+ <el-checkbox label="周三"></el-checkbox>
|
|
|
+ <el-time-select placeholder="起始"
|
|
|
+ v-model="week.Wednesday.startTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '06:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '18:30'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+
|
|
|
+ <el-time-select placeholder="结束"
|
|
|
+ v-model="week.Wednesday.endTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: week.Monday.startTime
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ </div>
|
|
|
+ <div class="chioseday">
|
|
|
+ <el-checkbox label="周四"></el-checkbox>
|
|
|
+ <el-time-select placeholder="起始"
|
|
|
+ v-model="week.Thursday.startTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '06:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '18:30'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+
|
|
|
+ <el-time-select placeholder="结束"
|
|
|
+ v-model="week.Thursday.endTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: week.Thursday.startTime
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ </div>
|
|
|
+ <div class="chioseday">
|
|
|
+ <el-checkbox label="周五"></el-checkbox>
|
|
|
+ <el-time-select placeholder="起始"
|
|
|
+ v-model="week.Friday.startTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '06:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '18:30'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+
|
|
|
+ <el-time-select placeholder="结束"
|
|
|
+ v-model="week.Friday.endTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: week.Friday.startTime
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ </div>
|
|
|
+ <div class="chioseday">
|
|
|
+ <el-checkbox label="周六"></el-checkbox>
|
|
|
+ <el-time-select placeholder="起始"
|
|
|
+ v-model="week.Saturday.startTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '06:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '18:30'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+
|
|
|
+ <el-time-select placeholder="结束"
|
|
|
+ v-model="week.Saturday.endTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: week.Saturday.startTime
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ </div>
|
|
|
+ <div class="chioseday">
|
|
|
+ <el-checkbox label="周日"></el-checkbox>
|
|
|
+ <el-time-select placeholder="起始"
|
|
|
+ v-model="week.Sunday.startTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '06:30',
|
|
|
+ step: '00:05',
|
|
|
+ end: '18:30'
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+
|
|
|
+ <el-time-select placeholder="结束"
|
|
|
+ v-model="week.Sunday.endTime"
|
|
|
+ :picker-options="{
|
|
|
+ start: '08:30',
|
|
|
+ step: '00:15',
|
|
|
+ end: '23:30',
|
|
|
+ minTime: week.Sunday.startTime
|
|
|
+ }">
|
|
|
+ </el-time-select>
|
|
|
+ </div>
|
|
|
+ </el-checkbox-group>
|
|
|
+ <div class="holidayWrap">
|
|
|
+ <el-checkbox v-model="isholiday">跳过节假日</el-checkbox>
|
|
|
+ </div>
|
|
|
+ <div class="btnWrap">
|
|
|
+ <div class="closeBtn">取消排课</div>
|
|
|
+ <div class="okBtn">一件排课</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="right">
|
|
|
+ <el-calendar>
|
|
|
+ <!-- 这里使用的是 2.5 slot 语法,对于新项目请使用 2.6 slot 语法-->
|
|
|
+ <template slot="dateCell"
|
|
|
+ slot-scope="{date, data}">
|
|
|
+ <p :class="data.isSelected ? 'is-selected' : ''">
|
|
|
+ {{ data.day.split('-').slice(1).join('-') }} {{ data.isSelected ? '✔️' : ''}}
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ </el-calendar>
|
|
|
+ <div class="btnWrap">
|
|
|
+ <div class="nextBtn">下一步</div>
|
|
|
+ <div class="okBtn">确定</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ leftFrom: {
|
|
|
+ all: '',
|
|
|
+ time: '',
|
|
|
+ num: ''
|
|
|
+ },
|
|
|
+ pickerOptions: {
|
|
|
+ disabledDate (time) {
|
|
|
+ return time.getTime() > Date.now();
|
|
|
+ },
|
|
|
+ shortcuts: [{
|
|
|
+ text: '今天',
|
|
|
+ onClick (picker) {
|
|
|
+ picker.$emit('pick', new Date());
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ text: '昨天',
|
|
|
+ onClick (picker) {
|
|
|
+ const date = new Date();
|
|
|
+ date.setTime(date.getTime() - 3600 * 1000 * 24);
|
|
|
+ picker.$emit('pick', date);
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ text: '一周前',
|
|
|
+ onClick (picker) {
|
|
|
+ const date = new Date();
|
|
|
+ date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
|
|
|
+ picker.$emit('pick', date);
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ checkList: [],
|
|
|
+ week: {
|
|
|
+ Monday: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: ''
|
|
|
+ },
|
|
|
+ Tuesday: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: ''
|
|
|
+ },
|
|
|
+ Wednesday: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: ''
|
|
|
+ },
|
|
|
+ Thursday: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: ''
|
|
|
+ },
|
|
|
+ Friday: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: ''
|
|
|
+ },
|
|
|
+ Saturday: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: ''
|
|
|
+ },
|
|
|
+ Sunday: {
|
|
|
+ startTime: '',
|
|
|
+ endTime: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ isholiday: false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="scss">
|
|
|
+.course-container {
|
|
|
+ padding: 47px 58px;
|
|
|
+ background-color: #fff;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ .left {
|
|
|
+ width: 300px;
|
|
|
+ min-width: 300px;
|
|
|
+ margin-right: 90px;
|
|
|
+ .chioseday {
|
|
|
+ margin-top: 20px;
|
|
|
+ .el-date-editor.el-input,
|
|
|
+ .el-date-editor.el-input__inner {
|
|
|
+ width: 100px;
|
|
|
+ margin-left: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .holidayWrap {
|
|
|
+ margin-top: 34px;
|
|
|
+ margin-bottom: 40px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-items: center;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ .btnWrap {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: space-around;
|
|
|
+ div {
|
|
|
+ width: 120px;
|
|
|
+ height: 40px;
|
|
|
+ border-radius: 4px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 40px;
|
|
|
+ cursor: pointer;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ .closeBtn {
|
|
|
+ background-color: #777;
|
|
|
+ }
|
|
|
+ .okBtn {
|
|
|
+ background-color: #14928a;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .right {
|
|
|
+ .is-selected {
|
|
|
+ color: #1989fa;
|
|
|
+ }
|
|
|
+ .el-calendar {
|
|
|
+ max-width: 950px;
|
|
|
+ }
|
|
|
+ .btnWrap {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-end;
|
|
|
+ div {
|
|
|
+ width: 120px;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ text-align: center;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 4px;
|
|
|
+ margin-right: 20px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .nextBtn {
|
|
|
+ background-color: #444;
|
|
|
+ }
|
|
|
+ .okBtn {
|
|
|
+ background-color: #f97215;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|