import { goto, getImageTempFilePath } from "./untool"; import { showToast, showLoading, hideLoading, downloadFile } from "./untool" import { setSessionXToken, getSessionXToken } from "@/session" import { textEncoder, textDecoder } from "./util" const getCommonReqData = ()=> { const xToken = getSessionXToken() return { header: { "X-Token": xToken, } } } // 请求接口 function dealRequest(def, url, param, coreParams) { 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({ response, data, resolve, reject, url, header, param, coreParams }); }, 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({ data, header, resolve, reject, url, param, coreParams }) { // 图片类型数据特殊处理 if((header['content-type'] || header['Content-Type'])?.indexOf?.("image/") > -1) { const base64 = "data:image/png;base64," + uni.arrayBufferToBase64(data) let fileUrl = await getImageTempFilePath(base64) resolve({ data: { fileUrl } }) return } data = data || {} const { msg, code } = data if ((code == 200)) { resolve(data) } else { if ( code == 401) { // 统一判断需要认证, 并作页面跳转 setSessionXToken() showToast(msg) goto("login/login", 2) return reject({ code: {} }); } setTimeout(() => { showToast(msg || `网络错误`) }, 0) reject({ code: {} }); } } export { getCommonReqData, dealRequest, handleResponse }