import { goto, getImageTempFilePath } from "./untool"; import { showToast, showLoading, hideLoading, downloadFile } from "./untool" import { setSessionXToken, getSessionXToken } from "@/session" import { textEncoder, textDecoder } from "./util" import { getCurrentAppInfo } from "@/common/appUpdate" let _appVersion getCurrentAppInfo().then(res=> { _appVersion = res._appVersion }) const getCommonReqData = ()=> { const xToken = getSessionXToken() return { header: { "dataFrom": "app", "X-Token": xToken, "appVersion": _appVersion || '', } } } // 请求接口 function dealRequest({ def, url, param, coreParams, reqHeader }) { if(param && param._loading) { showLoading() } const promise = new Promise(function(resolve, reject) { def.then(function(response) { let { data, cookies, statusCode, header, errMsg } = response if (statusCode != 200) { showToast(`网络错误`) reject({ response }) } handleResponse({ url, param, coreParams, reqHeader, resolve, reject, response, data, header, }); }, function(response) { console.log('request url==========1', url) console.log('request param==========1', param) console.log('response ===========1', response); showToast(`网络错误`) reject({ response }) }) }) // 统一提示 errmsg promise.then(function(res) { if(param && param._loading) { hideLoading() } }, function(res) { hideLoading() }) return promise; } // 处理响应 async function handleResponse(options) { let { data, header, resolve, reject, url, param, coreParams } = options // 图片类型数据特殊处理 if((header?.['content-type'] || header?.['Content-Type'])?.indexOf?.("image/") > -1) { // 重新获取下载后的临时路径 let fileUrl = await getImageTempFilePath(options) resolve({ data: { fileUrl } }) return } data = data || {} let { msg, code } = data if ((code == 200)) { resolve(data) } else { if ( code == 401) { // 统一判断需要认证, 并作页面跳转 setSessionXToken() msg = '登录失效,请重新登录' showToast(msg) goto("login/login", 2) return reject({ code: {} }); } setTimeout(() => { showToast(msg || `网络错误`) }, 0) reject({ code: {} }); } } export { getCommonReqData, dealRequest, handleResponse }