| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <template>
- <el-config-provider :locale="currentLocale">
- <keep-alive :include="keepAliveComponents">
- <router-view />
- </keep-alive>
- <ReDialog />
- <ReDrawer />
- </el-config-provider>
- </template>
- <script lang="ts">
- import { defineComponent } from "vue";
- import { checkVersion } from "version-rocket";
- import { ElConfigProvider } from "element-plus";
- import { ReDialog } from "@/components/ReDialog";
- import { ReDrawer } from "@/components/ReDrawer";
- import en from "element-plus/es/locale/lang/en";
- import zhCn from "element-plus/es/locale/lang/zh-cn";
- import plusEn from "plus-pro-components/es/locale/lang/en";
- import plusZhCn from "plus-pro-components/es/locale/lang/zh-cn";
- import { useRouter } from 'vue-router'
- import { keepAliveOptions } from "./views/system/menu/utils/enums";
- export default defineComponent({
- name: "app",
- components: {
- [ElConfigProvider.name]: ElConfigProvider,
- ReDialog,
- ReDrawer
- },
- computed: {
- currentLocale() {
- return this.$storage.locale?.locale === "zh"
- ? { ...zhCn, ...plusZhCn }
- : { ...en, ...plusEn };
- },
- keepAliveComponents() {
- return this.$router.getRoutes()
- .filter(route => route.meta.keepAlive)
- .map(route => route.name);
- },
- },
- beforeCreate() {
- const { version, name: title } = __APP_INFO__.pkg;
- const { VITE_PUBLIC_PATH, MODE } = import.meta.env;
- // https://github.com/guMcrey/version-rocket/blob/main/README.zh-CN.md#api
- if (MODE === "production") {
- // 版本实时更新检测,只作用于线上环境
- checkVersion(
- // config
- {
- // 5分钟检测一次版本
- pollingTime: 300000,
- localPackageVersion: version,
- originVersionFileUrl: `${location.origin}${VITE_PUBLIC_PATH}version.json`
- },
- // options
- {
- title,
- description: "检测到新版本",
- buttonText: "立即更新"
- }
- );
- }
- }
- });
- </script>
|