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

Vue.directive('loadMore', {
  bind(el, binding) {
    const selectWrap = el.querySelector('.el-scrollbar__wrap')
    selectWrap.addEventListener('scroll', function () {
      let 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(let i in target){
    if(target.hasOwnProperty(i) && value.hasOwnProperty(i)){
      target[i] = value[i]
    }
  }
}

//大屏看板依赖
import dataV from '@jiaminghi/data-view';
Vue.use(dataV);

import noticeAudio from "@/assets/notice.mp3";
import noticeAudioNew from "@/assets/notice1.mp3";
let audio = new Audio();
audio.src = noticeAudio;
Vue.prototype.$audioPlay = (type = 1) => {
  if (audio) {
    if (type === 1) {
      audio.src = noticeAudio;
    } else {
      audio.src = noticeAudioNew;
    }
    audio.play()
  }
}

import VueMatomo from 'vue-matomo'

Vue.use(VueMatomo, {
  host: 'http://192.168.60.99:9000/', // 这里配置你自己的piwik服务器地址和网站ID
  siteId: 8,//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),
  beforeCreate() {
    Vue.prototype.$bus = this
  }
})
