import Vue from 'vue' import 'normalize.css/normalize.css' // A modern alternative to CSS resets import ElementUI from 'element-ui' import '@/styles/element-variables.scss' import locale from 'element-ui/lib/locale/lang/en' // lang i18n import '@/styles/index.scss' // global css import '@/styles/iconfont.css' import App from './App' import store from './store' import router from './router' import ViewUI from 'view-design' import './styles/viewui-mine.less' import base from './utils/common' Vue.use(ViewUI) import moment from 'moment' Vue.prototype.$moment = moment Vue.prototype.base = base import '@/icons' // icon import '@/permission' // permission control /** * If you don't want to use mock-server * you want to use MockJs for mock api * you can execute: mockXHR() * * Currently MockJs will be used in the production environment, * please remove it before going online ! ! ! */ if (process.env.NODE_ENV === 'production') { const { mockXHR } = require('../mock') mockXHR() } import VueParticles from 'vue-particles' Vue.use(VueParticles) // set ElementUI lang to EN // Vue.use(ElementUI, { locale }) // 如果想要中文版 element-ui,按如下方式声明 Vue.use(ElementUI) import Message from 'element-ui/lib/message' Vue.config.productionTip = false import avue from '@smallwei/avue' import '@smallwei/avue/lib/index.css' Vue.use(avue) import AvueMap from 'avue-plugin-map' Vue.use(AvueMap) import VxeUI from 'vxe-pc-ui' import 'vxe-pc-ui/lib/style.css' import VxeUITable from 'vxe-table' import 'vxe-table/lib/style.css' import domZIndex from 'dom-zindex' domZIndex.setCurrent(2000) import VxeTable from 'vxe-table' Vue.use(VxeUI) import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx' import ExcelJS from 'exceljs' VxeTable.use(VXETablePluginExportXLSX, { ExcelJS }) Vue.use(VxeUITable) Vue.directive('loadMore', { bind(el, binding) { const selectWrap = el.querySelector('.el-scrollbar__wrap') selectWrap.addEventListener('scroll', function() { const sign = 0 const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight if (scrollDistance <= sign) { binding.value() } }) } }) import LxHeader from '@/components/LxHeader' Vue.component('lx-header', LxHeader) import XyTable from '@/components/XyTable' Vue.component('xy-table', XyTable) import XyDialog from '@/components/XyDialog' Vue.component('xy-dialog', XyDialog) import XySelectors from '@/components/XySelectors' Vue.component('xy-selectors', XySelectors) import draggable from 'vuedraggable' Vue.component('draggable', draggable) import tinymce from '@/components/XyTinymce' Vue.component('my-tinymce', tinymce) import myMap from '@/components/XyMap' Vue.component('my-map', myMap) import afTableColumn from 'af-table-column' Vue.component('af-table-column', afTableColumn) Vue.prototype.$integrateData = (target, value) => { for (const i in target) { if (target.hasOwnProperty(i) && value.hasOwnProperty(i)) { target[i] = value[i] } } } new Vue({ el: '#app', router, store, beforeCreate() { Vue.prototype.$bus = this }, render: h => h(App) })