|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
- <div class="resource-list" v-if="list">
|
|
|
- <a class="package-download"><svg-icon icon-class="download" class="icon-download"></svg-icon>打包下载</a>
|
|
|
+ <div class="resource-list" v-if="list" v-loading="loading">
|
|
|
+ <a class="package-download" @click="allDownload"><svg-icon icon-class="download" class="icon-download"></svg-icon>打包下载</a>
|
|
|
<ul class="resource-box">
|
|
|
<li :class="['item-'+type]" v-for="(item,index) in list" :key="index" :title="item.name"
|
|
|
:style="{
|
|
@@ -19,6 +19,7 @@
|
|
|
//这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
|
|
|
//例如:import 《组件名称》from ‘《组件路径》';
|
|
|
import { getToken } from '@/utils/auth'
|
|
|
+import { getLogin } from "@/api/ajax";
|
|
|
export default {
|
|
|
//import引入的组件需要注入到对象中才能使用
|
|
|
components: { },
|
|
@@ -26,7 +27,8 @@ export default {
|
|
|
data() {
|
|
|
//这里存放数据
|
|
|
return {
|
|
|
- list: []
|
|
|
+ list: [],
|
|
|
+ loading: false
|
|
|
}
|
|
|
},
|
|
|
//计算属性 类似于data概念
|
|
@@ -76,22 +78,76 @@ export default {
|
|
|
}
|
|
|
return finalType
|
|
|
},
|
|
|
- // 下载图片
|
|
|
+ // 下载单个文件
|
|
|
handleDownloadPic(item){
|
|
|
let userInfor = getToken();
|
|
|
let access_token = "";
|
|
|
if (userInfor) {
|
|
|
let user = JSON.parse(getToken());
|
|
|
access_token = user.access_token;
|
|
|
+ let FileID = item.file_id
|
|
|
+ let data = {
|
|
|
+ access_token,
|
|
|
+ FileID
|
|
|
+ };
|
|
|
+ let href = process.env.VUE_APP_BASE_API +
|
|
|
+ `/FileServer/WebFileDownload?AccessToken=${data.access_token}&FileID=${data.FileID}`;
|
|
|
+ window.open(href)
|
|
|
+ }else{
|
|
|
+ this.$message.warning('请先登录')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 打包下载
|
|
|
+ allDownload() {
|
|
|
+ let _this = this;
|
|
|
+ // 拿到当前课的所有文件id
|
|
|
+ let userInfor = getToken();
|
|
|
+ let access_token = "";
|
|
|
+ if (userInfor) {
|
|
|
+ _this.loading = true;
|
|
|
+ let user = JSON.parse(getToken());
|
|
|
+ access_token = user.access_token;
|
|
|
+ let FileID = null;
|
|
|
+ let data = {
|
|
|
+ access_token,
|
|
|
+ FileID,
|
|
|
+ };
|
|
|
+ let arr = [];
|
|
|
+ _this.list.forEach((item) => {
|
|
|
+ arr.push(`${item.file_id}`);
|
|
|
+ });
|
|
|
+ let MethodName = "/FileServer/FilePackManager/StartCreateFileCompressPack";
|
|
|
+ getLogin(MethodName, {
|
|
|
+ file_id_list: arr,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ let MethodName2 = "/FileServer/FilePackManager/GetFileCompressTaskProgress";
|
|
|
+ let timer = setTimeout(() => {
|
|
|
+ getLogin(MethodName2, {
|
|
|
+ file_compress_task_id: res.file_compress_task_id,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.is_finish == "true") {
|
|
|
+ data.FileID = res.compress_pack_file_id;
|
|
|
+ clearTimeout(timer);
|
|
|
+ timer = null;
|
|
|
+ _this.loading = false;
|
|
|
+ location.href =
|
|
|
+ process.env.VUE_APP_BASE_API +
|
|
|
+ `/FileServer/WebFileDownload?AccessToken=${data.access_token}&FileID=${data.FileID}`;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ }, 1000);
|
|
|
+ })
|
|
|
+ .catch((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.$message.warning('请先登录')
|
|
|
}
|
|
|
- let FileID = item.file_id
|
|
|
- let data = {
|
|
|
- access_token,
|
|
|
- FileID
|
|
|
- };
|
|
|
- let href = process.env.VUE_APP_BASE_API +
|
|
|
- `/FileServer/WebFileDownload?AccessToken=${data.access_token}&FileID=${data.FileID}`;
|
|
|
- window.open(href)
|
|
|
},
|
|
|
},
|
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|