emis-app/common/manageServer.js
2024-06-01 12:31:07 +08:00

106 lines
2.2 KiB
JavaScript

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: {
"dataFrom": "app",
"X-Token": xToken,
}
}
}
// 请求接口
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
}