Li Kui
2024-08-01 db2a27060c650a6d631591a4ebbc923ff197ebea
src/App.vue
@@ -1,43 +1,40 @@
<template>
  <ConfigProvider
    v-bind="lockEvent"
    :locale="antConfigLocale"
    :transform-cell-text="transformCellText"
  >
    <router-view />
  <ConfigProvider :locale="getAntdLocale" :theme="themeConfig">
    <AppProvider>
      <RouterView />
    </AppProvider>
  </ConfigProvider>
</template>
<script lang="ts">
  import { defineComponent } from 'vue';
<script lang="ts" setup>
  import { AppProvider } from '@/components/Application';
  import { useTitle } from '@/hooks/web/useTitle';
  import { useLocale } from '@/locales/useLocale';
  import { ConfigProvider } from 'ant-design-vue';
  import { getConfigProvider, initAppConfigStore } from '/@/setup/App';
  import { useDarkModeTheme } from '@/hooks/setting/useDarkModeTheme';
  import 'dayjs/locale/zh-cn';
  import { computed } from 'vue';
  import { useLockPage } from '/@/hooks/web/useLockPage';
  import { useLocale } from '/@/hooks/web/useLocale';
  // support Multi-language
  const { getAntdLocale } = useLocale();
  export default defineComponent({
    name: 'App',
    components: { ConfigProvider },
    setup() {
      // Initialize vuex internal system configuration
      initAppConfigStore();
  const { isDark, darkTheme } = useDarkModeTheme();
      // Get ConfigProvider configuration
      const { transformCellText } = getConfigProvider();
      // Create a lock screen monitor
      const lockEvent = useLockPage();
      // support Multi-language
      const { antConfigLocale } = useLocale();
      return {
        transformCellText,
        antConfigLocale,
        lockEvent,
      };
    },
  });
  const themeConfig = computed(() =>
    Object.assign(
      {
        token: {
          colorPrimary: '#0960bd',
          colorSuccess: '#55D187',
          colorWarning: '#EFBD47',
          colorError: '#ED6F6F',
          colorInfo: '#0960bd',
        },
      },
      isDark.value ? darkTheme : {},
    ),
  );
  // Listening to page changes and dynamically changing site titles
  useTitle();
</script>