|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<div id="lesson-plan">
|
|
|
- <el-collapse v-model="activeName" accordion>
|
|
|
+ <el-collapse v-model="activeName" accordion v-if="views === 'setting'">
|
|
|
<template v-if="classList.length > 0">
|
|
|
<el-collapse-item v-for="(item, index) in classList" :key="`coli${index}`" :name="`${index}`">
|
|
|
<template slot="title">
|
|
@@ -49,6 +49,9 @@
|
|
|
<el-col :span="5">
|
|
|
<el-button type="primary" @click="saveLessson(item.class)" size="mini">保存班级课程</el-button>
|
|
|
</el-col>
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-button type="primary" @click="toPreview(item.class)" plain size="mini">课表预览</el-button>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</el-collapse-item>
|
|
@@ -57,6 +60,9 @@
|
|
|
<el-collapse-item title="该批次未分班,无法继续排课!" name="none"></el-collapse-item>
|
|
|
</template>
|
|
|
</el-collapse>
|
|
|
+ <cards title="课表预览" :returns="toReturns" v-else>
|
|
|
+ <time-table :data="previews"></time-table>
|
|
|
+ </cards>
|
|
|
<el-drawer :with-header="false" :visible.sync="drawer" direction="rtl" @close="drawerClose">
|
|
|
<el-tabs>
|
|
|
<el-tab-pane style="padding:10px">
|
|
@@ -70,7 +76,7 @@
|
|
|
<el-form-item label="星期" prop="week">
|
|
|
{{ form.week }}
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所授科目" prop="subid" required>
|
|
|
+ <el-form-item label="所授科目" prop="subid">
|
|
|
<el-select v-model="form.subid">
|
|
|
<el-option v-for="(item, index) in subjectList" :key="`subject${index}`" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
@@ -79,12 +85,13 @@
|
|
|
<el-input v-model="form.teaname" :readonly="true" placeholder="点击选择教师" @click.native="toChooseTeacher"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="时长" prop="day" required>
|
|
|
- <el-radio-group v-model="form.day">
|
|
|
- <el-radio v-for="(i, index) in dayList" :key="index" :label="i.label"></el-radio>
|
|
|
+ <el-radio-group v-model="form.day" @change="$forceUpdate()">
|
|
|
+ <el-radio v-for="(i, index) in dayList" :key="`day${index}`" :label="i.label"></el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="toSaveDrawer">保存</el-button>
|
|
|
+ <el-button @click="resetDrawer">重置</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-tab-pane>
|
|
@@ -134,6 +141,8 @@
|
|
|
|
|
|
<script>
|
|
|
import _ from 'lodash';
|
|
|
+import timeTable from '@frame/parts/time-table';
|
|
|
+import cards from '@frame/parts/cards';
|
|
|
import dataTable from '@frame/components/data-table';
|
|
|
import { createNamespacedHelpers } from 'vuex';
|
|
|
const { mapActions: location } = createNamespacedHelpers('location'); //地点
|
|
@@ -146,12 +155,15 @@ const { mapActions: dept } = createNamespacedHelpers('dept'); //配合教师表
|
|
|
export default {
|
|
|
name: 'lesson-plan',
|
|
|
props: {
|
|
|
- start: { type: String, required: true },
|
|
|
- end: { type: String, required: true },
|
|
|
+ startDate: { type: String, required: true },
|
|
|
+ endDate: { type: String, required: true },
|
|
|
classes: { type: Array, default: () => [] },
|
|
|
},
|
|
|
- components: { dataTable },
|
|
|
+ components: { dataTable, timeTable, cards },
|
|
|
data: () => ({
|
|
|
+ start: '',
|
|
|
+ end: '',
|
|
|
+ views: 'setting',
|
|
|
activeName: '0',
|
|
|
drawer: false,
|
|
|
dialog: false,
|
|
@@ -185,7 +197,6 @@ export default {
|
|
|
],
|
|
|
dayList: [{ label: '一天' }, { label: '半天' }],
|
|
|
rules: {
|
|
|
- subid: [{ required: true, message: '请选择科目' }],
|
|
|
day: [{ required: true, message: '请选择时长' }],
|
|
|
},
|
|
|
form: {},
|
|
@@ -201,6 +212,7 @@ export default {
|
|
|
cur: 1,
|
|
|
},
|
|
|
applyTeacherListPag: {},
|
|
|
+ previews: {},
|
|
|
}),
|
|
|
created() {
|
|
|
this.setDateList();
|
|
@@ -215,11 +227,14 @@ export default {
|
|
|
...director({ getDirectorList: 'query' }),
|
|
|
...dept({ getDeptList: 'query' }),
|
|
|
setDateList() {
|
|
|
- let start = new Date(this.start);
|
|
|
- let end = new Date(this.end);
|
|
|
+ let start = new Date(this.startDate);
|
|
|
+ let end = new Date(this.endDate);
|
|
|
+ this.$set(this, `start`, this.$fullDateString(new Date(start)));
|
|
|
let day = (end.getTime() - start.getTime()) / (1 * 24 * 60 * 60 * 1000);
|
|
|
+ let endDate = this.$fullDateString(new Date(new Date(start).setDate(new Date(start).getDate() + day - 1)));
|
|
|
+ this.$set(this, `end`, endDate);
|
|
|
let arr = [];
|
|
|
- for (let index = 0; index <= day; index++) {
|
|
|
+ for (let index = 0; index < day; index++) {
|
|
|
let s = new Date(JSON.parse(JSON.stringify(start)));
|
|
|
let i = s.setDate(s.getDate() + index);
|
|
|
i = this.$fullDateString(new Date(i));
|
|
@@ -255,6 +270,13 @@ export default {
|
|
|
this.form.day ? '' : (this.form.day = '一天');
|
|
|
this.drawer = true;
|
|
|
},
|
|
|
+ resetDrawer() {
|
|
|
+ this.$set(this.form, `subid`);
|
|
|
+ this.$set(this.form, `subname`);
|
|
|
+ this.$set(this.form, `teaid`);
|
|
|
+ this.$set(this.form, `teaname`);
|
|
|
+ delete this.form.teaid, this.form.teaname, this.form.subid, this.form.subname;
|
|
|
+ },
|
|
|
toChooseTeacher() {
|
|
|
if (this.form.subid) {
|
|
|
this.dialog = true;
|
|
@@ -279,7 +301,9 @@ export default {
|
|
|
toSaveDrawer() {
|
|
|
this.$refs['form'].validate(valid => {
|
|
|
if (valid) {
|
|
|
- this.form.subname = this.subjectList.find(f => f._id === this.form.subid).name;
|
|
|
+ if (this.subjectList.find(f => f._id === this.form.subid)) {
|
|
|
+ this.form.subname = this.subjectList.find(f => f._id === this.form.subid).name;
|
|
|
+ }
|
|
|
let form = JSON.parse(JSON.stringify(this.form));
|
|
|
let lesson = _.pick(form, ['day', 'subname', 'teaname', 'subid', 'teaid', 'date', 'week']);
|
|
|
// 整理列表所需要的数据
|
|
@@ -360,9 +384,30 @@ export default {
|
|
|
},
|
|
|
saveLessson(id) {
|
|
|
let tcc = this.classList.find(f => f.class === id);
|
|
|
+
|
|
|
// // 礼仪课,开班地点,教师地点,拓展训练地点修改班级表
|
|
|
this.$emit(`save`, tcc);
|
|
|
},
|
|
|
+ toPreview(id) {
|
|
|
+ let tcc = this.classList.find(f => f.class === id);
|
|
|
+ let numArr = tcc.name.match(/\d+/g);
|
|
|
+ let term = numArr[0];
|
|
|
+ let classes = numArr[2];
|
|
|
+ let headteacher = {};
|
|
|
+ this.directorList.map(f => (headteacher = f.options.find(ff => ff.id === tcc.headteacherid)));
|
|
|
+ let lyTeacher = this.lyTeacherList.find(f => f.id === tcc.lyteacherid);
|
|
|
+ let js = this.locationList.find(f => f.id === tcc.jslocationid);
|
|
|
+ let kbys = this.locationList.find(f => f.id === tcc.kbyslocationid);
|
|
|
+ let tzxl = this.locationList.find(f => f.id === tcc.kzjhlocationid);
|
|
|
+ let yc = this.locationList.find(f => f.id === tcc.yclocationid);
|
|
|
+ let object = { term, class: classes, start: this.start, end: this.end, lessons: tcc.lessons, headteacher, lyTeacher, js, kbys, tzxl, yc };
|
|
|
+ console.log(object);
|
|
|
+ this.$set(this, `previews`, object);
|
|
|
+ this.views = 'table';
|
|
|
+ },
|
|
|
+ toReturns() {
|
|
|
+ this.views = 'setting';
|
|
|
+ },
|
|
|
},
|
|
|
computed: {
|
|
|
mainTitle() {
|