| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | 
							- import {LogOut} from '@/store'
 
- import {globalConfig} from '@/config'
 
- import { getToken } from '@/utils/auth'
 
- import errorCode from '@/utils/errorCode'
 
- import { toast, showConfirm, tansParams } from '@/utils/common'
 
- const upload = (cfg:UTSJSONObject) :Promise<UTSJSONObject>=> {
 
- 	
 
-   // 是否需要设置 token
 
-   let isToken:boolean=true
 
-   let header:UTSJSONObject={}
 
-   let cfgMap:Map<string,any>=cfg.toMap() as Map<string,any>
 
-   if(cfg.toMap().has("header")&&cfg.getJSON("header")!=null){
 
-   	  header=cfg.getJSON("header") as UTSJSONObject
 
-   	  if(header.toMap().has("isToken")&& header.getBoolean("isToken") == false){
 
-   	  		isToken=header.getBoolean("isToken") as boolean
 
-   	  }
 
-   }
 
-   const token:string=getToken()
 
-   if (token!=null&&token!="" && isToken) {
 
-   	header.set('Authorization','Bearer ' + token)
 
-   }
 
-   
 
- let url:string=""
 
-   if(cfgMap.has("url")&&cfg.getString("url")!=""&&cfg.getString("url")!=null){
 
-   	   url=cfg.getString("url") as string
 
-   }
 
-   if (cfgMap.has("params")&&cfg.getJSON("params")!=null) {
 
-   	let paramsJson:UTSJSONObject=cfg.getJSON("params") as UTSJSONObject
 
-     url+= '?' + tansParams(paramsJson)
 
-     url = url.slice(0, -1)
 
-   }
 
- let baseUrl:string=globalConfig.baseUrl
 
-   if(cfgMap.has("baseUrl")&&cfg.getString("baseUrl")!=""&&cfg.getString("baseUrl")!=null){
 
- 	  baseUrl=cfg.getString("baseUrl") as string
 
-   }
 
-   let timeout:number = 10000
 
-   if(cfgMap.has("timeout")&&cfg.getString("timeout")!=null){
 
-   	  timeout=cfg.getNumber("timeout") as number
 
-   }
 
-   let filePath:string|null=null;
 
-   if(cfgMap.has("filePath")&&cfg.getString("filePath")!=null&&cfg.getString("filePath")!=""){
 
-   	  filePath=cfg.getString("filePath") as string
 
-   }
 
-   let name:string="file";
 
-   if(cfgMap.has("name")&&cfg.getString("name")!=null&&cfg.getString("name")!=""){
 
-   	  name=cfg.getString("name") as string
 
-   }
 
-   let formData:UTSJSONObject|null=null;
 
-   if(cfgMap.has("formData")&&cfg.getJSON("formData")!=null){
 
-   	  formData=cfg.getJSON("formData") as UTSJSONObject
 
-   }
 
-   return new Promise((resolve, reject) => {
 
- 	  const options={
 
-         timeout,
 
-         url: baseUrl + url,
 
-         filePath,
 
-         name,
 
-         header,
 
-         formData,
 
-         success: (res:UploadFileSuccess) => {
 
- 		  let data:UTSJSONObject = JSON.parseObject(res.data) as UTSJSONObject
 
- 		  const dataMap:Map<string,any>=data.toMap() as Map<string,any>
 
- 		  let code:number=200
 
- 		  if(dataMap.has("code")&&data.getNumber("code")!=null){
 
- 			code=data.getNumber("code") as number
 
- 		  }
 
-           let msg:string|null=errorCode[code] as string|null
 
- 			if(msg==""||msg==null){
 
- 				msg=data.getString("msg") as string|null
 
- 			}
 
- 			if(msg==""||msg==null){
 
- 				msg=errorCode['default'] as string
 
- 			}
 
-           if (code === 200) {
 
-             resolve(data)
 
-           } else if (code == 401) {
 
-             showConfirm("登录状态已过期,您可以继续留在该页面,或者重新登录?").then((res0:UniShowModalResult) => {
 
-               if (res0.confirm) {
 
-                 LogOut().then(() => {
 
-                   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:UploadFileFail) => {
 
- 		let { errCode,errMsg } = error
 
- 		switch(errCode){
 
- 			case 5:
 
- 				errMsg='接口超时'
 
- 				break
 
- 			case 1000:
 
- 				errMsg='服务端系统错误'
 
- 				break
 
- 			case 100001:
 
- 				errMsg='json数据解析错误'
 
- 				break
 
- 			case 100002:
 
- 				errMsg="错误信息json解析失败"
 
- 				break
 
- 			case 600003:
 
- 				errMsg="网络中断"
 
- 				break
 
- 			case 600009:
 
- 				errMsg="URL格式不合法"
 
- 				break
 
- 			case 602001:
 
- 				errMsg="request系统错误"
 
- 				break
 
- 		}
 
- 		console.log(errMsg)
 
- 		toast(errMsg)
 
- 		reject(error)
 
-         }
 
-       } as UploadFileOptions
 
-       uni.uploadFile(options)
 
-   })
 
- }
 
- export default upload
 
 
  |