lsc 1 year ago
parent
commit
af7d4c9cf8

+ 1 - 1
dist/index.html

@@ -18,7 +18,7 @@
       border-radius: 10px;
       -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
       background-color: rgba(0, 0, 0, 0.1);
-    }</style><link href=./static/css/app.c88259813f69025773655bb7b5644622.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.dec56539cbda05d478b6.js></script><script type=text/javascript src=./static/js/app.5ee7af7e870a78025b9f.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.eb3aad99c8b7331e428ec12dfb6d867e.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.dec56539cbda05d478b6.js></script><script type=text/javascript src=./static/js/app.69d677ddf4d41fcda2c9.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.eb3aad99c8b7331e428ec12dfb6d867e.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.eb3aad99c8b7331e428ec12dfb6d867e.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.69d677ddf4d41fcda2c9.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.69d677ddf4d41fcda2c9.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


+ 157 - 74
src/components/student/studyStudent.vue

@@ -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: "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",
+      }; //秘钥形式的登录上传
+      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: "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",
+      }; //秘钥形式的登录上传
+      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 () {

Some files were not shown because too many files changed in this diff