|
@@ -1,35 +1,57 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <Button type="success" :loading="isLoading" :disabled="urlList.length < 2" @click="downloadFile(urlList)">{{ text }}</Button>
|
|
|
+ <Button type="success" :loading="isLoading" :disabled="urlList.length < 2" @click="getSasStr(urlList)">{{ text }}</Button>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import FileSaver from "file-saver";
|
|
|
import JSZip from "jszip";
|
|
|
- import { fetch } from '@/filters/http'
|
|
|
+ import axios from 'axios'
|
|
|
export default {
|
|
|
name: "BasePackage",
|
|
|
props: ['urlList','text','student'],
|
|
|
data() {
|
|
|
return {
|
|
|
- isLoading:false
|
|
|
+ isLoading: false,
|
|
|
+ sasString:''
|
|
|
};
|
|
|
},
|
|
|
created() { },
|
|
|
methods: {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取blob授权信息
|
|
|
+ * */
|
|
|
+ getSasStr(list) {
|
|
|
+ this.$api.uploadFile.getContainerSAS().then(
|
|
|
+ (res) => {
|
|
|
+ if (res.error == null) {
|
|
|
+ this.sasString = res.result.data.SAS
|
|
|
+ this.downloadFile(list)
|
|
|
+ } else {
|
|
|
+ alert('API error!')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ (err) => {
|
|
|
+ alert('API error!')
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+
|
|
|
downloadFile(data) {
|
|
|
this.isLoading = true
|
|
|
const selectList = [];
|
|
|
const downloadname = data[0];
|
|
|
for (let index = 0; index < data.length; index++) {
|
|
|
- selectList.push(data[index]);
|
|
|
+ selectList.push(data[index] + this.sasString);
|
|
|
}
|
|
|
if (selectList.length == data.length) {
|
|
|
this.handleBatchDownload(selectList, downloadname); //存储待打包的URI数组和包的名称
|
|
|
}
|
|
|
},
|
|
|
async handleBatchDownload(selectList, name) {
|
|
|
+ console.log(selectList)
|
|
|
const self = this;
|
|
|
const data = selectList;
|
|
|
const zip = new JSZip();
|
|
@@ -64,18 +86,16 @@
|
|
|
//获取文件的arraybuffer格式并传入进行打包准备
|
|
|
getFile(url) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
- fetch({
|
|
|
- method: "get",
|
|
|
- url,
|
|
|
- responseType: "arraybuffer"
|
|
|
+ axios({
|
|
|
+ method: 'get',
|
|
|
+ url:'https://wx.qlogo.cn/mmopen/vi_32/rI3KE5H6Buu7RWmPK5rWyKYmMJRtOV5aGlqiahbTdhmxsicibOdAZVwRMWHdKZUf1icvvt40YV2vd5ibzLFZvwgNNDw/132',
|
|
|
+ responseType: 'arraybuffer'
|
|
|
+ }).then(res => {
|
|
|
+ resolve(res.data)
|
|
|
+ }).catch(error => {
|
|
|
+ reject(error.toString())
|
|
|
})
|
|
|
- .then(res => {
|
|
|
- resolve(res.data);
|
|
|
- })
|
|
|
- .catch(error => {
|
|
|
- reject(error.toString());
|
|
|
- });
|
|
|
- });
|
|
|
+ })
|
|
|
}
|
|
|
},
|
|
|
mounted() { }
|