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('app-container', AppContainer) Vue.component('normal-table', NormalTable) Vue.component('search-area', SearchArea) Vue.component('search-item', 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) })