forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-09-15 159d0a98310210768b2e0c57a68a523c2739e2ee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-16 11:28:12
 * @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";
 
// 网络异常
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") {
    // 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");
 
  // 无token、非登录、非网格单点跳转时
  if (!value.isGrid && !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}`;
 
  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 };
      });
  }
}