request.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. // import axios from 'axios'
  2. // export function request(config) {
  3. // let newVar = axios.create({
  4. // baseURL: "http://121.36.212.131:9010",
  5. // timeout: 5000
  6. // })
  7. // return newVar(config);
  8. // }
  9. //配置文件
  10. import axios from 'axios';
  11. // import { getToken } from 'src/utils/auth';
  12. // import errorCode from 'src/utils/errorCode';
  13. // import store from 'src/store';
  14. import { Notification, MessageBox, Message } from 'element-ui'
  15. axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';
  16. export function request(config) {
  17. let baseURL;
  18. // uEnvDev;开发者模式,点击运行
  19. if (process.env.NODE_ENV === 'development') {
  20. //测试接口
  21. // baseURL = "https://test.tms.tubaosoft.com/prod-api"
  22. baseURL = 'http://192.168.1.143:9010';
  23. }
  24. // uEnvProd;生产模式,点击发行
  25. if (process.env.NODE_ENV === 'production') {
  26. // baseURL = "http://192.168.137.1:9010"
  27. //正式接口
  28. // baseURL = "https://test.tms.tubaosoft.com/prod-api"
  29. baseURL = 'http://121.36.212.131:9010';
  30. }
  31. let newVar = axios.create({
  32. baseURL: baseURL,
  33. timeout: 10000
  34. });
  35. // 请求拦截
  36. newVar.interceptors.request.use(
  37. request => {
  38. //配置基本信息
  39. // console.log(request)
  40. return request;
  41. }, err => {
  42. return Promise.reject(err);
  43. });
  44. // 响应拦截
  45. newVar.interceptors.response.use(function (response) {
  46. // 未设置状态码则默认成功状态
  47. let code = res.data.code || 200;
  48. // 获取错误信息
  49. let msg = errorCode[code] || res.data.msg || errorCode['default']
  50. if (code === 401) {
  51. MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
  52. confirmButtonText: '重新登录',
  53. cancelButtonText: '取消',
  54. type: 'warning'
  55. }
  56. ).then(() => {
  57. store.dispatch('LogOut').then(() => {
  58. location.href = '/index';
  59. })
  60. })
  61. } else if (code === 500) {
  62. Message({
  63. message: msg,
  64. type: 'error'
  65. })
  66. return Promise.reject(new Error(msg))
  67. } else if (code !== 200) {
  68. Notification.error({
  69. title: msg
  70. })
  71. return Promise.reject('error')
  72. } else {
  73. return res.data
  74. }
  75. }, function (error) {
  76. // console.log('返回进入拦截失败')
  77. return Promise.reject(error);
  78. });
  79. // request拦截器
  80. newVar.interceptors.request.use(config => {
  81. // 是否需要设置 token
  82. // const isToken = (config.headers || {}).isToken === false
  83. if (getToken() && !isToken) {
  84. config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  85. }
  86. return config;
  87. }, error => {
  88. console.log(error);
  89. // Promise.reject(error)
  90. });
  91. return newVar(config);
  92. }