|
@@ -4,28 +4,24 @@
|
|
|
<data-form :data="info" :fields="fields" :rules="rules" @save="handleSave" :isNew="isNew" :reset="false">
|
|
|
<template #radios="{item}">
|
|
|
<template v-if="item.model === 'type'">
|
|
|
- <el-radio v-for="(i, index) in types" :key="index" :label="i.value">{{ i.label }}</el-radio>
|
|
|
- </template>
|
|
|
- <template v-if="item.model === 'allday'">
|
|
|
- <el-radio label="0">全天</el-radio>
|
|
|
- <el-radio label="1">半天</el-radio>
|
|
|
+ <el-radio v-for="(i, index) in types" :key="index" :label="i.code">{{ i.name }}</el-radio>
|
|
|
</template>
|
|
|
</template>
|
|
|
<template #custom="{item}">
|
|
|
<template v-if="item.model === 'lesson'">
|
|
|
- <el-row>
|
|
|
- <el-col :span="24" style="text-align:right; padding:10px">
|
|
|
- <el-button type="primary" size="mini" @click="drawer = true">添加时间段</el-button>
|
|
|
+ <el-row type="flex" align="middle" justify="end" class="btn_bar">
|
|
|
+ <el-col :span="2">
|
|
|
+ <el-button type="primary" size="mini" @click="toAddEvent">添加时间段</el-button>
|
|
|
</el-col>
|
|
|
+ <el-col :span="2">
|
|
|
+ <el-button type="primary" size="mini" @click="toAddDay">添加天数</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-table :data="lessons" stripe border>
|
|
|
<el-table-column align="center" label="时间" prop="time"></el-table-column>
|
|
|
- <el-table-column align="center" label="第一天" prop="day1"></el-table-column>
|
|
|
- <el-table-column align="center" label="第二天" prop="day2"></el-table-column>
|
|
|
- <el-table-column align="center" label="第三天" prop="day3"></el-table-column>
|
|
|
- <el-table-column align="center" label="第四天" prop="day4"></el-table-column>
|
|
|
- <el-table-column align="center" label="第五天" prop="day5"></el-table-column>
|
|
|
- <el-table-column align="center" label="第六天" prop="day6"></el-table-column>
|
|
|
+ <el-table-column align="center" v-for="(d, index) in dayList" :key="index" :label="d.label" :prop="d.prop"></el-table-column>
|
|
|
<el-table-column label="操作" align="center">
|
|
|
<template v-slot="{ row, $index }">
|
|
|
<el-row type="flex" align="middle" justify="center">
|
|
@@ -107,6 +103,7 @@ import _ from 'lodash';
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
const { mapActions: subject } = createNamespacedHelpers('subject');
|
|
|
const { mapActions: lesson } = createNamespacedHelpers('lesson');
|
|
|
+const { mapActions: classtype } = createNamespacedHelpers('classtype');
|
|
|
export default {
|
|
|
name: 'detail',
|
|
|
props: {},
|
|
@@ -114,36 +111,22 @@ export default {
|
|
|
data: () => {
|
|
|
return {
|
|
|
drawer: false,
|
|
|
- info: {},
|
|
|
+ info: { type: '0' },
|
|
|
form: {},
|
|
|
fields: [
|
|
|
{ label: '模板名称', required: true, model: 'title' },
|
|
|
- // { label: '类型', required: true, model: 'type', type: 'radio' },
|
|
|
- { label: '最后一天时长', required: true, model: 'allday', type: 'radio' },
|
|
|
+ { label: '类型', required: true, model: 'type', type: 'radio' },
|
|
|
{ label: '课程安排', model: 'lesson', custom: true },
|
|
|
],
|
|
|
- types: [
|
|
|
- { label: '普通班', value: '0' },
|
|
|
- { label: '特殊班', value: '1' },
|
|
|
- ],
|
|
|
+ types: [],
|
|
|
rules: {
|
|
|
title: [{ required: true, message: '请输入模板名称' }],
|
|
|
type: [{ required: true, message: '请选择模板类型' }],
|
|
|
},
|
|
|
oFields: [
|
|
|
- { label: '时间', model: 'time', type: 'time', custom: true },
|
|
|
- { label: '第一天类型', model: 'day1type', type: 'radio' },
|
|
|
- { label: '第一天安排', model: 'day1', custom: true },
|
|
|
- { label: '第二天类型', model: 'day2type', type: 'radio' },
|
|
|
- { label: '第二天安排', model: 'day2', custom: true },
|
|
|
- { label: '第三天类型', model: 'day3type', type: 'radio' },
|
|
|
- { label: '第三天安排', model: 'day3', custom: true },
|
|
|
- { label: '第四天类型', model: 'day4type', type: 'radio' },
|
|
|
- { label: '第四天安排', model: 'day4', custom: true },
|
|
|
- { label: '第五天类型', model: 'day5type', type: 'radio' },
|
|
|
- { label: '第五天安排', model: 'day5', custom: true },
|
|
|
- { label: '第六天类型', model: 'day6type', type: 'radio' },
|
|
|
- { label: '第六天安排', model: 'day6', custom: true },
|
|
|
+ // { label: '时间', model: 'time', type: 'time', custom: true },
|
|
|
+ // { label: '第一天类型', model: 'day1type', type: 'radio' },
|
|
|
+ // { label: '第一天安排', model: 'day1', custom: true },
|
|
|
],
|
|
|
lessons: lessons,
|
|
|
dayType: [{ label: '活动' }, { label: '课程' }],
|
|
@@ -159,14 +142,18 @@ export default {
|
|
|
{ label: '礼仪课小组面试' },
|
|
|
{ label: '结业仪式' },
|
|
|
],
|
|
|
+ dayList: [],
|
|
|
subjectList: [],
|
|
|
+ classTypeList: [],
|
|
|
};
|
|
|
},
|
|
|
- created() {},
|
|
|
+ created() {
|
|
|
+ this.getOtherList();
|
|
|
+ this.toSetDayList(6);
|
|
|
+ },
|
|
|
methods: {
|
|
|
- ...subject({
|
|
|
- getSubjectList: 'query',
|
|
|
- }),
|
|
|
+ ...classtype({ getClassType: 'query' }),
|
|
|
+ ...subject({ getSubjectList: 'query' }),
|
|
|
...lesson(['modelFetch', 'modelCreate', 'modelUpdate']),
|
|
|
async search() {
|
|
|
const res = await this.modelFetch(this.id);
|
|
@@ -183,7 +170,6 @@ export default {
|
|
|
let msg;
|
|
|
data.lessons = JSON.stringify(this.lessons);
|
|
|
if (isNew) {
|
|
|
- data.type = 1;
|
|
|
res = await this.modelCreate(data);
|
|
|
msg = `${this.pageTitle}添加成功`;
|
|
|
} else {
|
|
@@ -200,7 +186,7 @@ export default {
|
|
|
let subject = await this.getSubjectList({ type: this.info.type });
|
|
|
if (subject.errcode === 0) this.$set(this, `subjectList`, subject.data);
|
|
|
this.$set(this, `form`, newData);
|
|
|
- this.drawer = true;
|
|
|
+ this.toAddEvent();
|
|
|
},
|
|
|
handleOsave({ data }) {
|
|
|
//TODO 将对应另一天的课也改了
|
|
@@ -251,6 +237,38 @@ export default {
|
|
|
else reg = /^day\d$/;
|
|
|
return reg.test(model);
|
|
|
},
|
|
|
+ //添加时间段
|
|
|
+ toAddEvent() {
|
|
|
+ let arr = [{ label: '时间', model: 'time', type: 'time', custom: true }];
|
|
|
+ let day = _.get(this.dayList, 'length', 0);
|
|
|
+ for (let i = 1; i <= day; i++) {
|
|
|
+ let obj1 = { label: `第${i}天类型`, model: `day${i}type`, type: 'radio' };
|
|
|
+ let obj2 = { label: `第${i}天安排`, model: `day${i}`, custom: true };
|
|
|
+ arr.push(obj1);
|
|
|
+ arr.push(obj2);
|
|
|
+ }
|
|
|
+ this.$set(this, `oFields`, arr);
|
|
|
+ this.drawer = true;
|
|
|
+ },
|
|
|
+ //添加天数
|
|
|
+ toAddDay() {
|
|
|
+ let len = _.get(this.dayList, 'length', 0);
|
|
|
+ this.toSetDayList(len + 1);
|
|
|
+ },
|
|
|
+ toSetDayList(day) {
|
|
|
+ let res = [];
|
|
|
+ for (let i = 1; i <= day; i++) {
|
|
|
+ let obj = {};
|
|
|
+ obj.label = `第${i}天`;
|
|
|
+ obj.prop = `day${i}`;
|
|
|
+ res.push(obj);
|
|
|
+ }
|
|
|
+ this.$set(this, `dayList`, res);
|
|
|
+ },
|
|
|
+ async getOtherList() {
|
|
|
+ const res = await this.getClassType();
|
|
|
+ if (this.$checkRes(res)) this.$set(this, `types`, res.data);
|
|
|
+ },
|
|
|
},
|
|
|
watch: {
|
|
|
isNew: {
|