Hanye官网
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. <template>
  2. <div>
  3. <div class="w-full h-[55px] sm:h-[72px]"></div>
  4. <ErrorBoundary :error="error">
  5. <div v-if="isLoading" class="flex justify-center py-16">
  6. <div class="animate-spin h-8 w-8 border-2 border-cyan-400 border-t-transparent rounded-full"></div>
  7. </div>
  8. <div v-else class="pb-16">
  9. <!-- 面包屑导航 -->
  10. <div class="max-w-full xl:px-8 lg:px-6 md:px-4 px-4 mt-6 mb-8">
  11. <div class="max-w-screen-2xl mx-auto">
  12. <nuxt-link
  13. :to="`${homepagePath}/`"
  14. class="text-white/60 text-base font-normal hover:text-white transition-colors duration-300"
  15. >
  16. {{ t("common.home") }}
  17. </nuxt-link>
  18. <span class="text-white/60 text-base font-normal px-2"> / </span>
  19. <nuxt-link
  20. :to="`${homepagePath}/support`"
  21. class="text-white/60 text-base font-normal hover:text-white transition-colors duration-300"
  22. >
  23. {{ t("support.title") }}
  24. </nuxt-link>
  25. <span class="text-white/60 text-base font-normal px-2"> / </span>
  26. <span class="text-white text-base font-normal">
  27. {{ t("support.faq.title") }}
  28. </span>
  29. </div>
  30. </div>
  31. <!-- 页面头部 -->
  32. <div class="max-w-full mb-16 xl:px-8 lg:px-6 md:px-4 px-4">
  33. <div class="max-w-screen-2xl mx-auto">
  34. <div class="text-center">
  35. <div class="inline-flex items-center px-4 py-2 bg-cyan-400/10 border border-cyan-400/30 rounded-full mb-6">
  36. <svg class="w-5 h-5 text-cyan-400 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  37. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
  38. </svg>
  39. <span class="text-cyan-400 font-medium text-sm">FAQ CENTER</span>
  40. </div>
  41. <h1 class="text-4xl md:text-5xl font-bold text-white mb-6">
  42. {{ t("support.faq.title") }}
  43. </h1>
  44. <p class="text-xl text-gray-300 max-w-4xl mx-auto leading-relaxed mb-8">
  45. {{ t("support.faq.description") }}
  46. </p>
  47. <!-- 快速统计 -->
  48. <div class="grid grid-cols-3 md:grid-cols-3 gap-6 max-w-2xl mx-auto">
  49. <div class="text-center">
  50. <div class="text-2xl font-bold text-cyan-400 mb-1">90%</div>
  51. <div class="text-xs text-gray-400">{{ t("support.faq.coverageRate") }}</div>
  52. </div>
  53. <div class="text-center">
  54. <div class="text-2xl font-bold text-cyan-400 mb-1">24/7</div>
  55. <div class="text-xs text-gray-400">{{ t("support.faq.availability") }}</div>
  56. </div>
  57. <div class="text-center">
  58. <div class="text-2xl font-bold text-cyan-400 mb-1">{{ locale === 'zh' ? '即时' : locale === 'en' ? 'Instant' : 'インスタント' }}</div>
  59. <div class="text-xs text-gray-400">{{ locale === 'zh' ? '获取答案' : locale === 'en' ? 'Get Answers' : '回答を取得' }}</div>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. <!-- FAQ内容区域 -->
  66. <div class="max-w-full xl:px-8 lg:px-6 md:px-4 px-4">
  67. <div class="max-w-screen-2xl mx-auto">
  68. <div class="bg-gradient-to-br from-zinc-900 to-zinc-800/80 rounded-xl p-8 md:p-10">
  69. <FaqContent />
  70. </div>
  71. </div>
  72. </div>
  73. <!-- 底部帮助区域 -->
  74. <div class="max-w-full xl:px-8 lg:px-6 md:px-4 px-4 mt-16">
  75. <div class="max-w-screen-2xl mx-auto">
  76. <div class="bg-gradient-to-r from-zinc-900 via-zinc-800/90 to-zinc-900 border border-zinc-700 rounded-xl p-8 md:p-10 text-center relative overflow-hidden">
  77. <div class="absolute inset-0 bg-grid-pattern opacity-5"></div>
  78. <div class="relative z-10">
  79. <h2 class="text-2xl md:text-3xl font-bold text-white mb-4">
  80. {{ locale === 'zh' ? '未找到您需要的答案?' : locale === 'en' ? 'Can\'t find what you\'re looking for?' : 'お探しの回答が見つかりませんか?' }}
  81. </h2>
  82. <p class="text-gray-300 mb-8 max-w-2xl mx-auto text-lg leading-relaxed">
  83. {{ locale === 'zh' ? '我们的技术支持专家随时准备为您提供个性化的帮助和专业解答。' : locale === 'en' ? 'Our technical support experts are ready to provide personalized help and professional answers.' : '私たちの技術サポート専門家が、個別のヘルプと専門的な回答を提供する準備ができています。' }}
  84. </p>
  85. <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-10">
  86. <div class="text-center">
  87. <div class="w-12 h-12 bg-cyan-400/20 rounded-lg flex items-center justify-center mx-auto mb-3">
  88. <svg class="w-6 h-6 text-cyan-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  89. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
  90. </svg>
  91. </div>
  92. <h3 class="font-semibold text-white mb-2">
  93. {{ locale === 'zh' ? '邮件支持' : locale === 'en' ? 'Email Support' : 'メールサポート' }}
  94. </h3>
  95. <p class="text-gray-400 text-sm">
  96. {{ locale === 'zh' ? '详细问题描述' : locale === 'en' ? 'Detailed problem description' : '詳細な問題の説明' }}
  97. </p>
  98. </div>
  99. <div class="text-center">
  100. <div class="w-12 h-12 bg-cyan-400/20 rounded-lg flex items-center justify-center mx-auto mb-3">
  101. <svg class="w-6 h-6 text-cyan-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  102. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
  103. </svg>
  104. </div>
  105. <h3 class="font-semibold text-white mb-2">
  106. {{ locale === 'zh' ? '在线客服' : locale === 'en' ? 'Live Chat' : 'ライブチャット' }}
  107. </h3>
  108. <p class="text-gray-400 text-sm">
  109. {{ locale === 'zh' ? '即时沟通解答' : locale === 'en' ? 'Instant communication' : 'インスタントコミュニケーション' }}
  110. </p>
  111. </div>
  112. <div class="text-center">
  113. <div class="w-12 h-12 bg-cyan-400/20 rounded-lg flex items-center justify-center mx-auto mb-3">
  114. <svg class="w-6 h-6 text-cyan-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  115. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path>
  116. </svg>
  117. </div>
  118. <h3 class="font-semibold text-white mb-2">
  119. {{ locale === 'zh' ? '电话支持' : locale === 'en' ? 'Phone Support' : '電話サポート' }}
  120. </h3>
  121. <p class="text-gray-400 text-sm">
  122. {{ locale === 'zh' ? '直接语音交流' : locale === 'en' ? 'Direct voice communication' : '直接音声通信' }}
  123. </p>
  124. </div>
  125. </div>
  126. <div class="flex flex-col sm:flex-row gap-4 justify-center">
  127. <nuxt-link
  128. :to="`${homepagePath}/contact`"
  129. class="inline-flex items-center px-8 py-4 bg-cyan-400 text-zinc-900 font-semibold rounded-lg hover:bg-cyan-500 transition-colors duration-200"
  130. >
  131. <svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  132. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
  133. </svg>
  134. {{ t("support.services.contactSupport") }}
  135. </nuxt-link>
  136. <nuxt-link
  137. :to="`${homepagePath}/support`"
  138. class="inline-flex items-center px-8 py-4 border border-zinc-600 text-white font-semibold rounded-lg hover:bg-zinc-800 hover:border-cyan-400/40 transition-all duration-200"
  139. >
  140. <svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  141. <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192L5.636 18.364M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-5 0a4 4 0 11-8 0 4 4 0 018 0z"></path>
  142. </svg>
  143. {{ locale === 'zh' ? '浏览支持中心' : locale === 'en' ? 'Browse Support Center' : 'サポートセンターを見る' }}
  144. </nuxt-link>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </ErrorBoundary>
  152. </div>
  153. </template>
  154. <script setup lang="ts">
  155. /**
  156. * FAQ详情页面
  157. * 专业的常见问题解答页面
  158. */
  159. import { useErrorHandler } from "~/composables/useErrorHandler";
  160. const { error, isLoading } = useErrorHandler();
  161. const { t, locale } = useI18n();
  162. // 计算首页路径
  163. const homepagePath = computed(() => {
  164. return locale.value === "zh" ? "" : `/${locale.value}`;
  165. });
  166. // SEO优化
  167. useHead({
  168. title: t("support.faq.title") + " - " + t("support.title") + " - Hanye",
  169. meta: [
  170. {
  171. name: "description",
  172. content: t("faq.description"),
  173. },
  174. {
  175. name: "keywords",
  176. content: t("faq.keywords"),
  177. },
  178. ],
  179. });
  180. </script>
  181. <style scoped>
  182. /* 过渡效果 */
  183. .transition-colors {
  184. transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  185. transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  186. }
  187. .duration-200 {
  188. transition-duration: 200ms;
  189. }
  190. /* 悬停效果 */
  191. .hover\:bg-blue-700:hover {
  192. background-color: #1d4ed8;
  193. }
  194. .hover\:bg-gray-600:hover {
  195. background-color: #4b5563;
  196. }
  197. .hover\:text-blue-400:hover {
  198. color: #60a5fa;
  199. }
  200. /* 响应式优化 */
  201. @media (max-width: 768px) {
  202. .flex-col {
  203. align-items: stretch;
  204. }
  205. .flex-col > * {
  206. width: 100%;
  207. justify-content: center;
  208. }
  209. }
  210. </style>