|
@@ -94,16 +94,18 @@
|
|
|
</div> -->
|
|
|
<div class="c_info_title" style="padding: 0 0 15px;margin: 0 auto 0 0;">上传封面</div>
|
|
|
<div style="width: 100%;">
|
|
|
- <div class="uploadFm" @click="choosePicVisible = true" v-if="cover.length == 0">
|
|
|
- <img src="../../../assets/icon/addPoster.png" alt="" />
|
|
|
- <div>点击添加封面</div>
|
|
|
+ <div class="uploadFm" @click="choosePicVisible = true" :class="{uploadFm2:cover.length}">
|
|
|
+ <img src="../../../assets/icon/addPoster.png" alt="" v-if="cover.length == 0"/>
|
|
|
+ <img :src="cover[0].url" alt="" class="cover_p" v-else/>
|
|
|
+ <div v-if="cover.length == 0">点击添加封面</div>
|
|
|
+ <div class="cover_mask"><img src="../../../assets/icon/new/cover_update.png" /><span style="margin-top:5px;">修改封面</span></div>
|
|
|
</div>
|
|
|
- <el-upload :class="{ disUoloadSty: noneBtnImg }" class="upCss" action="#" list-type="picture"
|
|
|
+ <!-- <el-upload :class="{ disUoloadSty: noneBtnImg }" class="upCss" action="#" list-type="picture"
|
|
|
v-loading="uploadLoading1" :http-request="beforeUpload1" ref="upload1"
|
|
|
:on-preview="handlePictureCardPreview" :on-remove="handle_remove1" :show-file-list="true"
|
|
|
:file-list="cover" accept="image/*" :limit="1" :on-exceed="onExceed" v-else>
|
|
|
<i class="el-icon-plus"></i>
|
|
|
- </el-upload>
|
|
|
+ </el-upload> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -166,16 +168,19 @@
|
|
|
<div class="stepsBottom2">
|
|
|
<div class="navBottom" :style="{ height: heightPx }">
|
|
|
<div v-for="(t, tIndex) in unitJson[unitIndex].chapterInfo[0]
|
|
|
- .taskJson" :key="tIndex">
|
|
|
+ .taskJson" :key="tIndex" :class="{
|
|
|
+ dragOverTop: newIndex === tIndex && typeIndex == 'task-'+tIndex && oldIndex > tIndex,
|
|
|
+ dragOverBottom: newIndex === tIndex && typeIndex == 'task-'+tIndex && oldIndex < tIndex,
|
|
|
+ }">
|
|
|
<div @dragstart="dragTaskStart(t, tIndex)" @dragover.prevent="dragTaskOver(tIndex)"
|
|
|
@dragend="dragTaskEnd()" draggable @click="goToTask(tIndex)" class="navTask" :class="{
|
|
|
- isNavTask:
|
|
|
- isClickColor > 0 && isClickColor == tIndex + 1,
|
|
|
- isNavOpen: t.toolOpen
|
|
|
- }">
|
|
|
+ isNavTask:
|
|
|
+ isClickColor > 0 && isClickColor == tIndex + 1,
|
|
|
+ isNavOpen: t.toolOpen,
|
|
|
+ }">
|
|
|
<div style="left: 8px;" class="chapter_upload_drag"></div>
|
|
|
<div class="nt_taskBox">
|
|
|
- <div class="nt_taskTitle">任务{{ tIndex + 1 }}</div>
|
|
|
+ <div class="nt_taskTitle">任务{{ tIndex + 1 }}:</div>
|
|
|
<div class="nt_taskName">
|
|
|
<el-tooltip effect="light" :content="t.task" placement="top">
|
|
|
<span>{{ t.task }}</span>
|
|
@@ -195,7 +200,7 @@
|
|
|
<div v-for="(tool, toolIndex2) in t.toolChoose" :key="toolIndex2"
|
|
|
@click="jumpGj(tIndex, toolIndex2)">
|
|
|
<div class="gjCss" :class="{ isGjCss: toolIndexType == `gj${tIndex}${toolIndex2}` }">
|
|
|
- <div>工具{{ toolIndex2 + 1 }}:</div>
|
|
|
+ <div>工具{{ toolIndex2 + 1 }}:</div>
|
|
|
<div>{{ toolsData[tool.tool[0]] && toolsData[tool.tool[0]].name }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -221,6 +226,7 @@
|
|
|
align-items: center;
|
|
|
">
|
|
|
<div class="lineTitle" style="margin-bottom:10px">学习内容</div>
|
|
|
+<<<<<<< HEAD
|
|
|
<div class="add_info_box">
|
|
|
<button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
|
|
|
文件
|
|
@@ -245,6 +251,8 @@
|
|
|
" />
|
|
|
</button> -->
|
|
|
</div>
|
|
|
+=======
|
|
|
+>>>>>>> beta
|
|
|
<div style="margin-bottom:10px" v-if="!item.taskJson[0].isFoldchapter" class="show_taskD show"
|
|
|
@click="foldC(0)"><img src="../../../assets/icon/new/icon-slide.png" />收起学习内容</div>
|
|
|
<div style="margin-bottom:10px" v-else class="show_taskD" @click="foldC(0)"><img
|
|
@@ -255,17 +263,20 @@
|
|
|
item.taskJson[0].chapterData.length == 0
|
|
|
"><img src="../../../assets/icon/new/c_none.png" alt /><span>请添加学习内容</span></div>
|
|
|
<div v-else class="add_chapters_box" style="display: flex; flex-direction: column">
|
|
|
- <div @dragstart="dragStart(item1, index1, 0)" @dragover.prevent="dragOver(index1)"
|
|
|
+ <div @dragstart="dragStart(item1, index1, 0)" @dragover.prevent="dragOver(index1, 0)"
|
|
|
@dragend="dragEnd()" draggable class="chapter_upload" v-for="(item1, index1) in item.taskJson[0]
|
|
|
.chapterData" :key="item1.id" @click="
|
|
|
- getChapterData(
|
|
|
- $event,
|
|
|
- unitIndex,
|
|
|
- index,
|
|
|
- index1,
|
|
|
- item1.type
|
|
|
- )
|
|
|
- ">
|
|
|
+ getChapterData(
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ index,
|
|
|
+ index1,
|
|
|
+ item1.type
|
|
|
+ )
|
|
|
+ " :class="{
|
|
|
+ dragOverTop2: newIndex === index1 && typeIndex == 'chapter-'+'0'+'-'+index1 && oldIndex > index1,
|
|
|
+ dragOverBottom2: newIndex === index1 && typeIndex == 'chapter-'+'0'+'-'+index1 && oldIndex < index1,
|
|
|
+ }">
|
|
|
<div class="chapter_upload_drag"></div>
|
|
|
<div class="chapter_upload_t" style="width: 100%"></div>
|
|
|
<div class="chapter_upload_o" style="
|
|
@@ -403,6 +414,30 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="add_info_box" style="margin:10px 0 0" v-if="!item.taskJson[0].isFoldchapter">
|
|
|
+ <button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
|
|
|
+ 文件
|
|
|
+ <input type="file" accept="*" style="display: none" v-if="inputShow"
|
|
|
+ @change="beforeUpload2($event, unitIndex, 13, 0)" />
|
|
|
+ </button>
|
|
|
+ <button class="c_pub_button_add pub_btn_add_img" @click="addAttText(0)">
|
|
|
+ 图文
|
|
|
+ </button>
|
|
|
+ <button class="c_pub_button_add pub_btn_add_img" @click="openLine(0)">
|
|
|
+ 链接
|
|
|
+ </button>
|
|
|
+ <button class="c_pub_button_add pub_btn_add_img" @click="pasteLine(0)">
|
|
|
+ 代码
|
|
|
+ </button>
|
|
|
+ <button class="c_pub_button_add pub_btn_add_img" @click="openSource(0)">
|
|
|
+ 资源
|
|
|
+ </button>
|
|
|
+ <!-- <button class="info_btn" @click="addImg($event)">
|
|
|
+ 其他附件
|
|
|
+ <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
|
|
|
+ " />
|
|
|
+ </button> -->
|
|
|
+ </div>
|
|
|
<div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[0]
|
|
|
.proVisible
|
|
|
" class="mask">
|
|
@@ -507,14 +542,14 @@
|
|
|
</div>
|
|
|
<div class="chooseWho">
|
|
|
<div :class="itemTool.toolType == 0 ? 'isChooseActive' : ''
|
|
|
- " @click="(itemTool.toolType = 0), (itemTool.isFold3 = true), $forceUpdate()">
|
|
|
+ " @click="(itemTool.toolType = 0), (itemTool.isFold3 = false), $forceUpdate()">
|
|
|
互动类
|
|
|
</div>
|
|
|
<div :class="itemTool.toolType == 1
|
|
|
? 'isChooseActive'
|
|
|
: ''
|
|
|
" @click="
|
|
|
- (itemTool.toolType = 1), (itemTool.isFold3 = true), $forceUpdate()
|
|
|
+ (itemTool.toolType = 1), (itemTool.isFold3 = false), $forceUpdate()
|
|
|
">
|
|
|
思维类
|
|
|
</div>
|
|
@@ -522,7 +557,7 @@
|
|
|
? 'isChooseActive'
|
|
|
: ''
|
|
|
" @click="
|
|
|
- (itemTool.toolType = 6), (itemTool.isFold3 = true), $forceUpdate()
|
|
|
+ (itemTool.toolType = 6), (itemTool.isFold3 = false), $forceUpdate()
|
|
|
">
|
|
|
协作类
|
|
|
</div>
|
|
@@ -530,7 +565,7 @@
|
|
|
? 'isChooseActive'
|
|
|
: ''
|
|
|
" @click="
|
|
|
- (itemTool.toolType = 2), (itemTool.isFold3 = true), $forceUpdate()
|
|
|
+ (itemTool.toolType = 2), (itemTool.isFold3 = false), $forceUpdate()
|
|
|
">
|
|
|
测评类
|
|
|
</div>
|
|
@@ -538,7 +573,7 @@
|
|
|
? 'isChooseActive'
|
|
|
: ''
|
|
|
" @click="
|
|
|
- (itemTool.toolType = 7), (itemTool.isFold3 = true), $forceUpdate()
|
|
|
+ (itemTool.toolType = 7), (itemTool.isFold3 = false), $forceUpdate()
|
|
|
">
|
|
|
评价类
|
|
|
</div>
|
|
@@ -546,12 +581,12 @@
|
|
|
? 'isChooseActive'
|
|
|
: ''
|
|
|
" @click="
|
|
|
- (itemTool.toolType = 3), (itemTool.isFold3 = true), $forceUpdate()
|
|
|
+ (itemTool.toolType = 3), (itemTool.isFold3 = false), $forceUpdate()
|
|
|
">
|
|
|
编程类
|
|
|
</div>
|
|
|
<div :class="itemTool.toolType == 5 ? 'isChooseActive' : ''
|
|
|
- " @click="(itemTool.toolType = 5), (itemTool.isFold3 = true), $forceUpdate()">
|
|
|
+ " @click="(itemTool.toolType = 5), (itemTool.isFold3 = false), $forceUpdate()">
|
|
|
学科类
|
|
|
</div>
|
|
|
<!-- <div :class="itemTool.toolType == 4 ? 'isChooseActive' : ''
|
|
@@ -559,17 +594,35 @@
|
|
|
其他
|
|
|
</div> -->
|
|
|
</div>
|
|
|
- <div v-if="itemTool.isFold3" class="show_toolD show"
|
|
|
+ <div class="chapter_upload_ud2" style="z-index: 9;margin:0 0 0 auto" v-if="itemTask.toolChoose.length > 1">
|
|
|
+ <div class="chapter_upload_up2" @click.stop="
|
|
|
+ upTool(
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ itemTaskIndex,
|
|
|
+ toolIndex
|
|
|
+ )
|
|
|
+ ">上移</div>
|
|
|
+ <div class="chapter_upload_down2" @click.stop="
|
|
|
+ downTool(
|
|
|
+ $event,
|
|
|
+ unitIndex,
|
|
|
+ itemTaskIndex,
|
|
|
+ toolIndex
|
|
|
+ )
|
|
|
+ ">下移</div>
|
|
|
+ </div>
|
|
|
+ <div v-if="!itemTool.isFold3" class="show_toolD show"
|
|
|
@click="fold3(itemTaskIndex, toolIndex)"
|
|
|
- :style="{ right: itemTask.toolChoose.length > 1 ? '45px' : '0px' }"><img
|
|
|
+ :style="{ margin: itemTask.toolChoose.length > 1 ? '0px 35px 0px 10px' : '0 0 0 auto' }"><img
|
|
|
src="../../../assets/icon/new/icon-slide.png" />收起工具栏</div>
|
|
|
<div v-else class="show_toolD" @click="fold3(itemTaskIndex, toolIndex)"
|
|
|
- :style="{ right: itemTask.toolChoose.length > 1 ? '45px' : '0px' }"><img
|
|
|
+ :style="{ margin: itemTask.toolChoose.length > 1 ? '0px 35px 0px 10px' : '0 0 0 auto' }"><img
|
|
|
src="../../../assets/icon/new/icon-slide.png" />展开工具栏</div>
|
|
|
<div class="remove" @click="deleteTool(itemTaskIndex, toolIndex)"
|
|
|
- v-if="itemTask.toolChoose.length > 1" style="position: absolute; right: 0"></div>
|
|
|
+ v-if="itemTask.toolChoose.length > 1" style="position: absolute; right: 0;top:-5px;"></div>
|
|
|
</div>
|
|
|
- <div style="min-height: 163px" v-show="itemTool.isFold3">
|
|
|
+ <div style="min-height: 163px" v-show="!itemTool.isFold3">
|
|
|
<div class="toolSort" v-if="itemTool.toolType == 0">
|
|
|
<!-- <div class="tool">
|
|
|
<div
|
|
@@ -1559,6 +1612,27 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div> -->
|
|
|
+ <div class="tool" :class="{ isToolChoose: itemTool.tool.indexOf(69) != -1 }"
|
|
|
+ @click="addTools(69, itemTaskIndex, toolIndex)">
|
|
|
+ <div class="whiteBIcon" @click.stop="
|
|
|
+ openTools(itemTaskIndex, 69, toolIndex)
|
|
|
+ ">
|
|
|
+ <img src="../../../assets/icon/thirdToolList/english.png" alt />
|
|
|
+ <div style="margin: 5px 0">英语写作</div>
|
|
|
+ </div>
|
|
|
+ <div class="noCTool"><img src="../../../assets/icon/new/isToolC.png" alt="" /></div>
|
|
|
+ <div class="isCTool" v-if="itemTool.tool.indexOf(69) != -1"><img
|
|
|
+ src="../../../assets/icon/new/isToolC.png" alt="" /></div>
|
|
|
+ <!-- <div class="check" @click="
|
|
|
+ addTools(4, itemTaskIndex, toolIndex)
|
|
|
+ ">
|
|
|
+ <img src="../../../assets/icon/checkNo.png" alt
|
|
|
+ v-if="itemTool.tool.indexOf(4) == -1" />
|
|
|
+ <div class="checkDiv" v-else>
|
|
|
+ <img src="../../../assets/icon/checkedIs.png" alt /><span>已选择</span>
|
|
|
+ </div>
|
|
|
+ </div> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="toolSort" v-if="itemTool.toolType == 7">
|
|
|
<div class="tool" :class="{ isToolChoose: itemTool.tool.indexOf(40) != -1 }"
|
|
@@ -1632,7 +1706,7 @@
|
|
|
</div> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-show="itemTool.isFold3">
|
|
|
+ <div v-show="!itemTool.isFold3">
|
|
|
<textarea rows="3" type="text" v-autoHeight="87" placeholder="添加工具描述" class="binfo_input"
|
|
|
style="
|
|
|
margin: 0 0 20px 0;
|
|
@@ -1645,7 +1719,8 @@
|
|
|
</div>
|
|
|
<div>添加工具</div>
|
|
|
</div> -->
|
|
|
- <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)" style="margin: 0 auto 0">
|
|
|
+ <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)"
|
|
|
+ style="margin: 0 auto;padding: 0 30px;height: 45px;">
|
|
|
添加工具
|
|
|
</button>
|
|
|
</div>
|
|
@@ -3596,7 +3671,14 @@
|
|
|
</el-tooltip>
|
|
|
</div>
|
|
|
<div class="check_class_left">
|
|
|
- <div class="check_class_left_title">选择班级</div>
|
|
|
+ <div class="check_class_all_box">
|
|
|
+ <div class="check_class_left_title">选择班级</div>
|
|
|
+ <div style="display:flex;align-items:center;margin-left:auto;"><el-checkbox v-model="checkAll"
|
|
|
+ @change="handleCheckAllChange" class="all_check">全选</el-checkbox></div>
|
|
|
+ </div>
|
|
|
+ <!-- <div class="class_item" style="position:absolute; margin:0" v-if="grade2.length">
|
|
|
+ <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
|
|
|
+ </div> -->
|
|
|
<el-checkbox-group v-model="checkboxList2" class="check_class_item" @change="InviteChange" v-if="grade2.length">
|
|
|
<div v-for="item in grade2" :key="item.id" class="class_item">
|
|
|
<el-checkbox :label="item.id">
|
|
@@ -4533,6 +4615,14 @@
|
|
|
<el-button type="primary" @click="updataVideoC">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog title="创建作文题目" :visible.sync="englishDialogVisible" :append-to-body="true" width="800px"
|
|
|
+ :before-close="(done) => { closePan(69) }" class="dialog_diy fullStyle">
|
|
|
+ <englishRight @setEngList="setEnglishList" :englishList="englishList"></englishRight>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="englishDialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="addEnglish">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
<interVideo :dialogVisibleVideo.sync="dialogVisibleVideo" :videoJson="videoJson" @add="addVideoJson"></interVideo>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -4550,6 +4640,7 @@ import SeeBoard from "../../tools/seeBoard";
|
|
|
import weilaiData from "../components/weilai.js";
|
|
|
import sourceDialog from "../teacherSource/dialog.vue";
|
|
|
import interVideo from "../interVideo/index.vue";
|
|
|
+import englishRight from "./commpont/englishRight.vue";
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
@@ -4561,6 +4652,7 @@ export default {
|
|
|
Table,
|
|
|
sourceDialog,
|
|
|
interVideo,
|
|
|
+ englishRight,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -4639,6 +4731,7 @@ export default {
|
|
|
wordJson: { text: "" },
|
|
|
dialogVisibleMoreUpload: false,
|
|
|
dialogVisiblePreTime: false,
|
|
|
+ englishDialogVisible: false,
|
|
|
uploadJson: [],
|
|
|
classJuri: [],
|
|
|
gradeList: [],
|
|
@@ -4673,6 +4766,7 @@ export default {
|
|
|
testJson2: {},
|
|
|
selectJson: {},
|
|
|
selectJson2: {},
|
|
|
+ englishList:{},
|
|
|
rateJson: [],
|
|
|
unitJson2: [],
|
|
|
unitJson: [
|
|
@@ -4782,6 +4876,10 @@ export default {
|
|
|
imageList: [],
|
|
|
heightPx: '100%',
|
|
|
toolsData: toolsData,
|
|
|
+ oldIndex: 0,
|
|
|
+ oldData: null,
|
|
|
+ newIndex: "",
|
|
|
+ typeIndex: "",
|
|
|
};
|
|
|
},
|
|
|
directives: {
|
|
@@ -5052,16 +5150,6 @@ export default {
|
|
|
this.heightPx = $(".rightBox")[0].offsetHeight - 130 + 'px'
|
|
|
}
|
|
|
},
|
|
|
- handleCheckAllChange(val) {
|
|
|
- this.checkedCities = val ? cityOptions : [];
|
|
|
- this.isIndeterminate = false;
|
|
|
- },
|
|
|
- handleCheckedCitiesChange(value) {
|
|
|
- let checkedCount = value.length;
|
|
|
- this.checkAll = checkedCount === this.cities.length;
|
|
|
- this.isIndeterminate =
|
|
|
- checkedCount > 0 && checkedCount < this.cities.length;
|
|
|
- },
|
|
|
addHw(e) {
|
|
|
var el = e.currentTarget;
|
|
|
el.getElementsByTagName("input")[0].click();
|
|
@@ -5117,6 +5205,12 @@ export default {
|
|
|
} else {
|
|
|
this.closeConfirm(tool);
|
|
|
}
|
|
|
+ }else if (tool == 69){
|
|
|
+ if (JSON.stringify(this.englishList) == JSON.stringify(this.englishList)) {
|
|
|
+ this.englishDialogVisible = false
|
|
|
+ } else {
|
|
|
+ this.closeConfirm(tool);
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
closeConfirm(tool) {
|
|
@@ -5137,6 +5231,8 @@ export default {
|
|
|
this.addSelectAnswer();
|
|
|
} else if (tool == 47) {
|
|
|
this.addSentenceTool();
|
|
|
+ }else if(tool == 69){
|
|
|
+ this.addEnglish();
|
|
|
}
|
|
|
})
|
|
|
.catch(() => {
|
|
@@ -5150,9 +5246,31 @@ export default {
|
|
|
this.dialogVisibleSelect = false;
|
|
|
} else if (tool == 47) {
|
|
|
this.dialogVisibleSentence = false;
|
|
|
+ } else if (tool == 69) {
|
|
|
+ this.englishDialogVisible = false;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ addEnglish(){
|
|
|
+ if(this.englishList.engTitle == "" || this.englishList.englishText == ""){
|
|
|
+ this.$message.error("请将内容填写完整!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
+ this.taskCount
|
|
|
+ ].toolChoose[this.toolIndex].englishList = this.englishList;
|
|
|
+ this.englishList = {};
|
|
|
+ this.englishDialogVisible = false;
|
|
|
+ if (
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[this.taskCount]
|
|
|
+ .toolChoose[this.toolIndex].tool != 69
|
|
|
+ ) {
|
|
|
+ this.addTools(69, this.taskCount, this.toolIndex);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setEnglishList(engList){
|
|
|
+ this.englishList = engList;
|
|
|
+ },
|
|
|
imgChange2(i, j) {
|
|
|
var _tmp = this.testJson.testJson[i].checkList[j];
|
|
|
this.noneBtnImg = _tmp.length >= 1;
|
|
@@ -5205,6 +5323,7 @@ export default {
|
|
|
.$confirm("是否保存已编辑内容?", "提示", {
|
|
|
confirmButtonText: "保存",
|
|
|
cancelButtonText: "不保存",
|
|
|
+ distinguishCancelAndClose: true,
|
|
|
type: "warning",
|
|
|
})
|
|
|
.then(() => {
|
|
@@ -5228,17 +5347,20 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
- .catch(() => {
|
|
|
- this.goTo(
|
|
|
- "/course?userid=" +
|
|
|
- this.userid +
|
|
|
- "&oid=" +
|
|
|
- this.oid +
|
|
|
- "&org=" +
|
|
|
- this.org +
|
|
|
- "&role=" +
|
|
|
- this.role
|
|
|
- );
|
|
|
+ .catch((v) => {
|
|
|
+ console.log(v)
|
|
|
+ if(v == "cancel"){
|
|
|
+ this.goTo(
|
|
|
+ "/course?userid=" +
|
|
|
+ this.userid +
|
|
|
+ "&oid=" +
|
|
|
+ this.oid +
|
|
|
+ "&org=" +
|
|
|
+ this.org +
|
|
|
+ "&role=" +
|
|
|
+ this.role
|
|
|
+ );
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
nextSteps() {
|
|
@@ -6498,6 +6620,19 @@ export default {
|
|
|
}
|
|
|
this.grade2 = res.data[0];
|
|
|
this.classJuri = res.data[0];
|
|
|
+ let _check = []
|
|
|
+ let _check2 = []
|
|
|
+ for (var i = 0; i < this.grade2.length; i++) {
|
|
|
+ var gid = this.grade2[i].id
|
|
|
+ _check.push(gid)
|
|
|
+ }
|
|
|
+ for (var i = 0; i < this.checkboxList2.length; i++) {
|
|
|
+ var _id = this.checkboxList2[i]
|
|
|
+ if (_check.indexOf(_id) !== -1) {
|
|
|
+ _check2.push(_id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.checkAll = _check2.length === _check.length;
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
this.isLoading = false;
|
|
@@ -6583,6 +6718,60 @@ export default {
|
|
|
this.unitJson[i].chapterInfo[0].taskJson[taskCount].chapterData[ic] = a;
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
+ upTool(e, i, j, tooli){
|
|
|
+ e.stopPropagation();
|
|
|
+ if (tooli == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.$confirm(
|
|
|
+ "切换工具顺序将删除此工具的提交成果,是否继续此操作?",
|
|
|
+ "提示",
|
|
|
+ {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }
|
|
|
+ )
|
|
|
+ .then(() => {
|
|
|
+ var a =
|
|
|
+ JSON.parse(JSON.stringify(this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli - 1]));
|
|
|
+ this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli - 1] =
|
|
|
+ JSON.parse(JSON.stringify(this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli]));
|
|
|
+ this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli] = a;
|
|
|
+ this.$forceUpdate()
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ return;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ downTool(e, i, j, tooli){
|
|
|
+ e.stopPropagation();
|
|
|
+ if ( tooli ==
|
|
|
+ this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose.length -
|
|
|
+ 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.$confirm(
|
|
|
+ "切换工具顺序将删除此工具的提交成果,是否继续此操作?",
|
|
|
+ "提示",
|
|
|
+ {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }
|
|
|
+ )
|
|
|
+ .then(() => {
|
|
|
+ var a =
|
|
|
+ JSON.parse(JSON.stringify(this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli + 1]));
|
|
|
+ this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli + 1] =
|
|
|
+ JSON.parse(JSON.stringify(this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli]));
|
|
|
+ this.unitJson[i].chapterInfo[0].taskJson[j].toolChoose[tooli] = a;
|
|
|
+ this.$forceUpdate()
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ return;
|
|
|
+ });
|
|
|
+ },
|
|
|
addWork() {
|
|
|
let cPan = 1;
|
|
|
for (var i = 0; i < this.unitJson.length; i++) {
|
|
@@ -7518,6 +7707,19 @@ export default {
|
|
|
},
|
|
|
"*"
|
|
|
);
|
|
|
+ }else if(i == 69){
|
|
|
+ this.englishList = this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
+ itemTaskIndex
|
|
|
+ ].toolChoose[toolIndex].englishList
|
|
|
+ ? JSON.parse(
|
|
|
+ JSON.stringify(
|
|
|
+ this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
|
|
|
+ itemTaskIndex
|
|
|
+ ].toolChoose[toolIndex].englishList
|
|
|
+ )
|
|
|
+ )
|
|
|
+ : { };
|
|
|
+ this.englishDialogVisible = true;
|
|
|
}
|
|
|
},
|
|
|
chapAddTools(i) {
|
|
@@ -7631,6 +7833,16 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if(i == 69){
|
|
|
+ if (
|
|
|
+ !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
|
+ .toolChoose[toolIndex].englishList
|
|
|
+ ) {
|
|
|
+ this.openTools(itemTaskIndex, 69, toolIndex);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
// if (i == 48) {
|
|
|
// if (
|
|
|
// !this.unitJson[this.unitIndex].chapterInfo[0].taskJson[itemTaskIndex]
|
|
@@ -9422,6 +9634,19 @@ export default {
|
|
|
},
|
|
|
InviteChange(val) {
|
|
|
console.log(val);
|
|
|
+ let _check = []
|
|
|
+ let _check2 = []
|
|
|
+ for (var i = 0; i < this.grade2.length; i++) {
|
|
|
+ var gid = this.grade2[i].id
|
|
|
+ _check.push(gid)
|
|
|
+ }
|
|
|
+ for (var i = 0; i < this.checkboxList2.length; i++) {
|
|
|
+ var _id = this.checkboxList2[i]
|
|
|
+ if (_check.indexOf(_id) !== -1) {
|
|
|
+ _check2.push(_id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.checkAll = _check2.length === _check.length;
|
|
|
return;
|
|
|
let array = JSON.parse(JSON.stringify(val));
|
|
|
this.inviteCode = this.inviteCode.filter((el) => {
|
|
@@ -9434,6 +9659,31 @@ export default {
|
|
|
this.getInviteCode(array[i]);
|
|
|
}
|
|
|
},
|
|
|
+ handleCheckAllChange(val) {
|
|
|
+ if (val) {
|
|
|
+ for (var i = 0; i < this.grade2.length; i++) {
|
|
|
+ var gid = this.grade2[i].id
|
|
|
+ if (this.checkboxList2.indexOf(gid) === -1) {
|
|
|
+ this.checkboxList2.push(gid)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ let _check = []
|
|
|
+ let _check2 = []
|
|
|
+ for (var i = 0; i < this.grade2.length; i++) {
|
|
|
+ var gid = this.grade2[i].id
|
|
|
+ _check.push(gid)
|
|
|
+ }
|
|
|
+ for (var i = 0; i < this.checkboxList2.length; i++) {
|
|
|
+ var _id = this.checkboxList2[i]
|
|
|
+ if (_check.indexOf(_id) === -1) {
|
|
|
+ _check2.push(_id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.checkboxList2 = _check2
|
|
|
+ }
|
|
|
+ this.isIndeterminate = false;
|
|
|
+ },
|
|
|
async getInviteCode(cid) {
|
|
|
let code = this.randomNumber();
|
|
|
let params = {
|
|
@@ -9649,7 +9899,8 @@ export default {
|
|
|
this.oldIndex = i;
|
|
|
this.oldData = val;
|
|
|
},
|
|
|
- dragOver(i) {
|
|
|
+ dragOver(i, j) {
|
|
|
+ this.typeIndex = "chapter-" + j + '-' + i
|
|
|
this.newIndex = i;
|
|
|
},
|
|
|
dragEnd() {
|
|
@@ -9660,6 +9911,7 @@ export default {
|
|
|
newItems.splice(this.newIndex, 0, this.oldData);
|
|
|
this.unitJson[this.unitIndex].chapterInfo[0].taskJson[this.taskCount].chapterData = [...newItems];
|
|
|
this.newIndex = "";
|
|
|
+ this.typeIndex = "";
|
|
|
this.$forceUpdate()
|
|
|
},
|
|
|
dragTaskStart(val, i) {
|
|
@@ -9667,10 +9919,13 @@ export default {
|
|
|
this.oldData = val;
|
|
|
},
|
|
|
dragTaskOver(i) {
|
|
|
+ this.typeIndex = "task-" + i
|
|
|
this.newIndex = i;
|
|
|
},
|
|
|
dragTaskEnd() {
|
|
|
- if(this.newIndex == this.oldIndex){
|
|
|
+ if (this.newIndex == this.oldIndex) {
|
|
|
+ this.typeIndex = "";
|
|
|
+ this.newIndex = "";
|
|
|
return;
|
|
|
}
|
|
|
this.$confirm(
|
|
@@ -9685,7 +9940,7 @@ export default {
|
|
|
.then(() => {
|
|
|
let newItems = [...this.unitJson[this.unitIndex].chapterInfo[0].taskJson];
|
|
|
let chapterData = []
|
|
|
- if(this.oldIndex == 0){
|
|
|
+ if (this.oldIndex == 0) {
|
|
|
chapterData = newItems[this.oldIndex].chapterData
|
|
|
newItems[this.oldIndex].chapterData = []
|
|
|
}
|
|
@@ -9693,14 +9948,16 @@ export default {
|
|
|
newItems.splice(this.oldIndex, 1);
|
|
|
// 在列表中目标位置增加新的节点
|
|
|
newItems.splice(this.newIndex, 0, this.oldData);
|
|
|
- if(this.oldIndex == 0){
|
|
|
+ if (this.oldIndex == 0) {
|
|
|
newItems[0].chapterData = chapterData
|
|
|
}
|
|
|
this.unitJson[this.unitIndex].chapterInfo[0].taskJson = [...newItems];
|
|
|
+ this.typeIndex = "";
|
|
|
this.newIndex = "";
|
|
|
this.$forceUpdate()
|
|
|
})
|
|
|
.catch(() => {
|
|
|
+ this.typeIndex = "";
|
|
|
this.newIndex = "";
|
|
|
return;
|
|
|
});
|
|
@@ -10226,9 +10483,9 @@ export default {
|
|
|
font-size: 14px;
|
|
|
cursor: pointer;
|
|
|
color: #717C8D;
|
|
|
- position: absolute;
|
|
|
+ /* position: absolute;
|
|
|
right: 45px;
|
|
|
- top: 5px;
|
|
|
+ top: 5px; */
|
|
|
}
|
|
|
|
|
|
.show_toolD>img {
|
|
@@ -10962,6 +11219,50 @@ export default {
|
|
|
margin-bottom: 5px;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+.chapter_upload_ud2 {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: center;
|
|
|
+ margin: 0 10px 0 0;
|
|
|
+}
|
|
|
+
|
|
|
+.chapter_upload_ud2>.chapter_upload_up2 {
|
|
|
+ margin-bottom: 0;
|
|
|
+ margin-right: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+.chapter_upload_down2,
|
|
|
+.chapter_upload_up2 {
|
|
|
+ cursor: pointer;
|
|
|
+ margin: 0 auto;
|
|
|
+ border-radius: 5px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ color: #717C8D;
|
|
|
+ font-size: 14px;
|
|
|
+}
|
|
|
+.chapter_upload_up2{
|
|
|
+ margin-right:10px;
|
|
|
+}
|
|
|
+.chapter_upload_up2::before,
|
|
|
+.chapter_upload_down2::before {
|
|
|
+ content: '';
|
|
|
+ background-image: url('../../../assets/icon/new/c_up.png');
|
|
|
+ width: 14px;
|
|
|
+ height: 14px;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ display: block;
|
|
|
+ margin-right: 5px;
|
|
|
+}
|
|
|
+
|
|
|
+.chapter_upload_up2::before {
|
|
|
+ background-image: url('../../../assets/icon/new/c_down.png') !important;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
.addWordStyle {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
@@ -11304,7 +11605,7 @@ ol {
|
|
|
}
|
|
|
|
|
|
.tool+.tool {
|
|
|
- margin-right: 45px;
|
|
|
+ margin-right: 10px;
|
|
|
}
|
|
|
|
|
|
.whiteBIcon {
|
|
@@ -11630,7 +11931,7 @@ ol {
|
|
|
}
|
|
|
|
|
|
.toolSort>div {
|
|
|
- margin-right: 45px;
|
|
|
+ margin-right: 10px;
|
|
|
}
|
|
|
|
|
|
.tools {
|
|
@@ -11751,6 +12052,7 @@ ol {
|
|
|
position: absolute;
|
|
|
right: 15px;
|
|
|
bottom: 35px;
|
|
|
+ z-index: 999;
|
|
|
}
|
|
|
|
|
|
.fold {
|
|
@@ -12309,6 +12611,37 @@ ol {
|
|
|
align-items: center;
|
|
|
font-size: 14px;
|
|
|
color: #6e6e6e;
|
|
|
+ position:relative;
|
|
|
+}
|
|
|
+
|
|
|
+.cover_p{
|
|
|
+ width: 100% !important;
|
|
|
+ height: 100%;
|
|
|
+ object-fit: cover;
|
|
|
+}
|
|
|
+
|
|
|
+.uploadFm2:hover .cover_mask{
|
|
|
+ display: flex !important;
|
|
|
+}
|
|
|
+
|
|
|
+.cover_mask{
|
|
|
+ display:none;
|
|
|
+ width:100%;
|
|
|
+ height:100%;
|
|
|
+ position:absolute;
|
|
|
+ background:#00000054;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ flex-direction: column;
|
|
|
+}
|
|
|
+
|
|
|
+.cover_mask > img{
|
|
|
+ width: 30px;
|
|
|
+}
|
|
|
+
|
|
|
+.cover_mask > span{
|
|
|
+ color: #fff;
|
|
|
+ font-size: 12px;
|
|
|
}
|
|
|
|
|
|
.uploadFm>img {
|
|
@@ -12846,6 +13179,28 @@ ol {
|
|
|
background-image: url(../../../assets/icon/new/icon_arrow_a.png) !important;
|
|
|
}
|
|
|
|
|
|
+.dragOverTop {
|
|
|
+ border-top: 2px solid #0061FF !important;
|
|
|
+ border-radius: 0 !important;
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.dragOverBottom {
|
|
|
+ border-bottom: 2px solid #0061FF !important;
|
|
|
+ border-radius: 0 !important;
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.dragOverTop2 {
|
|
|
+ border-top: 2px solid #0061FF !important;
|
|
|
+ border-radius: 0 !important;
|
|
|
+}
|
|
|
+
|
|
|
+.dragOverBottom2 {
|
|
|
+ border-bottom: 2px solid #0061FF !important;
|
|
|
+ border-radius: 0 !important;
|
|
|
+}
|
|
|
+
|
|
|
.isNavTask {
|
|
|
/* background: #3681FC; */
|
|
|
background: #EEF3FB;
|
|
@@ -12884,14 +13239,14 @@ ol {
|
|
|
color: #060E17;
|
|
|
line-height: 25px;
|
|
|
font-size: 16px;
|
|
|
- min-width: 45px;
|
|
|
+ /* min-width: 66px; */
|
|
|
}
|
|
|
|
|
|
.navTask .nt_taskName {
|
|
|
/* color: #fff; */
|
|
|
/* max-width: 130px; */
|
|
|
/* width: 100%; */
|
|
|
- max-width: calc(100% - 50px);
|
|
|
+ max-width: calc(100% - 66px);
|
|
|
white-space: nowrap;
|
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
@@ -13306,10 +13661,25 @@ ol {
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
|
|
|
+.check_class_all_box {
|
|
|
+ display: flex;
|
|
|
+ margin-bottom: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.all_check {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 2px 0 0;
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.all_check>>>.el-checkbox__label {
|
|
|
+ line-height: 18px;
|
|
|
+}
|
|
|
+
|
|
|
.check_class_left_title {
|
|
|
font-size: 16px;
|
|
|
font-weight: 700;
|
|
|
- margin-bottom: 10px;
|
|
|
}
|
|
|
|
|
|
.check_class_item {
|
|
@@ -13322,6 +13692,9 @@ ol {
|
|
|
align-content: flex-start;
|
|
|
}
|
|
|
|
|
|
+.class_item:first-child {
|
|
|
+ /* margin: 0 15px 15px 67px; */
|
|
|
+}
|
|
|
.class_item {
|
|
|
margin: 0 15px 15px 0;
|
|
|
|