mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	
		
			
	
	
		
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | import store from '@/store' | ||
|  | import config from '@/config' | ||
|  | import { getAccessToken } from '@/utils/auth' | ||
|  | import errorCode from '@/utils/errorCode' | ||
|  | import { toast, showConfirm, tansParams } from '@/utils/common' | ||
|  | 
 | ||
|  | let timeout = 10000 | ||
|  | const baseUrl = config.baseUrl | ||
|  | 
 | ||
|  | const upload = config => { | ||
|  |   // 是否需要设置 token
 | ||
|  |   const isToken = (config.headers || {}).isToken === false | ||
|  |   config.header = config.header || {} | ||
|  |   if (getAccessToken() && !isToken) { | ||
|  |     config.header['Authorization'] = 'Bearer ' + getAccessToken() | ||
|  |   } | ||
|  |   // get请求映射params参数
 | ||
|  |   if (config.params) { | ||
|  |     let url = config.url + '?' + tansParams(config.params) | ||
|  |     url = url.slice(0, -1) | ||
|  |     config.url = url | ||
|  |   } | ||
|  |   // 设置租户 TODO 芋艿:强制 1 先
 | ||
|  |   config.header['tenant-id'] = '1'; | ||
|  |   return new Promise((resolve, reject) => { | ||
|  |       uni.uploadFile({ | ||
|  |         timeout: config.timeout || timeout, | ||
|  |         url: baseUrl + config.url, | ||
|  |         filePath: config.filePath, | ||
|  |         name: config.name || 'file', | ||
|  |         header: config.header, | ||
|  |         formData: config.formData, | ||
|  |         method: config.method || 'post', | ||
|  |         success: (res) => { | ||
|  |           let result = JSON.parse(res.data) | ||
|  |           const code = result.code || 200 | ||
|  |           const msg = errorCode[code] || result.msg || errorCode['default'] | ||
|  |           if (code === 200) { | ||
|  |             resolve(result) | ||
|  |           } else if (code == 401) { | ||
|  |             showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then(res => { | ||
|  |               if (res.confirm) { | ||
|  |                 store.dispatch('LogOut').then(res => { | ||
|  |                   uni.reLaunch({ url: '/pages/login/login' }) | ||
|  |                 }) | ||
|  |               } | ||
|  |             }) | ||
|  |             reject('无效的会话,或者会话已过期,请重新登录。') | ||
|  |           } else if (code === 500) { | ||
|  |             toast(msg) | ||
|  |             reject('500') | ||
|  |           } else if (code !== 200) { | ||
|  |             toast(msg) | ||
|  |             reject(code) | ||
|  |           } | ||
|  |         }, | ||
|  |         fail: (error) => { | ||
|  |           let { message } = error | ||
|  |           if (message == 'Network Error') { | ||
|  |             message = '后端接口连接异常' | ||
|  |           } else if (message.includes('timeout')) { | ||
|  |             message = '系统接口请求超时' | ||
|  |           } else if (message.includes('Request failed with status code')) { | ||
|  |             message = '系统接口' + message.substr(message.length - 3) + '异常' | ||
|  |           } | ||
|  |           toast(message) | ||
|  |           reject(error) | ||
|  |         } | ||
|  |       }) | ||
|  |   }) | ||
|  | } | ||
|  | 
 | ||
|  | export default upload |