Commit 13817124 authored by wangxl's avatar wangxl
parents 376b1b38 cbbd1e6d
......@@ -59,6 +59,9 @@ export default {
asyncUpload (params) {
return fetch(`/v1/science-admin/com-download/asyncUpload`, params, 'post', 'file')
},
asyncApplyBookUpload (params) {
return fetch(`/v1/science-admin/com-download/asyncApplyBookUpload`, params, 'post', 'file')
},
deletefile (params) {
return fetch(`/v1/science-admin/com-download/delete/${params.id}`, params, 'delete', 'json')
},
......
<template>
<div class="upload-container">
<el-button type="primary" @click="handleClick">选择文件</el-button>
<a-button type="primary" @click="handleClick">选择文件</a-button>
<input type="file" ref="fileInput" multiple style="display: none" @change="handleFileChange" />
<div class="file-list" v-if="fileList.length">
<div v-for="(file, index) in fileList" :key="index" class="file-item">
<span>{{ file.name }}</span>
<span>{{ (file.size / 1024 / 1024).toFixed(2) }}MB</span>
<el-progress :percentage="file.progress || 0" />
</div>
</div>
</div>
......@@ -48,35 +47,25 @@ export default {
}
}
},
uploadFile (fileItem, index) {
return new Promise((resolve, reject) => {
const formData = new FormData()
formData.append('file', fileItem.file)
// 这里替换成您的实际上传API
const xhr = new XMLHttpRequest()
xhr.upload.onprogress = (event) => {
if (event.lengthComputable) {
this.$set(this.fileList[index], 'progress',
Math.round((event.loaded / event.total) * 100))
}
}
xhr.onload = () => {
if (xhr.status === 200) {
resolve()
} else {
reject(new Error('上传失败'))
}
}
xhr.onerror = () => reject(new Error('上传失败'))
// 替换成实际的上传地址
xhr.open('POST', '/api/upload')
xhr.send(formData)
uploadFile (obj, index) {
this.$api.base.asyncApplyBookUpload(this.uploadHandle(obj.file, obj.name)).then(({ data = {} }) => {
if (data) {
obj.fileName = files[0].name
obj.downloadUrl = data.downloadUrl
obj.downloadId = data.id
} else
this.$message.error('上传失败')
}).catch(() => {
this.$message.error('上传失败')
})
}
},
uploadHandle (file, fileName) {
let formData = new FormData()
formData.append('file', file)
formData.append('fileName', fileName)
return formData
},
}
}
</script>
......
......@@ -22,6 +22,7 @@
<a-form-item>
<a-button type="primary" icon="search" @click="search">搜索</a-button>
<a-button icon="reload" style="margin-left: 10px" @click="reset" class="bt-normal">重置</a-button>
<a-button type="primary" icon="upload" style="margin-left: 10px" @click="batchFileUpload">批量上传</a-button>
</a-form-item>
</a-form>
<a-divider style="height: 1px; background-color: #e8e8e8;" />
......@@ -207,6 +208,9 @@ export default {
}).catch(() => {
this.loading = false
})
},
batchFileUpload() {
this.visibleFile = true
}
},
watch: {
......
<template>
<div class="app-content layoutEmbedded" style="height: 76vh;overflow: auto;">
<a-spin :spinning="loading" style="width: 100%;height: 100%;">
......@@ -10,7 +9,7 @@
</div>
<div class="page-footer">
<!-- 申报项目详情 -->
<a-button type="primary" @click="onExport">导出</a-button>
<a-button type="primary" @click="onProjectExport">导出</a-button>
<project-info v-model="formData" :tabsData.sync="tabsData" v-if="projType=='1'" />
<project-info-Key v-model="formData" :tabsData.sync="tabsData" v-if="projType=='2'" />
</div>
......@@ -149,47 +148,26 @@ export default {
}).catch(() => { this.$emit('close', 'error') })
}
},
onExport () {
onProjectExport () {
this.loading = true
let headers = {
Authorization: 'Bearer ' + getToken()
}
axios({
url: "/v1/science-admin/com-project/export/" + this.value, // 替换为实际文件的URL
url: "/v1/science-admin/com-project/projectExport/" + this.value, // 替换为实际文件的URL
method: 'GET',
responseType: "arraybuffer", // 告诉axios返回的数据类型为Blob
headers: headers
}).then(response => {
console.log(response.data)
const url = window.URL.createObjectURL(new Blob([response.data]))
const link = document.createElement('a')
link.href = url
link.setAttribute("download", "11111.pdf");// 下载文件的名称
link.setAttribute("download", this.formData.projName + ".pdf");// 下载文件的名称
document.body.appendChild(link)
link.click()
this.loading = false
})
},
onExport1 () {
var xhr = new XMLHttpRequest(); // 用这种原生请求下载后端返回的二进制流打开就不会出现空白
xhr.open("get", "/v1/science-admin/com-project/export/" + this.value, true);
xhr.setRequestHeader("Authorization", 'Bearer ' + getToken())
xhr.responseType = "blob";
xhr.onload = function () {
console.log(this)
if (this.status == 200) {
const url = window.URL.createObjectURL(this.response);
const link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", "结题审核页.pdf");
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
} else {
}
};
xhr.send();
},
callback (key) {
var index = parseInt(key)
this.tabsData.forEach(e => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment