| 
					
				 | 
			
			
				@@ -1,51 +1,79 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import axios from 'axios'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { authDB } from '@/db' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Message } from 'element-ui'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import fileDownload from 'js-file-download' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-export async function download(  url  ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const res = await axios({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        baseURL: process.env.VUE_APP_BASE_API, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        timeout: 2 * 60 * 60 * 1000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'Content-Type': 'application/json', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'x-token': authDB.get('token'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          'x-user-id': authDB.get('uid') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        url:url, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        method:"get", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        responseType: "blob" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let disposition = res.headers['content-disposition']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    disposition= disposition.replace("attachment; filename=", "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    disposition= disposition.replace(" ", "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let filename = decodeURI( disposition ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let fileType=res.headers['content-type']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export async function download(  url, cb  ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    axios({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       method: 'get', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       url: url, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       headers:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         'Content-Type': 'application/json', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         'x-token': authDB.get('token'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         'x-user-id': authDB.get('uid') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        responseType: 'blob' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let filename=res.headers['filename']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log( res.headers  ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if( res.headers['success'] == "true" ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          filename = decodeURI( filename ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          fileDownload(res.data, filename); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          cb&&cb( {code:200}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          Message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              duration:2000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              showClose: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              message: "文件下载失败", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              type: 'error' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          cb&&cb( {code:7}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let resBlob = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let resData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let resText = await new Promise((resolve, reject) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 通过 FileReader 接受并解析 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let reader = new FileReader(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reader.addEventListener('abort', reject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reader.addEventListener('error', reject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reader.addEventListener('loadend', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                resolve(reader.result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            reader.readAsText(resBlob); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        resData = JSON.parse(resText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } catch (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (resData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (resData.error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const res = await axios({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     baseURL: process.env.VUE_APP_BASE_API, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     timeout: 2 * 60 * 60 * 1000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     headers:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //       'Content-Type': 'application/json', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //       'x-token': authDB.get('token'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //       'x-user-id': authDB.get('uid') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     url:url, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     method:"get", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     responseType: "blob" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // let disposition = res.headers['content-disposition']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // disposition= disposition.replace("attachment; filename=", "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // disposition= disposition.replace(" ", "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // let filename = decodeURI( disposition ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // let fileType=res.headers['content-type']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // let resBlob = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // let resData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     let resText = await new Promise((resolve, reject) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         // 通过 FileReader 接受并解析 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         let reader = new FileReader(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         reader.addEventListener('abort', reject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         reader.addEventListener('error', reject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         reader.addEventListener('loadend', () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //             resolve(reader.result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         // 文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //         reader.readAsText(resBlob); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     resData = JSON.parse(resText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } catch (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        fileDownload(resBlob, filename); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // cb && cb( resData ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // if (resData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //     fileDownload(resBlob, filename); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |