main.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. Vue.config.productionTip = false;
  22. Vue.use(VueI18n);
  23. Vue.use(ElementUI, {
  24. size: 'small',
  25. });
  26. const i18n = new VueI18n({
  27. locale: 'zh',
  28. messages,
  29. });
  30. //使用钩子函数对路由进行权限跳转
  31. router.beforeEach((to, from, next) => {
  32. document.title = `${to.meta.title} `;
  33. const user = localStorage.getItem('user');
  34. if (!user && to.path !== '/login') {
  35. next('/login');
  36. } else {
  37. store.commit('setUser', JSON.parse(user), { root: true });
  38. next();
  39. }
  40. });
  41. new Vue({
  42. router,
  43. store,
  44. i18n,
  45. render: h => h(App),
  46. }).$mount('#app');