邃芒慧影、口播(PC) https://neuver.metavatar.cc/
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

93 řádky
2.8 KiB

  1. import axios from 'axios'
  2. import router from '@/router/index'
  3. import { ElMessage } from 'element-plus'
  4. // ElMessage
  5. import { useAppStore } from '@/store/modules/app';
  6. import { userInfoModules } from "@/store/modules/userInfo";
  7. import { store } from '@/store/index'; // 因为不是在setup环境而是js中,必须重新初始化加载store
  8. const appStore = useAppStore(store); //pinia
  9. const userInfoPinia = userInfoModules(store); //pinia
  10. // const userInfoPinia = userInfoModules(store); //pinia
  11. // 开发环境需以 "/api" 拼接,其他环境需以 "/C" 拼接
  12. const env = process.env.NODE_ENV == 'development' ? "/api" : "/C"
  13. // const env = process.env.NODE_ENV == 'development' ? "" : ""
  14. console.log(env)
  15. /**
  16. * @description:发送Axios请求
  17. */
  18. const request = axios.create({
  19. baseURL: env,
  20. timeout: 15000
  21. })
  22. // 请求拦截器
  23. request.interceptors.request.use(
  24. function (config) {
  25. // 给所有授权的请求提供token
  26. const AccessToken = localStorage.getItem("AccessToken")
  27. if (AccessToken) {
  28. config.headers.token = AccessToken
  29. }
  30. return config
  31. },
  32. function (error) {
  33. if (axios.isCancel(error)) {
  34. // 请求被取消处理
  35. ElMessage.error(
  36. appStore.language == "zh-cn" ? `请求超时,请重试!` : `Request timeout, please try again`
  37. );
  38. }
  39. // 操作
  40. return Promise.reject(error)
  41. }
  42. )
  43. // 响应拦截器
  44. request.interceptors.response.use(
  45. function (response) {
  46. if (!response.data) {
  47. // ElMessage.error($t('tips.systemException'));
  48. ElMessage.error(
  49. appStore.language == "zh-cn" ? `服务器繁忙,请重试!` : `The server is busy, please try again`
  50. );
  51. }
  52. let code = response.data.code
  53. // 当token无效(过期或损坏)时 1053为未登录
  54. if (code == 1052 || code == 1053) {
  55. localStorage.removeItem("AccessToken");
  56. router.push("/login");
  57. // ElMessage.error("登录过期,请重新登录!");
  58. // ElMessage.error($t('tips.tokenExpired'));
  59. ElMessage.error(
  60. appStore.language == "zh-cn" ? `登录过期,请重新登录!` : `Login expired, please login again`
  61. );
  62. return
  63. // 弹出错误
  64. } else if (code != 200 && code !== 64001) {
  65. if (code == 500) {
  66. // ElMessage.error("系统异常,请稍后再试");
  67. // ElMessage.error($t('tips.systemException'));
  68. ElMessage.error(
  69. appStore.language == "zh-cn" ? (response.data.languageMessage && response.data.languageMessage['zh-cn']) || `服务器繁忙,请重试!` : (response.data.languageMessage && response.data.languageMessage[appStore.language]) || `The server is busy, please try again`
  70. );
  71. // 其他错误
  72. } else {
  73. return Promise.reject(response.data)
  74. }
  75. } else {
  76. // 正常返回
  77. return response.data
  78. }
  79. },
  80. function (error) {
  81. }
  82. )
  83. export default request