1
jhzh
2025-06-18 3cc464c397d2c4feb6241271b5de6f60c69ea8f2
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
import axios from "axios";
import store from "@/store";
import { Toast } from "vant";
import i18n from "@/i18n";
import { BASE_URL } from "@/config";
import router from "@/router/router";
import { getSessionStorage } from "@/utils/utis";
import { signatureGenerate } from "@/utils/signatureUtil";
import urlKyc from "./urlKyc";
axios.defaults.headers.post["Content-Type"] =
  "application/x-www-form-urlencoded";
 
let baseUrl = BASE_URL;
if (getSessionStorage("tzlj")) {
  baseUrl = getSessionStorage("tzlj");
}
console.log(baseUrl);
// 创建
const request = axios.create({
  baseURL: baseUrl,
  timeout: 8000, // 超时时间
  //   withCredentials: true,
  headers: {
    "Content-Type": "application/json;charset=UTF-8",
  },
  //   transformRequest: [function(data) {
  //     return data
  //   }]
});
// 拦截请求
request.interceptors.request.use(
  (config) => {
    const arr = urlKyc.filter((item) => item === config.url);
    if (arr.length !== 0 && store.state.user.kyc !== 2) {
      // return Toast.fail(i18n.t("请先实名认证!"));
    }
    if (config.loading) {
      Toast.loading({ duration: 0, forbidClick: true });
    }
 
    if (config.url !== "api/syspara!getSyspara.action") {
      if (
        store.state.user.userInfo.token != undefined &&
        store.state.user.userInfo.token !== ""
      ) {
        // config.headers.Authorization = store.state.token
        if (!config.params) {
          // 放在哪里
          config.params = {};
        }
        config.params["token"] = store.state.user.userInfo.token;
      }
    }
    //if (store?.state?.user?.userInfo?.token) {
 
    // 获取请求头参数
    const { timestamp, signature } = signatureGenerate();
    if (timestamp) config.headers["tissuePaper"] = timestamp;
    if (signature) config.headers["sign"] = signature;
    return config;
  },
  (error) => {
    Promise.reject(error);
  }
);
 
/**
 * 烤猫, [7/27/2022 9:08 PM]
 * 0 成功
1 直接显示
105 直接提示“当前还需交易“ + 返回的金额值 + ”,才可提币"
401 是需要实名认证,问客户”未实名认证,是否认证?"
403 无登录信息,跳转登录页面
506 "帐户异常需要进行C3认证,请联系在线客服。"
 */
 
// 拦截响应
request.interceptors.response.use(
  (res) => {
    // 200开头的
    if (res.config.loading) {
      Toast.clear();
    }
 
    // console.log(res);
    const { code, data, msg } = res.data;
 
    switch (code / 1) {
      case 0:
        return Promise.resolve(data);
      case 403:
        router.replace({
          path: "/login",
          query: {
            redirect: router.currentRoute.fullPath,
          },
        });
        store.commit("user/SET_OUT");
        return Promise.reject("reject");
      // break;
      default:
        if (msg != undefined) {
          Toast.fail({
            // icon: 'none',
            message: i18n.t(msg),
          });
        }
        //console.log('错误')
        return Promise.reject(res.data);
    }
  },
  (error) => {
    if (error.code == "ERR_NETWORK") {
      Toast({ message: "ERR_NETWORK", type: "fail", duration: 1000 });
    } else if (error.code == "ECONNABORTED") {
      //Toast({ message: 'Network Timeout', type: 'fail', duration: 2000 })
      return Promise.reject(error);
    } else if (error && error.response) {
      //console.log(error.response);
      switch (error.response.status) {
        case 400:
          error.message = i18n.t("请求错误");
          break;
        case 401:
          error.message = i18n.t("未授权,请登录");
          break;
        case 403:
          error.message = i18n.t("拒绝访问");
          break;
        case 404:
          error.message = i18n.t(
            `请求地址不存在: ${error.response.config.url}`
          );
          break;
        case 408:
          error.message = i18n.t("请求超时");
          break;
        case 500:
          error.message = i18n.t("服务器内部错误");
          break;
        case 501:
          error.message = i18n.t("服务未实现");
          break;
        case 502:
          error.message = i18n.t("网关错误");
          break;
        case 503:
          error.message = i18n.t("服务不可用");
          break;
        case 504:
          error.message = i18n.t("网关超时");
          break;
        case 505:
          error.message = i18n.t("HTTP版本不受支持");
          break;
        default:
          error.message = i18n.t("未捕获到的状态码");
          break;
      }
    }
    // eslint-disable-next-line prefer-promise-reject-errors
    return Promise.reject(error);
  }
);
export default request;