entry.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. require('offline-plugin/runtime').install();
  2. import Vue from 'vue';
  3. import entry from './app';
  4. import VueRouter from 'vue-router';
  5. import routes from './route.config';
  6. import Element from 'main/index.js';
  7. import 'packages/theme-default/src/index.css';
  8. import demoBlock from './components/demo-block.vue';
  9. import MainFooter from './components/footer.vue';
  10. import MainHeader from './components/header.vue';
  11. import SideNav from './components/side-nav';
  12. import FooterNav from './components/footer-nav';
  13. import title from './i18n/title.json';
  14. Vue.use(Element);
  15. Vue.use(VueRouter);
  16. Vue.component('demo-block', demoBlock);
  17. Vue.component('main-footer', MainFooter);
  18. Vue.component('main-header', MainHeader);
  19. Vue.component('side-nav', SideNav);
  20. Vue.component('footer-nav', FooterNav);
  21. const router = new VueRouter({
  22. mode: 'hash',
  23. base: __dirname,
  24. routes
  25. });
  26. router.afterEach(route => {
  27. const data = title[route.meta.lang];
  28. for (let val in data) {
  29. if (new RegExp('^' + val, 'g').test(route.name)) {
  30. document.title = data[val];
  31. return;
  32. }
  33. }
  34. document.title = 'Element';
  35. });
  36. new Vue({ // eslint-disable-line
  37. render: h => h(entry),
  38. router
  39. }).$mount('#app');