/**
 * 入口文件
 *
 */
// 全局样式
import '@/assets/style/variable-theme-default.scss';

// 兼容 IE 10 浏览器
// import 'babel-polyfill';

// 基础文件引入
import Vue from 'vue';
import Cookies from 'js-cookie';

// 引入页面组件
import App from './app';
import '@/utils/sys-settings';

// 引入路由文件
import router from './router';

// 引入数据状态管理
import store from './store';

// 引入国际化语言
import i18n from './lang';
import './common/login/Login';

// global filters
import filters from './filters';

// 引入jquery
import $ from 'jquery';

Vue.prototype.$ = $;

let BaseUI = {};
let utils = {};
// 引入路由权限控制
if (process.env.NEED_LOGIN) {
  require('@/router/dcuc_permission.js');
} else {
  require('@/router/lxr_permission.js');
}
// 全局引入 封装的组件
BaseUI = require('ui-jz-v4-common/src/components').default;
// 全局引入工具类
utils = require('ui-jz-v4-common/src/utils').default;
if (process.env.IS_MOCK) {
  let mockXHR = require('../mock').default;
  mockXHR();
}

// 全局引入 element-ui 组件
import ElementUI from 'element-ui';

// 全局引入 ui-component-v4 组件
import UiComponentV4 from 'ui-component-v4';

// 全局引入指令
import directives from '@/directive';

import XEUtils from 'xe-utils';
import { VXETable, Table, Column, header, Grid, Icon } from 'vxe-table';
Vue.use(VXETable);
Vue.use(Icon);
Vue.use(Table);
Vue.use(Column);
Vue.use(header);
Vue.use(Grid);

import zhCN from 'vxe-table/lib/locale/lang/zh-CN';

// 按需加载的方式默认是不带国际化的，自定义国际化需要自行解析占位符 '{0}'，例如：
VXETable.setup({
  i18n: (key, args) => XEUtils.toFormatString(XEUtils.get(zhCN, key), args)
});

Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
});

Vue.use(UiComponentV4, {
  size: Cookies.get('size') || 'small', // set ui-components default size
  i18n: (key, value) => i18n.t(key, value)
});

Vue.use(BaseUI);
Vue.use(utils);
Vue.use(directives);
Vue.use(filters);

Vue.config.productionTip = false;

// 实例化
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
});
