App.vue 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <template>
  2. <el-config-provider :locale="locale" :size="size">
  3. <!-- 开启水印 -->
  4. <!-- <el-watermark
  5. :font="{ color: fontColor }"
  6. :content="showWatermark ? watermarkContent : ''"
  7. :z-index="9999"
  8. class="wh-full"
  9. > -->
  10. <router-view />
  11. <!-- AI 助手 -->
  12. <!-- <AiAssistant v-if="enableAiAssistant" /> -->
  13. <!-- </el-watermark> -->
  14. </el-config-provider>
  15. </template>
  16. <script setup lang="ts">
  17. import { useAppStore, useSettingsStore, useUserStore } from "@/store";
  18. import { defaultSettings } from "@/settings";
  19. import { ThemeMode } from "@/enums/settings/theme.enum";
  20. import { ComponentSize } from "@/enums/settings/layout.enum";
  21. import AiAssistant from "@/components/AiAssistant/index.vue";
  22. const appStore = useAppStore();
  23. const settingsStore = useSettingsStore();
  24. const userStore = useUserStore();
  25. const locale = computed(() => appStore.locale);
  26. const size = computed(() => appStore.size as ComponentSize);
  27. const showWatermark = computed(() => settingsStore.showWatermark);
  28. const watermarkContent = defaultSettings.watermarkContent;
  29. // 只有在启用 AI 助手且用户已登录时才显示
  30. // 使用 userInfo 作为响应式依赖,当用户退出登录时会自动更新
  31. // const enableAiAssistant = computed(() => {
  32. // const isEnabled = settingsStore.userEnableAi;
  33. // const isLoggedIn = userStore.basicInfo && Object.keys(userStore.basicInfo).length > 0;
  34. // return isEnabled && isLoggedIn;
  35. // });
  36. // 明亮/暗黑主题水印字体颜色适配
  37. const fontColor = computed(() => {
  38. return settingsStore.theme === ThemeMode.DARK ? "rgba(255, 255, 255, .15)" : "rgba(0, 0, 0, .15)";
  39. });
  40. </script>