/* * @Company: hugeInfo * @Author: ldh * @Date: 2022-08-08 16:44:29 * @LastEditTime: 2025-04-07 15:35:24 * @LastEditors: lwh * @Version: 1.0.0 * @Description: axios处理方法 */ import axios from 'axios'; import { catchApiError, appUrl, getLocal, loginModal, getSessionStorage, confirmModal } from '../utils/utility'; // 网络异常 function networkException(err) { if (err.code >= 400) { catchApiError({ content: '抱歉! 网络异常请刷新' }); } else { catchApiError({ content: '抱歉! 网络错误' }); } } // api返回结果处理 function resHandle(resData) { const { code, data, msg } = resData; if (code === 0 || code === '0') { return { type: true, data }; } else if (code === 401 || code === '401') { loginModal(); return { type: false }; } else if (code === -1) { if (msg) { catchApiError({ content: msg }); return { type: false, content: msg }; } else { return { type: false }; } } else { return { type: code, data, msg }; } } export const ax = axios; export function request(value = {}) { let token = getSessionStorage('customerSystemToken'); // 无token、非登录、非网格单点跳转时 if (!value.isGrid && !token && value.url !== 'ctAccount/login') { catchApiError({ content: '抱歉!登录状态已失效请重新登录', loginStatus: 'lose', }); return { type: false }; } let sessionacc = getLocal('sessionacc') || ''; let data = value.data; // ocr接口单独调用其他服务 const url = value.serviceType === 'thrid' ? `${appUrl.baseUrl}/${appUrl[value.service] || ''}/api/thrid/grid/${value.url}` : `${appUrl.baseUrl}/${appUrl[value.service] || ''}/api/web/${value.url}`; const urlAi = `${appUrl.fileUrl}/${appUrl[value.service] || ''}/api/ai/${value.urlAi}`; if (value.typeAi === 'get') { return ax .get(urlAi, { params: data, headers: { Authorization: token } }) .then((response) => { return resHandle(response.data); }) .catch((err) => { networkException(err); return { type: false }; }); } if (value.typeAi === 'post') { return ax .post(urlAi, data, { headers: { Authorization: token } }) .then((response) => { return resHandle(response.data); }) .catch((err) => { networkException(err); return { type: false }; }); } if (value.type === 'get') { return ax .get(url, { params: data, headers: { Authorization: token } }) .then((response) => { return resHandle(response.data); }) .catch((err) => { networkException(err); return { type: false }; }); } else { return ax .post(url, data, { headers: { Authorization: token } }) .then((response) => { return resHandle(response.data); }) .catch((err) => { networkException(err); return { type: false }; }); } }