Hanye官网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

privacy.vue 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template>
  2. <div class="min-h-screen bg-stone-950">
  3. <div class="w-full h-[45px] sm:h-[55px] md:h-[65px] lg:h-[72px]"></div>
  4. <!-- 面包屑导航 -->
  5. <div class="max-w-screen-2xl mx-auto px-4 pt-8">
  6. <nav class="flex items-center space-x-2 text-sm text-zinc-400">
  7. <NuxtLink :to="homepagePath" class="hover:text-white transition">{{
  8. t("common.breadcrumb.home")
  9. }}</NuxtLink>
  10. <span class="text-zinc-600">/</span>
  11. <span class="text-white">{{ t("common.breadcrumb.privacy") }}</span>
  12. </nav>
  13. </div>
  14. <!-- 主要内容 -->
  15. <div class="max-w-screen-2xl mx-auto px-4 py-8">
  16. <!-- 页面标题 -->
  17. <div class="mb-8">
  18. <h1 class="text-4xl font-bold text-white mb-4">
  19. {{ t("common.privacy.title") }}
  20. </h1>
  21. <p class="text-zinc-400">{{ t("common.privacy.description") }}</p>
  22. </div>
  23. <!-- 内容区域 -->
  24. <div class="bg-stone-900 rounded-lg p-8 shadow-lg">
  25. <div class="prose prose-invert max-w-none">
  26. <ContentRenderer v-if="page" :value="page" />
  27. </div>
  28. </div>
  29. </div>
  30. </div>
  31. </template>
  32. <script setup lang="ts">
  33. /**
  34. * 隐私政策页面
  35. * 展示网站的隐私政策内容
  36. */
  37. const { t, locale } = useI18n();
  38. const homepagePath = computed(() => {
  39. return locale.value === "zh" ? "/" : `/${locale.value}`;
  40. });
  41. // 计算内容路径
  42. const contentPath = computed(() => {
  43. return `/${locale.value}/privacy`;
  44. });
  45. const { data: page } = await useAsyncData(contentPath.value, () => {
  46. return queryCollection("content").path(contentPath.value).first();
  47. });
  48. // 设置页面元数据
  49. useHead({
  50. title: t("common.meta.privacy.title"),
  51. meta: [
  52. {
  53. name: "description",
  54. content: t("common.meta.privacy.description"),
  55. },
  56. ],
  57. });
  58. </script>