You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
4.0 KiB

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)
})