Newer
Older
smartwell_front_dz / src / main.js
wangxitong on 11 Sep 2023 3 KB first commit
import Vue from 'vue'
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'
// import 'element-ui/lib/theme-chalk/index.css'
import '@/styles/element-variables.scss'
import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n
Vue.use(ElementUI, { locale })
import '@/styles/index.scss' // global css

import '@/icons' // icon
import '@/permission' // permission control

import { getWsUrl, setWsUrl } from './utils/auth'

// 是否需要mock 不需要注掉下面两行
// const { mockXHR } = require('../mock')
// mockXHR()

// // 引入动画
// import animated from 'animate.css'
// Vue.use(animated)

Vue.config.productionTip = false

// 引入v-charts
import VCharts from 'v-charts'
Vue.use(VCharts)

// 引入datav
// import dataV from '@jiaminghi/data-view'
// Vue.use(dataV)

// 引入音频文件
import alarmAudio from '@/assets/audio/alarm.mp3'

// 方法1:注册播放音频事件到Vue实例上
Vue.prototype.playAudio = () => {
  const audio = document.getElementById('eventAudio')
  audio.setAttribute('src', alarmAudio)
  audio.loop = 'loop'
  if (audio.paused === true) { // 判断音频是否暂停,暂停重新加载音频元素
    audio.load()
  } else { // 否则
    // audio.pause()
    setTimeout(() => {
      // audio.play()
      const playPromise = audio.load()
      if (playPromise) {
        playPromise.then(() => {
          // 音频加载成功
          console.log('音频加载成功')
        }).catch((e) => {
          // 音频加载失败
          console.error(e.message)
        })
      }
    }, 10)
  }
}
Vue.prototype.pauseAudio = () => {
  const audio = document.getElementById('eventAudio')
  if (!audio.paused) { // 判断音频是否暂停,暂停重新加载音频元素
    audio.pause()
  }
}
// 注册全局自定义布局组件
import NormalTable from '@/components/NormalTable/index'
import SearchArea from '@/components/SearchArea/SearchArea'
import SearchItem from '@/components/SearchArea/SearchItem'
import AppContainer from '@/components/layout/AppContainer'

Vue.component('AppContainer', AppContainer)
Vue.component('NormalTable', NormalTable)
Vue.component('SearchArea', SearchArea)
Vue.component('SearchItem', SearchItem)

import resize from '@/directive/resize/resize' // resize directive
Vue.directive('resize', resize)

import { hasPermission, showWellType, showDeviceType, showIpConfig, isOperation, isAdministrator } from './utils/permission'
Vue.prototype.hasPerm = hasPermission
Vue.prototype.showWellType = showWellType
Vue.prototype.showDeviceType = showDeviceType
Vue.prototype.showIpConfig = showIpConfig
Vue.prototype.isOperation = isOperation
Vue.prototype.isAdministrator = isAdministrator

Vue.config.productionTip = false

import axios from 'axios'
import service from '@/utils/request'

import * as Cesium from 'mars3d-cesium'
import 'mars3d/dist/mars3d.css'
import 'mars3d-cesium/Build/Cesium/Widgets/widgets.css'
import * as mars3d from 'mars3d'

axios.get('./config/project.config.json').then((result) => {
  console.log('get config')
  Vue.prototype.baseConfig = result.data
  document.title = result.data.title // 首先设置网页的title
  service.defaults.baseURL = result.data.baseUrl // 设置默认请求网址
  // 地图类型是高德的话,设置windowSecurity
  // if (result.mapType === 'gaode') {
  //   window._AMapSecurityConfig = {
  //     securityJsCode: this.baseConfig.amapSecurityCode,
  //     key: this.baseConfig.amapKey
  //   }
  // }
  setWsUrl(result.data.wsUrl)
  console.log(getWsUrl())
  new Vue({
    router,
    store,
    render: h => h(App)
  }).$mount('#app')
}).catch((error) => {
  console.error('get baseConfig error...' + error)
})