|
@@ -1,345 +1,461 @@
|
|
<template>
|
|
<template>
|
|
- <div class="course-detail-content" >
|
|
|
|
- <div class="course-base-info">
|
|
|
|
- <div class="course-base-info-header">
|
|
|
|
- <p>基础设置</p>
|
|
|
|
- </div>
|
|
|
|
- <div class="course-base-info-content">
|
|
|
|
- <Form :model="courseInfo" label-position="top">
|
|
|
|
- <FormItem label="课程名称">
|
|
|
|
- <Input v-model="courseInfo.courseName" placeholder="请输入课程名称..."></Input>
|
|
|
|
- </FormItem>
|
|
|
|
- <FormItem label="设置学制" v-if="isLoaded">
|
|
|
|
- <Select v-model="courseInfo.periodCode" filterable style="width:100%" placeholder="请选择学制">
|
|
|
|
- <Option v-for="(item,index) in $store.state.schoolBaseInfo.schoolBaseInfo.period" :value="item.periodCode" :key="index" @click.native="getCurrentGrade(index)">{{ item.periodName }}</Option>
|
|
|
|
- </Select>
|
|
|
|
- </FormItem>
|
|
|
|
- <FormItem label="设置年级">
|
|
|
|
- <Select v-model="courseInfo.gradeCode" filterable style="width:100%" placeholder="请选择年级">
|
|
|
|
- <Option v-for="(item,index) in gradeList" :value="item.gradeCode" :key="index">{{ item.gradeName }}</Option>
|
|
|
|
- </Select>
|
|
|
|
- </FormItem>
|
|
|
|
- <FormItem label="设置科目">
|
|
|
|
- <Select v-model="courseInfo.subjectCode" filterable style="width:100%" placeholder="请选择科目">
|
|
|
|
- <Option v-for="(item,index) in subjectList" :value="item.subjectCode" :key="index" >{{ item.subjectName }}</Option>
|
|
|
|
- </Select>
|
|
|
|
- </FormItem>
|
|
|
|
- <FormItem label="课程公告">
|
|
|
|
- <div ref="courseNotice"></div>
|
|
|
|
- </FormItem>
|
|
|
|
- </Form>
|
|
|
|
- <div class="confirm-btn" @click="submit()">
|
|
|
|
- 保存变更
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="course-detail-content">
|
|
|
|
+ <div class="course-base-info">
|
|
|
|
+ <div class="course-base-info-header">
|
|
|
|
+ <p>基础设置</p>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="course-base-info-content">
|
|
|
|
+ <Form ref="courseBaseInfo" :model="courseInfo.baseInfo" label-position="top" :rules="ruleValidate">
|
|
|
|
+ <FormItem label="课程名称" prop="courseName">
|
|
|
|
+ <Input v-model="courseInfo.baseInfo.courseName" placeholder="请输入课程名称..."></Input>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="设置学制" v-if="isLoaded" prop="periodCode">
|
|
|
|
+ <Select v-model="courseInfo.baseInfo.periodCode" filterable style="width:100%" placeholder="请选择学制" :clearable="true">
|
|
|
|
+ <Option v-for="(item,index) in $store.state.schoolBaseInfo.schoolBaseInfo.period" :value="item.periodCode" :key="index" >{{ item.periodName }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="设置年级" prop="gradeCode">
|
|
|
|
+ <Select v-model="courseInfo.baseInfo.gradeCode" filterable style="width:100%" placeholder="请选择年级" :clearable="true">
|
|
|
|
+ <Option v-for="(item,index) in fn.getPeriod($store.state.schoolBaseInfo.schoolBaseInfo,courseInfo.baseInfo.periodCode).grades" :value="item.gradeCode" :key="index">{{ item.gradeName }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="设置科目" prop="subjectCode">
|
|
|
|
+ <Select v-model="courseInfo.baseInfo.subjectCode" filterable style="width:100%" placeholder="请选择科目" :clearable="true">
|
|
|
|
+ <Option v-for="(item,index) in fn.getPeriod($store.state.schoolBaseInfo.schoolBaseInfo,courseInfo.baseInfo.periodCode).subjects" :value="item.subjectCode" :key="index">{{ item.subjectName }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ </FormItem>
|
|
|
|
+ <FormItem label="课程公告" prop="notice">
|
|
|
|
+ <div ref="courseNotice"></div>
|
|
|
|
+ <Input v-model="courseInfo.baseInfo.notice" type="textarea" :autosize="{minRows: 2,maxRows: 5}" style="display:none"></Input>
|
|
|
|
+ </FormItem>
|
|
|
|
+ </Form>
|
|
|
|
+ <div :class="isFull ? 'confirm-btn confirm-btn-active':'confirm-btn' " @click="submit('baseInfo')">
|
|
|
|
+ 保存变更
|
|
</div>
|
|
</div>
|
|
- <div class="course-teacher-info">
|
|
|
|
- <div class="course-teacher-info-header">
|
|
|
|
- 协同教师设置
|
|
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="course-teacher-info">
|
|
|
|
+ <div class="course-teacher-info-header">
|
|
|
|
+ 协同教师设置
|
|
|
|
+ </div>
|
|
|
|
+ <div class="course-teacher-info-content">
|
|
|
|
+ <div class="course-teacher-search-box">
|
|
|
|
+ <Checkbox v-model="scope">添加校外教师</Checkbox>
|
|
|
|
+ <Input prefix="ios-search" placeholder="ID或姓名搜索" size="small" class="search-course-teacher" />
|
|
|
|
+ </div>
|
|
|
|
+ <CheckboxGroup v-model="courseInfo.assistTeacher" @on-change="saveChange">
|
|
|
|
+ <Checkbox :label="item.TEAMModelId" class="course-teacher-item" v-for="(item,index) in teacherList">{{item.teacherName}}</Checkbox>
|
|
|
|
+ </CheckboxGroup>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="course-time-info">
|
|
|
|
+ <div class="course-time-info-header">
|
|
|
|
+ <span>课程时段设置</span>
|
|
|
|
+ <Icon type="md-add" color="white" size="18" @click="addCourseTime" style="float:right;margin-top:13px;margin-right:30px;cursor:pointer;" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="course-time-info-content">
|
|
|
|
+ <div v-if="courseInfo.courseTime.length > 0" class="course-time-item" v-for="(item,index) in courseInfo.courseTime" :key="index">
|
|
|
|
+ <div class="item-order">
|
|
|
|
+ <span class="item-order-index">{{index + 1}}</span>
|
|
|
|
+ <Icon type="md-create" color="white" class="edit-time" size="50" title="修改信息" @click="editCourseTime(index)" />
|
|
|
|
+ </div>
|
|
|
|
+ <div class="course-time-detail">
|
|
|
|
+ <div class="course-frequently">
|
|
|
|
+ <Select v-model="item.frequencyCode" :disabled="editTimeIndex !== index" size="small" style="width:112px">
|
|
|
|
+ <Option v-for="item in frequencyList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ <Select v-if="item.frequencyCode === 'week'" v-model="item.frequencyName" class="course-date" :disabled="editTimeIndex !== index" size="small" style="padding-left:15px;">
|
|
|
|
+ <Option v-for="item in weekList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ <DatePicker v-if="item.frequencyCode === 'temporary' || item.frequency === 'month'" v-model="item.frequencyName" :disabled="editTimeIndex !== index" class="course-date" type="date" placeholder="选择日期" size="small" style="" format="yyyy-MM-dd"></DatePicker>
|
|
|
|
+ <span v-if="item.frequencyCode === 'day'" class="course-date" style="color:white;padding-left:24px;">平日课程</span>
|
|
</div>
|
|
</div>
|
|
- <div class="course-teacher-info-content">
|
|
|
|
- <div class="course-teacher-search-box">
|
|
|
|
- <Checkbox v-model="scope">添加校外教师</Checkbox>
|
|
|
|
- <Input prefix="ios-search" placeholder="ID或姓名搜索" size="small" class="search-course-teacher" />
|
|
|
|
- </div>
|
|
|
|
- <CheckboxGroup v-model="courseInfo.assistTeacher">
|
|
|
|
- <Checkbox :label="item.TEAMModelId" class="course-teacher-item" v-for="(item,index) in teacherList">{{item.teacherName}}</Checkbox>
|
|
|
|
- </CheckboxGroup>
|
|
|
|
|
|
+ <div class="course-time">
|
|
|
|
+ <TimePicker v-model="item.beginTime" :disabled="editTimeIndex !== index" format="HH:mm" placeholder="开始" size="large" class="course-time-start" style="width: 112px;font-size:18px;"></TimePicker>
|
|
|
|
+ <span style="margin-left: -50px;margin-top:10px;display:inline-block; color:#eeeeee;">至</span>
|
|
|
|
+ <TimePicker v-model="item.endTime" :disabled="editTimeIndex !== index" format="HH:mm" placeholder="结束" size="large" class="course-time-end" style="width: 112px;font-size:18px;"></TimePicker>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <div class="course-time-info">
|
|
|
|
- <div class="course-time-info-header">
|
|
|
|
- <span>课程时段设置</span>
|
|
|
|
- <Icon type="md-add" color="white" size="18" @click="addCourseTime" style="float:right;margin-top:13px;margin-right:30px;cursor:pointer;"/>
|
|
|
|
|
|
+ <div class="course-classroom">
|
|
|
|
+ <Select v-model="item.classroomCode" v-if="editTimeIndex === index" placeholder="请选择教室" size="small" style="width:calc(100% - 50px);">
|
|
|
|
+ <Option v-for="item in $store.state.schoolBaseInfo.classroomList" :value="item.classroomCode" :key="item.classroomCode">{{ item.classroomName }}</Option>
|
|
|
|
+ </Select>
|
|
|
|
+ <p v-if="editTimeIndex !== index" style="color:white;padding-left:10px;"><span>授课教室:</span><span>{{getClassroomName(item.classroomCode)}}</span></p>
|
|
</div>
|
|
</div>
|
|
- <div class="course-time-info-content">
|
|
|
|
- <div class="course-time-item" v-for="(item,index) in courseInfo.courseTime" :key="index">
|
|
|
|
- <div class="item-order">
|
|
|
|
- <span class="item-order-index">{{index + 1}}</span>
|
|
|
|
- <Icon type="md-create" color="white" class="edit-time" size="50" title="修改信息" @click="editCourseTime(index)"/>
|
|
|
|
- </div>
|
|
|
|
- <div class="course-time-detail">
|
|
|
|
- <div class="course-frequently">
|
|
|
|
- <Select v-model="item.frequency" :disabled="editTimeIndex !== index" size="small" style="width:112px">
|
|
|
|
- <Option v-for="item in frequencyList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
- </Select>
|
|
|
|
- <Select v-if="item.frequency === 'week'" v-model="item.weekly" class="course-date" :disabled="editTimeIndex !== index" size="small" style="padding-left:15px;">
|
|
|
|
- <Option v-for="item in weekList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
|
|
- </Select>
|
|
|
|
- <DatePicker v-if="item.frequency === 'temporary' || item.frequency === 'month'" v-model="item.date" :disabled="editTimeIndex !== index" class="course-date" type="date" placeholder="选择日期" size="small" style="" format="yyyy-MM-dd"></DatePicker>
|
|
|
|
- <span v-if="item.frequency === 'day'" class="course-date" style="color:white;padding-left:24px;">平日课程</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="course-time">
|
|
|
|
- <TimePicker v-model="item.begin" :disabled="editTimeIndex !== index" format="HH:mm" placeholder="开始" size="large" class="course-time-start" style="width: 112px;font-size:18px;"></TimePicker>
|
|
|
|
- <span style="margin-left: -50px;margin-top:10px;display:inline-block; color:#eeeeee;">至</span>
|
|
|
|
- <TimePicker v-model="item.end" :disabled="editTimeIndex !== index" format="HH:mm" placeholder="结束" size="large" class="course-time-end" style="width: 112px;font-size:18px;"></TimePicker>
|
|
|
|
- </div>
|
|
|
|
- <div class="course-classroom">
|
|
|
|
- <Select v-model="item.classroomCode" v-if="editTimeIndex === index" placeholder="请选择教室" size="small" style="width:calc(100% - 50px);">
|
|
|
|
- <Option v-for="item in $store.state.schoolBaseInfo.classroomList" :value="item.classroomCode" :key="item.classroomCode">{{ item.classroomName }}</Option>
|
|
|
|
- </Select>
|
|
|
|
- <p v-if="editTimeIndex !== index" style="color:white;padding-left:10px;"><span>授课教室:</span><span>{{getClassroomName(item.classroomCode)}}</span></p>
|
|
|
|
- </div>
|
|
|
|
- <div class="course-time-action" v-if="editTimeIndex === index">
|
|
|
|
- <div class="smarll-confirm-btn smarll-confirm-btn-active">取消变更</div>
|
|
|
|
- <div class="smarll-confirm-btn smarll-confirm-btn-active" @click="submit()">保存变更</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <div class="course-time-action" v-if="editTimeIndex === index">
|
|
|
|
+ <div class="smarll-confirm-btn smarll-confirm-btn-active" @click="cancelEditTime(index)">取消变更</div>
|
|
|
|
+ <div class="smarll-confirm-btn smarll-confirm-btn-active" style="margin:0px 15px;" @click="deleteTime(index)">删除</div>
|
|
|
|
+ <div class="smarll-confirm-btn smarll-confirm-btn-active" @click="submit('courseTime')">保存变更</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <NoData v-if="courseInfo.courseTime.length == 0" style="margin-top:120px;"></NoData>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
- import E from 'wangeditor'
|
|
|
|
- export default {
|
|
|
|
- data() {
|
|
|
|
- return {
|
|
|
|
- scope: false,
|
|
|
|
- isLoaded:false,
|
|
|
|
- classroomList: [],
|
|
|
|
- periodList: [],
|
|
|
|
- gradeList: [],
|
|
|
|
- subjectList:[],
|
|
|
|
- teacherList: [
|
|
|
|
- {
|
|
|
|
- teacherName: '张飞',
|
|
|
|
- TEAMModelId:'001#0101'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'狄仁杰',
|
|
|
|
- TEAMModelId:'001#0111'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'诸葛亮',
|
|
|
|
- TEAMModelId:'001#0102'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'码云',
|
|
|
|
- TEAMModelId:'001#0103'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'马可波罗',
|
|
|
|
- TEAMModelId:'001#0104'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'刘备',
|
|
|
|
- TEAMModelId:'001#0105'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'关羽',
|
|
|
|
- TEAMModelId:'001#0106'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'王昭君',
|
|
|
|
- TEAMModelId:'001#0107'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- teacherName:'貂蝉',
|
|
|
|
- TEAMModelId:'001#0108'
|
|
|
|
- }
|
|
|
|
|
|
+ import fn from '@/utils/js-fn.js'
|
|
|
|
+ import NoData from '@/common/NoData.vue'
|
|
|
|
+ import E from 'wangeditor'
|
|
|
|
+ export default {
|
|
|
|
+ components: {
|
|
|
|
+ NoData
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ fn,
|
|
|
|
+ recordEdit: {},
|
|
|
|
+ scope: false,
|
|
|
|
+ isLoaded: false,
|
|
|
|
+ classroomList: [],
|
|
|
|
+ periodList: [],
|
|
|
|
+ gradeList: [],
|
|
|
|
+ subjectList: [],
|
|
|
|
+ teacherList: [
|
|
|
|
+ {
|
|
|
|
+ teacherName: '张飞',
|
|
|
|
+ TEAMModelId: '001#0101'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '狄仁杰',
|
|
|
|
+ TEAMModelId: '001#0111'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '诸葛亮',
|
|
|
|
+ TEAMModelId: '001#0102'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '码云',
|
|
|
|
+ TEAMModelId: '001#0103'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '马可波罗',
|
|
|
|
+ TEAMModelId: '001#0104'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '刘备',
|
|
|
|
+ TEAMModelId: '001#0105'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '关羽',
|
|
|
|
+ TEAMModelId: '001#0106'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '王昭君',
|
|
|
|
+ TEAMModelId: '001#0107'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ teacherName: '貂蝉',
|
|
|
|
+ TEAMModelId: '001#0108'
|
|
|
|
+ }
|
|
|
|
|
|
- ],
|
|
|
|
- noticeEditor: undefined,
|
|
|
|
- editTimeIndex: -1,
|
|
|
|
- weekList: [
|
|
|
|
- {
|
|
|
|
- label: '星期一',
|
|
|
|
- value:'MON'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '星期二',
|
|
|
|
- value:'TUE'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '星期三',
|
|
|
|
- value:'WED'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '星期四',
|
|
|
|
- value:'THU'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '星期五',
|
|
|
|
- value:'FRI'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '星期六',
|
|
|
|
- value:'SAT'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '星期日',
|
|
|
|
- value:'SUN'
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
- frequencyList: [
|
|
|
|
- {
|
|
|
|
- label: '每日课程',
|
|
|
|
- value:'day'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '每周课程',
|
|
|
|
- value:'week'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '每月课程',
|
|
|
|
- value:'month'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- label: '临时课程',
|
|
|
|
- value:'temporary'
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
- courseTimeInfo: {
|
|
|
|
- frequency: '',
|
|
|
|
- begin: '',
|
|
|
|
- end: '',
|
|
|
|
- classroomCode: '',
|
|
|
|
- date: ''
|
|
|
|
- },
|
|
|
|
- courseTimeList: [
|
|
|
|
- {
|
|
|
|
- frequency: 'day',
|
|
|
|
- date:'',
|
|
|
|
- begin: '10:50',
|
|
|
|
- end: '11:30',
|
|
|
|
- classroom: '第一教学楼B206',
|
|
|
|
- status:0
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- frequency: '每日开课',
|
|
|
|
- date:'',
|
|
|
|
- begin: '',
|
|
|
|
- end: '',
|
|
|
|
- classroom: '',
|
|
|
|
- status:1
|
|
|
|
- }
|
|
|
|
- ]
|
|
|
|
|
|
+ ],
|
|
|
|
+ noticeEditor: undefined,
|
|
|
|
+ editTimeIndex: -1,
|
|
|
|
+ isFull:false,
|
|
|
|
+ weekList: [
|
|
|
|
+ {
|
|
|
|
+ label: '星期一',
|
|
|
|
+ value: 'MON'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '星期二',
|
|
|
|
+ value: 'TUE'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '星期三',
|
|
|
|
+ value: 'WED'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '星期四',
|
|
|
|
+ value: 'THU'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '星期五',
|
|
|
|
+ value: 'FRI'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '星期六',
|
|
|
|
+ value: 'SAT'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '星期日',
|
|
|
|
+ value: 'SUN'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ frequencyList: [
|
|
|
|
+ {
|
|
|
|
+ label: '每日课程',
|
|
|
|
+ value: 'day'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '每周课程',
|
|
|
|
+ value: 'week'
|
|
|
|
+ },
|
|
|
|
+ //{
|
|
|
|
+ // label: '每月课程',
|
|
|
|
+ // value: 'month'
|
|
|
|
+ //},
|
|
|
|
+ {
|
|
|
|
+ label: '临时课程',
|
|
|
|
+ value: 'temporary'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ ruleValidate: {
|
|
|
|
+ courseName: [
|
|
|
|
+ { required: true, message: '课程名称不能为空', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ periodCode: [
|
|
|
|
+ { required: true, message: '学段信息不能为空', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ gradeCode: [
|
|
|
|
+ { required: true, message: '年级信息不能为空', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ subjectCode: [
|
|
|
|
+ { required: true, message: '科目信息不能为空', trigger: 'change' }
|
|
|
|
+ ],
|
|
|
|
+ notice: [
|
|
|
|
+ { required: true, message: '课程公告不能为空', trigger: 'change' }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ validateForm() {
|
|
|
|
+ this.$refs['courseBaseInfo'].validate((valid) => {
|
|
|
|
+ console.log('valid:' + valid)
|
|
|
|
+ if (valid) {
|
|
|
|
+ if (this.courseInfo.baseInfo.notice !== '' && this.courseInfo.baseInfo.notice !== '<p><br></p>') {
|
|
|
|
+ this.isFull = true
|
|
|
|
+ } else {
|
|
|
|
+ this.courseInfo.baseInfo.notice = ''
|
|
|
|
+ this.isFull = false
|
|
}
|
|
}
|
|
- },
|
|
|
|
- methods: {
|
|
|
|
- editCourseTime(index) {
|
|
|
|
- this.editTimeIndex = index
|
|
|
|
- },
|
|
|
|
- getClassroomName(code) {
|
|
|
|
- let c = []
|
|
|
|
- if (this.$store.state.schoolBaseInfo.classroomList !== undefined) {
|
|
|
|
- let c = this.$store.state.schoolBaseInfo.classroomList.filter(
|
|
|
|
- (item) => {
|
|
|
|
- return item.classroomCode == code
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- }
|
|
|
|
- return c.length > 0 ? c[0].classroomName:'暂未选择教室'
|
|
|
|
- },
|
|
|
|
- addCourseTime() {
|
|
|
|
- this.courseInfo.courseTime.push(
|
|
|
|
- {
|
|
|
|
- frequency: 'day',//上课频率 每日、每周、每月、临时课程
|
|
|
|
- begin: '',//课程开始时间
|
|
|
|
- end: '',//课程结束时间
|
|
|
|
- classroom: '',//上课班级/教室
|
|
|
|
- date: '',//临时课程
|
|
|
|
- day: '',//每月课程
|
|
|
|
- weekly: ''//每周课程
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- this.editTimeIndex = this.courseInfo.courseTime.length - 1
|
|
|
|
- },
|
|
|
|
- getSchoolBaseInfo() {
|
|
|
|
- this.$store.dispatch('schoolBaseInfo/getSchoolBaseData').then(
|
|
|
|
- (res) => {
|
|
|
|
- if (res.code == 2) {
|
|
|
|
- alert('数据为空!');
|
|
|
|
- }
|
|
|
|
- this.isLoaded = true
|
|
|
|
- },
|
|
|
|
- (err) => {
|
|
|
|
- alert('API error!')
|
|
|
|
- this.isLoaded = true
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- },
|
|
|
|
- getClassroom() {
|
|
|
|
- this.$store.dispatch('schoolBaseInfo/getClassroom').then(
|
|
|
|
- (res) => {
|
|
|
|
- if (res.code == 2) {
|
|
|
|
- alert('数据为空!');
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- (err) => {
|
|
|
|
- alert('API error!')
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- },
|
|
|
|
- initEditor() {
|
|
|
|
- console.log(this.$refs)
|
|
|
|
- console.log(this.$refs.courseNotice)
|
|
|
|
- let noticeEditor = new E(this.$refs.courseNotice)
|
|
|
|
- noticeEditor.customConfig.onchange = (html) => {
|
|
|
|
- this.courseInfo.notice = html
|
|
|
|
|
|
+ } else {
|
|
|
|
+ this.isFull = false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ setNoticeContent() {
|
|
|
|
+ console.log('调用子组件方法')
|
|
|
|
+ if (this.noticeEditor != undefined) {
|
|
|
|
+ this.noticeEditor.txt.html(this.courseInfo.baseInfo.notice)
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ this.validateForm()
|
|
|
|
+ }, 500)
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ editCourseTime(index) {
|
|
|
|
+ this.editTimeIndex = index
|
|
|
|
+ Object.assign(this.recordEdit, this.courseInfo.courseTime[index])
|
|
|
|
+ },
|
|
|
|
+ getClassroomName(code) {
|
|
|
|
+ let c = []
|
|
|
|
+ if (this.$store.state.schoolBaseInfo.classroomList !== undefined) {
|
|
|
|
+ c = this.$store.state.schoolBaseInfo.classroomList.filter(
|
|
|
|
+ (item) => {
|
|
|
|
+ return item.classroomCode == code
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+ return c.length > 0 ? c[0].classroomName : '暂未选择教室'
|
|
|
|
+ },
|
|
|
|
+ addCourseTime() {
|
|
|
|
+ this.courseInfo.courseTime.push(
|
|
|
|
+ {
|
|
|
|
+ frequencyCode: 'day',//上课频率 每日、每周、每月、临时课程
|
|
|
|
+ beginTime: '',//课程开始时间
|
|
|
|
+ endTime: '',//课程结束时间
|
|
|
|
+ classroomCode: '',//上课班级/教室
|
|
|
|
+ frequencyName: '',//临时课程
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ this.editTimeIndex = this.courseInfo.courseTime.length - 1
|
|
|
|
+ this.recordEdit = {}
|
|
|
|
+ },
|
|
|
|
+ getSchoolBaseInfo() {
|
|
|
|
+ this.$store.dispatch('schoolBaseInfo/getSchoolBaseData').then(
|
|
|
|
+ (res) => {
|
|
|
|
+ if (res.code == 2) {
|
|
|
|
+ alert('数据为空!');
|
|
|
|
+ }
|
|
|
|
+ this.isLoaded = true
|
|
|
|
+ },
|
|
|
|
+ (err) => {
|
|
|
|
+ alert('API error!')
|
|
|
|
+ this.isLoaded = true
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ },
|
|
|
|
+ getClassroom() {
|
|
|
|
+ this.$store.dispatch('schoolBaseInfo/getClassroom').then(
|
|
|
|
+ (res) => {
|
|
|
|
+ if (res.code == 2) {
|
|
|
|
+ alert('数据为空!');
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ (err) => {
|
|
|
|
+ alert('API error!')
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ },
|
|
|
|
+ initEditor() {
|
|
|
|
+ let noticeEditor = new E(this.$refs.courseNotice)
|
|
|
|
+ noticeEditor.customConfig.onchange = (html) => {
|
|
|
|
+ this.courseInfo.baseInfo.notice = html
|
|
|
|
+ }
|
|
|
|
+ noticeEditor.customConfig.menus = [
|
|
|
|
+ 'bold', // 粗体
|
|
|
|
+ 'italic', // 斜体
|
|
|
|
+ 'underline', // 下划线
|
|
|
|
+ 'list', // 列表
|
|
|
|
+ 'link', // 插入链接
|
|
|
|
+ 'image', // 插入图片
|
|
|
|
+ ],
|
|
|
|
+ noticeEditor.customConfig.showLinkImg = false
|
|
|
|
+ noticeEditor.customConfig.uploadFileName = 'files'
|
|
|
|
+ noticeEditor.create()
|
|
|
|
+ noticeEditor.txt.html(this.courseInfo.baseInfo.notice)
|
|
|
|
+ this.noticeEditor = noticeEditor
|
|
|
|
+ },
|
|
|
|
+ /*
|
|
|
|
+ * js-fn里面的getPeriod方法取代
|
|
|
|
+ */
|
|
|
|
+ //getCurrentGrade(index) {
|
|
|
|
+ // this.gradeList = this.$store.state.schoolBaseInfo.schoolBaseInfo.period[index].grades
|
|
|
|
+ // this.subjectList = this.$store.state.schoolBaseInfo.schoolBaseInfo.period[index].subjects
|
|
|
|
+ //},
|
|
|
|
+ submit(model) {
|
|
|
|
+ if (model == 'baseInfo') {
|
|
|
|
+ this.validateForm()
|
|
|
|
+ if (this.isFull) {
|
|
|
|
+ this.$api.courseMgmt.saveOrUpdateCourse([this.courseInfo]).then(
|
|
|
|
+ res => {
|
|
|
|
+ if (res.error == null) {
|
|
|
|
+ this.$Message.success('保存成功!');
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.error('保存失败,API Error!');
|
|
}
|
|
}
|
|
- noticeEditor.customConfig.menus = [
|
|
|
|
- 'bold', // 粗体
|
|
|
|
- 'italic', // 斜体
|
|
|
|
- 'underline', // 下划线
|
|
|
|
- 'list', // 列表
|
|
|
|
- 'link', // 插入链接
|
|
|
|
- 'image', // 插入图片
|
|
|
|
- ],
|
|
|
|
- noticeEditor.customConfig.showLinkImg = false
|
|
|
|
- noticeEditor.customConfig.uploadFileName = 'files'
|
|
|
|
- noticeEditor.create()
|
|
|
|
- this.noticeEditor = noticeEditor
|
|
|
|
|
|
+ },
|
|
|
|
+ err => {
|
|
|
|
+ this.$Message.error('保存失败,API Error!');
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.error('请完善信息在保存!');
|
|
|
|
+ }
|
|
|
|
+ } else if(model == 'courseTime'){
|
|
|
|
+ this.$api.courseMgmt.saveOrUpdateCourse([this.courseInfo]).then(
|
|
|
|
+ res => {
|
|
|
|
+ if (res.error == null) {
|
|
|
|
+ this.$Message.success('保存成功!');
|
|
|
|
+ this.editTimeIndex = -1
|
|
|
|
+ this.recordEdit = {}
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.error('保存失败,API Error!');
|
|
|
|
+ }
|
|
},
|
|
},
|
|
- getCurrentGrade(index) {
|
|
|
|
- this.gradeList = this.$store.state.schoolBaseInfo.schoolBaseInfo.period[index].grades
|
|
|
|
- this.subjectList = this.$store.state.schoolBaseInfo.schoolBaseInfo.period[index].subjects
|
|
|
|
|
|
+ err => {
|
|
|
|
+ this.$Message.error('保存失败,API Error!');
|
|
|
|
+ }
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ saveChange() {
|
|
|
|
+ if (this.isFull) {
|
|
|
|
+ this.$api.courseMgmt.saveOrUpdateCourse([this.courseInfo]).then(
|
|
|
|
+ res => {
|
|
|
|
+ if (res.error == null) {
|
|
|
|
+ this.$Message.success('保存成功!');
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.error('保存失败,API Error!');
|
|
|
|
+ }
|
|
},
|
|
},
|
|
- submit() {
|
|
|
|
- console.log(this.courseInfo)
|
|
|
|
- this.editTimeIndex = -1
|
|
|
|
|
|
+ err => {
|
|
|
|
+ this.$Message.error('保存失败,API Error!');
|
|
}
|
|
}
|
|
|
|
+ )
|
|
|
|
+ } else {
|
|
|
|
+ this.$Message.error('请完善信息在保存!');
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ deleteTime(index) {
|
|
|
|
+ this.courseInfo.courseTime.splice(index, 1)
|
|
|
|
+ this.editTimeIndex = -1
|
|
|
|
+ },
|
|
|
|
+ cancelEditTime(index) {
|
|
|
|
+ console.log(this.recordEdit)
|
|
|
|
+ console.log(JSON.stringify(this.recordEdit) !== "{}")
|
|
|
|
+ if (JSON.stringify(this.recordEdit) !== "{}") {
|
|
|
|
+ Object.assign(this.courseInfo.courseTime[index], this.recordEdit)
|
|
|
|
+ } else {
|
|
|
|
+ this.courseInfo.courseTime.splice(index,1)
|
|
|
|
+ }
|
|
|
|
+ this.editTimeIndex = -1
|
|
|
|
+ this.recordEdit = {}
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+ this.initEditor()
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+ this.getSchoolBaseInfo()
|
|
|
|
+ this.getClassroom()
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ courseInfo: {
|
|
|
|
+ get() {
|
|
|
|
+ return this.$store.getters['courseMgmt/courseInfo']
|
|
},
|
|
},
|
|
- mounted() {
|
|
|
|
- this.initEditor()
|
|
|
|
- },
|
|
|
|
- created() {
|
|
|
|
- this.getSchoolBaseInfo()
|
|
|
|
- this.getClassroom()
|
|
|
|
- },
|
|
|
|
- computed: {
|
|
|
|
- courseInfo: {
|
|
|
|
- get() {
|
|
|
|
- return this.$store.getters.courseInfo
|
|
|
|
- },
|
|
|
|
- set(newVal) {
|
|
|
|
- console.log(newVal)
|
|
|
|
- }
|
|
|
|
|
|
+ set(newVal) {
|
|
|
|
+ console.log(newVal)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ watch: {
|
|
|
|
+ 'courseInfo.baseInfo': {
|
|
|
|
+ handler(val, oldVal) {
|
|
|
|
+ this.$refs['courseBaseInfo'].validate((valid) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ if (this.courseInfo.baseInfo.notice !== '' && this.courseInfo.baseInfo.notice !== '<p><br></p>') {
|
|
|
|
+ this.isFull = true
|
|
|
|
+ } else {
|
|
|
|
+ this.courseInfo.baseInfo.notice = ''
|
|
|
|
+ this.isFull = false
|
|
|
|
+ }
|
|
|
|
+ //this.$Message.success('Success!');
|
|
|
|
+ } else {
|
|
|
|
+ this.isFull = false
|
|
}
|
|
}
|
|
|
|
+ })
|
|
},
|
|
},
|
|
- watch: {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ deep: true //true 深度监听
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ }
|
|
</script>
|
|
</script>
|
|
<style lang="less" scoped>
|
|
<style lang="less" scoped>
|
|
- @import './CourseBaseSetting.less';
|
|
|
|
|
|
+ @import './CourseBaseSetting.less';
|
|
</style>
|
|
</style>
|
|
<style>
|
|
<style>
|
|
- .course-base-info-content .w-e-menu {
|
|
|
|
- z-index:9 !important;
|
|
|
|
- }
|
|
|
|
- .course-teacher-item .ivu-checkbox {
|
|
|
|
- float:right;
|
|
|
|
- margin-right:30px;
|
|
|
|
- }
|
|
|
|
- .course-teacher-item .ivu-checkbox-inner, .course-teacher-search-box .ivu-checkbox-inner {
|
|
|
|
- background:none;
|
|
|
|
- }
|
|
|
|
- .search-course-teacher .ivu-input {
|
|
|
|
- background:none;
|
|
|
|
- border-color:#424242;
|
|
|
|
- border-radius:8px;
|
|
|
|
- }
|
|
|
|
|
|
+ .course-base-info-content .w-e-menu {
|
|
|
|
+ z-index: 9 !important;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .course-teacher-item .ivu-checkbox {
|
|
|
|
+ float: right;
|
|
|
|
+ margin-right: 30px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .course-teacher-item .ivu-checkbox-inner, .course-teacher-search-box .ivu-checkbox-inner {
|
|
|
|
+ background: none;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .search-course-teacher .ivu-input {
|
|
|
|
+ background: none;
|
|
|
|
+ border-color: #424242;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|