App.vue
2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<script lang="ts" setup>
import eruda from 'eruda'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import hotkeys from 'hotkeys-js'
import eventBus from './utils/eventBus'
import useSettingsStore from '@/store/modules/settings'
import useUserStore from '@/store/modules/user';
const userStore = useUserStore()
const settingsStore = useSettingsStore()
const { auth } = useAuth()
const route = useRoute();
const buttonConfig = ref({
autoInsertSpace: true,
})
// 侧边栏主导航当前实际宽度
const mainSidebarActualWidth = computed(() => {
let actualWidth = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--g-main-sidebar-width'))
if (['head', 'single'].includes(settingsStore.settings.menu.menuMode)) {
actualWidth = 0
}
return `${actualWidth}px`
})
// 侧边栏次导航当前实际宽度
const subSidebarActualWidth = computed(() => {
let actualWidth = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--g-sub-sidebar-width'))
if (settingsStore.settings.menu.subMenuCollapse || route.path == '/data-asset-index' || route.path == '/trusted-space-index' || route.path == '/down-delivery-file') {
actualWidth = 0
}
return `${actualWidth}px`
})
watch([
() => settingsStore.settings.app.enableDynamicTitle,
() => settingsStore.title,
], () => {
if (settingsStore.settings.app.enableDynamicTitle && settingsStore.title) {
const title = typeof settingsStore.title === 'function' ? settingsStore.title() : settingsStore.title
document.title = `${title} - ${import.meta.env.VITE_APP_TITLE}`
}
else {
document.title = import.meta.env.VITE_APP_TITLE
}
}, {
immediate: true,
})
onMounted(() => {
settingsStore.setMode(document.documentElement.clientWidth)
window.onresize = () => {
settingsStore.setMode(document.documentElement.clientWidth)
}
hotkeys('alt+i', () => {
eventBus.emit('global-system-info-toggle')
})
if (!window.location?.href?.includes('?code=')) {
userStore.refreshUserToken();
} else {
localStorage.setItem('token', '');
localStorage.setItem('code', '');
localStorage.setItem('state', '');
localStorage.setItem('refresh_token', "");
localStorage.setItem('expiresIn', '');
}
})
import.meta.env.VITE_APP_DEBUG_TOOL === 'eruda' && eruda.init()
onUnmounted(() => {
window.onresize = null
})
</script>
<template>
<el-config-provider :locale="zhCn" :size="settingsStore.settings.app.elementSize" :button="buttonConfig">
<RouterView
v-slot="{ Component, route }"
:style="{
'--g-main-sidebar-actual-width': mainSidebarActualWidth,
'--g-sub-sidebar-actual-width': subSidebarActualWidth,
}"
>
<component :is="Component" v-if="auth(route.meta.auth ?? '')" />
<not-allowed v-else />
</RouterView>
<system-info />
</el-config-provider>
</template>