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 indexDB from '@/utils/indexDB' import '@/utils/getLocation' // 引入音频文件 import alarmAudio from '@/assets/audio/alarm.mp3' // 自定义指令 import { dragHeight } from '@/directives/drag-height/index' import { dragWidth } from '@/directives/drag-width/index' // 引入音频文件 // 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() } // 引入音频文件 const audio = new Audio(alarmAudio) // 设置音频循环播放 audio.loop = false 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('BaseUrl', result.data.baseUrl) window.localStorage.setItem('aMapSecret', result.data.aMapSecret) window.localStorage.setItem('aMapKey', result.data.aMapKey) console.log('aMapSecret', result.data.aMapSecret) console.log('aMapKey', result.data.aMapKey) console.log('dogWalkTime', result.data.dogWalkTime) // axios.get(`${window.localStorage.getItem('xuntengMap') as string}/L16/R00006105/C0000d2ba.png?ts=${new Date().getTime()}`).then(() => { // console.log('请求通了') // window.sessionStorage.setItem('ping-xunteng-layer', '1') // }).catch((error) => { // console.log('请求不通') // window.sessionStorage.setItem('ping-xunteng-layer', '') // if (error.message) { // console.log('网络异常') // window.sessionStorage.setItem('ping-xunteng-layer', '') // } // }) 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 console.log(`当前系统版本:${result.data.version}`) indexDB .init() .then(() => { console.log('Database initialized successfully!') }) .catch(() => { console.log('Database initialization failed!') }) // ============================音频=========================== // 注册全局播放音频事件 app.config.globalProperties.$playAudio = () => { audio.play().catch((error) => { console.error('播放音频时出错:', error) }) } // 注册全局停止播放音频事件 app.config.globalProperties.$stopAudio = () => { audio.pause() audio.currentTime = 0 } // ============================音频=========================== // app.use(print) app.use(ElementPlus) app.use(pinia) app.use(router) for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component) } // 加载自定义指令 app.directive('drag-height', (el, binding) => { dragHeight(el, binding) }) app.directive('drag-width', (el, binding) => { dragWidth(el, binding) }) directive(app) app.mount('#app') }) .catch((error) => { console.error(`get baseConfig error...${error}`) })