App.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <template>
  2. <NConfigProvider
  3. v-if="!isLock"
  4. :locale="zhCN"
  5. :theme="getDarkTheme"
  6. :theme-overrides="getThemeOverrides"
  7. :date-locale="dateZhCN"
  8. >
  9. <AppProvider>
  10. <RouterView />
  11. </AppProvider>
  12. </NConfigProvider>
  13. <n-watermark
  14. v-if="showWatermark"
  15. content="LangChat"
  16. cross
  17. fullscreen
  18. :z-index="9999"
  19. :font-size="14"
  20. :line-height="10"
  21. :width="284"
  22. :height="384"
  23. :x-offset="22"
  24. :y-offset="100"
  25. :rotate="-20"
  26. />
  27. </template>
  28. <script lang="ts" setup>
  29. import { computed, onMounted, onUnmounted } from 'vue';
  30. import { zhCN, dateZhCN, darkTheme } from 'naive-ui';
  31. import { AppProvider } from '@/components/Application';
  32. import { useScreenLockStore } from '@/store/modules/screenLock.js';
  33. import { useRoute } from 'vue-router';
  34. import { useDesignSettingStore } from '@/store/modules/designSetting';
  35. import { lighten } from '@/utils';
  36. const route = useRoute();
  37. const useScreenLock = useScreenLockStore();
  38. const designStore = useDesignSettingStore();
  39. const isLock = computed(() => useScreenLock.isLocked);
  40. /**
  41. * @type import('naive-ui').GlobalThemeOverrides
  42. */
  43. const getThemeOverrides = computed(() => {
  44. const appTheme = designStore.appTheme;
  45. const lightenStr = lighten(designStore.appTheme, 6);
  46. return {
  47. common: {
  48. primaryColor: appTheme,
  49. primaryColorHover: lightenStr,
  50. primaryColorPressed: lightenStr,
  51. primaryColorSuppl: appTheme,
  52. },
  53. LoadingBar: {
  54. colorLoading: appTheme,
  55. },
  56. };
  57. });
  58. const getDarkTheme = computed(() => (designStore.darkTheme ? darkTheme : undefined));
  59. const showWatermark = true;
  60. </script>
  61. <style lang="less">
  62. @import 'styles/index.less';
  63. </style>