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/zh-CN' // 改为中文语言包 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 }) // 使用中文语言包 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) 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) import Print from 'vue-print-nb-jeecg' Vue.use(Print) Vue.prototype.$integrateData = (target, value) => { for (const i in target) { if (target.hasOwnProperty(i) && value.hasOwnProperty(i)) { target[i] = value[i] } } } // 高德地图 import AMap from 'vue-amap' Vue.use(AMap) // 初始化vue-amap AMap.initAMapApiLoader({ // 高德的key key: '141565d3a276007d32febb533a2c8ad2', // 插件集合 (插件按需引入) plugin: ['AMap.Autocomplete', 'AMap.Geocoder', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor', 'AMap.DistrictSearch', 'AMap.CircleMarker', 'AMap.Polyline' // 'AMap.Object3DLayer', 'AMap.Object3D' ] }) // 高德的安全密钥 window._AMapSecurityConfig = { securityJsCode: 'ea31617664cd44f32434869f2d61e73f' } // 解决地图刷新显示不出来 const amapKeys = Object.keys(localStorage).filter(key => key.match(/^_AMap_/)) amapKeys.forEach(key => { // console.log(key) localStorage.removeItem(key) }) import VueMatomo from 'vue-matomo' Vue.use(VueMatomo, { host: 'http://192.168.60.99:9000/', // 这里配置你自己的piwik服务器地址和网站ID siteId: 7, // siteId值 // 根据router自动注册 router: router, // // 是否需要在发送追踪信息之前请求许可 // // 默认false requireConsent: false, enableLinkTracking: true, // // 是否追踪初始页面 // // 默认true trackInitialView: false, // // 最终的追踪js文件名 // // 默认 'piwik' trackerFileName: 'matomo', debug: false }) new Vue({ el: '#app', router, store, render: h => h(App) })