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:ShowModalSuccess) => {
- 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
|