|
@@ -1,6 +1,5 @@
|
|
|
<template>
|
|
|
<div class="information">
|
|
|
- <div class="information-title">{{ $t('Learn_New_Courses') }}</div>
|
|
|
<el-form
|
|
|
ref="form"
|
|
|
:model="form"
|
|
@@ -9,49 +8,82 @@
|
|
|
label-position="left"
|
|
|
hide-required-asterisk
|
|
|
>
|
|
|
- <el-form-item :label="$t('Learn_Course_Cover')" class="information-cover">
|
|
|
+ <el-form-item :label="$t('Learn_Course_Cover') + ':'" class="information-cover">
|
|
|
<el-upload
|
|
|
action="no"
|
|
|
class="avatar-uploader"
|
|
|
:http-request="upload"
|
|
|
- :on-success="uploadSuccess"
|
|
|
+ :before-upload="beforeUpload"
|
|
|
:show-file-list="false"
|
|
|
accept="image/*"
|
|
|
>
|
|
|
- <img v-if="form.imageUrl" :v-model="form.imageUrl" :src="form.imageUrl" class="avatar" />
|
|
|
+ <img v-if="form.imageUrl" :src="form.imageUrl" class="avatar" />
|
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
</el-upload>
|
|
|
<span class="line-middle auto"><a @click="automatically">自动生成功能</a></span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item :label="$t('Learn_Course_Name')" prop="name">
|
|
|
+ <el-form-item :label="$t('Learn_Course_Name') + ':'" prop="name">
|
|
|
<el-input v-model="form.name" type="text" class="name-input"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="课程介绍">
|
|
|
+ <el-form-item label="课程介绍:">
|
|
|
<el-input
|
|
|
- v-model="form.introduce"
|
|
|
+ v-model="form.intro"
|
|
|
type="textarea"
|
|
|
class="introduce-textarea"
|
|
|
resize="none"
|
|
|
rows="6"
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="授课教师">
|
|
|
+ <el-form-item label="授课教师:">
|
|
|
<el-button @click="addTeacher">添加教师</el-button>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="时间">
|
|
|
- <el-date-picker v-model="form.beginDate" type="date" placeholder="添加开始日期" />
|
|
|
+ <el-form-item label="时间:">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.begin_date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ type="date"
|
|
|
+ placeholder="添加开始日期"
|
|
|
+ />
|
|
|
<span class="horizontal-bar">-</span>
|
|
|
- <el-date-picker v-model="form.endDate" type="date" placeholder="添加截止日期" />
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.end_date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ type="date"
|
|
|
+ placeholder="添加截止日期"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="学员人数">
|
|
|
- <el-input v-model="form.studentNumber" type="input" class="people-input"></el-input>
|
|
|
- <el-checkbox v-model="form.checked" class="student-checkbox"> 人数满足自动封班</el-checkbox>
|
|
|
+ <el-form-item label="开班学员数:">
|
|
|
+ <el-input
|
|
|
+ v-model="form.student_count_start"
|
|
|
+ type="text"
|
|
|
+ class="people-input"
|
|
|
+ @input="studentCountStartInput"
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="类型">
|
|
|
- <el-checkbox-group v-model="form.typeList">
|
|
|
- <el-checkbox label="a">公开课</el-checkbox>
|
|
|
- <el-checkbox label="b">需申请</el-checkbox>
|
|
|
- </el-checkbox-group>
|
|
|
+ <el-form-item label="最大学员数:">
|
|
|
+ <el-input
|
|
|
+ v-model="form.student_count_max"
|
|
|
+ type="text"
|
|
|
+ class="people-input"
|
|
|
+ @input="studentCountMaxInput"
|
|
|
+ ></el-input>
|
|
|
+ <el-checkbox v-model="form.is_auto_close" class="student-checkbox">
|
|
|
+ 人数满足自动封班
|
|
|
+ </el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型:">
|
|
|
+ <el-checkbox v-model="form.is_opened">公开课</el-checkbox>
|
|
|
+ <el-checkbox v-model="form.is_need_apply">需申请</el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="机构:" prop="mechanism">
|
|
|
+ <el-select v-model="form.mechanism" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in org_list"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button @click="cancel">取消</el-button>
|
|
@@ -64,36 +96,62 @@
|
|
|
<script>
|
|
|
import { updateWordPack } from '@/utils/i18n';
|
|
|
import { fileUpload } from '@/api/app';
|
|
|
+import { onlyNumber } from '@/utils/validate';
|
|
|
+import { getMyOrgList } from '@/api/list';
|
|
|
+import { createCourse } from '@/api/course';
|
|
|
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ org_list: [],
|
|
|
form: {
|
|
|
imageUrl: '',
|
|
|
+ picture_id: '',
|
|
|
name: '',
|
|
|
- introduce: '',
|
|
|
- teacher: '',
|
|
|
- beginDate: '',
|
|
|
- endDate: '',
|
|
|
- studentNumber: '',
|
|
|
- checked: false,
|
|
|
- typeList: []
|
|
|
+ intro: '',
|
|
|
+ teacher_ids: '',
|
|
|
+ begin_date: '',
|
|
|
+ end_date: '',
|
|
|
+ is_auto_close: false,
|
|
|
+ student_count_start: '',
|
|
|
+ student_count_max: '',
|
|
|
+ is_opened: false,
|
|
|
+ is_need_apply: false,
|
|
|
+ mechanism: ''
|
|
|
},
|
|
|
formRules: {
|
|
|
- name: { required: true, message: '课程名称不能为空', trigger: 'blur' }
|
|
|
+ name: { required: true, message: '课程名称不能为空', trigger: 'blur' },
|
|
|
+ mechanism: { required: true, message: '机构不能为空', trigger: 'change' }
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
+ getMyOrgList().then(response => {
|
|
|
+ this.org_list = response.org_list;
|
|
|
+ });
|
|
|
updateWordPack({
|
|
|
- word_key_list: ['Learn_New_Courses', 'Learn_Course_Cover', 'Learn_Course_Name']
|
|
|
+ word_key_list: ['Learn_Course_Cover', 'Learn_Course_Name']
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
cancel() {
|
|
|
this.$router.go(-1);
|
|
|
},
|
|
|
- confirm() {},
|
|
|
+ confirm() {
|
|
|
+ this.$refs.form.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ createCourse(this.form).then(response => {
|
|
|
+ console.log(response);
|
|
|
+ if (response.status === 1) {
|
|
|
+ this.$message.success('创建课程成功!');
|
|
|
+ this.$router.push('/main');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 自动生成功能
|
|
|
automatically() {
|
|
|
this.$message.info('该功能暂未实现!');
|
|
@@ -101,15 +159,28 @@ export default {
|
|
|
addTeacher() {
|
|
|
this.$message.info('该功能暂未实现!');
|
|
|
},
|
|
|
+ studentCountStartInput(value) {
|
|
|
+ this.form.student_count_start = onlyNumber(value);
|
|
|
+ },
|
|
|
+ studentCountMaxInput(value) {
|
|
|
+ this.form.student_count_max = onlyNumber(value);
|
|
|
+ },
|
|
|
+ beforeUpload(file) {
|
|
|
+ let isImage = /^image/.test(file.type);
|
|
|
+ if (!isImage) {
|
|
|
+ this.$message.error('上传的文件不是图片,请重新上传!');
|
|
|
+ }
|
|
|
+ return isImage;
|
|
|
+ },
|
|
|
upload(file) {
|
|
|
- let formData = new FormData();
|
|
|
- formData.append('file', file.file);
|
|
|
- fileUpload('Open', formData).then(response => {
|
|
|
- console.log(response);
|
|
|
+ fileUpload('Open', file).then(response => {
|
|
|
+ const { file_info_list } = response;
|
|
|
+ if (file_info_list.length > 0) {
|
|
|
+ const { file_url, file_id } = file_info_list[0];
|
|
|
+ this.form.imageUrl = file_url;
|
|
|
+ this.form.picture_id = file_id;
|
|
|
+ }
|
|
|
});
|
|
|
- },
|
|
|
- uploadSuccess(res, file) {
|
|
|
- console.log(res);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
@@ -133,7 +204,8 @@ export default {
|
|
|
.introduce-textarea {
|
|
|
width: 530px;
|
|
|
}
|
|
|
- .people-input {
|
|
|
+ .people-input,
|
|
|
+ .mechanism-input {
|
|
|
width: 185px;
|
|
|
}
|
|
|
.student-checkbox {
|