forked from gzzfw/frontEnd/gzDyh

liuwh
2024-09-10 71e242b85800588e66645aa0df1ed24469dfad45
gz-customerSystem/src/api/apiHandler.js
@@ -2,94 +2,132 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-16 11:28:12
 * @LastEditTime: 2024-09-07 16:45:38
 * @LastEditTime: 2024-09-08 10:31:44
 * @LastEditors: dminyi 1301963064@qq.com
 * @Version: 1.0.0
 * @Description: axios处理方法
 */
import axios from 'axios';
import { catchApiError, appUrl, getSessionStorage, info } from '../utils/utility';
import axios from "axios";
import {
  catchApiError,
  appUrl,
  getSessionStorage,
  info,
} from "../utils/utility";
// 网络异常
function networkException(err) {
   if (err.code >= 400) {
      catchApiError({ content: '抱歉! 网络异常请刷新' });
   } else {
      catchApiError({ content: '抱歉! 网络错误' });
   }
  if (err.code >= 400) {
    catchApiError({ content: "抱歉! 网络异常请刷新" });
  } else {
    catchApiError({ content: "抱歉! 网络错误" });
  }
}
// api返回结果处理
function resHandle(resData) {
   const { code, data, msg } = resData;
   if (code === 0 || code === '0') {
      // let res_data = data ? aes_decrypt(data) : true;
      return { type: true, data };
   } else if (code === 401 || code === '401') {
      catchApiError({ content: '抱歉! 登录状态已失效请重新登录', loginStatus: 'lose' });
      return { type: false };
   } else if (code === 105 || code === '105') {
      return { type: false, code, data, msg };
   } else if (code === 106 || code === '106') {
      return { type: false, code, data, msg };
   } else if (code === -1 || code == '-1') {
      catchApiError({ content: msg });
      return { type: false };
   } else {
      info({ type: 'warning', content: msg });
      return { type: false };
   }
  const { code, data, msg } = resData;
  if (code === 0 || code === "0") {
    // let res_data = data ? aes_decrypt(data) : true;
    return { type: true, data };
  } else if (code === 401 || code === "401") {
    catchApiError({
      content: "抱歉! 登录状态已失效请重新登录",
      loginStatus: "lose",
    });
    return { type: false };
  } else if (code === 105 || code === "105") {
    return { type: false, code, data, msg };
  } else if (code === 106 || code === "106") {
    return { type: false, code, data, msg };
  } else if (code === -1 || code == "-1") {
    catchApiError({ content: msg });
    return { type: false };
  } else {
    info({ type: "warning", content: msg });
    return { type: false };
  }
}
export const ax = axios;
export function request(value = {}) {
   let token = getSessionStorage('customerSystemToken');
  let token = getSessionStorage("customerSystemToken");
   // 无token时
   if (!token && value.url !== 'ctAccount/login') {
      catchApiError({ content: '抱歉!登录状态已失效请重新登录', loginStatus: 'lose' });
      return { type: false };
   }
  // 无token时
  if (!token && value.url !== "ctAccount/login") {
    catchApiError({
      content: "抱歉!登录状态已失效请重新登录",
      loginStatus: "lose",
    });
    return { type: false };
  }
   // let data = aes_encrypt(JSON.stringify(value.data));
   let data = value.data;
   const url =
      value.service === 'sys'
         ? `${appUrl.fileUrl}/${appUrl[value.service] || ''}/api/web/${value.url}`
         : `${appUrl.baseUrl}/${appUrl[value.service] || ''}/api/web/${value.url}`;
  // let data = aes_encrypt(JSON.stringify(value.data));
  let data = value.data;
   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 if (value.type === 'delete') {
      return ax
         .delete(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 };
         });
   }
  const url =
    value.service === "sys"
      ? `${appUrl.fileUrl}/${appUrl[value.service] || ""}/api/web/${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 if (value.type === "delete") {
    return ax
      .delete(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 };
      });
  }
}