xinindex.wxml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <view class="page-container">
  2. <!-- 顶部导航栏 -->
  3. <view class="top-nav">
  4. <text class="nav-title">红途定制 · 专属红色之旅</text>
  5. <image src="/images/logo.png" class="nav-logo" />
  6. </view>
  7. <!-- 背景图片放在最底层 -->
  8. <view class="map-container" style="height: {{layoutConfig.map * 100}}vh">
  9. <map
  10. id="map"
  11. longitude="118.0"
  12. latitude="36.5"
  13. scale="7"
  14. markers="{{markers}}"
  15. bindmarkertap="onMarkerTap"
  16. longitude="{{longitude}}"
  17. latitude="{{latitude}}"
  18. scale="{{scale}}"
  19. markers="{{markers}}"
  20. style="width: 100%; height: 100%;"
  21. ></map>
  22. <view class="map-fade"></view>
  23. <!-- 红途定制快捷入口(悬浮在地图上) -->
  24. <view class="custom-quick-entry" bindtap="navigateToAiPlan">
  25. <image src="/images/index/生成攻略.png" class="quick-entry-icon" />
  26. <text class="quick-entry-text">立即定制行程</text>
  27. <view class="entry-highlight"></view>
  28. </view>
  29. </view>
  30. <!-- 红途定制核心模块 -->
  31. <view class="custom-core-module">
  32. <view class="module-header">
  33. <text class="module-title">红途定制 · 智能规划</text>
  34. <view class="module-desc">基于您的需求,生成专属红色旅游路线</view>
  35. </view>
  36. <!-- 定制选项卡 -->
  37. <view class="custom-tabs">
  38. <view class="tab-item active" data-type="history">历史主题</view>
  39. <view class="tab-item" data-type="education">研学教育</view>
  40. <view class="tab-item" data-type="red-story">红色故事</view>
  41. <view class="tab-item" data-type="custom">自定义</view>
  42. </view>
  43. <!-- 推荐定制方案 -->
  44. <view class="custom-recommendations">
  45. <block wx:for="{{recommendedPlans}}" wx:key="id">
  46. <view class="plan-card" bindtap="viewCustomPlan" data-id="{{item.id}}">
  47. <image src="{{item.coverImage}}" mode="widthFix" class="plan-image" />
  48. <view class="plan-info">
  49. <view class="plan-title">{{item.title}}</view>
  50. <view class="plan-meta">
  51. <text class="days">{{item.days}}天行程</text>
  52. <text class="spots">{{item.spotCount}}个景点</text>
  53. <text class="difficulty">{{item.difficulty}}</text>
  54. </view>
  55. <view class="plan-tags">
  56. <view class="tag" wx:for="{{item.tags}}" wx:key="tag">{{item}}</view>
  57. </view>
  58. </view>
  59. <view class="arrow-icon">→</view>
  60. </view>
  61. </block>
  62. </view>
  63. <!-- 立即定制按钮 -->
  64. <button class="start-custom-btn" bindtap="navigateToAiPlan">
  65. 立即定制我的专属路线
  66. </button>
  67. </view>
  68. <!-- VR全景体验模块 -->
  69. <view class="vr-container" style="height: {{layoutConfig.vr * 100}}vh">
  70. <view class="section-header">
  71. <text class="section-title">VR全景体验</text>
  72. <view class="brush-stroke"></view>
  73. </view>
  74. <!-- 横向滚动VR列表 -->
  75. <scroll-view
  76. class="vr-scroll"
  77. scroll-x
  78. enhanced
  79. show-scrollbar="{{false}}"
  80. >
  81. <view class="vr-list">
  82. <block wx:for="{{vrList}}" wx:key="id">
  83. <view
  84. class="vr-card"
  85. bindtap="showWebView"
  86. data-url="{{item.url}}"
  87. data-title="{{item.title}}"
  88. >
  89. <image src="{{item.thumb}}" mode="aspectFill" class="vr-image"/>
  90. <view class="vr-info">
  91. <text class="vr-title">{{item.title}}</text>
  92. <text class="vr-desc">{{item.desc}}</text>
  93. </view>
  94. </view>
  95. </block>
  96. </view>
  97. </scroll-view>
  98. </view>
  99. <!-- 功能菜单 -->
  100. <view class="menu">
  101. <view class="service-container">
  102. <view class="item highlight">
  103. <a href="#" class="service-link">
  104. <image
  105. bindtap="navigateToAiPlan"
  106. data-url="/pages/ai-plan/ai-plan"
  107. src="/images/index/生成攻略.png"
  108. class="img"
  109. />
  110. <text class="title">红途定制</text>
  111. </a>
  112. </view>
  113. <view class="item">
  114. <a href="#" class="service-link">
  115. <image
  116. bindtap="navigateTopage"
  117. data-url="/pages/gongjiao/gongjiao"
  118. src="/images/index/游学路线.png"
  119. class="img"
  120. />
  121. <text class="title">游学路线</text>
  122. </a>
  123. </view>
  124. <view class="item">
  125. <a href="#" class="service-link">
  126. <image
  127. bindtap="navigateTopage"
  128. data-url="/pages/search/search"
  129. src="/images/搜索分类.png"
  130. class="img"
  131. />
  132. <text class="title">红游速搜</text>
  133. </a>
  134. </view>
  135. <view class="item">
  136. <a href="#" class="service-link">
  137. <image
  138. bindtap="navigateTopage"
  139. data-url="/pages/quiz/quiz"
  140. src="/images/quiz-icon.png"
  141. class="img"
  142. />
  143. <text class="title">红史问答堂</text>
  144. </a>
  145. </view>
  146. </view>
  147. </view>
  148. <!-- 自定义全屏弹窗 -->
  149. <view
  150. wx:if="{{showImageModal}}"
  151. class="custom-modal"
  152. bindtap="hideImageModal"
  153. >
  154. <view class="modal-content" catchtap="stopPropagation">
  155. <scroll-view scroll-y class="scroll-container" style="height: 70vh;">
  156. <image
  157. src="{{currentMarker.imageUrl}}"
  158. mode="widthFix"
  159. class="modal-image"
  160. />
  161. <view class="main-content">
  162. <view class="header">
  163. <view class="modal-title">{{currentMarker.title}}</view>
  164. <view class="modal-address">
  165. <text class="icon">📍</text>
  166. {{currentMarker.address}}
  167. </view>
  168. </view>
  169. <view class="modal-description">
  170. {{currentMarker.description}}
  171. </view>
  172. <view class="detail-list">
  173. <block wx:for="{{currentMarker.detail}}" wx:key="label">
  174. <view class="detail-item {{item.label.includes('门票') ? 'highlight-item' : ''}}">
  175. <text class="detail-label">{{item.label}}</text>
  176. <view class="detail-value-container">
  177. <text wx:if="{{!item.label.includes('门票')}}">{{item.value}}</text>
  178. <block wx:else>
  179. <text class="{{item.value === '免费' ? 'free-text' : 'fee-text'}}">
  180. {{item.value}}
  181. </text>
  182. <text wx:if="{{item.value === '免费'}}" class="free-badge">免费</text>
  183. </block>
  184. </view>
  185. </view>
  186. </block>
  187. </view>
  188. </view>
  189. </scroll-view>
  190. <view class="action-bar">
  191. <button class="nav-btn" bindtap="openLocation">
  192. 导航前往
  193. </button>
  194. <button class="close-btn" bindtap="hideImageModal">
  195. 关闭
  196. </button>
  197. </view>
  198. </view>
  199. <view class="top-close" bindtap="hideImageModal">
  200. <text class="close-icon">×</text>
  201. </view>
  202. </view>
  203. <!-- WebView弹窗 -->
  204. <view wx:if="{{showWebView}}" class="vr-modal">
  205. <view class="modal-header">
  206. <text class="modal-title">{{currentVrTitle}}</text>
  207. <text class="close-btn" bindtap="hideWebView">×</text>
  208. </view>
  209. <web-view
  210. src="{{webViewUrl}}"
  211. style="height: 85vh; width: 100%;"
  212. ></web-view>
  213. </view>
  214. <!-- 悬浮按钮 -->
  215. <view class="float-container">
  216. <image
  217. src="/images/鸽子.png"
  218. class="float-btn {{walking ? 'walking' : ''}}"
  219. bindtap="showFloatMenu"
  220. bindtouchstart="touchStart"
  221. bindtouchmove="touchMove"
  222. bindtouchend="touchEnd"
  223. style="left: {{positionX}}px; top: {{positionY}}px;"
  224. ></image>
  225. <view class="float-menu" wx:if="{{showMenu}}">
  226. <view class="menu-item"><navigator url="/pages/quiz/quiz">红史问答堂</navigator></view>
  227. <view class="menu-item"><navigator url="/pages/favorites/favorites">我的收藏</navigator></view>
  228. <view class="menu-item"><navigator url="/pages/history/history">浏览历史</navigator></view>
  229. </view>
  230. </view>
  231. </view>