ems-basedata-wdz
Version:
ems-basedata by xianer
104 lines (95 loc) • 2.72 kB
JavaScript
import Vue from 'vue';
import App from './App.vue';
import iView from 'view-design';
import VueRouter from 'vue-router';
import VueI18n from 'vue-i18n';
import './tools/index.js';
import './assets/css/common.css';
import './static/css/app.less';
import './static/css/global.less';
import 'core-js/stable';
import 'regenerator-runtime/runtime';
import store from './vuex';
import config from '../config.json';
import axios from './api/axios.js';
import { routers } from './router';
import {
componentsInstall,
ComponentsRouterBeforeEach,
Mixin,
componentsZh,
componentsTw,
componentsEn
} from 'ems-components-new-wdz';
import iviewEn from 'view-design/dist/locale/en-US';
import iviewZh from 'view-design/dist/locale/zh-CN';
import iviewTw from 'view-design/dist/locale/zh-TW';
import { commonZh, commonEn, commonTw } from 'ems-common-lang';
import 'ems-components-new-wdz/src/assets/iconfont/iconfont.css';
Vue.use(VueI18n);
Vue.use(iView, {
i18n: function(path, options) {
const value = i18n.t(path, options);
if (value !== null && value !== undefined) {
return value;
}
return '';
}
});
Vue.use(VueRouter);
Vue.use(componentsInstall);
Vue.mixin(Mixin);
// 必须要加这个 不然多国语言切换不出效果
Vue.locale = () => { };
Vue.prototype.$config = config[process.env.VUE_APP_ENV];
window.$axios = Vue.prototype.$axios = axios;
const router = new VueRouter({
routes: routers
});
router.beforeEach((to, from, next) => {
iView.LoadingBar.start();
ComponentsRouterBeforeEach();
if (!sessionStorage.crctoken) {
if (to.name === 'login') {
next();
} else {
next({ name: 'login' });
}
} else {
next();
}
});
router.afterEach(to => {
if (to && to.meta && to.meta.title) {
document.title = to.meta.title[1];
}
iView.LoadingBar.finish();
});
if (!localStorage.getItem('lang')) {
localStorage.setItem('lang', 'zh-CN');
}
const i18n = new VueI18n({
locale: window.localStorage.getItem('lang') || 'zh-CN',
messages: {
'zh-CN': Object.assign(iviewZh, commonZh, componentsZh, require('./lang/zh-CN.json')),
'en-US': Object.assign(iviewEn, commonEn, componentsEn, require('./lang/en-US.json')),
'zh-TW': Object.assign(iviewTw, commonTw, componentsTw, require('./lang/zh-TW.json'))
}
});
window.emsConfig = {
i18n
};
window.$app = new Vue({
el: '#app',
router: router,
store,
i18n,
created() {
if (sessionStorage.crctoken) {
$axios.defaults.headers.crctoken = sessionStorage.crctoken;
} else {
this.$router.push({ name: 'login' });
}
},
render: h => h(App)
});