mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-13 21:06:42 +08:00
2022年5月29日从svn移到git
This commit is contained in:
673
src/components/Course/auditCourse1.vue
Normal file
673
src/components/Course/auditCourse1.vue
Normal file
@@ -0,0 +1,673 @@
|
||||
<template>
|
||||
<div class="examine-index">
|
||||
<!--微课审核-->
|
||||
<el-tabs v-model="activeName">
|
||||
<el-tab-pane label="课程信息" name="info">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="24">
|
||||
<el-form label-width="120px" size="mini" v-if="isEdit">
|
||||
<el-form-item label="名称">{{courseInfo.name}}</el-form-item>
|
||||
<el-form-item label="封面图片">
|
||||
<el-col :span="8">
|
||||
<div style="width: 160px;height: 90px">
|
||||
<img style="width:100%;height:100%" v-if="courseCoverurl == ''" :src="webBaseUrl + '/images/bgimg/course.png'" alt="" srcset="">
|
||||
<img style="width:100%;height:100%" v-else :src="courseCoverurl" alt="" srcset="">
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="内容分类">
|
||||
<span>{{sysTypeName(courseInfo.sysType1)}}</span>
|
||||
<span v-if="courseInfo.sysType2 !=''">/{{sysTypeName(courseInfo.sysType2)}}</span>
|
||||
<span v-if="courseInfo.sysType3 !=''">/{{sysTypeName(courseInfo.sysType3)}}</span>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="资源归属">
|
||||
<span>{{resOwnerName(courseInfo.resOwner1)}}</span>
|
||||
<span v-if="courseInfo.resOwner2 != ''">/{{resOwnerName(courseInfo.resOwner2)}}</span>
|
||||
<span v-if="courseInfo.resOwner3 != ''">/{{resOwnerName(courseInfo.resOwner3)}}</span>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="场景">
|
||||
{{ sceneFilter(courseInfo.forScene)}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="授课教师" ><!--授课老师默认是当前操作人-->
|
||||
{{teacher && teacher.join(',')}}</el-form-item>
|
||||
<!-- <el-form-item label="系统标签">{{courseInfo.tags}}</el-form-item> -->
|
||||
<el-form-item label="课程来源">{{courseInfo.source == 2?'外部':'内部'}}</el-form-item>
|
||||
<el-form-item label="目标人群">{{courseInfo.forUsers}}</el-form-item>
|
||||
<el-form-item label="观看设置">
|
||||
{{courseInfo.device == 3? '多端可见': courseInfo.device == 2?'移动端可见':'PC端可见'}}
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="关键字">
|
||||
{{courseInfo.keywords}}
|
||||
</el-form-item> -->
|
||||
<el-form-item label="课程价值">{{courseInfo.value}}</el-form-item>
|
||||
<el-form-item label="课程简介">
|
||||
{{courseInfo.summary}}
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="完成规则" v-if="!weike.onlyRequired"><el-input maxlength="50" v-model="params.forScene" placeholder="可基于组织树或受众选择"></el-input></el-form-item> -->
|
||||
<!-- <el-form-item label="开放权限">{{courseInfo.openObject}}</el-form-item> -->
|
||||
<!-- <el-form-item label="课程描述">
|
||||
<div v-html="courseInfo.overview"></div>
|
||||
</el-form-item> -->
|
||||
<el-form-item v-if="isShow"><el-button type="primary" @click="isEdit = false">编辑</el-button> </el-form-item>
|
||||
</el-form>
|
||||
<!-- rules 以下是课程的基本信息编辑 ,可以做成一个单独的组件,传course对象,教师列表,通过回调方法的方式处理 -->
|
||||
<el-form label-width="120px" size="mini" v-else>
|
||||
<el-form-item label="名称" required><el-input maxlength="100" v-model="courseInfo.name" placeholder="课程名称(限100字以内)"></el-input></el-form-item>
|
||||
<el-form-item label="封面图片" required >
|
||||
<el-col :span="8">
|
||||
<imageUpload :value="courseCoverurl" width="160px" height="90px" @success="uploadCoverImgSuccess" @remove="removeCoverImgSuccess"></imageUpload>
|
||||
<div>上传为16:9(如:800*450)的png或jpg图片</div>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="内容分类" required>
|
||||
<el-cascader placeholder="选择内容分类" style="width: 90%;" clearable v-model="sysType" :props="sysProps" :options="sysTypeListMap"></el-cascader>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="资源归属" required>
|
||||
<el-cascader placeholder="选择资源归属" style="width: 90%;" clearable v-model="resOwnerArray" :props="defaultProps" :options="resOwnerListMap"></el-cascader>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="场景">
|
||||
<el-select v-model="courseInfo.forScene" style="width: 90%;">
|
||||
<el-option v-for="item in sceneList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="授课教师" required ><!--授课老师默认是当前操作人-->
|
||||
<el-select style="width: 90%;"
|
||||
v-model="teacherName"
|
||||
multiple
|
||||
filterable
|
||||
remote
|
||||
disabled
|
||||
value-key="teacherId"
|
||||
reserve-keyword
|
||||
placeholder="请输入授课教师姓名"
|
||||
:remote-method="remoteMethod"
|
||||
:loading="loading">
|
||||
<el-option v-for="item in teacherList" :key="item.teacherId" :label="item.teacherName" :value="item"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="目标人群" >
|
||||
<el-input maxlength="50" show-word-limit v-model="courseInfo.forUsers" placeholder="目标人群(限50字以内)"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="课程价值"><el-input maxlength="200" show-word-limit v-model="courseInfo.value" placeholder="课程价值(限200字以内)"></el-input></el-form-item>
|
||||
<!-- <el-form-item label="系统标签">
|
||||
<el-col :span="14">
|
||||
<el-select style="width: 100%;"
|
||||
v-model="showTags"
|
||||
multiple
|
||||
filterable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入关键词"
|
||||
:remote-method="remoteTagMethod"
|
||||
:loading="loading">
|
||||
<el-option v-for="item in tagList" :key="item.id" :label="item.name" :value="item.name"> </el-option>
|
||||
</el-select>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="10">
|
||||
<el-form-item label="关键字"><el-input v-model="courseInfo.keywords" maxlength="50" placeholder="请输入关键字(限100字以内)"></el-input></el-form-item>
|
||||
</el-col> -->
|
||||
<!-- </el-form-item> -->
|
||||
<el-form-item label="观看设置">
|
||||
<el-col :span="14">
|
||||
<el-radio v-model="courseInfo.device" :label="1">PC端可见</el-radio>
|
||||
<el-radio v-model="courseInfo.device" :label="2">移动端可见</el-radio>
|
||||
<el-radio v-model="courseInfo.device" :label="3">多端可见</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="课程来源">
|
||||
<el-radio-group v-model="courseInfo.source" >
|
||||
<el-radio :label="1">内部</el-radio>
|
||||
<el-radio :label="2">外部</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="完成规则" v-if="!weike.onlyRequired"><el-input maxlength="50" v-model="params.forScene" placeholder="可基于组织树或受众选择"></el-input></el-form-item> -->
|
||||
<!-- <el-form-item label="开放权限"><el-input maxlength="50" v-model="courseInfo.openObject" placeholder="可基于组织树或受众选择"></el-input></el-form-item> -->
|
||||
<el-form-item label="课程简介">
|
||||
<el-input type="textarea" maxlength="100" show-word-limit :rows="3" v-model="courseInfo.summary" placeholder="课程介绍,要换成富文本编辑器"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="课程描述">
|
||||
<WxEditor v-model="courseInfo.overview" :minHeight="100"></WxEditor>
|
||||
</el-form-item> -->
|
||||
<el-form-item label=""><el-button type="primary" v-loading="btnLoading" @click="saveEdit">保存</el-button> </el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="课件" name="courseware">
|
||||
<div v-if="coursewareInfo.content.contentType == 10" style="position: relative;">
|
||||
<videoPlayer :src="fileBaseUrl+curriculumData.url"
|
||||
@onPlayerPlaying="onPlayerPlaying"
|
||||
@onPlayerPlay="onPlayerPlay"
|
||||
@onPlayerPause="onPlayerPause"
|
||||
@onPlayerEnded="onPlayerEnded"></videoPlayer>
|
||||
<!-- <video :src="fileBaseUrl+coursewareInfo.content.content" width="100%" controls controlslist="nodownload" style="width: 100%; height: 100%; object-fit: fill"></video> -->
|
||||
</div>
|
||||
<div v-if="coursewareInfo.content.contentType == 20">
|
||||
<audioPlayer :url="fileBaseUrl+curriculumData.url"
|
||||
:name="coursewareInfo.content.contentName"
|
||||
@onPlaying="audioPlaying"
|
||||
@onPlay="audioPlay"
|
||||
@onPause="audioPause"
|
||||
@onPlayEnd="audioEnd"
|
||||
></audioPlayer>
|
||||
<!-- <audio width="100%" controls :src="fileBaseUrl+coursewareInfo.content.content">
|
||||
您的浏览器不支持 audio 标签。
|
||||
</audio> -->
|
||||
</div>
|
||||
<div v-if="coursewareInfo.content.contentType == 40">
|
||||
<pdfPreview :filePath="fileBaseUrl+contentData.content"></pdfPreview>
|
||||
</div>
|
||||
<div v-if="coursewareInfo.content.contentType == 41">
|
||||
<div class="picture-text" v-html="coursewareInfo.content.content"></div>
|
||||
</div>
|
||||
<div v-if="coursewareInfo.content.contentType == 52">
|
||||
<div v-if="coursewareInfo.content.content!=''">
|
||||
<!-- <hyper-link :content="coursewareInfo.content"></hyper-link> -->
|
||||
<!-- <iframe :src="coursewareInfo.content.content" style="width: 100%;border:0px;min-height: 473px;" frameborder="0"></iframe> -->
|
||||
</div>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="homeworkInfo.id" label="作业" name="homework">
|
||||
<homework :showRecord="isDetails" v-if="homeworkInfo.id" :showSubmit="false" :content="homeworkInfo" ></homework>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="examInfo.id" label="考试" name="test">
|
||||
<exam :showRecord="isDetails" :showTest="showTest" v-if="examInfo.id" :showSubmit="false" :content="examInfo"></exam>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="assessInfo.id" label="评估" name="assess">
|
||||
<assess :showSubmit="false" v-if="assessInfo.id" :showRecord="false" :content="assessInfo"></assess>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="修改记录" name="record" v-if="isShow">
|
||||
<div class="grid-info">
|
||||
<el-table border style="margin-bottom: 20px" height="350" :data="dataList">
|
||||
<el-table-column type="expand">
|
||||
<template slot-scope="props">
|
||||
<el-table border style="margin-bottom: 10px" :data="props.row.logData">
|
||||
<el-table-column label="内容" prop="title"></el-table-column>
|
||||
<el-table-column label="修改前" prop="before" show-overflow-tooltip>
|
||||
<template slot-scope="props">
|
||||
{{props.row.before == 'null' || props.row.before == ''? '--':props.row.before}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="修改后" prop="after" show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="修改人" prop="sysCreateBy"></el-table-column>
|
||||
<el-table-column label="修改时间" prop="sysCreateTime"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import apiCoursePortal from "@/api/modules/coursePortal.js";
|
||||
import {
|
||||
formatDate,
|
||||
courseType,
|
||||
getType,
|
||||
numberToLetter
|
||||
} from "@/utils/tools.js";
|
||||
import imageUpload from "@/components/ImageUpload/index.vue";
|
||||
import pdfPreview from "@/components/PdfPreview/index.vue";
|
||||
import weikeContent from "@/components/Course/weikeContent.vue";
|
||||
import catalogCourseware from "@/components/Course/catalogCourseware.vue";
|
||||
import apiCourse from "@/api/modules/course.js";
|
||||
import scene from "../../api/modules/scene.js";
|
||||
import exam from "@/components/Course/exam";
|
||||
import homework from "@/components/Course/homework";
|
||||
import assess from "@/components/Course/assess";
|
||||
import WxEditor from "@/components/Editor/index.vue";
|
||||
import apiTag from "../../api/modules/tag.js";
|
||||
import videoPlayer from "@/components/VideoPlayer/index.vue";
|
||||
import audioPlayer from "@/components/AudioPlayer/index.vue";
|
||||
import { mapGetters, mapActions } from "vuex";
|
||||
// import hyperLink from '@/components/Course/hyperLink.vue';
|
||||
export default {
|
||||
name: "auditCourse1",
|
||||
components: {
|
||||
weikeContent,
|
||||
catalogCourseware,
|
||||
imageUpload,
|
||||
exam,
|
||||
homework,
|
||||
assess,
|
||||
WxEditor,
|
||||
pdfPreview,
|
||||
videoPlayer,
|
||||
audioPlayer
|
||||
// hyperLink
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["resOwnerMap", "sysTypeMap"])
|
||||
},
|
||||
props: {
|
||||
id: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
isDetails: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
isShow: {
|
||||
// 控制修改记录,编辑按钮是否出现
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
showTest: {
|
||||
//预览显示试题
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
courseType: courseType,
|
||||
isEdit: true,
|
||||
homeworkInfo: {},
|
||||
examInfo: {},
|
||||
assessInfo: {},
|
||||
fileBaseUrl: process.env.VUE_APP_FILE_BASE_URL,
|
||||
btnLoading: false,
|
||||
coursewareInfo: {
|
||||
content: {},
|
||||
finish: false,
|
||||
studyItemId: ""
|
||||
},
|
||||
curriculumData: {
|
||||
url: "",
|
||||
isDrag: false,
|
||||
completeSetup: 1
|
||||
},
|
||||
sceneList: [],
|
||||
sysType: [],
|
||||
tagList: [], // 标签
|
||||
showTags: [], //用于显示标签
|
||||
teacherList: [],
|
||||
teacherName: [],
|
||||
teacher: [],
|
||||
loading: false,
|
||||
resOwnerArray: [],
|
||||
defaultProps: {
|
||||
value: "code",
|
||||
label: "name"
|
||||
},
|
||||
sysProps: {
|
||||
value: "id",
|
||||
label: "name"
|
||||
},
|
||||
courseCoverurl: "",
|
||||
courseInfo: {}, //基本信息
|
||||
dataList: [],
|
||||
activeName: "info",
|
||||
resOwnerListMap: [],
|
||||
resOwnerListMap: [],
|
||||
rules: {
|
||||
name: [{ required: true, message: "请输入课程名称", trigger: "blur" }],
|
||||
kind: [
|
||||
{ required: true, message: "请选择课程分类", trigger: "change" }
|
||||
],
|
||||
location: [
|
||||
{ required: true, message: "请选择资源归属", trigger: "change" }
|
||||
],
|
||||
aim: [{ required: true, message: "请输入目标人群", trigger: "blur" }],
|
||||
courseValue: [
|
||||
{ required: true, message: "请输入课程价值", trigger: "blur" }
|
||||
],
|
||||
tag: [{ required: true, message: "请输入标签", trigger: "blur" }],
|
||||
power: [{ required: true, message: "请输入开放权限", trigger: "blur" }]
|
||||
}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getDetail();
|
||||
this.getSceneData();
|
||||
this.updateLogs();
|
||||
this.getResOwnerTree().then(rs => {
|
||||
this.resOwnerListMap = rs;
|
||||
});
|
||||
this.getSysTypeTree().then(rs => {
|
||||
this.sysTypeListMap = rs;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
...mapActions({
|
||||
getResOwnerTree: "resOwner/getResOwnerTree",
|
||||
loadResOwners: "resOwner/loadResOwners",
|
||||
getSysTypeTree: "sysType/getSysTypeTree",
|
||||
loadSysTypes: "sysType/loadSysTypes"
|
||||
}),
|
||||
resOwnerName(code) {
|
||||
if (code == "") {
|
||||
return "";
|
||||
}
|
||||
return this.resOwnerMap.get(code);
|
||||
},
|
||||
sysTypeName(code) {
|
||||
if (code == "") {
|
||||
return "";
|
||||
}
|
||||
return this.sysTypeMap.get(code);
|
||||
},
|
||||
onPlayerPlay() {
|
||||
console.log("开始播放");
|
||||
},
|
||||
onPlayerPause() {
|
||||
console.log("暂停");
|
||||
},
|
||||
onPlayerEnded() {
|
||||
console.log("播放结束");
|
||||
},
|
||||
onPlayerPlaying(itme) {
|
||||
console.log("当前播放" + itme);
|
||||
},
|
||||
audioPlaying(item) {
|
||||
console.log("当前播放" + item);
|
||||
},
|
||||
audioPlay() {
|
||||
console.log("开始播放");
|
||||
},
|
||||
audioPause() {
|
||||
console.log("暂停");
|
||||
},
|
||||
audioEnd() {
|
||||
console.log("播放结束");
|
||||
},
|
||||
// 场景过滤
|
||||
sceneFilter(forScene) {
|
||||
// sceneList
|
||||
// this.courseInfo.forScene
|
||||
let name = "";
|
||||
this.sceneList.forEach(item => {
|
||||
if (item.id === forScene) {
|
||||
name = item.name;
|
||||
}
|
||||
});
|
||||
return name;
|
||||
},
|
||||
//修改记录
|
||||
updateLogs() {
|
||||
let params = {
|
||||
courseId: this.id,
|
||||
name: ""
|
||||
};
|
||||
apiCourse.findUpdateLogs(params).then(res => {
|
||||
if (res.status === 200) {
|
||||
res.result.forEach(item => {
|
||||
item.logData = JSON.parse(item.logData);
|
||||
});
|
||||
this.dataList = res.result;
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
});
|
||||
},
|
||||
saveEdit() {
|
||||
this.btnLoading = true;
|
||||
this.courseInfo.tags = this.showTags.join();
|
||||
//处理资源归属
|
||||
// if (this.resOwnerArray.length > 0) {
|
||||
// this.courseInfo.resOwner1 = this.resOwnerArray[0]; //资源归属一级的id
|
||||
// this.courseInfo.resOwner2 = this.resOwnerArray[1]; //资源归属二级的id
|
||||
// } else {
|
||||
// this.$message.error("请选择资源归属");
|
||||
// this.btnLoading = false;
|
||||
// return;
|
||||
// }
|
||||
if (this.resOwnerArray.length > 2) {
|
||||
this.courseInfo.resOwner3 = this.resOwnerArray[2]; //资源归属三级的id
|
||||
}
|
||||
// 分类
|
||||
if (this.sysType.length > 0) {
|
||||
this.courseInfo.sysType1 = this.sysType[0]; //资源归属一级的id
|
||||
this.courseInfo.sysType2 = this.sysType[1]; //资源归属二级的id
|
||||
} else {
|
||||
this.$message.error("请选择内容分类");
|
||||
this.btnLoading = false;
|
||||
return;
|
||||
}
|
||||
if (this.sysType.length > 2) {
|
||||
this.courseInfo.sysType3 = this.sysType[2]; //资源归属三级的id
|
||||
}
|
||||
// let postData = {
|
||||
// course: this.courseInfo,
|
||||
// // teachers: this.teacherName
|
||||
// };
|
||||
apiCourse
|
||||
.saveOnlyCourse(this.courseInfo)
|
||||
.then(res => {
|
||||
if (res.status === 200) {
|
||||
this.$message.success("操作成功!");
|
||||
// let result = res.result;
|
||||
this.isEdit = true;
|
||||
this.courseInfo = result.course;
|
||||
// this.curCourseId = result.course.id; //设置当前课程的id
|
||||
// this.courseTeachers = result.teachers;
|
||||
// let list = [];
|
||||
// this.courseTeachers.forEach(item => {
|
||||
// list.push(item.teacherName);
|
||||
// });
|
||||
this.btnLoading = false;
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
this.btnLoading = false;
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.btnLoading = false;
|
||||
});
|
||||
},
|
||||
// 标签远程查询
|
||||
async remoteTagMethod(query) {
|
||||
if (query) {
|
||||
try {
|
||||
const { result, status } = await apiTag.findByName(1, query);
|
||||
if (status === 200) {
|
||||
this.tagList = result;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
} else {
|
||||
this.tagList = [];
|
||||
}
|
||||
},
|
||||
//获取场景,保留
|
||||
async getSceneData() {
|
||||
try {
|
||||
const { result, status } = await scene.list(1);
|
||||
if (status === 200) {
|
||||
this.sceneList = result;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
},
|
||||
// 教师列标,远程查询
|
||||
async remoteMethod(query) {
|
||||
if (query) {
|
||||
this.loading = true;
|
||||
try {
|
||||
const { result, status } = await apiTeacher.findByName(query);
|
||||
if (status === 200) {
|
||||
let list = [];
|
||||
result.forEach(item => {
|
||||
list.push({
|
||||
teacherId: item.id,
|
||||
teacherName: item.name
|
||||
});
|
||||
});
|
||||
this.teacherList = list;
|
||||
this.loading = false;
|
||||
}
|
||||
} catch (error) {
|
||||
this.loading = false;
|
||||
}
|
||||
} else {
|
||||
this.teacherList = [];
|
||||
}
|
||||
},
|
||||
//上传课程图片处理
|
||||
uploadCoverImgSuccess(res) {
|
||||
this.courseInfo.coverImg = res.result.filePath;
|
||||
this.courseCoverurl = res.result.httpPath;
|
||||
},
|
||||
removeCoverImgSuccess() {
|
||||
this.courseCoverurl = "";
|
||||
this.courseInfo.coverImg = "";
|
||||
},
|
||||
getDetail() {
|
||||
let $this = this;
|
||||
apiCoursePortal.detail(this.id).then(rs => {
|
||||
if (rs.status == 200) {
|
||||
this.courseInfo = rs.result.course;
|
||||
this.teacherList = rs.result.teachers;
|
||||
this.teacherName = rs.result.teachers;
|
||||
this.teacher = rs.result.teachers.map(res => res.teacherName);
|
||||
this.totalContent = rs.result.contents.length; //计算总内容数
|
||||
if (this.courseInfo.tags != "") {
|
||||
this.showTags = this.courseInfo.tags.split(",");
|
||||
}
|
||||
if (rs.result.course.coverImg !== "") {
|
||||
this.courseCoverurl = this.fileBaseUrl + rs.result.course.coverImg;
|
||||
}
|
||||
if (rs.result.course.resOwner3 == "") {
|
||||
this.resOwnerArray = [
|
||||
rs.result.course.resOwner1,
|
||||
rs.result.course.resOwner2
|
||||
];
|
||||
} else {
|
||||
this.resOwnerArray = [
|
||||
rs.result.course.resOwner1,
|
||||
rs.result.course.resOwner2,
|
||||
rs.result.course.resOwner3
|
||||
];
|
||||
}
|
||||
if (
|
||||
rs.result.course.sysType3 == "" &&
|
||||
rs.result.course.sysType2 == ""
|
||||
) {
|
||||
this.sysType = [rs.result.course.sysType1];
|
||||
} else if (rs.result.course.sysType3 == "") {
|
||||
this.sysType = [
|
||||
rs.result.course.sysType1,
|
||||
rs.result.course.sysType2
|
||||
];
|
||||
} else {
|
||||
this.sysType = [
|
||||
rs.result.course.sysType1,
|
||||
rs.result.course.sysType2,
|
||||
rs.result.course.sysType3
|
||||
];
|
||||
}
|
||||
rs.result.contents.forEach(con => {
|
||||
if (con.sortIndex == 1) {
|
||||
$this.coursewareInfo.content = con;
|
||||
if (
|
||||
$this.coursewareInfo.content.contentType == 10 ||
|
||||
$this.coursewareInfo.content.contentType == 20
|
||||
) {
|
||||
if (con.content.startsWith("{")) {
|
||||
this.curriculumData = JSON.parse(con.content);
|
||||
} else {
|
||||
this.curriculumData.url = con.content;
|
||||
}
|
||||
}
|
||||
if ($this.coursewareInfo.content.contentType == 40) {
|
||||
let url = this.fileBaseUrl + r.content;
|
||||
}
|
||||
} else if (con.sortIndex == 2) {
|
||||
$this.homeworkInfo = con;
|
||||
//查询作业信息,并显示
|
||||
} else if (con.sortIndex == 3) {
|
||||
$this.examInfo = con;
|
||||
} else if (con.sortIndex == 4) {
|
||||
$this.assessInfo = con;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.$message.error(rs.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .picture-text{
|
||||
img{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.examine-index {
|
||||
.grid-info {
|
||||
display: flex;
|
||||
padding: 0 20px;
|
||||
.grid-item {
|
||||
flex: 1;
|
||||
.item-one {
|
||||
font-size: 16px;
|
||||
height: 20px;
|
||||
}
|
||||
.item-title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
.demo-table-expand {
|
||||
font-size: 0;
|
||||
}
|
||||
.demo-table-expand label {
|
||||
width: 90px;
|
||||
color: #99a9bf;
|
||||
}
|
||||
.demo-table-expand .el-form-item {
|
||||
margin-right: 0;
|
||||
margin-bottom: 0;
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
.homework-div {
|
||||
border: 1px solid;
|
||||
min-height: 500px;
|
||||
padding: 20px;
|
||||
font-size: 14px;
|
||||
.homework-title {
|
||||
font-weight: 600;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.homework-content {
|
||||
color: #666;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
.test-div {
|
||||
border: 1px solid;
|
||||
min-height: 500px;
|
||||
padding: 20px;
|
||||
font-size: 14px;
|
||||
.test-info {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
.assess-div {
|
||||
border: 1px solid;
|
||||
min-height: 500px;
|
||||
padding: 20px;
|
||||
font-size: 14px;
|
||||
.assess-info {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user