page_supportdetail.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. {include file="header" /}
  2. <link rel="stylesheet" href="/assets/xtu/support.css?v=20260410-1922">
  3. <link rel="stylesheet" href="/assets/xtu/support-detail.css?v=20260428-1633">
  4. <main class="support-page support-detail-page">
  5. <section class="support-detail-hero">
  6. <div class="support-container support-detail-hero-inner">
  7. <div class="support-detail-hero-copy">
  8. <h1>{if !empty($supportProject.title)}{$supportProject.title}{elseif !empty($title)}{$title}{/if}</h1>
  9. <p>{:cms_t('support_product_support','产品支持')}</p>
  10. </div>
  11. <div class="support-detail-hero-media" aria-hidden="true">
  12. <img src="{$supportProject.thumb}" alt="{if !empty($supportProject.title)}{$supportProject.title}{else /}{:cms_t('support_product_support','产品支持')}{/if}">
  13. </div>
  14. </div>
  15. </section>
  16. <section class="support-detail-main support-container">
  17. <div class="support-detail-tabs" role="tablist" aria-label="{if getCategory($catid,'catname')}{:getCategory($catid,'catname')}{else /}{:cms_t('support_product_tab_switch','产品支持内容切换')}{/if}">
  18. <button class="support-detail-tab is-active" type="button" role="tab" aria-selected="true" data-target="support-detail-panel-video">{:getCategory(34,'catname')}</button>
  19. <button class="support-detail-tab" type="button" role="tab" aria-selected="false" data-target="support-detail-panel-faq">{:getCategory(25,'catname')}</button>
  20. <button class="support-detail-tab" type="button" role="tab" aria-selected="false" data-target="support-detail-panel-guide">{:getCategory(35,'catname')}</button>
  21. <button class="support-detail-tab" type="button" role="tab" aria-selected="false" data-target="support-detail-panel-download">{:getCategory(40,'catname')}</button>
  22. </div>
  23. <div class="support-detail-panels">
  24. <section class="support-detail-panel is-active" id="support-detail-panel-video" role="tabpanel">
  25. {if !empty($supportVideoTabs) && !empty($supportVideoHasContent)}
  26. <div class="support-detail-subtabs">
  27. {volist name="supportVideoTabs" id="videoTab"}
  28. <button class="support-detail-subtab {if $i==1}is-active{/if}" type="button" data-target="video-group-{$videoTab.id}">{$videoTab.catname}</button>
  29. {/volist}
  30. </div>
  31. <div class="support-detail-subpanels">
  32. {volist name="supportVideoTabs" id="videoPanel"}
  33. <div class="support-detail-subpanel {if $i==1}is-active{/if}" id="video-group-{$videoPanel.id}" {if $i!=1}hidden{/if}>
  34. <div class="support-video-grid" data-collapsible="video" data-visible-count="6">
  35. {volist name="supportVideoMap[$videoPanel['id']]" id="videoItem"}
  36. <a class="support-video-card" href="{$videoItem.url|default='javascript:;'}">
  37. <span class="support-video-card-media"><img src="{$videoItem.thumb}" alt="{$videoItem.title}"></span>
  38. <span class="support-video-card-title">{$videoItem.title}</span>
  39. </a>
  40. {/volist}
  41. </div>
  42. {if empty($supportVideoMap[$videoPanel['id']])}<div class="support-empty-state">{:cms_t('support_empty_video','暂无相关视频教程')}</div>{/if}
  43. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  44. </div>
  45. {/volist}
  46. </div>
  47. {else /}
  48. <div class="support-video-grid" data-collapsible="video" data-visible-count="6">
  49. {volist name="supportVideoDirect" id="videoItem"}
  50. <a class="support-video-card" href="{$videoItem.url|default='javascript:;'}">
  51. <span class="support-video-card-media"><img src="{$videoItem.image|default='/uploads/20260409/15d257a4faf1bc9aadd0095112b6b7f7.png'}" alt="{$videoItem.title}"></span>
  52. <span class="support-video-card-title">{$videoItem.title}</span>
  53. </a>
  54. {/volist}
  55. </div>
  56. {if empty($supportVideoDirect)}<div class="support-empty-state">{:cms_t('support_empty_video','暂无相关视频教程')}</div>{/if}
  57. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  58. {/if}
  59. </section>
  60. <section class="support-detail-panel" id="support-detail-panel-faq" role="tabpanel" hidden>
  61. {if !empty($supportFaqTabs) && !empty($supportFaqHasContent)}
  62. <div class="support-detail-subtabs">
  63. {volist name="supportFaqTabs" id="faqTab"}
  64. <button class="support-detail-subtab {if $i==1}is-active{/if}" type="button" data-target="faq-group-{$faqTab.id}">{$faqTab.catname}</button>
  65. {/volist}
  66. </div>
  67. <div class="support-detail-subpanels">
  68. {volist name="supportFaqTabs" id="faqPanel"}
  69. <div class="support-detail-subpanel {if $i==1}is-active{/if}" id="faq-group-{$faqPanel.id}" {if $i!=1}hidden{/if}>
  70. <div class="support-article-list" data-collapsible="list" data-visible-count="5">
  71. {volist name="supportFaqMap[$faqPanel['id']]" id="faqItem"}
  72. <a class="support-article-item" href="{$faqItem.url|default='javascript:;'}"><span>{$faqItem.title}</span><i class="bi bi-chevron-right"></i></a>
  73. {/volist}
  74. </div>
  75. {if empty($supportFaqMap[$faqPanel['id']])}<div class="support-empty-state">{:cms_t('support_empty_faq','暂无相关常见问题')}</div>{/if}
  76. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  77. </div>
  78. {/volist}
  79. </div>
  80. {else /}
  81. <div class="support-article-list" data-collapsible="list" data-visible-count="5">
  82. {volist name="supportFaqDirect" id="faqItem"}
  83. <a class="support-article-item" href="{$faqItem.url|default='javascript:;'}"><span>{$faqItem.title}</span><i class="bi bi-chevron-right"></i></a>
  84. {/volist}
  85. </div>
  86. {if empty($supportFaqDirect)}<div class="support-empty-state">{:cms_t('support_empty_faq','暂无相关常见问题')}</div>{/if}
  87. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  88. {/if}
  89. </section>
  90. <section class="support-detail-panel" id="support-detail-panel-guide" role="tabpanel" hidden>
  91. {if !empty($supportGuideTabs) && !empty($supportGuideHasContent)}
  92. <div class="support-detail-subtabs">
  93. {volist name="supportGuideTabs" id="guideTab"}
  94. <button class="support-detail-subtab {if $i==1}is-active{/if}" type="button" data-target="guide-group-{$guideTab.id}">{$guideTab.catname}</button>
  95. {/volist}
  96. </div>
  97. <div class="support-detail-subpanels">
  98. {volist name="supportGuideTabs" id="guidePanel"}
  99. <div class="support-detail-subpanel {if $i==1}is-active{/if}" id="guide-group-{$guidePanel.id}" {if $i!=1}hidden{/if}>
  100. <div class="support-article-list" data-collapsible="list" data-visible-count="5">
  101. {volist name="supportGuideMap[$guidePanel['id']]" id="guideItem"}
  102. <a class="support-article-item" href="{$guideItem.url|default='javascript:;'}"><span>{$guideItem.title}</span><i class="bi bi-chevron-right"></i></a>
  103. {/volist}
  104. </div>
  105. {if empty($supportGuideMap[$guidePanel['id']])}<div class="support-empty-state">{:cms_t('support_empty_guides','暂无相关产品教程')}</div>{/if}
  106. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  107. </div>
  108. {/volist}
  109. </div>
  110. {else /}
  111. <div class="support-article-list" data-collapsible="list" data-visible-count="5">
  112. {volist name="supportGuideDirect" id="guideItem"}
  113. <a class="support-article-item" href="{$guideItem.url|default='javascript:;'}"><span>{$guideItem.title}</span><i class="bi bi-chevron-right"></i></a>
  114. {/volist}
  115. </div>
  116. {if empty($supportGuideDirect)}<div class="support-empty-state">{:cms_t('support_empty_guides','暂无相关产品教程')}</div>{/if}
  117. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  118. {/if}
  119. </section>
  120. <section class="support-detail-panel" id="support-detail-panel-download" role="tabpanel" hidden>
  121. {if !empty($supportDownloadTabs) && !empty($supportDownloadHasContent)}
  122. <div class="support-detail-subtabs">
  123. {volist name="supportDownloadTabs" id="downloadTab"}
  124. <button class="support-detail-subtab {if $i==1}is-active{/if}" type="button" data-target="download-group-{$downloadTab.id}">{$downloadTab.catname}</button>
  125. {/volist}
  126. </div>
  127. <div class="support-detail-subpanels">
  128. {volist name="supportDownloadTabs" id="downloadPanel"}
  129. <div class="support-detail-subpanel {if $i==1}is-active{/if}" id="download-group-{$downloadPanel.id}" {if $i!=1}hidden{/if}>
  130. <div class="support-article-list" data-collapsible="list" data-visible-count="5">
  131. {volist name="supportDownloadMap[$downloadPanel['id']]" id="downloadItem"}
  132. <a class="support-article-item" href="{$downloadItem[$supportDownloadField]|default='javascript:;'}" target="_blank"><span>{$downloadItem.title}</span><i class="bi bi-chevron-right"></i></a>
  133. {/volist}
  134. </div>
  135. {if empty($supportDownloadMap[$downloadPanel['id']])}<div class="support-empty-state">{:cms_t('support_empty_downloads','暂无相关下载文档')}</div>{/if}
  136. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  137. </div>
  138. {/volist}
  139. </div>
  140. {else /}
  141. <div class="support-article-list" data-collapsible="list" data-visible-count="5">
  142. {volist name="supportDownloadDirect" id="downloadItem"}
  143. <a class="support-article-item" href="{$downloadItem[$supportDownloadField]|default='javascript:;'}" target="_blank"><span>{$downloadItem.title}</span><i class="bi bi-chevron-right"></i></a>
  144. {/volist}
  145. </div>
  146. {if empty($supportDownloadDirect)}<div class="support-empty-state">{:cms_t('support_empty_downloads','暂无相关下载文档')}</div>{/if}
  147. <div class="support-more-wrap" hidden><button class="support-more-btn" type="button" data-more-text="{:cms_t('support_view_more','查看更多')}" data-less-text="{:cms_t('support_view_less','收起更多')}">{:cms_t('support_view_more','查看更多')}</button></div>
  148. {/if}
  149. </section>
  150. </div>
  151. </section>
  152. <section class="support-detail-contact support-container">
  153. {include file="support-contact-block" /}
  154. </section>
  155. {include file="footer-links" /}
  156. </main>
  157. <div class="support-video-modal" id="supportVideoModal" hidden>
  158. <div class="support-video-modal__backdrop" data-modal-close></div>
  159. <div class="support-video-modal__dialog" role="dialog" aria-modal="true" aria-label="{:cms_t('video_play','视频播放')}">
  160. <button class="support-video-modal__close" type="button" aria-label="{:cms_t('close','关闭')}" data-modal-close>×</button>
  161. <div class="support-video-modal__body">
  162. <video class="support-video-modal__player" controls playsinline preload="metadata"></video>
  163. </div>
  164. </div>
  165. </div>
  166. <script src="/assets/xtu/support.js?v=20260410-2041"></script>
  167. <script src="/assets/xtu/support-detail.js?v=20260421-1941"></script>
  168. {include file="footer" /}