App.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <div id="app">
  3. <router-view></router-view>
  4. </div>
  5. </template>
  6. <script>
  7. import '@less/base.less';
  8. import axios from 'axios';
  9. import utils from '@api/utils.js';
  10. import api from './api/user.js';
  11. import icss from './api/icss.js';
  12. document.title='朗通云平台'; //修改标签页标题
  13. export default {
  14. name: 'app',
  15. created() {
  16. this.getUserEnumsData();
  17. this.getDiagbotManEnumsData();
  18. this.getIcssEnumsData();
  19. this.getKnowledgeEnums();
  20. //请求拦截器,添加token
  21. axios.interceptors.request.use((req) => {
  22. const tokenStr = localStorage.getItem('token');
  23. if (tokenStr) {
  24. const tokenInfo = utils.isJsonStr(tokenStr) && JSON.parse(tokenStr);
  25. req.headers.Authorization = `Bearer ${tokenInfo.accessToken}`;
  26. return req;
  27. } else {
  28. return req;
  29. }
  30. }, (error) => {
  31. return Promise.reject(error);
  32. });
  33. //请求响应拦截,401则调到登录页
  34. axios.interceptors.response.use(
  35. response => {
  36. const code = response.data.code;
  37. if(code ==="10020011"){ //token过期,清除token信息并跳转到登录页面
  38. localStorage.removeItem('token');
  39. this.logOut();
  40. return;
  41. }
  42. return response;
  43. },
  44. error => {
  45. if (error.response) {
  46. switch (error.response.status) {
  47. case 401:
  48. // 返回 401 清除token信息并跳转到登录页面
  49. localStorage.removeItem('token');
  50. this.logOut();
  51. return;
  52. case 500:
  53. // 返回 500
  54. this.message({
  55. message:'该服务正在升级,请稍后再试',
  56. type:'warning'
  57. });
  58. return;
  59. }
  60. }
  61. return Promise.reject(error) // 返回接口返回的错误信息
  62. });
  63. },
  64. methods: {
  65. logOut(){
  66. this.$alert('账号异常,请重新登录', '提示', {
  67. confirmButtonText: '确定',
  68. callback: action => {
  69. window.location.href='/';
  70. }
  71. });
  72. },
  73. getUserEnumsData() {
  74. api.getUserEnumsData().then((res) => {
  75. if (res.data.code == '0') {
  76. const data = res.data.data;
  77. localStorage.setItem('enumsData', JSON.stringify(data));
  78. }
  79. });
  80. },
  81. getDiagbotManEnumsData(){
  82. api.getDiagbotManEnumsData().then((res) => {
  83. if (res.data.code == '0') {
  84. const data = res.data.data;
  85. localStorage.setItem('productEnumsData', JSON.stringify(data));
  86. }
  87. });
  88. },
  89. getIcssEnumsData(){
  90. icss.getIcssEnumsData().then((res) => {
  91. if (res.data.code == '0') {
  92. const data = res.data.data;
  93. localStorage.setItem('icssEnumsData', JSON.stringify(data));
  94. }
  95. });
  96. },
  97. getKnowledgeEnums(){
  98. icss.getKnowledgeEnums().then((res) => {
  99. if (res.data.code == '0') {
  100. const data = res.data.data;
  101. localStorage.setItem('knowledgeEnumsData', JSON.stringify(data));
  102. }
  103. });
  104. }
  105. }
  106. }
  107. </script>
  108. <style>
  109. #app {
  110. width: 100%;
  111. height: 100%;
  112. }
  113. </style>