main.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. const token = localStorage.getItem('token');
  35. if (to.path == '/homeIndex') {
  36. if (!token) {
  37. next('/login');
  38. } else {
  39. let user = jwt.decode(token);
  40. store.commit('setUser', user, { root: true });
  41. next();
  42. }
  43. } else {
  44. let user = jwt.decode(token);
  45. store.commit('setUser', user, { root: true });
  46. next();
  47. }
  48. });
  49. new Vue({
  50. router,
  51. store,
  52. i18n,
  53. render: h => h(App),
  54. }).$mount('#app');