main.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import Vue from 'vue';
  2. import App from './App.vue';
  3. import router from './router';
  4. import store from './store';
  5. import ElementUI from 'element-ui';
  6. import VueI18n from 'vue-i18n';
  7. import '@/plugins/axios';
  8. import '@/plugins/check-res';
  9. import '@/plugins/meta';
  10. import '@/plugins/filters';
  11. import '@/plugins/loading';
  12. import '@/plugins/var';
  13. import '@/plugins/methods';
  14. import '@/plugins/setting';
  15. import { messages } from './components/common/i18n';
  16. import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
  17. // import './assets/css/theme-green/index.css'; // 浅绿色主题
  18. import './assets/css/icon.css';
  19. import './components/common/directives';
  20. import 'babel-polyfill';
  21. const jwt = require('jsonwebtoken');
  22. Vue.config.productionTip = false;
  23. Vue.use(VueI18n);
  24. Vue.use(ElementUI, {
  25. size: 'small',
  26. });
  27. const i18n = new VueI18n({
  28. locale: 'zh',
  29. messages,
  30. });
  31. //使用钩子函数对路由进行权限跳转
  32. router.beforeEach((to, from, next) => {
  33. document.title = `${to.meta.title} `;
  34. let token = to.query.token;
  35. if (token) {
  36. let user = jwt.decode(token);
  37. localStorage.setItem('token', token);
  38. store.commit('setUser', user, { root: true });
  39. next();
  40. } else {
  41. let token = localStorage.getItem('token');
  42. if (to.path == '/homeIndex') {
  43. if (!token) {
  44. next('/login');
  45. } else {
  46. let user = jwt.decode(token);
  47. store.commit('setUser', user, { root: true });
  48. next();
  49. }
  50. } else {
  51. let user = jwt.decode(token);
  52. store.commit('setUser', user, { root: true });
  53. next();
  54. }
  55. }
  56. });
  57. new Vue({
  58. router,
  59. store,
  60. i18n,
  61. render: h => h(App),
  62. }).$mount('#app');