|
@@ -47,11 +47,23 @@
|
|
|
返回
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="project_box"
|
|
|
- style="margin-top: 15px; margin-bottom: 20px"
|
|
|
- v-if="type == 1"
|
|
|
- >
|
|
|
+
|
|
|
+ <div class="study_top">
|
|
|
+ <div class="checkbox">
|
|
|
+ <div
|
|
|
+ class="check"
|
|
|
+ :class="{ checked: taskCount == index }"
|
|
|
+ v-for="(task, index) in chapInfo.chapterInfo[0].taskJson"
|
|
|
+ :key="index"
|
|
|
+ style="font-size: 19px"
|
|
|
+ @click="swichTask(index)"
|
|
|
+ >
|
|
|
+ 任务 {{ index + 1 }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="project_box" style="margin-top: 15px; margin-bottom: 20px">
|
|
|
<div
|
|
|
style="
|
|
|
display: flex;
|
|
@@ -65,10 +77,17 @@
|
|
|
<img src="../assets/icon/homeWork.png" alt="" />
|
|
|
</div> -->
|
|
|
<div class="queTitle">
|
|
|
- <div>任务描述</div>
|
|
|
+ <div style="color: #000">
|
|
|
+ {{
|
|
|
+ chapInfo.chapterInfo[0].taskJson[taskCount].task
|
|
|
+ ? chapInfo.chapterInfo[0].taskJson[taskCount].task
|
|
|
+ : "暂无名称"
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="padding: 20px">
|
|
|
+ <span style="color: #cbcbcb">任务描述</span>
|
|
|
<!-- <textarea
|
|
|
rows="6"
|
|
|
class="binfo_input"
|
|
@@ -77,18 +96,18 @@
|
|
|
v-model="chapInfo.taskDetail"
|
|
|
></textarea> -->
|
|
|
{{
|
|
|
- chapInfo.taskDetail != undefined
|
|
|
- ? chapInfo.taskDetail
|
|
|
+ chapInfo.chapterInfo[0].taskJson[taskCount].taskDetail
|
|
|
+ ? chapInfo.chapterInfo[0].taskJson[taskCount].taskDetail
|
|
|
: "暂无描述"
|
|
|
}}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="student_head">
|
|
|
- <div class="course_text" v-if="chapInfo.dyText != ''">
|
|
|
+ <!-- <div class="course_text" v-if="chapInfo.dyText != ''">
|
|
|
{{ chapInfo.dyText }}
|
|
|
</div>
|
|
|
- <div class="course_text" v-else>暂无课程简介</div>
|
|
|
+ <div class="course_text" v-else>暂无课程简介</div> -->
|
|
|
<div class="box_course" v-if="vedio.length > 0">
|
|
|
<div class="wheel">
|
|
|
<div class="workd_media">
|
|
@@ -102,26 +121,50 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="vedioList">
|
|
|
- <div class="vedioNav">视频列表</div>
|
|
|
- <div
|
|
|
- class="media"
|
|
|
- v-for="(media, index) in vedio"
|
|
|
- :key="index"
|
|
|
- style="width: 160px; margin: 10px auto; position: relative"
|
|
|
- >
|
|
|
- <img
|
|
|
- style="height: 90px; width: 160px"
|
|
|
- :src="
|
|
|
- media.cover != null && media.cover != ''
|
|
|
- ? JSON.parse(media.cover).length > 0
|
|
|
- ? JSON.parse(media.cover)[0].url
|
|
|
+ <div style="height: 250px; overflow: auto">
|
|
|
+ <div class="vedioNav">视频列表</div>
|
|
|
+ <div
|
|
|
+ class="media"
|
|
|
+ v-for="(media, index) in vedio"
|
|
|
+ :key="index"
|
|
|
+ style="width: 160px; margin: 10px auto; position: relative"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ style="height: 90px; width: 160px"
|
|
|
+ :src="
|
|
|
+ media.cover != null && media.cover != ''
|
|
|
+ ? JSON.parse(media.cover).length > 0
|
|
|
+ ? JSON.parse(media.cover)[0].url
|
|
|
+ : mr
|
|
|
: mr
|
|
|
- : mr
|
|
|
- "
|
|
|
- alt=""
|
|
|
- @click="lookVedio(media.url)"
|
|
|
- />
|
|
|
- <div class="vedioName">{{ media.name }}</div>
|
|
|
+ "
|
|
|
+ alt=""
|
|
|
+ @click="lookVedio(media.url)"
|
|
|
+ />
|
|
|
+ <div class="vedioName">{{ media.name }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="height: 250px; overflow: auto">
|
|
|
+ <div class="vedioNav">附文本列表</div>
|
|
|
+ <div
|
|
|
+ style="width: 160px; margin: 10px auto; position: relative"
|
|
|
+ >
|
|
|
+ <!-- <img
|
|
|
+ style="height: 90px; width: 160px"
|
|
|
+ :src="
|
|
|
+ media.cover != null && media.cover != ''
|
|
|
+ ? JSON.parse(media.cover).length > 0
|
|
|
+ ? JSON.parse(media.cover)[0].url
|
|
|
+ : mr
|
|
|
+ : mr
|
|
|
+ "
|
|
|
+ alt=""
|
|
|
+ @click="lookVedio(media.url)"
|
|
|
+ /> -->
|
|
|
+ <div style="cursor: pointer" @click="lookText">
|
|
|
+ {{ text[0].name }}.doc
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- <div style="font-size: 18px; margin: 15px">
|
|
@@ -248,121 +291,142 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div> -->
|
|
|
- <div class="project_box" v-if="type == 1">
|
|
|
+ <div class="project_box">
|
|
|
<div class="queTop">
|
|
|
<div class="question" style="width: 30px">
|
|
|
- <img src="../assets/icon/toolIcon.png" alt="" />
|
|
|
+ <img src="../assets/icon/fileIcon.png" alt="" />
|
|
|
</div>
|
|
|
<div class="queTitle">
|
|
|
- <div>工具</div>
|
|
|
+ <div>附件</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="filebox" v-if="!chapInfo.chapterInfo[0].toolChoose">
|
|
|
- 暂无数据
|
|
|
+ <div class="filebox">
|
|
|
+ <div class="file" v-for="(f, index) in file" :key="index">
|
|
|
+ <img :src="require('../assets/file.png')" alt="" />
|
|
|
+ <div>{{ f.name }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="filebox" v-else>
|
|
|
- <div style="padding: 0 0 20px 30px">
|
|
|
- <div style="margin: 0 0 20px 0;">工具描述</div>
|
|
|
- <div>
|
|
|
- {{
|
|
|
- chapInfo.toolText != undefined
|
|
|
- ? chapInfo.toolText
|
|
|
- : "暂无描述"
|
|
|
- }}
|
|
|
- </div>
|
|
|
+ <div class="upFile" v-if="type == 3">提交</div>
|
|
|
+ </div>
|
|
|
+ <div class="project_box">
|
|
|
+ <div class="queTop">
|
|
|
+ <div class="question" style="width: 30px">
|
|
|
+ <img src="../assets/icon/toolIcon.png" alt="" />
|
|
|
</div>
|
|
|
- <div class="chooseWho">
|
|
|
- <div
|
|
|
- :class="toolType == 0 ? 'isChooseActive' : ''"
|
|
|
- @click="addToolsType(0)"
|
|
|
- >
|
|
|
- 展示类
|
|
|
- </div>
|
|
|
- <div
|
|
|
- :class="toolType == 1 ? 'isChooseActive' : ''"
|
|
|
- @click="addToolsType(1)"
|
|
|
- >
|
|
|
- 思维类
|
|
|
- </div>
|
|
|
- <div
|
|
|
- :class="toolType == 2 ? 'isChooseActive' : ''"
|
|
|
- @click="addToolsType(2)"
|
|
|
- >
|
|
|
- 评价类
|
|
|
- </div>
|
|
|
+ <div class="queTitle">
|
|
|
+ <div>工具</div>
|
|
|
</div>
|
|
|
-
|
|
|
+ </div>
|
|
|
+ <!-- <div class="filebox" v-if="!chapInfo.chapterInfo[0].taskJson[taskCount].toolChoose.length">
|
|
|
+ 暂无数据
|
|
|
+ </div> -->
|
|
|
+ <div class="toolHeng">
|
|
|
<div
|
|
|
- style="
|
|
|
- display: flex;
|
|
|
- width: 100%;
|
|
|
- flex-direction: row;
|
|
|
- flex-wrap: wrap;
|
|
|
- margin: 20px auto;
|
|
|
- "
|
|
|
+ class="filebox"
|
|
|
+ v-for="(tool, toolIndex) in chapInfo.chapterInfo[0].taskJson[
|
|
|
+ taskCount
|
|
|
+ ].toolChoose"
|
|
|
+ :key="toolIndex"
|
|
|
>
|
|
|
<div
|
|
|
- class="addPoint"
|
|
|
- v-for="(itemTool, indexTool) in toolTypeList"
|
|
|
- :key="indexTool"
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ margin: 20px auto 0;
|
|
|
+ "
|
|
|
>
|
|
|
- <img
|
|
|
- v-if="itemTool == 8"
|
|
|
- src="../assets/icon/secondToolList/library.png"
|
|
|
- alt=""
|
|
|
- @click="addTools(itemTool)"
|
|
|
- />
|
|
|
- <div v-if="itemTool == 8" style="margin: 5px 0">素材库</div>
|
|
|
- <img
|
|
|
- v-if="itemTool == 1"
|
|
|
- @click="addTools(itemTool)"
|
|
|
- src="../assets/icon/secondToolList/whiteBoard.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div v-if="itemTool == 1" style="margin: 5px 0">电子白板</div>
|
|
|
- <img
|
|
|
- v-if="itemTool == 2"
|
|
|
- @click="addTools(itemTool)"
|
|
|
- src="../assets/icon/secondToolList/note.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div v-if="itemTool == 2" style="margin: 5px 0">便签</div>
|
|
|
- <img
|
|
|
- v-if="itemTool == 3"
|
|
|
- @click="addTools(itemTool)"
|
|
|
- src="../assets/icon/secondToolList/mindMapping.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div v-if="itemTool == 3" style="margin: 5px 0">思维导图</div>
|
|
|
- <img
|
|
|
- v-if="itemTool == 6"
|
|
|
- @click="addTools(itemTool)"
|
|
|
- src="../assets/icon/secondToolList/doc.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div v-if="itemTool == 6" style="margin: 5px 0">协同文档</div>
|
|
|
- <img
|
|
|
- v-else-if="itemTool == 7"
|
|
|
- @click="addTools(itemTool)"
|
|
|
- src="../assets/icon/secondToolList/mindNetwork.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div v-if="itemTool == 7" style="margin: 5px 0">思维网格</div>
|
|
|
- <img
|
|
|
- v-if="itemTool == 4"
|
|
|
- @click="addTools(itemTool)"
|
|
|
- src="../assets/icon/thirdToolList/ask.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div v-if="itemTool == 4" style="margin: 5px 0">问卷调查</div>
|
|
|
- <img
|
|
|
- v-else-if="itemTool == 5"
|
|
|
- @click="addTools(itemTool)"
|
|
|
- src="../assets/icon/thirdToolList/score.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div v-if="itemTool == 5" style="margin: 5px 0">量规评分</div>
|
|
|
+ <!-- v-for="(itemTool, indexTool) in toolTypeList"
|
|
|
+ :key="indexTool" -->
|
|
|
+ <div class="addPoint">
|
|
|
+ <img
|
|
|
+ v-if="tool.tool == 8"
|
|
|
+ src="../assets/icon/secondToolList/library.png"
|
|
|
+ alt=""
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 8" style="margin: 5px 0">
|
|
|
+ 素材库
|
|
|
+ </div>
|
|
|
+ <img
|
|
|
+ v-if="tool.tool == 1"
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ src="../assets/icon/secondToolList/whiteBoard.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 1" style="margin: 5px 0">
|
|
|
+ 电子白板
|
|
|
+ </div>
|
|
|
+ <img
|
|
|
+ v-if="tool.tool == 2"
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ src="../assets/icon/secondToolList/note.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 2" style="margin: 5px 0">便签</div>
|
|
|
+ <img
|
|
|
+ v-if="tool.tool == 3"
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ src="../assets/icon/secondToolList/mindMapping.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 3" style="margin: 5px 0">
|
|
|
+ 思维导图
|
|
|
+ </div>
|
|
|
+ <img
|
|
|
+ v-if="tool.tool == 6"
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ src="../assets/icon/secondToolList/doc.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 6" style="margin: 5px 0">
|
|
|
+ 协同文档
|
|
|
+ </div>
|
|
|
+ <img
|
|
|
+ v-else-if="tool.tool == 7"
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ src="../assets/icon/secondToolList/mindNetwork.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 7" style="margin: 5px 0">
|
|
|
+ 思维网格
|
|
|
+ </div>
|
|
|
+ <img
|
|
|
+ v-if="tool.tool == 4"
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ src="../assets/icon/thirdToolList/ask.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 4" style="margin: 5px 0">
|
|
|
+ 问卷调查
|
|
|
+ </div>
|
|
|
+ <img
|
|
|
+ v-else-if="tool.tool == 5"
|
|
|
+ @click="addTools(tool.tool, toolIndex)"
|
|
|
+ src="../assets/icon/thirdToolList/score.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div v-if="tool.tool == 5" style="margin: 5px 0">
|
|
|
+ 量规评分
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="padding: 0 0 20px 30px">
|
|
|
+ <div style="margin: 0 0 20px 0">工具描述</div>
|
|
|
+ <div style="width: 380px;height: 150px;
|
|
|
+ overflow: auto;">
|
|
|
+ <!-- {{ tool.toolDetail != "" ? tool.toolDetail : "暂无描述" }} -->
|
|
|
+ 暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述暂无描述
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- <div class="chooseWho">
|
|
|
+ <div :class="toolType == 0 ? 'isChooseActive' : ''">
|
|
|
+ @click="addToolsType(0)"
|
|
|
+ 展示类
|
|
|
</div>
|
|
|
+ <div :class="toolType == 1 ? 'isChooseActive' : ''">思维类</div>
|
|
|
+ <div :class="toolType == 2 ? 'isChooseActive' : ''">评价类</div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -382,7 +446,7 @@
|
|
|
</div>
|
|
|
<div class="detail_content" v-html="courseDetail.template"></div>
|
|
|
</div> -->
|
|
|
- <div class="project_box" v-if="type == 1">
|
|
|
+ <!-- <div class="project_box">
|
|
|
<div class="queTop">
|
|
|
<div class="question" style="width: 30px">
|
|
|
<img src="../assets/icon/homeWorkIcon.png" alt="" />
|
|
@@ -437,28 +501,11 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="project_box" v-if="type == 1">
|
|
|
- <div class="queTop">
|
|
|
- <div class="question" style="width: 30px">
|
|
|
- <img src="../assets/icon/fileIcon.png" alt="" />
|
|
|
- </div>
|
|
|
- <div class="queTitle">
|
|
|
- <div>附件</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="filebox">
|
|
|
- <div class="file" v-for="(f, index) in file" :key="index">
|
|
|
- <img :src="require('../assets/file.png')" alt="" />
|
|
|
- <div>{{ f.name }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="upFile" v-if="type == 3">提交</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
+
|
|
|
<div
|
|
|
class="project_box"
|
|
|
style="margin-top: 15px; padding-bottom: 30px"
|
|
|
- v-if="type == 1"
|
|
|
>
|
|
|
<div
|
|
|
style="
|
|
@@ -474,7 +521,7 @@
|
|
|
</div>
|
|
|
<div class="queTitle">
|
|
|
<div>作业提交<span>(提交图文视频等)</span></div>
|
|
|
- <div>:{{ chapInfo.dyName }}</div>
|
|
|
+ <div>:{{ chapInfo.dyName }}任务{{ taskCount + 1 }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="ediBottom">
|
|
@@ -638,10 +685,7 @@
|
|
|
:before-close="handleClose"
|
|
|
class="dialog_diy"
|
|
|
>
|
|
|
- <div
|
|
|
- v-for="(item, index) in chapInfoList[courseType].chapterInfo"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
+ <div>
|
|
|
<div
|
|
|
class="a_add_title"
|
|
|
style="
|
|
@@ -652,27 +696,26 @@
|
|
|
"
|
|
|
>
|
|
|
<div style="margin-right: 20px; font-size: 20px">问卷标题:</div>
|
|
|
- <div style="font-size: 20px">{{ item.askTitle }}</div>
|
|
|
+ <div style="font-size: 20px">{{ askJson.askTitle }}</div>
|
|
|
</div>
|
|
|
<div class="a_addBox">
|
|
|
<div style="font-size: 16px; color: #c7c7c7">问卷内容</div>
|
|
|
<div
|
|
|
class="a_add_box"
|
|
|
- v-for="(item1, index1) in item.askCount"
|
|
|
+ v-for="(item1, index1) in askJson.askCount"
|
|
|
:key="index1"
|
|
|
>
|
|
|
<div class="a_add_head">
|
|
|
<div style="display: flex">
|
|
|
{{ index1 + 1 + "、" }}
|
|
|
- <div>问卷题目:{{ item.askJson[index1].askstitle }}</div>
|
|
|
+ <div>问卷题目:{{ askJson.askJson.askstitle }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="a_add_body">
|
|
|
<div class="a_add_input" v-if="!isAsk">
|
|
|
- <el-radio-group v-model="radio[index1]">
|
|
|
+ <el-radio-group v-model="radio[taskCount]">
|
|
|
<el-radio
|
|
|
- v-for="(item2, checkIndex) in item.askJson[index1]
|
|
|
- .checkList"
|
|
|
+ v-for="(item2, checkIndex) in askJson.askJson.checkList"
|
|
|
:key="checkIndex"
|
|
|
:label="checkIndex"
|
|
|
class="redioStyle"
|
|
@@ -681,10 +724,9 @@
|
|
|
</el-radio-group>
|
|
|
</div>
|
|
|
<div class="a_add_input" v-else>
|
|
|
- <el-radio-group v-model="radio[index1]">
|
|
|
+ <el-radio-group v-model="radio[taskCount]">
|
|
|
<el-radio
|
|
|
- v-for="(item3, checkIndex1) in item.askJson[index1]
|
|
|
- .checkList"
|
|
|
+ v-for="(item3, checkIndex1) in askJson.askJson.checkList"
|
|
|
:key="checkIndex1"
|
|
|
:label="checkIndex1"
|
|
|
class="redioStyle"
|
|
@@ -702,6 +744,33 @@
|
|
|
<el-button type="primary" @click="addStudentAsk">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="查看附文本"
|
|
|
+ :visible.sync="dialogVisible1"
|
|
|
+ :append-to-body="true"
|
|
|
+ width="500px"
|
|
|
+ :before-close="handleClose"
|
|
|
+ class="dialog_diy textCss"
|
|
|
+ >
|
|
|
+ <el-form style="font-size: 20px">
|
|
|
+ <el-form-item label="文本标题" class="textTitle">
|
|
|
+ <div style="font-size: 20px">{{ text[0].name }}</div>
|
|
|
+ <!-- <el-input v-model="AttText.title" auto-complete="off" placeholder="请输入文本标题..."></el-input> -->
|
|
|
+ </el-form-item>
|
|
|
+ <div>附文本内容</div>
|
|
|
+ <!-- <editor-bar v-model="AttText.text" @change="change"></editor-bar> -->
|
|
|
+ <div
|
|
|
+ v-html="text[0].url"
|
|
|
+ style="font-size: 18px; padding: 40px 0 0 0"
|
|
|
+ ></div>
|
|
|
+ </el-form>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <!-- <el-button @click="clearAttText">取 消</el-button> -->
|
|
|
+ <el-button type="primary" @click="dialogVisible1 = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
<el-dialog
|
|
|
title="提示"
|
|
|
:visible.sync="dialogVisible4"
|
|
@@ -730,6 +799,7 @@ export default {
|
|
|
oid: this.$route.query.oid,
|
|
|
type: 1,
|
|
|
vedio: [],
|
|
|
+ text: [],
|
|
|
file: [],
|
|
|
rateList: {
|
|
|
ca: 0,
|
|
@@ -748,6 +818,7 @@ export default {
|
|
|
courseDetail: {},
|
|
|
chapInfo: [],
|
|
|
chapInfoList: [],
|
|
|
+ taskCount: 0,
|
|
|
imgList: [],
|
|
|
noImgList: [],
|
|
|
playerOptions: {
|
|
@@ -790,13 +861,18 @@ export default {
|
|
|
libraryCount: 0,
|
|
|
dialogImageUrl: "",
|
|
|
pictureDialog: false,
|
|
|
- toolType: 0,
|
|
|
toolTypeList: [],
|
|
|
+ dialogVisible1: false,
|
|
|
dialogVisible4: false,
|
|
|
isNoHomeWork: false,
|
|
|
dialogVisible5: false,
|
|
|
radio: [],
|
|
|
isAsk: false,
|
|
|
+ askJson: {
|
|
|
+ askCount: 1,
|
|
|
+ askTitle: "",
|
|
|
+ askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
@@ -992,10 +1068,13 @@ export default {
|
|
|
upFile: [],
|
|
|
},
|
|
|
]),
|
|
|
- this.radio = [];
|
|
|
- this.getHomeWork();
|
|
|
+ (this.radio = []);
|
|
|
+ this.getHomeWork();
|
|
|
this.getStudentAsk();
|
|
|
this.getCourseDetail();
|
|
|
+ setTimeout(() => {
|
|
|
+ this.swichTask(0);
|
|
|
+ }, 0);
|
|
|
},
|
|
|
addQuestion() {
|
|
|
let params = [
|
|
@@ -1021,6 +1100,72 @@ export default {
|
|
|
console.error(err);
|
|
|
});
|
|
|
},
|
|
|
+ swichTask(i) {
|
|
|
+ this.taskCount = i;
|
|
|
+ this.isNoHomeWork = false;
|
|
|
+ this.isAsk = false;
|
|
|
+ this.getHomeWork();
|
|
|
+ this.getStudentAsk();
|
|
|
+ var a = this.chapInfo.chapterInfo[0].taskJson[this.taskCount];
|
|
|
+ var b = [
|
|
|
+ "AVI",
|
|
|
+ "NAVI",
|
|
|
+ "MPEG",
|
|
|
+ "ASF",
|
|
|
+ "MOV",
|
|
|
+ "WMV",
|
|
|
+ "3GP",
|
|
|
+ "RM",
|
|
|
+ "RMVB",
|
|
|
+ "FLV",
|
|
|
+ "F4V",
|
|
|
+ "H.264",
|
|
|
+ "H.265",
|
|
|
+ "REAL VIDEO",
|
|
|
+ "MKV",
|
|
|
+ "WebM",
|
|
|
+ "HDDVD",
|
|
|
+ "MP4",
|
|
|
+ "MPG",
|
|
|
+ "M4V",
|
|
|
+ "MGV",
|
|
|
+ "OGV",
|
|
|
+ "QTM",
|
|
|
+ "STR",
|
|
|
+ "AMC",
|
|
|
+ "DVX",
|
|
|
+ "EVO",
|
|
|
+ "DAT",
|
|
|
+ "OGG",
|
|
|
+ "OGM",
|
|
|
+ ];
|
|
|
+ this.vedio = [];
|
|
|
+ this.text = [];
|
|
|
+ this.file = [];
|
|
|
+ var c = a.chapterData;
|
|
|
+ for (var j = 0; j < c.length; j++) {
|
|
|
+ if (
|
|
|
+ b.indexOf(
|
|
|
+ c[j].url
|
|
|
+ .split(".")
|
|
|
+ [c[j].url.split(".").length - 1].toLocaleUpperCase()
|
|
|
+ ) != -1
|
|
|
+ ) {
|
|
|
+ this.vedio.push(c[j]);
|
|
|
+ } else {
|
|
|
+ this.file.push(c[j]);
|
|
|
+ }
|
|
|
+ if (c[j].type == 6) {
|
|
|
+ this.text.push(c[j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ this.playerOptions.sources[0].src =
|
|
|
+ this.vedio.length > 0
|
|
|
+ ? this.vedio[0].url
|
|
|
+ : require("../assets/icon/wheel.png");
|
|
|
+ this.playerO = this.playerOptions;
|
|
|
+ },
|
|
|
getCourseDetail() {
|
|
|
const loading = this.$loading.service({
|
|
|
background: "rgba(255, 255, 255, 0.7)",
|
|
@@ -1035,90 +1180,90 @@ export default {
|
|
|
.then((res) => {
|
|
|
loading.close();
|
|
|
// element.imgUrl = JSON.parse(element.chapters).poster;
|
|
|
- var a = JSON.parse(res.data[0][0].chapters)[t].chapterInfo[0]
|
|
|
- .chapterData;
|
|
|
- var b = [
|
|
|
- "AVI",
|
|
|
- "NAVI",
|
|
|
- "MPEG",
|
|
|
- "ASF",
|
|
|
- "MOV",
|
|
|
- "WMV",
|
|
|
- "3GP",
|
|
|
- "RM",
|
|
|
- "RMVB",
|
|
|
- "FLV",
|
|
|
- "F4V",
|
|
|
- "H.264",
|
|
|
- "H.265",
|
|
|
- "REAL VIDEO",
|
|
|
- "MKV",
|
|
|
- "WebM",
|
|
|
- "HDDVD",
|
|
|
- "MP4",
|
|
|
- "MPG",
|
|
|
- "M4V",
|
|
|
- "MGV",
|
|
|
- "OGV",
|
|
|
- "QTM",
|
|
|
- "STR",
|
|
|
- "AMC",
|
|
|
- "DVX",
|
|
|
- "EVO",
|
|
|
- "DAT",
|
|
|
- "OGG",
|
|
|
- "OGM",
|
|
|
- ];
|
|
|
- this.vedio = [];
|
|
|
- this.file = [];
|
|
|
- for (var i = 0; i < a.length; i++) {
|
|
|
- if (
|
|
|
- b.indexOf(
|
|
|
- a[i].url
|
|
|
- .split(".")
|
|
|
- [a[i].url.split(".").length - 1].toLocaleUpperCase()
|
|
|
- ) != -1
|
|
|
- ) {
|
|
|
- this.vedio.push(a[i]);
|
|
|
- } else {
|
|
|
- this.file.push(a[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- // element.mediaList = JSON.parse(element.chapters)[0].chapterInfo[t].chapterData;
|
|
|
- console.log(this.vedio);
|
|
|
- console.log(this.file);
|
|
|
- // this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
|
|
|
+ // var a = JSON.parse(res.data[0][0].chapters)[t].chapterInfo[0]
|
|
|
+ // .taskJson;
|
|
|
+ // // var a = JSON.parse(res.data[0][0].chapters)[t].chapterInfo[0]
|
|
|
+ // // .chapterData;
|
|
|
+ // var b = [
|
|
|
+ // "AVI",
|
|
|
+ // "NAVI",
|
|
|
+ // "MPEG",
|
|
|
+ // "ASF",
|
|
|
+ // "MOV",
|
|
|
+ // "WMV",
|
|
|
+ // "3GP",
|
|
|
+ // "RM",
|
|
|
+ // "RMVB",
|
|
|
+ // "FLV",
|
|
|
+ // "F4V",
|
|
|
+ // "H.264",
|
|
|
+ // "H.265",
|
|
|
+ // "REAL VIDEO",
|
|
|
+ // "MKV",
|
|
|
+ // "WebM",
|
|
|
+ // "HDDVD",
|
|
|
+ // "MP4",
|
|
|
+ // "MPG",
|
|
|
+ // "M4V",
|
|
|
+ // "MGV",
|
|
|
+ // "OGV",
|
|
|
+ // "QTM",
|
|
|
+ // "STR",
|
|
|
+ // "AMC",
|
|
|
+ // "DVX",
|
|
|
+ // "EVO",
|
|
|
+ // "DAT",
|
|
|
+ // "OGG",
|
|
|
+ // "OGM",
|
|
|
+ // ];
|
|
|
+ // this.vedio = [];
|
|
|
+ // this.text = [];
|
|
|
+ // this.file = [];
|
|
|
+ // var c = a[0].chapterData;
|
|
|
+ // for (var j = 0; j < c.length; j++) {
|
|
|
+ // if (
|
|
|
+ // b.indexOf(
|
|
|
+ // c[j].url
|
|
|
+ // .split(".")
|
|
|
+ // [c[j].url.split(".").length - 1].toLocaleUpperCase()
|
|
|
+ // ) != -1
|
|
|
+ // ) {
|
|
|
+ // this.vedio.push(c[j]);
|
|
|
+ // } else {
|
|
|
+ // this.file.push(c[j]);
|
|
|
+ // }
|
|
|
+ // if (c[j].type == 6) {
|
|
|
+ // this.text.push(c[j]);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
this.courseDetail = res.data[0][0];
|
|
|
this.chapInfo = JSON.parse(this.courseDetail.chapters)[t];
|
|
|
- console.log(this.chapInfo);
|
|
|
this.chapInfoList = JSON.parse(this.courseDetail.chapters);
|
|
|
- // this.playerOptions.poster = this.course.imgUrl;
|
|
|
this.playerOptions.sources[0].src =
|
|
|
this.vedio.length > 0
|
|
|
? this.vedio[0].url
|
|
|
: require("../assets/icon/wheel.png");
|
|
|
- console.log(this.playerOptions.sources[0].src);
|
|
|
this.playerO = this.playerOptions;
|
|
|
- var a = this.chapInfo.chapterInfo[0].homeworkList;
|
|
|
- // var c = [];
|
|
|
- // var d = [];
|
|
|
- for (var k = 0; k < a.length; k++) {
|
|
|
- var b = this.isAssetTypeAnImage(
|
|
|
- a[k].name.split(".").pop().toLowerCase()
|
|
|
- );
|
|
|
- if (b == true) {
|
|
|
- this.imgList.push(a[k]);
|
|
|
- } else {
|
|
|
- this.noImgList.push(a[k]);
|
|
|
- }
|
|
|
- }
|
|
|
+ // var a = this.chapInfo.chapterInfo[0].homeworkList;
|
|
|
+ // for (var k = 0; k < a.length; k++) {
|
|
|
+ // var b = this.isAssetTypeAnImage(
|
|
|
+ // a[k].name.split(".").pop().toLowerCase()
|
|
|
+ // );
|
|
|
+ // if (b == true) {
|
|
|
+ // this.imgList.push(a[k]);
|
|
|
+ // } else {
|
|
|
+ // this.noImgList.push(a[k]);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ this.swichTask(0);
|
|
|
+
|
|
|
this.$nextTick(function () {
|
|
|
var a =
|
|
|
document.getElementsByClassName("video-player")[0].offsetHeight;
|
|
|
document.getElementsByClassName("vedioList")[0].style.height =
|
|
|
a + "px";
|
|
|
});
|
|
|
- this.addToolsType(0);
|
|
|
+ // this.addToolsType(0);
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
loading.close();
|
|
@@ -1129,6 +1274,7 @@ export default {
|
|
|
let params = {
|
|
|
cid: this.id,
|
|
|
stage: this.courseType,
|
|
|
+ task: this.taskCount,
|
|
|
uid: this.userid,
|
|
|
};
|
|
|
this.ajax
|
|
@@ -1171,6 +1317,9 @@ export default {
|
|
|
this.playerOptions.sources[0].src = u;
|
|
|
this.playerO = this.playerOptions;
|
|
|
},
|
|
|
+ lookText() {
|
|
|
+ this.dialogVisible1 = true;
|
|
|
+ },
|
|
|
downFile(i) {
|
|
|
window.open(this.file[i].url);
|
|
|
},
|
|
@@ -1190,13 +1339,14 @@ export default {
|
|
|
// ];
|
|
|
},
|
|
|
addStudentAsk() {
|
|
|
- if ((this.isAsk == true)) {
|
|
|
+ if (this.isAsk == true) {
|
|
|
this.dialogVisible5 = false;
|
|
|
} else {
|
|
|
let params = [
|
|
|
{
|
|
|
cid: this.id,
|
|
|
stage: this.courseType,
|
|
|
+ task: this.taskCount,
|
|
|
content: this.radio.join(","),
|
|
|
uid: this.userid,
|
|
|
},
|
|
@@ -1209,6 +1359,7 @@ export default {
|
|
|
type: "success",
|
|
|
});
|
|
|
this.dialogVisible5 = false;
|
|
|
+ this.radio = [];
|
|
|
this.getStudentAsk();
|
|
|
})
|
|
|
.catch((err) => {
|
|
@@ -1221,6 +1372,7 @@ export default {
|
|
|
let params = {
|
|
|
cid: this.id,
|
|
|
stage: this.courseType,
|
|
|
+ task: this.taskCount,
|
|
|
};
|
|
|
this.ajax
|
|
|
.get(this.$store.state.api + "getAskListByCidStage", params)
|
|
@@ -1266,6 +1418,7 @@ export default {
|
|
|
uid: this.userid,
|
|
|
cid: this.id,
|
|
|
stage: this.courseType,
|
|
|
+ task: this.taskCount,
|
|
|
content: JSON.stringify(this.studyJuri),
|
|
|
},
|
|
|
];
|
|
@@ -1299,6 +1452,7 @@ export default {
|
|
|
uid: this.userid,
|
|
|
cid: this.id,
|
|
|
stage: this.courseType,
|
|
|
+ task: this.taskCount,
|
|
|
content: JSON.stringify(this.studyJuri),
|
|
|
},
|
|
|
];
|
|
@@ -1361,29 +1515,29 @@ export default {
|
|
|
console.error(err);
|
|
|
});
|
|
|
},
|
|
|
- addToolsType(t) {
|
|
|
- this.toolType = t;
|
|
|
- var a = this.chapInfo.chapterInfo[0].toolChoose;
|
|
|
- this.toolTypeList = [];
|
|
|
- if (a != []) {
|
|
|
- for (var i = 0; i < a.length; i++) {
|
|
|
- if (t == 0) {
|
|
|
- if (a[i] == 8) {
|
|
|
- this.toolTypeList.push(a[i]);
|
|
|
- }
|
|
|
- } else if (t == 1) {
|
|
|
- if (a[i] == 1 || a[i] == 2 || a[i] == 3 || a[i] == 6 || a[i] == 7) {
|
|
|
- this.toolTypeList.push(a[i]);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (a[i] == 4 || a[i] == 5) {
|
|
|
- this.toolTypeList.push(a[i]);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- addTools(t) {
|
|
|
+ // addToolsType(t) {
|
|
|
+ // // this.toolType = t;
|
|
|
+ // var a = this.chapInfo.chapterInfo[0].toolChoose;
|
|
|
+ // this.toolTypeList = [];
|
|
|
+ // if (a != []) {
|
|
|
+ // for (var i = 0; i < a.length; i++) {
|
|
|
+ // if (t == 0) {
|
|
|
+ // if (a[i] == 8) {
|
|
|
+ // this.toolTypeList.push(a[i]);
|
|
|
+ // }
|
|
|
+ // } else if (t == 1) {
|
|
|
+ // if (a[i] == 1 || a[i] == 2 || a[i] == 3 || a[i] == 6 || a[i] == 7) {
|
|
|
+ // this.toolTypeList.push(a[i]);
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if (a[i] == 4 || a[i] == 5) {
|
|
|
+ // this.toolTypeList.push(a[i]);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ addTools(t, i) {
|
|
|
var a = 0;
|
|
|
if (t == 1) {
|
|
|
if (this.wbCount > 0) {
|
|
@@ -1421,6 +1575,19 @@ export default {
|
|
|
this.toolsCount(a, t);
|
|
|
}
|
|
|
this.dialogVisible5 = true;
|
|
|
+ this.askJson.askJson =
|
|
|
+ this.chapInfo.chapterInfo[0].taskJson[this.taskCount].toolChoose[
|
|
|
+ i
|
|
|
+ ].askJson[0];
|
|
|
+ this.askJson.askTitle =
|
|
|
+ this.chapInfo.chapterInfo[0].taskJson[this.taskCount].toolChoose[
|
|
|
+ i
|
|
|
+ ].askTitle;
|
|
|
+ this.askJson.askCount =
|
|
|
+ this.chapInfo.chapterInfo[0].taskJson[this.taskCount].toolChoose[
|
|
|
+ i
|
|
|
+ ].askCount;
|
|
|
+ console.log(this.askJson);
|
|
|
// window.parent.postMessage({ tools: "4" }, "*");
|
|
|
} else if (t == 5) {
|
|
|
if (this.scoreCount > 0) {
|
|
@@ -1624,6 +1791,7 @@ export default {
|
|
|
padding-bottom: 5px;
|
|
|
color: #3fc6a0;
|
|
|
display: flex;
|
|
|
+ height: 31px;
|
|
|
}
|
|
|
.study_top .checked > div,
|
|
|
.study_top .check > div {
|
|
@@ -1663,6 +1831,7 @@ export default {
|
|
|
justify-content: flex-start;
|
|
|
align-items: center;
|
|
|
padding: 15px 0;
|
|
|
+ width: calc(100% / 3.5);
|
|
|
}
|
|
|
|
|
|
.file {
|
|
@@ -2206,4 +2375,30 @@ export default {
|
|
|
.redioStyle >>> .el-radio__label {
|
|
|
font-size: 18px;
|
|
|
}
|
|
|
+.toolHeng {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: center;
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+.toolHeng > div {
|
|
|
+ padding-left: 20px;
|
|
|
+}
|
|
|
+.textTitle >>> .el-form-item__label {
|
|
|
+ font-size: 20px;
|
|
|
+}
|
|
|
+.textCss >>> .el-dialog {
|
|
|
+ width: 800px !important;
|
|
|
+ height: 400px;
|
|
|
+ background: #fafafa;
|
|
|
+}
|
|
|
+.textCss >>> .el-dialog__body {
|
|
|
+ margin: 55px 8% 0 8%;
|
|
|
+ padding: 0 !important;
|
|
|
+}
|
|
|
+.textCss >>> .el-dialog__footer {
|
|
|
+ padding-top: 38px;
|
|
|
+}
|
|
|
</style>
|