main.js 1.41 KB
import Vue from 'vue';

import Cookies from 'js-cookie';

import 'normalize.css/normalize.css'; // a modern alternative to CSS resets

import Element from 'element-ui';
import '@/assets/styles/element-variables.scss';

import '@/assets/styles/index.scss'; // global css

import App from './App';
import store from './store';
import router from './router';

import './assets/icons'; // icon
import './permission'; // permission control

import * as filters from '@/utils/filters'; // global filters
import checkPermission from '@/utils/permission';


import * as enums from '@/enum/index.js';

import QgvUi from '@qg/qgv-ui';
// import '@qg/qgv-ui/lib/qgv-ui.css';
import '@/assets/styles/qgv-ui.scss';

Vue.use(Element, {
    size: Cookies.get('size') || 'small' // set element-ui default size
});
Vue.use(QgvUi);

// TODO 开发时环境变量要优化
// if (process.env.NODE_ENV === 'development') {
//     $BASE_URL = 'http://192.168.0.35/qgyun-api';
// } else {
//     $BASE_URL = process.env['VUE_APP_BASE_API'];
// }

Vue.prototype.$enums = enums;
Vue.prototype.$hasPermissions = checkPermission;

// register global utility filters
Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key]);
});

Vue.config.productionTip = false;

const app = new Vue({
    el: '#app',
    router,
    store,
    render: h => h(App)
});

router.afterEach((to, from) => {
    Vue.nextTick(() => {
        app.$qgDialog.closeAll();
    });
});