|
@@ -136,26 +136,49 @@ const mixins = {
|
|
|
});
|
|
|
})
|
|
|
},
|
|
|
+ //判断文件名是否含有类型
|
|
|
+ checkFileType(fileName){
|
|
|
+ if (fileName.match(/\.(jpg|jpeg|png|gif|svg|tif)/)) {
|
|
|
+ return true
|
|
|
+ } else if (fileName.match(/\.(doc|docx|txt)/)) {
|
|
|
+ return true
|
|
|
+ } else if (fileName.match(/\.(xls|xlsx)/)) {
|
|
|
+ return true
|
|
|
+ } else if (fileName.match(/\.(pdf)/)) {
|
|
|
+ return true
|
|
|
+ }else if (fileName.match(/\.(mp3)/)) {
|
|
|
+ return true
|
|
|
+ }else if (fileName.match(/\.(pptx|ppt)/)) {
|
|
|
+ return true
|
|
|
+ }else if (fileName.match(/\.(zip|7z)/)) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
// 下载文件
|
|
|
- handleDownloadResource(url,fileName){
|
|
|
+ handleDownloadResource(url,fileName,successCb,faileCb){
|
|
|
const b=new http.Base64()
|
|
|
const arr=url.split('/')
|
|
|
const _fileName=arr[arr.length-1]
|
|
|
+ const fileNameType = this.checkFileType(fileName)?fileName.split('.').pop():''
|
|
|
+ const _fileNameType = this.checkFileType(_fileName)?_fileName.split('.').pop():''
|
|
|
apiDownloadResource({
|
|
|
- FileName:_fileName,
|
|
|
+ FileName:/* fileName||_fileName */'',
|
|
|
FileUrl:b.encode(url)
|
|
|
}).then(res=>{
|
|
|
console.log(res);
|
|
|
const {status,data}=res
|
|
|
if(status!=200){
|
|
|
- Message.waring('下载失败')
|
|
|
+ Message.warning('下载失败')
|
|
|
return
|
|
|
}
|
|
|
const content = data
|
|
|
const blob = new Blob([content])
|
|
|
if ('download' in document.createElement('a')) {
|
|
|
const elink = document.createElement('a')
|
|
|
- elink.download = filename || _fileName
|
|
|
+ elink.download = fileNameType?fileName:(fileName+'.'+_fileNameType)
|
|
|
elink.style.display = 'none'
|
|
|
elink.href = window.URL.createObjectURL(blob)
|
|
|
document.body.appendChild(elink)
|
|
@@ -163,10 +186,12 @@ const mixins = {
|
|
|
window.URL.revokeObjectURL(elink.href)
|
|
|
document.body.removeChild(elink)
|
|
|
} else {
|
|
|
- navigator.msSaveBlob(blob, filename)
|
|
|
+ navigator.msSaveBlob(blob, fileNameType?fileName:(fileName+'.'+_fileNameType))
|
|
|
}
|
|
|
+ successCb&&successCb()
|
|
|
}).catch(()=>{
|
|
|
- Message.waring('下载失败')
|
|
|
+ Message.warning('下载失败')
|
|
|
+ faileCb&&faileCb()
|
|
|
})
|
|
|
}
|
|
|
|