|
@@ -327,7 +327,7 @@
|
|
|
</div>
|
|
|
<div class="toolHeng2" style="position: relative">
|
|
|
<div class="filebox" style="flex-wrap: nowrap; margin: 0 20px" v-for="(tool, toolIndex) in chapInfoList[courseType]
|
|
|
- .chapterInfo[0].taskJson[taskCount].toolArray" :key="toolIndex">
|
|
|
+ .chapterInfo[0].taskJson[taskCount].toolArray" :key="toolIndex" v-loading="downLoading == 'down'+toolIndex">
|
|
|
<div class="bzBox">
|
|
|
<div></div>
|
|
|
<div>步骤{{ toolIndex + 1 }}</div>
|
|
@@ -517,7 +517,7 @@
|
|
|
<img v-if="photo.type == 14" :src="word" @click="
|
|
|
openAsk(photo.content, taskCount, toolIndex)
|
|
|
" />
|
|
|
- <img v-if="photo.type == 13" :src="zip" @click="downloadFile(photo.content)" />
|
|
|
+ <img v-if="photo.type == 13" :src="zip" @click="downloadFile(photo.content, toolIndex)" />
|
|
|
<div class="answerBg" v-if="photo.type == 3">
|
|
|
<!-- <div>{{ w.sName }}</div> -->
|
|
|
<el-tooltip class="item" effect="light" :content="photo.content" placement="top">
|
|
@@ -626,7 +626,7 @@
|
|
|
tool.toolData[tool.sourceIndex].type == 3 ||
|
|
|
tool.toolData[tool.sourceIndex].type == 9
|
|
|
" type="primary" @click="
|
|
|
- downloadFile(tool.toolData[tool.sourceIndex].src)
|
|
|
+ downloadFile(tool.toolData[tool.sourceIndex].src, toolIndex)
|
|
|
">文件下载</el-button>
|
|
|
<el-button v-if="tool.toolData[tool.sourceIndex].type == 8" type="primary"
|
|
|
@click="openLine(tool.toolData[tool.sourceIndex].src)">打开链接
|
|
@@ -1300,6 +1300,7 @@ export default {
|
|
|
z: 0,
|
|
|
},
|
|
|
pzStype:1,
|
|
|
+ downLoading:''
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
@@ -2770,49 +2771,89 @@ export default {
|
|
|
this.dialogVisible3 = true;
|
|
|
}
|
|
|
},
|
|
|
- downloadFile(url) {
|
|
|
- let _this = this;
|
|
|
- let _url = "";
|
|
|
+ downloadFile(url,toolIndex) {
|
|
|
+ var credentials = {
|
|
|
+ accessKeyId: "AKIATLPEDU37QV5CHLMH",
|
|
|
+ secretAccessKey: "Q2SQw37HfolS7yeaR1Ndpy9Jl4E2YZKUuuy2muZR",
|
|
|
+ }; //秘钥形式的登录上传
|
|
|
+ window.AWS.config.update(credentials);
|
|
|
+ window.AWS.config.region = "cn-northwest-1"; //设置区域
|
|
|
+ let url2 = 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();
|
|
|
- // const url = window.URL.createObjectURL(x.response);
|
|
|
- // const a = document.createElement("a");
|
|
|
- // a.href = url;
|
|
|
- // a.target = "_blank";
|
|
|
- // a.download = url;
|
|
|
- // a.click();
|
|
|
- // a.remove();
|
|
|
- let content = x.response;
|
|
|
- let elink = document.createElement("a");
|
|
|
- elink.download = decodeURI(
|
|
|
- _url.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
|
|
|
- );
|
|
|
- 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 _this = this;
|
|
|
+
|
|
|
+ _this.downLoading = 'down'+toolIndex
|
|
|
+ var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
|
|
|
+ let name = decodeURIComponent(decodeURIComponent(_url2).split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1])
|
|
|
+ var params = {
|
|
|
+ Bucket: "ccrb",
|
|
|
+ Key: name
|
|
|
};
|
|
|
- x.send();
|
|
|
+ s3.getObject(params, function (err, data) {
|
|
|
+ _this.downLoading = ''
|
|
|
+ if (err) console.log(err, err.stack); // an error occurred
|
|
|
+ else {
|
|
|
+ let url = window.URL.createObjectURL(new Blob([data.Body]));
|
|
|
+ let a = document.createElement("a");
|
|
|
+ a.name = name;
|
|
|
+ a.href = url;
|
|
|
+ a.download = name;
|
|
|
+ a.click();
|
|
|
+ console.log(data);
|
|
|
+ } // sxuccessful response
|
|
|
+
|
|
|
+ });
|
|
|
+ // let _this = this;
|
|
|
+ // let _url = "";
|
|
|
+ // if (
|
|
|
+ // url.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
|
|
|
+ // ) {
|
|
|
+ // _url = url.split(
|
|
|
+ // "https://view.officeapps.live.com/op/view.aspx?src="
|
|
|
+ // )[1];
|
|
|
+ // } else {
|
|
|
+ // _url = url;
|
|
|
+ // }
|
|
|
+ // 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();
|
|
|
+ // // const url = window.URL.createObjectURL(x.response);
|
|
|
+ // // const a = document.createElement("a");
|
|
|
+ // // a.href = url;
|
|
|
+ // // a.target = "_blank";
|
|
|
+ // // a.download = url;
|
|
|
+ // // a.click();
|
|
|
+ // // a.remove();
|
|
|
+ // let content = x.response;
|
|
|
+ // let elink = document.createElement("a");
|
|
|
+ // elink.download = decodeURI(
|
|
|
+ // _url.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
|
|
|
+ // );
|
|
|
+ // elink.style.display = "none";
|
|
|
+ // let blob = new Blob([content]);
|
|
|
+ // elink.href = URL.createObjectURL(blob);
|
|
|
+ // document.body.appendChild(elink);
|
|
|
+ // elink.click();
|
|
|
+ // document.body.removeChild(elink);
|
|
|
+ // };
|
|
|
+ // x.send();
|
|
|
},
|
|
|
openText(f) {
|
|
|
this.tableJson.text = JSON.parse(f);
|
|
@@ -2830,7 +2871,7 @@ export default {
|
|
|
},
|
|
|
setChapterIndex2(tool, index, toolIndex) {
|
|
|
if(tool.toolData[index].type == 12){
|
|
|
- this.downloadFile2(tool.toolData[index])
|
|
|
+ this.downloadFile2(tool.toolData[index], toolIndex)
|
|
|
return;
|
|
|
}
|
|
|
tool.sourceIndex = index;
|
|
@@ -2845,12 +2886,13 @@ export default {
|
|
|
});
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
- downloadFile2(f) {
|
|
|
- const loading = this.$loading.service({
|
|
|
- background: "rgba(255, 255, 255, 0.7)",
|
|
|
- target: document.body,
|
|
|
- text: "文件加载中...",
|
|
|
- });
|
|
|
+ downloadFile2(f,toolIndex) {
|
|
|
+ var credentials = {
|
|
|
+ accessKeyId: "AKIATLPEDU37QV5CHLMH",
|
|
|
+ secretAccessKey: "Q2SQw37HfolS7yeaR1Ndpy9Jl4E2YZKUuuy2muZR",
|
|
|
+ }; //秘钥形式的登录上传
|
|
|
+ window.AWS.config.update(credentials);
|
|
|
+ window.AWS.config.region = "cn-northwest-1"; //设置区域
|
|
|
let url2 = f.url;
|
|
|
let _url2 = "";
|
|
|
if (
|
|
@@ -2862,35 +2904,76 @@ export default {
|
|
|
} else {
|
|
|
_url2 = url2;
|
|
|
}
|
|
|
- let params = {
|
|
|
- url: _url2,
|
|
|
- name: f.name,
|
|
|
+ let _this = this;
|
|
|
+
|
|
|
+ _this.downLoading = 'down'+toolIndex
|
|
|
+ var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
|
|
|
+ let name = decodeURIComponent(decodeURIComponent(_url2).split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1])
|
|
|
+ var params = {
|
|
|
+ Bucket: "ccrb",
|
|
|
+ Key: name
|
|
|
};
|
|
|
- this.ajax
|
|
|
- .get(this.$store.state.api + "download", params)
|
|
|
- .then((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);
|
|
|
- });
|
|
|
+ s3.getObject(params, function (err, data) {
|
|
|
+ _this.downLoading = ''
|
|
|
+ if (err) console.log(err, err.stack); // an error occurred
|
|
|
+ else {
|
|
|
+ let url = window.URL.createObjectURL(new Blob([data.Body]));
|
|
|
+ let a = document.createElement("a");
|
|
|
+ a.name = f.name;
|
|
|
+ a.href = url;
|
|
|
+ a.download = f.name;
|
|
|
+ a.click();
|
|
|
+ console.log(data);
|
|
|
+ } // sxuccessful response
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ return;
|
|
|
+ // const loading = this.$loading.service({
|
|
|
+ // background: "rgba(255, 255, 255, 0.7)",
|
|
|
+ // target: document.body,
|
|
|
+ // text: "文件加载中...",
|
|
|
+ // });
|
|
|
+ // let url2 = f.url;
|
|
|
+ // let _url2 = "";
|
|
|
+ // if (
|
|
|
+ // url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
|
|
|
+ // ) {
|
|
|
+ // _url2 = url2.split(
|
|
|
+ // "https://view.officeapps.live.com/op/view.aspx?src="
|
|
|
+ // )[1];
|
|
|
+ // } else {
|
|
|
+ // _url2 = url2;
|
|
|
+ // }
|
|
|
+ // let params = {
|
|
|
+ // url: _url2,
|
|
|
+ // name: f.name,
|
|
|
+ // };
|
|
|
+ // this.ajax
|
|
|
+ // .get(this.$store.state.api + "download", params)
|
|
|
+ // .then((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);
|
|
|
+ // });
|
|
|
},
|
|
|
setVHeight() {
|
|
|
this.$nextTick(function () {
|