|
@@ -60,9 +60,9 @@
|
|
|
<div class="navTop">辅助导航</div>
|
|
|
<div class="navBottom">
|
|
|
<div class="navTask" :class="{
|
|
|
- isNavTask: isClickColor > 0 && isClickColor == tIndex + 1,
|
|
|
- }" v-for="(t, tIndex) in unitJson[unitIndex].chapterInfo[0]
|
|
|
- .taskJson" :key="tIndex" @click="goToTask(tIndex)">
|
|
|
+ isNavTask: isClickColor > 0 && isClickColor == tIndex + 1,
|
|
|
+ }" v-for="(t, tIndex) in unitJson[unitIndex].chapterInfo[0]
|
|
|
+ .taskJson" :key="tIndex" @click="goToTask(tIndex)">
|
|
|
<div>任务{{ tIndex + 1 }}</div>
|
|
|
<div>
|
|
|
<el-tooltip effect="light" :content="t.task" placement="top">
|
|
@@ -89,22 +89,24 @@
|
|
|
<h3 class="info_title" v-if="steps == 4">上传课程</h3>
|
|
|
<el-breadcrumb separator-class="el-icon-arrow-right" style="margin-top: 15px">
|
|
|
<el-breadcrumb-item :to="{
|
|
|
- path:
|
|
|
- '/course?userid=' +
|
|
|
- userid +
|
|
|
- '&oid=' +
|
|
|
- oid +
|
|
|
- '&org=' +
|
|
|
- org +
|
|
|
- '&role=' +
|
|
|
- role,
|
|
|
- }">课程管理</el-breadcrumb-item>
|
|
|
+ path:
|
|
|
+ '/course?userid=' +
|
|
|
+ userid +
|
|
|
+ '&oid=' +
|
|
|
+ oid +
|
|
|
+ '&org=' +
|
|
|
+ org +
|
|
|
+ '&role=' +
|
|
|
+ role,
|
|
|
+ }">课程管理</el-breadcrumb-item>
|
|
|
<el-breadcrumb-item>
|
|
|
<span style="color: rgb(15, 126, 255)">添加课程</span>
|
|
|
</el-breadcrumb-item>
|
|
|
</el-breadcrumb>
|
|
|
- <el-button type="primary" @click="pasteStage" size="small" v-if="steps == 3 && (!cid || (cid && (userid == courseUserid || role == '1')))" style="margin-left: 20px;">智能粘贴</el-button>
|
|
|
-
|
|
|
+ <el-button type="primary" @click="pasteTask" size="small"
|
|
|
+ v-if="steps == 3 && (!cid || (cid && (userid == courseUserid || role == '1')))"
|
|
|
+ style="margin-left: 20px;">智能粘贴</el-button>
|
|
|
+
|
|
|
</div>
|
|
|
<div v-if="steps == 1 || steps == 2 || steps == 3" class="stepsWord">
|
|
|
{{
|
|
@@ -122,8 +124,8 @@
|
|
|
</div>
|
|
|
<div class="rightBox" v-if="this.steps == 1" @mousewheel="scrollChange">
|
|
|
<div class="updateMask" :style="{
|
|
|
- height: rightBoxHeight ? rightBoxHeight + 'px' : '100%',
|
|
|
- }" v-if="cid && userid != courseUserid && role != '1'"></div>
|
|
|
+ height: rightBoxHeight ? rightBoxHeight + 'px' : '100%',
|
|
|
+ }" v-if="cid && userid != courseUserid && role != '1'"></div>
|
|
|
<div class="whiteBg">
|
|
|
<div class="right_title" :class="{ updateTips: cid && userid != courseUserid && role != '1' }">
|
|
|
课程基本信息
|
|
@@ -158,10 +160,10 @@
|
|
|
<div class="choose">
|
|
|
<div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
|
|
|
<span v-if="CourseTypeJson[item.id].length > 0 &&
|
|
|
- (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
|
|
|
- ? pTypeCheck.indexOf(item.id) != -1
|
|
|
- : true)
|
|
|
- ">{{ item.name }}</span>
|
|
|
+ (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
|
|
|
+ ? pTypeCheck.indexOf(item.id) != -1
|
|
|
+ : true)
|
|
|
+ ">{{ item.name }}</span>
|
|
|
<el-checkbox-group v-model="courseTypeId" v-if="CourseTypeJson[item.id].length > 0 &&
|
|
|
(oid == '69893dca-1d47-11ed-8c78-005056b86db5'
|
|
|
? pTypeCheck.indexOf(item.id) != -1
|
|
@@ -249,7 +251,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="flex: 0.5 1 0%; margin: 0; width: 180px"
|
|
|
- v-if="courseUserid != '' ? (courseUserid == userid || role == '1') : true">
|
|
|
+ v-if="courseUserid != '' ? (courseUserid == userid || role == '1') : true">
|
|
|
<div class="bInfo_title">协同编辑</div>
|
|
|
<div class="addPeople" @click="openMember" style="background: #6b92c9">
|
|
|
添加协同成员
|
|
@@ -440,6 +442,22 @@
|
|
|
简易模式
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="wordTeacher" @click="pasteStage()">
|
|
|
+ <div class="wordPic">
|
|
|
+ <img src="../../assets/icon/wordMub.png" alt />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div style="
|
|
|
+ margin-top: 10px;
|
|
|
+ line-height: 19px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ padding: 0 20px;
|
|
|
+ ">
|
|
|
+ 智能粘贴任务模式
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<!-- <div class="wordTeacher" @click="checkTemplate4()">
|
|
|
<div class="wordPic">
|
|
|
<img src="../../assets/icon/wordMub.png" alt />
|
|
@@ -498,12 +516,12 @@
|
|
|
}}
|
|
|
</div>
|
|
|
<img src="../../assets/line.png" class="cru_line" :style="{
|
|
|
- left: offsetLetfPx + 'px',
|
|
|
- }" />
|
|
|
+ left: offsetLetfPx + 'px',
|
|
|
+ }" />
|
|
|
</div>
|
|
|
<div class="addStageImg" @click="addunit()" v-if="!(unitJson[unitJson.length - 1].easy == 4) &&
|
|
|
- !(unitJson[unitJson.length - 1].easy == 6)
|
|
|
- ">
|
|
|
+ !(unitJson[unitJson.length - 1].easy == 6)
|
|
|
+ ">
|
|
|
<img src="../../assets/icon/add.png" alt />
|
|
|
</div>
|
|
|
</div>
|
|
@@ -534,13 +552,13 @@
|
|
|
v-for="(itemTask, itemTaskIndex) in item.taskJson" :key="itemTaskIndex">
|
|
|
<div v-if="unitJson[unitIndex].easy != 1">
|
|
|
<div :style="{
|
|
|
- marginBottom:
|
|
|
- unitJson[unitIndex].easy == 3 ||
|
|
|
- (unitJson[unitIndex].easy == 5 &&
|
|
|
- itemTask.taskType == 1)
|
|
|
- ? '75px'
|
|
|
- : '0',
|
|
|
- }">
|
|
|
+ marginBottom:
|
|
|
+ unitJson[unitIndex].easy == 3 ||
|
|
|
+ (unitJson[unitIndex].easy == 5 &&
|
|
|
+ itemTask.taskType == 1)
|
|
|
+ ? '75px'
|
|
|
+ : '0',
|
|
|
+ }">
|
|
|
<div style="font-size: 22px; color: #8e8e8e" :id="'task' + itemTaskIndex">
|
|
|
任务{{ itemTaskIndex + 1 }}
|
|
|
</div>
|
|
@@ -559,8 +577,8 @@
|
|
|
</div>
|
|
|
<div>
|
|
|
<input type="text" placeholder="输入任务名称" class="binfo_input" style="border-radius: 4px" v-model="unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].task
|
|
|
+ itemTaskIndex
|
|
|
+ ].task
|
|
|
" />
|
|
|
</div>
|
|
|
<div class="remove" v-if="item.taskJson.length > 1 &&
|
|
@@ -582,8 +600,8 @@
|
|
|
</div>
|
|
|
<div v-if="easyArray.indexOf(unitJson[unitIndex].easy) == -1">
|
|
|
<editor-bar style="width: 90% !important; margin: 0" placeholder="请输入任务描述" v-model="unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].taskDetail
|
|
|
+ itemTaskIndex
|
|
|
+ ].taskDetail
|
|
|
" @change="change"></editor-bar>
|
|
|
<!-- <textarea
|
|
|
rows="6"
|
|
@@ -625,12 +643,12 @@
|
|
|
<div v-else class="add_chapters_box" style="display: flex; flex-direction: column">
|
|
|
<div class="chapter_upload" v-for="(item1, index1) in itemTask.chapterData" :key="item1.id"
|
|
|
@click="getChapterData(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- index1,
|
|
|
- item1.type
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ index1,
|
|
|
+ item1.type
|
|
|
+ )
|
|
|
">
|
|
|
<div class="chapter_upload_t" style="width: 100%"></div>
|
|
|
<div class="chapter_upload_o" style="
|
|
@@ -656,12 +674,12 @@
|
|
|
">
|
|
|
<div class="chapter_upload_ic_l"></div>
|
|
|
<div class="chapter_upload_ic_r" style="position: absolute" @click.stop="deleteChapterData(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- index1,
|
|
|
- itemTaskIndex
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ index1,
|
|
|
+ itemTaskIndex
|
|
|
+ )
|
|
|
">
|
|
|
<div></div>
|
|
|
</div>
|
|
@@ -672,11 +690,11 @@
|
|
|
item1.type == 12 ||
|
|
|
item1.type == 7
|
|
|
" :placeholder="item1.name" @change="updataVideoT(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- chapterIndex,
|
|
|
- index1
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ chapterIndex,
|
|
|
+ index1
|
|
|
+ )
|
|
|
" style="
|
|
|
border: none;
|
|
|
outline: none;
|
|
@@ -707,20 +725,20 @@
|
|
|
" readonly="true" @click="selectLine(itemTaskIndex, index1)" />
|
|
|
<div class="chapter_upload_ud" style="z-index: 99">
|
|
|
<div class="chapter_upload_up" @click="upCd(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- itemTaskIndex,
|
|
|
- index1
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ itemTaskIndex,
|
|
|
+ index1
|
|
|
+ )
|
|
|
"></div>
|
|
|
<div class="chapter_upload_down" @click="downCd(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- itemTaskIndex,
|
|
|
- index1
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ itemTaskIndex,
|
|
|
+ index1
|
|
|
+ )
|
|
|
"></div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -762,8 +780,8 @@
|
|
|
</button>
|
|
|
</div>
|
|
|
<div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].proVisible
|
|
|
+ itemTaskIndex
|
|
|
+ ].proVisible
|
|
|
" class="mask">
|
|
|
<div class="progressBox">
|
|
|
<!-- <div id="closePro" class="closeCss">
|
|
@@ -786,19 +804,19 @@
|
|
|
}}M</span>
|
|
|
</div>
|
|
|
<el-progress :text-inside="true" :stroke-width="20" :percentage="unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].progress
|
|
|
- ? unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].progress
|
|
|
- : 0
|
|
|
- " style="width: 80%"></el-progress>
|
|
|
+ itemTaskIndex
|
|
|
+ ].progress
|
|
|
+ ? unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
+ itemTaskIndex
|
|
|
+ ].progress
|
|
|
+ : 0
|
|
|
+ " style="width: 80%"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-if="unitJson[unitIndex].easy == 1 ||
|
|
|
- (unitJson[unitIndex].easy == 5 && itemTask.taskType == 2)
|
|
|
- " class="basic_box" style="
|
|
|
+ (unitJson[unitIndex].easy == 5 && itemTask.taskType == 2)
|
|
|
+ " class="basic_box" style="
|
|
|
margin: 0 auto;
|
|
|
min-height: 0;
|
|
|
width: 95% !important;
|
|
@@ -806,18 +824,18 @@
|
|
|
">
|
|
|
<div>
|
|
|
<div class="add_chapters_box" v-if="itemTask.chapterData &&
|
|
|
- itemTask.chapterData.length == 0
|
|
|
- " style="height: 185px"></div>
|
|
|
+ itemTask.chapterData.length == 0
|
|
|
+ " style="height: 185px"></div>
|
|
|
<div v-else class="add_chapters_box" style="display: flex; flex-direction: column">
|
|
|
<div v-for="(item1, index1) in itemTask.chapterData" :key="item1.id">
|
|
|
<div class="chapter_upload" @click="getChapterData(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- index1,
|
|
|
- item1.type
|
|
|
- )
|
|
|
- ">
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ index1,
|
|
|
+ item1.type
|
|
|
+ )
|
|
|
+ ">
|
|
|
<div class="chapter_upload_t" style="width: 100%"></div>
|
|
|
<div class="chapter_upload_o" style="
|
|
|
position: relative;
|
|
@@ -827,9 +845,9 @@
|
|
|
<div class="chapter_upload_l" style="padding: 1px 0 0 10px">
|
|
|
<div v-if="item1.type == 2" class="chapter_upload_l_i1"></div>
|
|
|
<div v-if="item1.type == 3 ||
|
|
|
- item1.type == 6 ||
|
|
|
- item1.type == 7
|
|
|
- " class="chapter_upload_l_i5" style="margin-left: 1px"></div>
|
|
|
+ item1.type == 6 ||
|
|
|
+ item1.type == 7
|
|
|
+ " class="chapter_upload_l_i5" style="margin-left: 1px"></div>
|
|
|
<div v-if="item1.type == 8" class="chapter_upload_l_i8" style="margin-left: 1px"></div>
|
|
|
</div>
|
|
|
<div class="chapter_upload_ic" style="
|
|
@@ -841,13 +859,13 @@
|
|
|
">
|
|
|
<div class="chapter_upload_ic_l"></div>
|
|
|
<div class="chapter_upload_ic_r" style="position: absolute" @click.stop="deleteChapterData(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- index1,
|
|
|
- itemTaskIndex
|
|
|
- )
|
|
|
- ">
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ index1,
|
|
|
+ itemTaskIndex
|
|
|
+ )
|
|
|
+ ">
|
|
|
<div></div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -858,18 +876,18 @@
|
|
|
height: 14px;
|
|
|
line-height: 12px;
|
|
|
" v-if="item1.type == 2 ||
|
|
|
- item1.type == 3 ||
|
|
|
- item1.type == 7
|
|
|
- ">{{ item1.text }}-</span>
|
|
|
+ item1.type == 3 ||
|
|
|
+ item1.type == 7
|
|
|
+ ">{{ item1.text }}-</span>
|
|
|
<input v-if="item1.type == 2 ||
|
|
|
item1.type == 3 ||
|
|
|
item1.type == 7
|
|
|
" :placeholder="item1.name" @change="updataVideoT(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- chapterIndex,
|
|
|
- index1
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ chapterIndex,
|
|
|
+ index1
|
|
|
+ )
|
|
|
" style="
|
|
|
border: none;
|
|
|
outline: none;
|
|
@@ -900,20 +918,20 @@
|
|
|
" readonly="true" @click="selectLine(itemTaskIndex, index1)" />
|
|
|
<div class="chapter_upload_ud" style="z-index: 99">
|
|
|
<div class="chapter_upload_up" @click="upCd(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- itemTaskIndex,
|
|
|
- index1
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ itemTaskIndex,
|
|
|
+ index1
|
|
|
+ )
|
|
|
"></div>
|
|
|
<div class="chapter_upload_down" @click="downCd(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- itemTaskIndex,
|
|
|
- index1
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ itemTaskIndex,
|
|
|
+ index1
|
|
|
+ )
|
|
|
"></div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -929,12 +947,12 @@
|
|
|
<input type="file"
|
|
|
accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
|
style="display: none" v-if="inputShow" @change="beforeUpload3(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- 3,
|
|
|
- itemTaskIndex,
|
|
|
- '教学设计'
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ 3,
|
|
|
+ itemTaskIndex,
|
|
|
+ '教学设计'
|
|
|
+ )
|
|
|
" />
|
|
|
</button>
|
|
|
<button class="info_btn" @click="addImg($event)">
|
|
@@ -943,35 +961,35 @@
|
|
|
<input type="file"
|
|
|
accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
|
style="display: none" v-if="inputShow" @change="beforeUpload3(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- 3,
|
|
|
- itemTaskIndex,
|
|
|
- '教学课件'
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ 3,
|
|
|
+ itemTaskIndex,
|
|
|
+ '教学课件'
|
|
|
+ )
|
|
|
" />
|
|
|
</button>
|
|
|
<button class="info_btn" @click="addImg($event)">
|
|
|
教学视频
|
|
|
<input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
|
|
|
v-if="inputShow" @change="beforeUpload3(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- 2,
|
|
|
- itemTaskIndex,
|
|
|
- '教学视频'
|
|
|
- )
|
|
|
- " />
|
|
|
- </button>
|
|
|
- <button class="info_btn" @click="addImg($event)">
|
|
|
- 教学音频
|
|
|
- <input type="file" accept="audio/*" style="display: none" v-if="inputShow" @change="beforeUpload3(
|
|
|
$event,
|
|
|
unitIndex,
|
|
|
2,
|
|
|
itemTaskIndex,
|
|
|
- '教学音频'
|
|
|
+ '教学视频'
|
|
|
)
|
|
|
+ " />
|
|
|
+ </button>
|
|
|
+ <button class="info_btn" @click="addImg($event)">
|
|
|
+ 教学音频
|
|
|
+ <input type="file" accept="audio/*" style="display: none" v-if="inputShow" @change="beforeUpload3(
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ 2,
|
|
|
+ itemTaskIndex,
|
|
|
+ '教学音频'
|
|
|
+ )
|
|
|
" />
|
|
|
</button>
|
|
|
<button class="info_btn" @click="addImg($event)">
|
|
@@ -979,18 +997,18 @@
|
|
|
<input type="file"
|
|
|
accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
|
style="display: none" v-if="inputShow" @change="beforeUpload3(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- 3,
|
|
|
- itemTaskIndex,
|
|
|
- '学习单'
|
|
|
- )
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ 3,
|
|
|
+ itemTaskIndex,
|
|
|
+ '学习单'
|
|
|
+ )
|
|
|
" />
|
|
|
</button>
|
|
|
</div>
|
|
|
<div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].proVisible
|
|
|
+ itemTaskIndex
|
|
|
+ ].proVisible
|
|
|
" class="mask">
|
|
|
<div class="progressBox">
|
|
|
<!-- <div id="closePro" class="closeCss">
|
|
@@ -1013,19 +1031,19 @@
|
|
|
}}M</span>
|
|
|
</div>
|
|
|
<el-progress :text-inside="true" :stroke-width="20" :percentage="unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].progress
|
|
|
- ? unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
- itemTaskIndex
|
|
|
- ].progress
|
|
|
- : 0
|
|
|
- " style="width: 80%"></el-progress>
|
|
|
+ itemTaskIndex
|
|
|
+ ].progress
|
|
|
+ ? unitJson[unitIndex].chapterInfo[0].taskJson[
|
|
|
+ itemTaskIndex
|
|
|
+ ].progress
|
|
|
+ : 0
|
|
|
+ " style="width: 80%"></el-progress>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-if="unitJson[unitIndex].easy != 3 &&
|
|
|
- !(unitJson[unitIndex].easy == 5 && itemTask.taskType == 1)
|
|
|
- " style="
|
|
|
+ !(unitJson[unitIndex].easy == 5 && itemTask.taskType == 1)
|
|
|
+ " style="
|
|
|
flex-direction: row;
|
|
|
justify-content: flex-start;
|
|
|
align-items: center;
|
|
@@ -2027,15 +2045,15 @@
|
|
|
</div>
|
|
|
<div class="info_btnBox">
|
|
|
<button class="info_btn" v-if="steps == 1" @click="goTo(
|
|
|
- '/course?userid=' +
|
|
|
- userid +
|
|
|
- '&oid=' +
|
|
|
- oid +
|
|
|
- '&org=' +
|
|
|
- org +
|
|
|
- '&role=' +
|
|
|
- role
|
|
|
- )
|
|
|
+ '/course?userid=' +
|
|
|
+ userid +
|
|
|
+ '&oid=' +
|
|
|
+ oid +
|
|
|
+ '&org=' +
|
|
|
+ org +
|
|
|
+ '&role=' +
|
|
|
+ role
|
|
|
+ )
|
|
|
">
|
|
|
返回课程
|
|
|
</button>
|
|
@@ -2339,7 +2357,7 @@
|
|
|
<el-radio-group v-model="testJson.testJson[index1].answer" v-if="testJson.testJson[index1].type == 1">
|
|
|
<div class="radioBox">
|
|
|
<el-radio v-for="(item2, checkIndex) in testJson.testJson[index1]
|
|
|
- .testItem" :key="checkIndex" :label="checkIndex">
|
|
|
+ .testItem" :key="checkIndex" :label="checkIndex">
|
|
|
<div style="margin-right: 10px">
|
|
|
选项{{ checkIndex + 1 }}
|
|
|
</div>
|
|
@@ -2350,12 +2368,12 @@
|
|
|
.imgType == 1
|
|
|
">
|
|
|
<div class="inImg" @click.stop="previewImg(
|
|
|
- testJson.testJson[index1].checkList[checkIndex]
|
|
|
- .src
|
|
|
- )
|
|
|
+ testJson.testJson[index1].checkList[checkIndex]
|
|
|
+ .src
|
|
|
+ )
|
|
|
">
|
|
|
<el-image :src="testJson.testJson[index1].checkList[checkIndex]
|
|
|
- .src
|
|
|
+ .src
|
|
|
" lazy />
|
|
|
<!-- <img :src="
|
|
|
testJson.testJson[index1].checkList[checkIndex]
|
|
@@ -2378,7 +2396,7 @@
|
|
|
v-if="testJson.testJson[index1].type == '2'">
|
|
|
<div class="radioBox">
|
|
|
<el-checkbox v-for="(item2, checkIndex1) in testJson.testJson[index1]
|
|
|
- .testItem" :key="checkIndex1" :label="checkIndex1">
|
|
|
+ .testItem" :key="checkIndex1" :label="checkIndex1">
|
|
|
<div style="margin-right: 10px">
|
|
|
选项{{ checkIndex1 + 1 }}
|
|
|
</div>
|
|
@@ -2389,12 +2407,12 @@
|
|
|
.imgType == 1
|
|
|
">
|
|
|
<div class="inImg" @click.stop="previewImg(
|
|
|
- testJson.testJson[index1].checkList[checkIndex1]
|
|
|
- .src
|
|
|
- )
|
|
|
+ testJson.testJson[index1].checkList[checkIndex1]
|
|
|
+ .src
|
|
|
+ )
|
|
|
">
|
|
|
<el-image :src="testJson.testJson[index1].checkList[checkIndex1]
|
|
|
- .src
|
|
|
+ .src
|
|
|
" lazy />
|
|
|
<!-- <img :src="
|
|
|
testJson.testJson[index1].checkList[checkIndex1]
|
|
@@ -3013,7 +3031,7 @@ import sourceDialog from "./teacherSource/dialog.vue";
|
|
|
import interVideo from "./interVideo/index.vue";
|
|
|
|
|
|
export default {
|
|
|
- components: { EditorBar, Mind, Time, Sunburst, SeeBoard, Table, sourceDialog,interVideo },
|
|
|
+ components: { EditorBar, Mind, Time, Sunburst, SeeBoard, Table, sourceDialog, interVideo },
|
|
|
data() {
|
|
|
return {
|
|
|
checkAll: false,
|
|
@@ -3071,7 +3089,7 @@ export default {
|
|
|
dialogVisiblemb: false,
|
|
|
dialogVisibleInvite: false,
|
|
|
dialogVisibleSource: false,
|
|
|
- dialogVisibleVideo:false,
|
|
|
+ dialogVisibleVideo: false,
|
|
|
isClickColor: 0,
|
|
|
publicTool: 0,
|
|
|
searchPeople: "",
|
|
@@ -3211,7 +3229,7 @@ export default {
|
|
|
icode: "",
|
|
|
easyArray: [2, 4],
|
|
|
sourceData: {},
|
|
|
- videoJson:{}
|
|
|
+ videoJson: {}
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -3841,33 +3859,33 @@ export default {
|
|
|
this.$forceUpdate();
|
|
|
this.dialogVisible7 = true;
|
|
|
},
|
|
|
- pasteLine(i){
|
|
|
+ pasteLine(i) {
|
|
|
navigator.clipboard
|
|
|
- .readText()
|
|
|
- .then((v) => {
|
|
|
- console.log("获取剪贴板成功:", v);
|
|
|
- const html = v;
|
|
|
- const regex = /src="(.*?)"/g;
|
|
|
- const match = regex.exec(html);
|
|
|
- if (match && match[1]) {
|
|
|
- console.log(match[1]);
|
|
|
- this.$message.success("粘贴成功")
|
|
|
- this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
+ .readText()
|
|
|
+ .then((v) => {
|
|
|
+ console.log("获取剪贴板成功:", v);
|
|
|
+ const html = v;
|
|
|
+ const regex = /src="(.*?)"/g;
|
|
|
+ const match = regex.exec(html);
|
|
|
+ if (match && match[1]) {
|
|
|
+ console.log(match[1]);
|
|
|
+ this.$message.success("粘贴成功")
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
i
|
|
|
- ].chapterData.push({
|
|
|
- name: "链接",
|
|
|
- title: "粘贴链接",
|
|
|
- url: match[1],
|
|
|
- type: 8,
|
|
|
- });
|
|
|
- } else {
|
|
|
- // console.log("未找到包含 src 属性的 iframe");
|
|
|
- this.$message.error("没有找到粘贴的链接")
|
|
|
- }
|
|
|
- })
|
|
|
- .catch((v) => {
|
|
|
- console.log("获取剪贴板失败: ", v);
|
|
|
- });
|
|
|
+ ].chapterData.push({
|
|
|
+ name: "链接",
|
|
|
+ title: "粘贴链接",
|
|
|
+ url: match[1],
|
|
|
+ type: 8,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // console.log("未找到包含 src 属性的 iframe");
|
|
|
+ this.$message.error("没有找到粘贴的链接")
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((v) => {
|
|
|
+ console.log("获取剪贴板失败: ", v);
|
|
|
+ });
|
|
|
},
|
|
|
openSource(i) {
|
|
|
this.lineCount = i;
|
|
@@ -5568,7 +5586,7 @@ export default {
|
|
|
} else {
|
|
|
var videoJson = {
|
|
|
video: "",
|
|
|
- setting:[]
|
|
|
+ setting: []
|
|
|
};
|
|
|
this.videoJson = videoJson;
|
|
|
}
|
|
@@ -6095,7 +6113,7 @@ export default {
|
|
|
this.addTools(45, this.taskCount, this.toolIndex);
|
|
|
}
|
|
|
},
|
|
|
- addVideoJson(videoJson){
|
|
|
+ addVideoJson(videoJson) {
|
|
|
this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
this.taskCount
|
|
|
].toolChoose[this.toolIndex].videoJson = videoJson;
|
|
@@ -6111,12 +6129,12 @@ export default {
|
|
|
//自动获取剪贴板
|
|
|
pasteOption() {
|
|
|
let iframe = top.document.querySelectorAll("#AIChat iframe")[0]
|
|
|
- if(!iframe){
|
|
|
+ if (!iframe) {
|
|
|
this.$message.error("请使用AI共创生成题目")
|
|
|
return;
|
|
|
}
|
|
|
let copyData = iframe.contentWindow.copyData
|
|
|
- if(!copyData || !copyData.selectData.length){
|
|
|
+ if (!copyData || !copyData.selectData.length) {
|
|
|
this.$message.error("请使用AI共创生成题目")
|
|
|
return;
|
|
|
}
|
|
@@ -6165,25 +6183,74 @@ export default {
|
|
|
this.testJson = isTestJson
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
- pasteStage(){
|
|
|
+ pasteTask() {
|
|
|
+ let iframe = top.document.querySelectorAll("#AIChat iframe")[0]
|
|
|
+ if(!iframe){
|
|
|
+ this.$message.error("请使用AI共创生成")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let copyData = iframe.contentWindow.copyData
|
|
|
+ if(!copyData || !copyData.tasksData || !copyData.tasksData.length){
|
|
|
+ this.$message.error("请使用AI共创生成")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let stageTasksData = copyData.tasksData;
|
|
|
+ let taskA = []
|
|
|
+ let tasks = stageTasksData
|
|
|
+ for (var j = 0; j < tasks.length; j++) {
|
|
|
+ taskA.push({
|
|
|
+ task: tasks[j].taskName,
|
|
|
+ taskDetail: tasks[j].taskDecs,
|
|
|
+ chapterData: [],
|
|
|
+ toolText: "",
|
|
|
+ toolChoose: [
|
|
|
+ {
|
|
|
+ tool: [],
|
|
|
+ toolDetail: "",
|
|
|
+ toolType: 0,
|
|
|
+ askCount: 1,
|
|
|
+ askTitle: "",
|
|
|
+ askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ isShowTools: false,
|
|
|
+ askCount: 1,
|
|
|
+ isFold: 0,
|
|
|
+ askTitle: "",
|
|
|
+ askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
|
+ checkJson: [{ checkCount: [], checkPerent: [] }],
|
|
|
+ homeworkList: [],
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson = taskA
|
|
|
+ this.$forceUpdate();
|
|
|
+ },
|
|
|
+ pasteStage() {
|
|
|
let iframe = top.document.querySelectorAll("#AIChat iframe")[0]
|
|
|
if(!iframe){
|
|
|
this.$message.error("请使用AI共创生成")
|
|
|
return;
|
|
|
}
|
|
|
let copyData = iframe.contentWindow.copyData
|
|
|
- if(!copyData || !copyData.stageTasksData.length || copyData.stageTasksData[0].stage == '' || !copyData.stageTasksData[0].tasks.length){
|
|
|
+ if(!copyData || !copyData.stageData || !copyData.stageData.length){
|
|
|
this.$message.error("请使用AI共创生成")
|
|
|
return;
|
|
|
}
|
|
|
- let stageTasksData = copyData.stageTasksData;
|
|
|
- for(var i = 0;i<stageTasksData.length;i++){
|
|
|
- let taskA = []
|
|
|
- let tasks = stageTasksData[i].tasks
|
|
|
- for(var j = 0;j < tasks.length;j++){
|
|
|
- taskA.push({
|
|
|
- task: tasks[j].taskName,
|
|
|
- taskDetail: tasks[j].taskDecs,
|
|
|
+ let stageData = copyData.stageData;
|
|
|
+ let stage = []
|
|
|
+ for (var i = 0; i < stageData.length; i++) {
|
|
|
+ stage.push({
|
|
|
+ dyName: stageData[i], //单元标题
|
|
|
+ chapterInfo: [
|
|
|
+ {
|
|
|
+ isread: false,
|
|
|
+ chapterid: this.guid(),
|
|
|
+ title: "",
|
|
|
+ courseName: "",
|
|
|
+ taskJson: [
|
|
|
+ {
|
|
|
+ task: "",
|
|
|
+ taskDetail: "",
|
|
|
chapterData: [],
|
|
|
toolText: "",
|
|
|
toolChoose: [
|
|
@@ -6193,7 +6260,9 @@ export default {
|
|
|
toolType: 0,
|
|
|
askCount: 1,
|
|
|
askTitle: "",
|
|
|
- askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
|
+ askJson: [
|
|
|
+ { askstitle: "", askItem: 1, checkList: [] },
|
|
|
+ ],
|
|
|
},
|
|
|
],
|
|
|
isShowTools: false,
|
|
@@ -6203,19 +6272,8 @@ export default {
|
|
|
askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
|
|
|
checkJson: [{ checkCount: [], checkPerent: [] }],
|
|
|
homeworkList: [],
|
|
|
- })
|
|
|
- }
|
|
|
- this.unitJson.push({
|
|
|
- dyName: stageTasksData[i].stage, //单元标题
|
|
|
- isUpdate: 1,
|
|
|
- easy: this.unitJson[this.unitJson.length - 1].easy ? 1 : 0,
|
|
|
- chapterInfo: [
|
|
|
- {
|
|
|
- isread: false,
|
|
|
- chapterid: this.guid(),
|
|
|
- title: "",
|
|
|
- courseName: "",
|
|
|
- taskJson: taskA,
|
|
|
+ },
|
|
|
+ ],
|
|
|
itemCount: 1,
|
|
|
fileList1: [],
|
|
|
video: [],
|
|
@@ -6224,8 +6282,24 @@ export default {
|
|
|
templateArray: [],
|
|
|
},
|
|
|
],
|
|
|
- });
|
|
|
+ },)
|
|
|
}
|
|
|
+ let _this = this;
|
|
|
+ _this
|
|
|
+ .$confirm("确定选择智能粘贴模式吗?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ _this.unitIndex = 0;
|
|
|
+ _this.unitJson = stage;
|
|
|
+ _this.steps++;
|
|
|
+ _this.updateWork();
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ return;
|
|
|
+ });
|
|
|
},
|
|
|
addAnswer() {
|
|
|
if (this.answerQ == "") {
|