DocumentCheck_vue/src/api/sliceUpload.js
2024-10-25 10:02:24 +08:00

205 lines
4.7 KiB
JavaScript

import request from '@/utils/request'
import { message } from 'ant-design-vue'
export const fileApi = {
VerifyUpload: '/file/verifyFileExist',
MergeFile: '/file/mergeFile',
UpdateFolder: '/file/updateFolder',
GetUserFolderAndFiles: '/file/folder/getUserFolderAndFiles',
CreateFolder: '/file/folder/add',
GetFolderInfo: '/file/folder/getInfo',
EditFolder: '/file/folder/edit',
RemoveFolder: '/file/folder/remove',
GetFileSize: '/file/filesize',
FileDown: '/file/download',
downloadById: '/file/downloadById',
downloadTask: '/file/downloadTask', // 查重页下载相应的文件
downloadTaskById: '/file/downloadTaskById', // 查重页下载相应的文件
downloadTaskConvertFile: '/file/downloadTaskConvertFile', // 查重页下载相应的文件
exportProjectUnitToExcel: '/project/projectAnalysis/exportProjectUnitToExcel' // 查重页下载相应的文件
}
// 校验文件是否上传
export function verifyUpload (params) {
return request({
url: fileApi.VerifyUpload,
params
})
}
// 合并文件
export function mergeFile (data) {
return request({
url: fileApi.MergeFile,
method: 'post',
params: data
})
}
// 调整文件所属文件夹
export function updateFolder (params) {
return request({
url: fileApi.UpdateFolder,
method: 'post',
params
})
}
// 获取当前用户的文件夹及文件
export function getUserFolderAndFiles (params) {
return request({
url: fileApi.GetUserFolderAndFiles,
method: 'get',
params
})
}
// 创建文件夹
export function createFolder (data) {
return request({
url: fileApi.CreateFolder,
method: 'post',
data
})
}
// 获取文件夹详情
export function getFolderInfo (params) {
return request({
url: fileApi.GetFolderInfo,
method: 'get',
params
})
}
// 编辑文件夹信息
export function editFolder (data) {
return request({
url: fileApi.EditFolder,
method: 'put',
data
})
}
// 删除文件夹
export function removeFolder (params) {
return request({
url: fileApi.RemoveFolder,
method: 'delete',
params
})
}
// 获取文件大小
export function getFileSize (params) {
return request({
url: fileApi.GetFileSize,
method: 'get',
params
})
}
// 下载文件
export function fileDown (params, contentRage) {
return request({
url: fileApi.FileDown,
method: 'get',
params,
// headers: { Range: contentRage },
responseType: 'blob',
isRawData: true
})
}
/**
* 下载文件 用于excel导出
* @param url
* @param parameter
* @returns {*}
*/
export function downFile (url, parameter) {
return request({
url: url,
params: parameter,
method: 'get',
responseType: 'blob',
isRawData: true
})
}
/**
* 下载文件
* @param url 文件路径
* @param fileName 文件名
* @param parameter
* @returns {*}
*/
export function downloadFile (fileName, parameter, downloadUrl) {
return downFile(downloadUrl || fileApi.FileDown, parameter).then((data) => {
if (!data || data.size === 0) {
console.error('文件下载失败')
return
}
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(new Blob([data]), fileName)
} else {
const url = window.URL.createObjectURL(new Blob([data]))
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link) // 下载完成移除元素
window.URL.revokeObjectURL(url) // 释放掉blob对象
}
})
}
/**
* 下载文件
* @param url 文件路径
* @param fileName 文件名
* @param parameter
* @returns {*}
*/
export function downloadFile2 (fileName, parameter, downloadUrl) {
return downFile(downloadUrl || fileApi.FileDown, parameter).then((data) => {
if (!data || data.size === 0) {
message.error('文件不存在,请重新上传文件')
return
}
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(new Blob([data]), fileName)
} else {
const url = window.URL.createObjectURL(new Blob([data]))
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link) // 下载完成移除元素
window.URL.revokeObjectURL(url) // 释放掉blob对象
}
})
}
// post
export function postAction (url, parameter) {
return request({
url: url,
method: 'post',
data: parameter
})
}
export function downloadById (params) {
return request({
url: fileApi.downloadById,
method: 'get',
isRawData: true,
responseType: 'blob',
params
})
}