import { createApp } from 'vue' import ElementPlus from 'element-plus' // import print from 'vue3-print-nb' import axios from 'axios' import * as ElementPlusIconsVue from '@element-plus/icons-vue' import dayjs from 'dayjs' import App from './App.vue' import pinia from './store' import router from './router' import useSettingsStore from './store/modules/settings' import request from '@/api/index' import '@/utils/getLocation' // 引入音频文件 import alarmAudio from '@/assets/audio/alarm.mp3' // 自定义指令 import directive from '@/utils/directive' // 加载 svg 图标 import 'virtual:svg-icons-register' // 全局样式 import '@/assets/styles/globals.scss' // 加载 iconify 图标(element plus) import { downloadAndInstall } from '@/iconify-ep' import { hasPermission } from '@/utils/composables/permission' import buttonPerm from '@/utils/buttonPerm' if (useSettingsStore().app.iconifyOfflineUse) { downloadAndInstall() } axios.get('./config/config.json', { headers: { 'Cache-Control': 'no-cache', }, }).then((result) => { const app = createApp(App) console.log('get config') console.log(window.localStorage.getItem('browser-type-bj-well'), 'mian中获取浏览器类型') console.log(result) window.localStorage.setItem('url-bj-well', result.data.baseUrl) window.localStorage.setItem('securityJsCode', result.data.securityJsCode) window.localStorage.setItem('JsKey', result.data.JsKey) request.defaults.baseURL = result.data.baseUrl // 设置默认请求网址 app.config.globalProperties.config = result.data app.config.globalProperties.hasPerm = hasPermission app.config.globalProperties.buttonPerm = buttonPerm app.config.globalProperties.dayjs = dayjs // 方法1:注册播放音频事件到Vue实例上 app.config.globalProperties.playAudio = () => { const audio = document.getElementById('eventAudio') as HTMLAudioElement audio.setAttribute('src', alarmAudio) audio.loop = true 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) } } app.config.globalProperties.pauseAudio = () => { const audio = document.getElementById('eventAudio') as HTMLAudioElement if (!audio.paused) { // 判断音频是否暂停,暂停重新加载音频元素 audio.pause() } } // app.use(print) app.use(ElementPlus) app.use(pinia) app.use(router) for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } directive(app) app.mount('#app') }).catch((error) => { console.error(`get baseConfig error...${error}`) })