aslan-h5/src/main.js

53 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import './assets/main.css'
import { logEnvInfo } from './utils/env.js'
import { versionChecker } from './utils/versionChecker.js'
import { smartImage } from './directives/smartImage.js'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
import { createApp } from 'vue'
import i18n, { initI18n } from './locales/i18n'
import App from './App.vue'
import router from './router'
import { useLangStore } from '@/stores/lang' // 移动到顶部
// 初始化环境信息
logEnvInfo()
// 版本检查 - 不需要处理返回结果,因为会自动处理
versionChecker.checkVersion()
// 初始化权限系统
console.debug('🔐 Permission system initialized')
const pinia = createPinia()
pinia.use(piniaPluginPersistedstate) //将插件添加到 pinia 实例上
const app = createApp(App)
// 注册智能图片指令
app.directive('smart-img', smartImage)
app.use(router)
app.use(pinia)
// 然后初始化 i18n此时 Pinia 已可用)
// 获取 langStore 并传递给 initI18n
const langStore = useLangStore() // 直接使用 import 的函数
initI18n(langStore)
// 最后使用 i18n
app.use(i18n)
app.mount('#app')
// 定期检查版本更新每5分钟
if (versionChecker.enableCheck) {
setInterval(async () => {
const hasUpdate = await versionChecker.checkServerVersion()
if (hasUpdate) {
// 自动处理更新,不需要用户交互
versionChecker.handleVersionUpdate()
}
}, 5 * 60 * 1000)
}