|
@@ -2,7 +2,13 @@
|
|
|
<div class="pb_content" style="overflow: unset">
|
|
|
<div
|
|
|
class="pb_content_body"
|
|
|
- style="display: flex; height: 900px; position: relative;padding: 20px 0 20px 20px;box-sizing: border-box;"
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ height: 900px;
|
|
|
+ position: relative;
|
|
|
+ padding: 20px 0 20px 20px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ "
|
|
|
>
|
|
|
<div class="btnAllNT">
|
|
|
<!-- <img src="../../assets/icon/learn/screen.png" @click="allScrell" /> -->
|
|
@@ -51,14 +57,10 @@
|
|
|
<div class="pb_left" v-else>
|
|
|
<!-- <div class="courseTitle">{{ courseDetail.title }}</div> -->
|
|
|
<div
|
|
|
- style="
|
|
|
- border-bottom: 1px solid #cad1dc;
|
|
|
- padding: 13px 0;
|
|
|
- width: 100%;
|
|
|
- "
|
|
|
+ style="border-bottom: 1px solid #cad1dc; padding: 13px 0; width: 100%"
|
|
|
>
|
|
|
<div class="courseTitle">
|
|
|
- <div style="max-width: 295px">
|
|
|
+ <div style="max-width: calc(100% - 40px); width: auto">
|
|
|
<div class="ctitle">{{ courseDetail.title }}</div>
|
|
|
</div>
|
|
|
<el-tooltip effect="light" content="收缩" placement="top">
|
|
@@ -69,10 +71,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="cru_selectBox">
|
|
|
- <div
|
|
|
- v-for="(item, stageIndex) in navList"
|
|
|
- :key="stageIndex"
|
|
|
- >
|
|
|
+ <div v-for="(item, stageIndex) in navList" :key="stageIndex">
|
|
|
<div class="stageChild" :class="{ navActive: item.isOpen }">
|
|
|
<div v-for="(nav, navIndex) in item.task" :key="navIndex">
|
|
|
<div
|
|
@@ -128,8 +127,8 @@
|
|
|
width: 77%;
|
|
|
z-index: 999;
|
|
|
border-radius: 12px 12px 0 0;
|
|
|
- border-bottom: 1px solid #CAD1DC;
|
|
|
- padding: 10px 0;
|
|
|
+ border-bottom: 1px solid #cad1dc;
|
|
|
+ padding: 10px 0;
|
|
|
"
|
|
|
:class="{ navLeftCss: !mlDialog }"
|
|
|
>
|
|
@@ -367,10 +366,7 @@
|
|
|
<span v-if="vitem.text">{{ vitem.text }}-</span
|
|
|
>{{ vitem.name }}
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="downIcon"
|
|
|
- @click="downloadFile2(vitem)"
|
|
|
- >
|
|
|
+ <div class="downIcon" @click="downloadFile2(vitem)">
|
|
|
<img
|
|
|
src="../../assets/icon/newIcon/down.png"
|
|
|
alt
|
|
@@ -385,10 +381,7 @@
|
|
|
>
|
|
|
{{ vitem.name }}.doc
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="downIcon"
|
|
|
- @click="downloadFile2(vitem)"
|
|
|
- >
|
|
|
+ <div class="downIcon" @click="downloadFile2(vitem)">
|
|
|
<img
|
|
|
src="../../assets/icon/newIcon/down.png"
|
|
|
alt
|
|
@@ -403,10 +396,7 @@
|
|
|
>
|
|
|
{{ vitem.title ? vitem.title : vitem.url }}
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="downIcon"
|
|
|
- @click="downloadFile2(vitem)"
|
|
|
- >
|
|
|
+ <div class="downIcon" @click="downloadFile2(vitem)">
|
|
|
<img
|
|
|
src="../../assets/icon/newIcon/down.png"
|
|
|
alt
|
|
@@ -422,10 +412,7 @@
|
|
|
<span v-if="vitem.text">{{ vitem.text }}-</span
|
|
|
>{{ vitem.name }}
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="downIcon"
|
|
|
- @click="downloadFile2(vitem)"
|
|
|
- >
|
|
|
+ <div class="downIcon" @click="downloadFile2(vitem)">
|
|
|
<img
|
|
|
src="../../assets/icon/newIcon/down.png"
|
|
|
alt
|
|
@@ -437,10 +424,7 @@
|
|
|
<span v-if="vitem.text">{{ vitem.text }}-</span
|
|
|
>{{ vitem.name }}
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="downIcon"
|
|
|
- @click="downloadFile2(vitem)"
|
|
|
- >
|
|
|
+ <div class="downIcon" @click="downloadFile2(vitem)">
|
|
|
<img
|
|
|
src="../../assets/icon/newIcon/down.png"
|
|
|
alt
|
|
@@ -455,10 +439,7 @@
|
|
|
>
|
|
|
{{ vitem.name }}
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="downIcon"
|
|
|
- @click="downloadFile2(vitem)"
|
|
|
- >
|
|
|
+ <div class="downIcon" @click="downloadFile2(vitem)">
|
|
|
<img
|
|
|
src="../../assets/icon/newIcon/down.png"
|
|
|
alt
|
|
@@ -474,7 +455,7 @@
|
|
|
:key="vindex + '1'"
|
|
|
>
|
|
|
<div class="navListItem" v-if="vitem.type == 12">
|
|
|
- <div class="navText" style="color:#ACB4BF">
|
|
|
+ <div class="navText" style="color: #acb4bf">
|
|
|
<span v-if="vitem.text">{{ vitem.text }}-</span
|
|
|
>{{ vitem.name }}
|
|
|
</div>
|
|
@@ -495,7 +476,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div style="width: 78.5%">
|
|
|
+ <div style="width: calc(100% - 315px)">
|
|
|
<div
|
|
|
style="padding: 10px 0 0; width: 95%; margin: 0 auto"
|
|
|
v-if="showType == 2 || showType == 3"
|
|
@@ -541,12 +522,14 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="student_body" v-resize="resize">
|
|
|
- <div class="taskBox" v-if="
|
|
|
- chapInfoList[courseType].chapterInfo[0].taskJson[
|
|
|
- taskCount
|
|
|
- ].taskDetail != ''
|
|
|
- ">
|
|
|
+ <div class="student_body" v-resize="resize" :style="{borderRadius:(vChapterData[0].length == 0 && fileC[0].length == 0) ? '0 0 20px 20px' : '20px'}">
|
|
|
+ <div
|
|
|
+ class="taskBox"
|
|
|
+ v-if="
|
|
|
+ chapInfoList[courseType].chapterInfo[0].taskJson[taskCount]
|
|
|
+ .taskDetail != ''
|
|
|
+ "
|
|
|
+ >
|
|
|
<div
|
|
|
style="
|
|
|
display: flex;
|
|
@@ -16789,40 +16772,50 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
downloadFile2(f) {
|
|
|
- let url = f.url;
|
|
|
- let _this = this;
|
|
|
- let _url = "";
|
|
|
+ const loading = this.$loading.service({
|
|
|
+ background: "rgba(255, 255, 255, 0.7)",
|
|
|
+ target: document.body,
|
|
|
+ text: "文件加载中...",
|
|
|
+ });
|
|
|
+ let url2 = f.url;
|
|
|
+ let _url2 = "";
|
|
|
if (
|
|
|
- url.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
|
|
|
+ url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
|
|
|
) {
|
|
|
- _url = url.split(
|
|
|
+ _url2 = url2.split(
|
|
|
"https://view.officeapps.live.com/op/view.aspx?src="
|
|
|
)[1];
|
|
|
} else {
|
|
|
- _url = url;
|
|
|
+ _url2 = url2;
|
|
|
}
|
|
|
- const x = new XMLHttpRequest();
|
|
|
- x.open("GET", _url, true);
|
|
|
- x.responseType = "blob";
|
|
|
- const loading = _this.$loading.service({
|
|
|
- background: "rgba(255, 255, 255, 0.7)",
|
|
|
- target: document.body,
|
|
|
- text: "文件加载中...",
|
|
|
- });
|
|
|
- // _this.$message.success("文件下载中...");
|
|
|
- x.onload = function (e) {
|
|
|
- loading.close();
|
|
|
- let content = x.response;
|
|
|
- let elink = document.createElement("a");
|
|
|
- elink.download = f.name;
|
|
|
- elink.style.display = "none";
|
|
|
- let blob = new Blob([content]);
|
|
|
- elink.href = URL.createObjectURL(blob);
|
|
|
- document.body.appendChild(elink);
|
|
|
- elink.click();
|
|
|
- document.body.removeChild(elink);
|
|
|
+ let params = {
|
|
|
+ url: _url2,
|
|
|
+ name: f.name,
|
|
|
};
|
|
|
- x.send();
|
|
|
+ this.ajax
|
|
|
+ .get(this.$store.state.api + "download", params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ loading.close();
|
|
|
+ let content = res.data.data.data;
|
|
|
+ let ab = new ArrayBuffer(content.length);
|
|
|
+ let view = new Uint8Array(ab);
|
|
|
+ for (var i = 0; i < content.length; ++i) {
|
|
|
+ view[i] = content[i];
|
|
|
+ }
|
|
|
+ let elink = document.createElement("a");
|
|
|
+ elink.download = f.name;
|
|
|
+ elink.style.display = "none";
|
|
|
+ let blob = new Blob([ab], { type: res.data.response.headers['content-type']+';charset=UTF-8'});
|
|
|
+ elink.href = URL.createObjectURL(blob);
|
|
|
+ document.body.appendChild(elink);
|
|
|
+ elink.click();
|
|
|
+ document.body.removeChild(elink);
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ loading.close();
|
|
|
+ console.error(err);
|
|
|
+ });
|
|
|
},
|
|
|
downloadFile(url) {
|
|
|
let _this = this;
|
|
@@ -17690,7 +17683,7 @@ export default {
|
|
|
position: fixed;
|
|
|
height: calc(100% - 40px);
|
|
|
border-radius: 20px;
|
|
|
- padding-bottom: 15px;
|
|
|
+ padding-bottom: 15px;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
|
|
@@ -17807,7 +17800,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
.study_top {
|
|
|
- margin-top: 80px;
|
|
|
+ margin-top: 100px;
|
|
|
width: 100%;
|
|
|
/* overflow: auto; */
|
|
|
height: auto;
|
|
@@ -18347,14 +18340,14 @@ export default {
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
|
-.new_top::before{
|
|
|
- content: '';
|
|
|
+.new_top::before {
|
|
|
+ content: "";
|
|
|
width: 100%;
|
|
|
- height: 20px;
|
|
|
- position: absolute;
|
|
|
- top: -20px;
|
|
|
- display: block;
|
|
|
- background: #f2f2f2;
|
|
|
+ height: 20px;
|
|
|
+ position: absolute;
|
|
|
+ top: -20px;
|
|
|
+ display: block;
|
|
|
+ background: #f2f2f2;
|
|
|
}
|
|
|
|
|
|
.before {
|
|
@@ -18372,8 +18365,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
.courseIndex > div:nth-child(1) {
|
|
|
- margin: 0 0 0 20px;
|
|
|
- padding-left: 5px;
|
|
|
+ margin: 0 0 0 10px;
|
|
|
font-size: 24px;
|
|
|
min-width: 100px;
|
|
|
font-weight: bold;
|
|
@@ -18422,7 +18414,7 @@ export default {
|
|
|
height: 445px;
|
|
|
border-radius: 10px;
|
|
|
overflow: hidden;
|
|
|
- box-shadow: 0px 0px 12px 1px rgba(0,0,0,0.16);
|
|
|
+ box-shadow: 0px 0px 12px 1px rgba(0, 0, 0, 0.16);
|
|
|
}
|
|
|
|
|
|
.vedioNav {
|
|
@@ -18723,7 +18715,7 @@ export default {
|
|
|
|
|
|
.toolHeng2 {
|
|
|
width: 100%;
|
|
|
- box-sizing:border-box;
|
|
|
+ box-sizing: border-box;
|
|
|
}
|
|
|
|
|
|
.toolHeng {
|
|
@@ -18799,7 +18791,7 @@ export default {
|
|
|
white-space: nowrap;
|
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
|
- width: 175px;
|
|
|
+ width: 220px;
|
|
|
padding: 0 10px;
|
|
|
font-weight: 400;
|
|
|
color: #0e1e33;
|
|
@@ -18979,7 +18971,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
.toolBox {
|
|
|
- padding: 20px 60px 15px;
|
|
|
+ padding: 30px 60px 15px;
|
|
|
display: flex;
|
|
|
position: relative;
|
|
|
}
|
|
@@ -20044,7 +20036,7 @@ export default {
|
|
|
/* background-image: -webkit-linear-gradient(left, #72aaf4, #4d81d5); */
|
|
|
cursor: pointer;
|
|
|
z-index: 999;
|
|
|
- right: 0;
|
|
|
+ right: 20px;
|
|
|
top: 83px;
|
|
|
width: 50px;
|
|
|
height: 50px;
|
|
@@ -20071,9 +20063,9 @@ export default {
|
|
|
border-radius: 15px;
|
|
|
z-index: 999; */
|
|
|
position: fixed;
|
|
|
- right: 0;
|
|
|
+ right: 20px;
|
|
|
top: 70px;
|
|
|
- width: 340px;
|
|
|
+ width: 330px;
|
|
|
height: calc(100% - 80px);
|
|
|
z-index: 999;
|
|
|
background: #fff;
|
|
@@ -21031,6 +21023,7 @@ export default {
|
|
|
|
|
|
.mlImg {
|
|
|
width: 25px !important;
|
|
|
+ min-width: 25px;
|
|
|
cursor: pointer;
|
|
|
margin-top: 5px;
|
|
|
}
|
|
@@ -21281,16 +21274,6 @@ ol {
|
|
|
font-weight: 400;
|
|
|
color: #acb4bf;
|
|
|
}
|
|
|
-.closeTri {
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- padding-left: 15px;
|
|
|
-}
|
|
|
-
|
|
|
-.closeTri > img {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
-}
|
|
|
|
|
|
.stageChild {
|
|
|
height: 0;
|
|
@@ -21336,7 +21319,7 @@ ol {
|
|
|
}
|
|
|
|
|
|
.navListItem {
|
|
|
- width: 220px;
|
|
|
+ width: 280px;
|
|
|
height: 50px;
|
|
|
margin: 0px auto 10px;
|
|
|
display: flex;
|