Files
geg-gas-web/src/App.vue
2024-07-19 17:47:11 +08:00

82 lines
2.2 KiB
Vue

<template>
<ConfigProvider :locale="antdLocal">
<AppProvider>
<RouterView />
</AppProvider>
</ConfigProvider>
</template>
<script lang="ts" setup>
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN';
import en from 'ant-design-vue/lib/locale-provider/en_US';
import zhTW from 'ant-design-vue/lib/locale-provider/zh_TW';
import { ConfigProvider } from 'ant-design-vue';
import { AppProvider } from '/@/components/Application';
import { useTitle } from '/@/hooks/web/useTitle';
import { useLocale } from '/@/locales/useLocale';
import { useAppStore } from '/@/store/modules/app';
import 'dayjs/locale/zh-cn';
import { computed } from 'vue';
import { getLogoInfo } from './api/system/login';
import { onBeforeUnmount } from 'vue';
import {getAppEnvConfig} from "/@/utils/env";
// support Multi-language
const { getLocale } = useLocale();
const appStore = useAppStore();
getLogoInfo().then((res) => {
appStore.setLogoConfig({
companyName: res.companyName,
shortName: res.shortName,
refreshLogoUrl: res.refreshLogoUrl,
backgroundLogoUrl: res.backgroundLogoUrl,
designerLogoUrl: res.designerLogoUrl,
loginLogoUrl: res.loginLogoUrl,
menuLogoUrl: res.menuLogoUrl,
});
});
const antdLocal = computed(() => {
if (getLocale.value === 'zh_CN') {
return zhCN;
}
if (getLocale.value === 'en') {
return en;
}
if (getLocale.value === 'zh_TW') {
return zhTW;
}
return zhCN;
});
const beforeUnloadHandler = (e) => {
if (e) {
e.returnValue = '关闭提示';
}
return '关闭提示';
};
if(!getAppEnvConfig().VITE_CLOSE_ALERT_DISABLED){
window.addEventListener('beforeunload', beforeUnloadHandler);
}
onBeforeUnmount(() => {
window.removeEventListener('beforeunload', beforeUnloadHandler);
});
// Listening to page changes and dynamically changing site titles
useTitle();
</script>
<style lang="less" scoped>
:deep(.ant-tree-treenode),
:deep(.ant-tree-node-content-wrapper) {
width: 100%;
height: 35px;
line-height: 35px;
}
:deep(.ant-tree .ant-tree-node-content-wrapper) {
height: 35px;
line-height: 35px;
}
</style>