<!-- * @Author: 纪泽龙 jizelong@qq.com * @Date: 2022-09-22 10:59:44 * @LastEditors: 纪泽龙 jizelong@qq.com * @LastEditTime: 2022-09-28 17:52:32 * @FilePath: /danger-manage-web/src/views/lessonsProgram/components/Lession.vue * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE --> <template> <div class="form-wrapper"> <el-form class="form" ref="form" :model="form" label-width="auto" :rules="rules" > <div class="top flex"> <el-form-item label="课程标题" prop="courseName"> <el-input style="width: 500px" v-model="form.courseName"></el-input> </el-form-item> <el-form-item label="培训计划" prop="courseType"> <el-select v-model="form.courseType" placeholder="请选择培训计划" clearable size="small" > <el-option v-for="course in courseOptions" :key="course.planId" :label="course.planName" :value="course.planId" /> </el-select> </el-form-item> </div> <!-- </div> --> <el-form-item label="课程内容" prop="courseConent"> <Editor v-model="form.courseConent" :min-height="192" /> <el-input v-show="false" disabled v-model="form.courseConent" ></el-input> </el-form-item> <div class="flex"> <el-form-item label="视频上传" v-if="!readOnly" prop="video"> <FileUpload listType="picture" @resFun="getFileInfoVideo" @remove="listRemoveVideo" :fileArr="fileListVideo" :fileSize="500" :fileType="['mp4']" /> <el-input v-show="false" disabled v-model="form.video"></el-input> </el-form-item> <el-form-item label="附件上传" v-if="!readOnly" prop="enclosure"> <FileUpload listType="picture" @resFun="getFileInfoFile" @remove="listRemoveFile" :fileArr="fileListFile" /> <el-input v-show="false" disabled v-model="form.enclosure"></el-input> </el-form-item> </div> </el-form> </div> </template> <script> import Editor from "./Editor"; import FileUpload from "@/components/FileUpload"; import uploadfile from "@/assets/uploadfile.png"; import { mapGetters } from "vuex"; import { addLessons, getLessonById, changeLesson, } from "@/api/educationPlanExam/lessonsProgram"; export default { name: "", props: { courseId: { type: Number, }, }, components: { Editor, FileUpload, }, data() { return { form: { courseName: "", courseType: "", courseConent: "", video: "", enclosure: "", }, fileListVideo: [], fileListFile: [], readOnly: false, rules: { courseName: [ { required: true, trigger: "blur", message: "课程名称不能为空" }, ], courseType: [ { required: true, trigger: "change", message: "课程类型不能为空" }, ], courseConent: [ { required: true, trigger: "blur", message: "课程内容不能为空" }, ], // video: [{ required: true, trigger: "blue", message: "视频不能为空" }], enclosure: [ { required: true, trigger: "blur", message: "附件不能为空" }, ], }, }; }, computed: { // 获取课程类型 ...mapGetters(["courseOptions"]), }, created() { if (this.courseId) { this.getLessonById(); } }, mounted() {}, methods: { // 添加课程 addLessons(data) { console.log("this.courseId", this.courseId); if (!this.courseId) { console.log("添加"); return addLessons(data); } else { console.log("修改"); return changeLesson({ courseId: this.courseId, ...data }); } }, // 复现 getLessonById() { getLessonById(this.courseId).then((res) => { if (res.code == 200) { const data = res.data; const { courseName, courseType, courseConent, video, enclosure } = data; this.form = { courseName, courseType, courseConent, video, enclosure, }; this.fileListVideo = [ { name: courseName + "视频", url: uploadfile, }, ]; this.fileListFile = [ { name: courseName + "附件", url: uploadfile, }, ]; } }); }, getFileInfoVideo(res) { this.form.video = res.url; // this.form.videoName = res.fileName; this.fileListVideo = [ { name: res.fileName, url: uploadfile, }, ]; }, listRemoveVideo(e) { this.fileListVideo = []; this.form.video = ""; // this.form.videoName = null; }, getFileInfoFile(res) { this.form.enclosure = res.url; // this.form.enclosureName = res.fileName; this.fileListFile = [ { name: res.fileName, url: uploadfile, }, ]; }, listRemoveFile(e) { this.fileListFild = []; this.form.enclosure = ""; // this.form.fileName = null; }, save(num = 2) { // 因为富文本编辑器会残留<p><br></p>,所以要清空 if (this.form.courseConent === "<p><br></p>") { this.form.courseConent = ""; } this.$refs.form.validate((valid) => { if (valid) { // console.log(this.form); this.addLessons({ ...this.form }).then((res) => { // 如果添加会传回来,就用传回来的,如果是修改本身就有,就用本身的 const courseId = res.data || this.courseId; if (res.code == 200) { // 这样调比较纯函数一点 if (num == 2) { this.$message({ message: "保存课程成功", type: "success", }); } else if (num == 3) { this.$message({ message: "保存课程成功,请开始录入题目", type: "success", }); } this.$parent.$parent.componentsNumChange(num); this.$parent.$parent.changeCourseId(courseId); this.$parent.$parent.$parent.getList(); return true; } }); } }); }, // 保存并进入题目 saveAndNext() { this.save(3); }, }, }; </script> <style lang="scss" scoped> .form-wrapper { padding-top: 22px; width: 100%; height: 550px; overflow: hidden; // padding-bottom: 10px; margin-bottom: 20px; border-bottom: 1px solid #bbbbbb; .top { width: 100%; justify-content: space-between; } } </style>