Blame view

admin-web-master/src/utils/request.js 3.48 KB
3f535f30   杨鑫   '初始'
1
2
3
4
5
6
7
8
9
10
11
  import Vue from 'vue'
  import axios from 'axios'
  import {
    MessageBox,
    Message
  } from 'element-ui'
  import store from '@/store'
  import router from '@/router'
  import {
    getToken, removeToken
  } from '@/utils/auth'
4373acf5   wesley88   1
12
13
14
15
16
  let host = window.location.host;
  let hostall = window.location.href;
  // host = 'http://172.16.61.123/cdwlMall/login?redirect=%2Fdashboard'
  // const baseURL = 'http://192.168.2.38:9003';
  let baseURL =  ''
d64cd58f   wesley88   上传验收小程序
17
  if(host === 'localhost:8080' || host === 'localhost:8081' || host === 'localhost:9528'|| host === '192.168.31.45:9528' ) {
4373acf5   wesley88   1
18
19
20
21
22
23
24
    baseURL = process.env.VUE_APP_DOMAIN_PREFIX_1;
  } else {
    console.error('---------------------')
    console.error(hostall)
    let c1 = hostall.split('cdwlMall')[0];
    baseURL = c1 + 'cdwlMall/admin-server';
    console.error(baseURL)
3f535f30   杨鑫   '初始'
25
26
  }
  
3f535f30   杨鑫   '初始'
27
28
29
  // const baseURL = process.env.VUE_APP_DOMAIN_PREFIX
  // create an axios instance
  Vue.prototype.axios = axios
4373acf5   wesley88   1
30
  axios.defaults.timeout = 1000000
3f535f30   杨鑫   '初始'
31
  const service = axios.create({
4373acf5   wesley88   1
32
    // baseURL:'/cdwlMall/meserver/admin-server/', // url = base url + request url
3f535f30   杨鑫   '初始'
33
34
    baseURL, // url = base url + request url
    // withCredentials: true, // send cookies when cross-domain requests
4373acf5   wesley88   1
35
    timeout: 1000000 // request timeout
3f535f30   杨鑫   '初始'
36
  })
4373acf5   wesley88   1
37
38
  // export const upurl = baseURL
  export const uploadUrl = `${baseURL}/miniio/upload`
3f535f30   杨鑫   '初始'
39
40
41
42
43
44
45
46
  export const token = getToken()
  
  // request interceptor
  service.interceptors.request.use(
    config => {
      // console.log(config)
      if (store.getters.token) {
        config.headers['Authorization-admin'] = getToken()
4373acf5   wesley88   1
47
        // config.headers['Content-Type'] = 'application/json; charset=UTF-8'
3f535f30   杨鑫   '初始'
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
        // config.headers['type'] = ' admin'
      }
      return config
    },
    error => {
      console.log(error) // for debug
      return Promise.reject(error)
    }
  )
  
  // response interceptor
  service.interceptors.response.use(
    response => {
      const res = response.data
      if (response.config.responseType === 'blob') {
        return response.data
      }
      if (res.code !== '' && res.code != 200) {
        Message({
          message: res.message || 'Error',
          type: 'error',
          duration: 5 * 1000
        })
  
        // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
        /**
          token为空 20003
          public static final String TOKEN_IS_NULL = "20003";
          token认证失败
          public static final String TOKEN_APPROVE_ERROR = "20004";
          请先登录
          public static final String USER_NOT_LOGIN = "20005";
         */
        const tokenerr = [20003, '20003', 20004, '20004', 20005, '20005']
        if (tokenerr.includes(res.code)) {
          localStorage.clear()
          removeToken()
          router.push({ path: '/login' })
          location.reload()
        }
        if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
          // to re-login
          MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
            confirmButtonText: 'Re-Login',
            cancelButtonText: 'Cancel',
            type: 'warning'
          }).then(() => {
            store.dispatch('user/resetToken').then(() => {
              location.reload()
            })
          })
        }
        return Promise.reject(new Error(res.message || 'Error'))
      } else {
        return res
      }
    },
    // error => {
    //   if (!error.message.includes('timeout')) {
    //     // Message({
    //     //   message: '服务器暂无响应,请稍后重试',
    //     //   type: 'error',
    //     //   duration: 5 * 1000
    //     // })
    //   }
    //   return Promise.reject(error)
    // }
  )
  
  export default service