home.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>智途 - 您的AI旅行助手</title>
  7. <!-- 引入Ionic核心样式和组件 -->
  8. <script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.esm.js"></script>
  9. <script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core/dist/ionic/ionic.js"></script>
  10. <link href="https://cdn.jsdelivr.net/npm/@ionic/core/css/ionic.bundle.css" rel="stylesheet">
  11. <!-- 引入Material Icons -->
  12. <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  13. <style>
  14. :root {
  15. --ion-color-primary: #428cff;
  16. --ion-color-primary-rgb: 66,140,255;
  17. --ion-color-primary-contrast: #ffffff;
  18. --ion-color-primary-contrast-rgb: 255,255,255;
  19. --ion-color-primary-shade: #3a7be0;
  20. --ion-color-primary-tint: #5598ff;
  21. --ion-color-secondary: #50c8ff;
  22. --ion-color-tertiary: #6a64ff;
  23. --ion-color-success: #2dd36f;
  24. --ion-color-warning: #ffc409;
  25. --ion-color-danger: #eb445a;
  26. --ion-color-dark: #222428;
  27. --ion-color-medium: #92949c;
  28. --ion-color-light: #f4f5f8;
  29. --ion-toolbar-background: var(--ion-color-primary);
  30. --ion-toolbar-color: var(--ion-color-primary-contrast);
  31. --ion-card-background: #ffffff;
  32. --ion-card-border-radius: 16px;
  33. --ion-card-box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  34. }
  35. body {
  36. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  37. background-color: var(--ion-color-light);
  38. }
  39. /* 自定义卡片样式 */
  40. .custom-card {
  41. margin: 16px;
  42. border-radius: var(--ion-card-border-radius);
  43. box-shadow: var(--ion-card-box-shadow);
  44. overflow: hidden;
  45. transition: transform 0.3s ease;
  46. }
  47. .custom-card:active {
  48. transform: scale(0.98);
  49. }
  50. /* 特色按钮样式 */
  51. .feature-button {
  52. --border-radius: 12px;
  53. --padding-top: 16px;
  54. --padding-bottom: 16px;
  55. height: 120px;
  56. display: flex;
  57. flex-direction: column;
  58. justify-content: center;
  59. align-items: center;
  60. }
  61. .feature-button ion-icon {
  62. font-size: 32px;
  63. margin-bottom: 8px;
  64. }
  65. /* 搜索栏样式 */
  66. .search-toolbar {
  67. --background: transparent;
  68. --border-width: 0;
  69. padding: 8px 16px;
  70. }
  71. .search-bar {
  72. --background: #ffffff;
  73. --border-radius: 24px;
  74. --box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  75. padding: 0 16px;
  76. }
  77. /* 景点标签样式 */
  78. .attraction-tag {
  79. display: inline-block;
  80. padding: 4px 8px;
  81. border-radius: 12px;
  82. font-size: 12px;
  83. font-weight: 500;
  84. margin-right: 6px;
  85. margin-bottom: 6px;
  86. background: rgba(var(--ion-color-primary-rgb), 0.1);
  87. color: var(--ion-color-primary);
  88. }
  89. /* 今日推荐样式 */
  90. .today-recommend {
  91. --background: linear-gradient(135deg, #a5d6a7, #81c784);
  92. color: #2e7d32;
  93. padding: 16px;
  94. }
  95. .recommend-item {
  96. display: flex;
  97. justify-content: space-between;
  98. align-items: center;
  99. padding: 8px 0;
  100. border-bottom: 1px solid rgba(46, 125, 50, 0.1);
  101. }
  102. .recommend-item:last-child {
  103. border-bottom: none;
  104. }
  105. /* 图片样式 */
  106. .attraction-image {
  107. width: 100px;
  108. height: 100px;
  109. object-fit: cover;
  110. border-radius: 12px;
  111. }
  112. /* 内容区域 */
  113. .main-content {
  114. --padding-top: 0;
  115. --padding-bottom: 80px;
  116. }
  117. /* 底部标签栏 */
  118. .tab-bar {
  119. --background: #ffffff;
  120. --border: 1px solid rgba(0, 0, 0, 0.05);
  121. box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
  122. }
  123. .tab-button {
  124. --color: var(--ion-color-medium);
  125. --color-selected: var(--ion-color-primary);
  126. }
  127. .tab-button ion-icon {
  128. font-size: 24px;
  129. }
  130. </style>
  131. </head>
  132. <body>
  133. <ion-app>
  134. <!-- 顶部工具栏 -->
  135. <ion-header>
  136. <ion-toolbar color="primary">
  137. <ion-buttons slot="start">
  138. <ion-button>
  139. <ion-icon slot="icon-only" name="location-outline"></ion-icon>
  140. </ion-button>
  141. <ion-title>智途旅行</ion-title>
  142. </ion-buttons>
  143. <ion-buttons slot="end">
  144. <ion-button>
  145. <ion-icon slot="icon-only" name="notifications-outline"></ion-icon>
  146. </ion-button>
  147. <ion-button>
  148. <ion-icon slot="icon-only" name="person-circle-outline"></ion-icon>
  149. </ion-button>
  150. </ion-buttons>
  151. </ion-toolbar>
  152. <!-- 搜索栏 -->
  153. <ion-toolbar class="search-toolbar">
  154. <ion-searchbar class="search-bar" placeholder="搜索目的地、景点或活动..." animated="true" show-cancel-button="focus"></ion-searchbar>
  155. </ion-toolbar>
  156. </ion-header>
  157. <!-- 主内容区域 -->
  158. <ion-content class="main-content">
  159. <!-- 特色功能区域 -->
  160. <ion-grid>
  161. <ion-row>
  162. <ion-col size="4">
  163. <ion-button expand="block" class="feature-button" color="primary">
  164. <ion-icon name="map-outline"></ion-icon>
  165. <ion-label>智能规划</ion-label>
  166. </ion-button>
  167. </ion-col>
  168. <ion-col size="4">
  169. <ion-button expand="block" class="feature-button" color="secondary">
  170. <ion-icon name="compass-outline"></ion-icon>
  171. <ion-label>探索</ion-label>
  172. </ion-button>
  173. </ion-col>
  174. <ion-col size="4">
  175. <ion-button expand="block" class="feature-button" color="tertiary">
  176. <ion-icon name="restaurant-outline"></ion-icon>
  177. <ion-label>美食</ion-label>
  178. </ion-button>
  179. </ion-col>
  180. </ion-row>
  181. </ion-grid>
  182. <!-- 今日推荐 -->
  183. <ion-card class="today-recommend">
  184. <ion-card-header>
  185. <ion-card-title>今日推荐</ion-card-title>
  186. </ion-card-header>
  187. <ion-card-content>
  188. <div class="recommend-item">
  189. <ion-label>杭州西湖三日游攻略</ion-label>
  190. <ion-icon name="chevron-forward-outline"></ion-icon>
  191. </div>
  192. <div class="recommend-item">
  193. <ion-label>黄山最佳观日出地点</ion-label>
  194. <ion-icon name="chevron-forward-outline"></ion-icon>
  195. </div>
  196. </ion-card-content>
  197. </ion-card>
  198. <!-- 热门景点 -->
  199. <ion-card>
  200. <ion-card-header>
  201. <ion-card-title>热门景点</ion-card-title>
  202. <ion-button fill="clear" size="small">查看全部</ion-button>
  203. </ion-card-header>
  204. <ion-card-content>
  205. <!-- 景点1 -->
  206. <ion-item lines="none">
  207. <ion-thumbnail slot="start">
  208. <img class="attraction-image" src="https://picsum.photos/200/200?random=1" alt="故宫">
  209. </ion-thumbnail>
  210. <ion-label>
  211. <h3>故宫博物院</h3>
  212. <p>
  213. <ion-icon name="location-outline"></ion-icon>
  214. 北京 · 东城区
  215. </p>
  216. <p>
  217. <ion-icon name="ticket-outline"></ion-icon>
  218. ¥60
  219. </p>
  220. <div>
  221. <span class="attraction-tag">世界遗产</span>
  222. <span class="attraction-tag">5A景区</span>
  223. <span class="attraction-tag">历史建筑</span>
  224. </div>
  225. </ion-label>
  226. </ion-item>
  227. <!-- 景点2 -->
  228. <ion-item lines="none">
  229. <ion-thumbnail slot="start">
  230. <img class="attraction-image" src="https://picsum.photos/200/200?random=2" alt="西湖">
  231. </ion-thumbnail>
  232. <ion-label>
  233. <h3>西湖风景区</h3>
  234. <p>
  235. <ion-icon name="location-outline"></ion-icon>
  236. 杭州 · 西湖区
  237. </p>
  238. <p>
  239. <ion-icon name="ticket-outline"></ion-icon>
  240. 免费
  241. </p>
  242. <div>
  243. <span class="attraction-tag">世界遗产</span>
  244. <span class="attraction-tag">5A景区</span>
  245. <span class="attraction-tag">湖泊</span>
  246. </div>
  247. </ion-label>
  248. </ion-item>
  249. <!-- 景点3 -->
  250. <ion-item lines="none">
  251. <ion-thumbnail slot="start">
  252. <img class="attraction-image" src="https://picsum.photos/200/200?random=3" alt="黄山">
  253. </ion-thumbnail>
  254. <ion-label>
  255. <h3>黄山风景区</h3>
  256. <p>
  257. <ion-icon name="location-outline"></ion-icon>
  258. 黄山 · 黄山区
  259. </p>
  260. <p>
  261. <ion-icon name="ticket-outline"></ion-icon>
  262. ¥190
  263. </p>
  264. <div>
  265. <span class="attraction-tag">世界遗产</span>
  266. <span class="attraction-tag">5A景区</span>
  267. <span class="attraction-tag">登山</span>
  268. </div>
  269. </ion-label>
  270. </ion-item>
  271. </ion-card-content>
  272. </ion-card>
  273. <!-- AI旅行助手 -->
  274. <ion-card>
  275. <ion-card-header>
  276. <ion-card-title>AI旅行助手</ion-card-title>
  277. </ion-card-header>
  278. <ion-card-content>
  279. <ion-button expand="block" color="primary" shape="round">
  280. <ion-icon slot="start" name="sparkles"></ion-icon>
  281. 生成个性化行程
  282. </ion-button>
  283. </ion-card-content>
  284. </ion-card>
  285. </ion-content>
  286. <!-- 底部标签栏 -->
  287. <ion-tabs>
  288. <ion-tab-bar slot="bottom" class="tab-bar">
  289. <ion-tab-button tab="home" selected>
  290. <ion-icon name="home-outline"></ion-icon>
  291. <ion-label>首页</ion-label>
  292. </ion-tab-button>
  293. <ion-tab-button tab="explore">
  294. <ion-icon name="compass-outline"></ion-icon>
  295. <ion-label>发现</ion-label>
  296. </ion-tab-button>
  297. <ion-tab-button tab="saved">
  298. <ion-icon name="bookmark-outline"></ion-icon>
  299. <ion-label>收藏</ion-label>
  300. </ion-tab-button>
  301. <ion-tab-button tab="profile">
  302. <ion-icon name="person-outline"></ion-icon>
  303. <ion-label>我的</ion-label>
  304. </ion-tab-button>
  305. </ion-tab-bar>
  306. </ion-tabs>
  307. </ion-app>
  308. </body>
  309. </html>