演示项目-图书馆
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
4.0 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router from './router/index'
  4. import { _createStore } from './vuex';
  5. // 引入http请求插件
  6. import $API from './utils/api'
  7. import $http from './utils/http'
  8. import { addRequestInterceptor, addResponseInterceptor } from './utils/http'
  9. import Qs from 'qs';
  10. // reset 样式
  11. import '@/assets/css/reset.css'
  12. // import '@/assets/css/swiper6.min.css'
  13. import '@/assets/js/rem.js'
  14. // import '@/assets/js/swiper6.min.js'
  15. import '@/assets/css/style.scss'
  16. import { Toast, Swipe, SwipeItem, Popup, Picker, Tab, Tabs, Dialog, Uploader, DatetimePicker, Slider, Checkbox, CheckboxGroup, Form, Field, CellGroup, Area, Button, Progress, List} from 'vant';
  17. import 'vant/lib/index.css';
  18. Toast.setDefaultOptions({ duration: 1500 });
  19. // 路由拦截器
  20. // router.beforeEach((to, from, next) => {
  21. // if (to.matched.length != 0) {
  22. // if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
  23. // if (Boolean(localStorage.getItem("userInfo"))) { // 通过vuex state获取当前的user是否存在
  24. // next();
  25. // } else {
  26. // next({
  27. // path: '/login',
  28. // query: { redirect: to.fullPath } // 将跳转的路由path作为参数,登录成功后跳转到该路由
  29. // })
  30. // }
  31. // } else {
  32. // if (Boolean(localStorage.getItem("userInfo"))) { // 判断是否登录
  33. // if (to.path != "/" && to.path != "/login") { //判断是否要跳到登录界面
  34. // next();
  35. // } else {
  36. // /**
  37. // * 防刷新,如果登录,修改路由跳转到登录页面,修改路由为登录后的首页
  38. // */
  39. // next({
  40. // path: '/standardizedData/groupAirline'
  41. // })
  42. // }
  43. // } else {
  44. // next();
  45. // }
  46. // }
  47. // } else {
  48. // next({
  49. // path: '/login',
  50. // query: { redirect: to.fullPath } // 将跳转的路由path作为参数,登录成功后跳转到该路由
  51. // })
  52. // }
  53. // })
  54. // request前自动添加api配置
  55. addRequestInterceptor(
  56. (config) => {
  57. let Authorization = "";
  58. if (typeof localStorage !== "undefined") {
  59. const userData = JSON.parse(localStorage.getItem('userData')) || "";
  60. if (userData) {
  61. let token = '';
  62. if (userData.token) {
  63. token = userData.token
  64. } else if(userData.data.token){
  65. token = userData.data.token
  66. }
  67. Authorization = "Bearer " + token;
  68. }
  69. config.headers['Authorization'] = Authorization;
  70. }
  71. config.transformRequest = [
  72. function(data){
  73. return Qs.stringify(data) //使用Qs将请求参数序列化
  74. }]
  75. /*统一加/api前缀*/
  76. //config.url = `/api${config.url}`
  77. return config
  78. },
  79. (error) => {
  80. return Promise.reject(error)
  81. }
  82. )
  83. // http 返回response前处理
  84. addResponseInterceptor(
  85. (response) => {
  86. /*todo 在这里统一前置处理请求响应 */
  87. return Promise.resolve(response.data)
  88. },
  89. (error) => {
  90. /*
  91. * todo 统一处理500400等错误状态
  92. * 这里reject下交给entry-server.js的处理
  93. */
  94. const { response, request } = error
  95. return Promise.reject({ code: response.status, data: response.data, method: request.method, path: request.path })
  96. }
  97. )
  98. const app = createApp(App)
  99. const store = _createStore();
  100. app.use(router)
  101. app.use(store)
  102. app.use(Toast)
  103. .use(Swipe)
  104. .use(Popup)
  105. .use(Picker)
  106. .use(Tab)
  107. .use(Tabs)
  108. .use(Dialog)
  109. .use(Uploader)
  110. .use(DatetimePicker)
  111. .use(SwipeItem)
  112. .use(Slider)
  113. .use(Checkbox)
  114. .use(CheckboxGroup)
  115. .use(Form)
  116. .use(Field)
  117. .use(CellGroup)
  118. .use(Area)
  119. .use(Button)
  120. .use(Progress)
  121. .use(List);
  122. // app.config.globalProperties.$coverUrl = 'http://192.168.99.67:8080'
  123. app.config.globalProperties.$coverUrl = 'http://58.49.77.70:8443'
  124. app.config.globalProperties.$API = $API
  125. app.config.globalProperties.$http = $http
  126. app.mount('#app')