Mine.html 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  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>智途 - 我的</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. .profile-card {
  41. --background: linear-gradient(135deg, var(--ion-color-primary), var(--ion-color-secondary));
  42. color: white;
  43. border-radius: var(--ion-card-border-radius);
  44. margin: 16px;
  45. padding: 20px;
  46. position: relative;
  47. overflow: hidden;
  48. }
  49. .profile-card::before {
  50. content: "";
  51. position: absolute;
  52. top: -50px;
  53. right: -50px;
  54. width: 150px;
  55. height: 150px;
  56. background: rgba(255, 255, 255, 0.1);
  57. border-radius: 50%;
  58. }
  59. .profile-content {
  60. position: relative;
  61. z-index: 1;
  62. display: flex;
  63. align-items: center;
  64. }
  65. .user-avatar {
  66. width: 80px;
  67. height: 80px;
  68. border-radius: 50%;
  69. object-fit: cover;
  70. border: 3px solid rgba(255, 255, 255, 0.3);
  71. margin-right: 16px;
  72. }
  73. .user-info {
  74. flex: 1;
  75. }
  76. .user-name {
  77. font-size: 18px;
  78. font-weight: bold;
  79. margin-bottom: 4px;
  80. }
  81. .user-level {
  82. display: flex;
  83. align-items: center;
  84. font-size: 14px;
  85. opacity: 0.9;
  86. }
  87. .level-badge {
  88. background: var(--ion-color-warning);
  89. color: var(--ion-color-dark);
  90. padding: 2px 8px;
  91. border-radius: 12px;
  92. font-size: 12px;
  93. font-weight: bold;
  94. margin-left: 8px;
  95. }
  96. .edit-button {
  97. --background: rgba(255, 255, 255, 0.2);
  98. --color: white;
  99. --border-radius: 20px;
  100. --padding-start: 12px;
  101. --padding-end: 12px;
  102. height: 32px;
  103. font-size: 12px;
  104. }
  105. /* 数据统计卡片 */
  106. .stats-card {
  107. margin: 16px;
  108. border-radius: var(--ion-card-border-radius);
  109. }
  110. .stats-grid {
  111. display: flex;
  112. justify-content: space-between;
  113. padding: 0;
  114. }
  115. .stat-item {
  116. text-align: center;
  117. padding: 16px 8px;
  118. flex: 1;
  119. }
  120. .stat-value {
  121. font-size: 20px;
  122. font-weight: bold;
  123. color: var(--ion-color-primary);
  124. margin-bottom: 4px;
  125. }
  126. .stat-label {
  127. font-size: 12px;
  128. color: var(--ion-color-medium);
  129. }
  130. /* 菜单列表 */
  131. .menu-list {
  132. margin: 16px;
  133. border-radius: var(--ion-card-border-radius);
  134. overflow: hidden;
  135. }
  136. .menu-item {
  137. --padding-start: 16px;
  138. --padding-end: 16px;
  139. --min-height: 56px;
  140. }
  141. .menu-icon {
  142. color: var(--ion-color-primary);
  143. margin-right: 16px;
  144. font-size: 20px;
  145. }
  146. /* 底部标签栏 */
  147. .tab-bar {
  148. --background: #ffffff;
  149. --border: 1px solid rgba(0, 0, 0, 0.05);
  150. box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
  151. }
  152. .tab-button {
  153. --color: var(--ion-color-medium);
  154. --color-selected: var(--ion-color-primary);
  155. }
  156. .tab-button ion-icon {
  157. font-size: 24px;
  158. }
  159. /* 分割线 */
  160. .divider {
  161. height: 1px;
  162. background: rgba(0, 0, 0, 0.05);
  163. margin: 0 16px;
  164. }
  165. </style>
  166. </head>
  167. <body>
  168. <ion-app>
  169. <!-- 顶部工具栏 -->
  170. <ion-header>
  171. <ion-toolbar color="primary">
  172. <ion-title>我的</ion-title>
  173. <ion-buttons slot="end">
  174. <ion-button>
  175. <ion-icon slot="icon-only" name="settings-outline"></ion-icon>
  176. </ion-button>
  177. </ion-buttons>
  178. </ion-toolbar>
  179. </ion-header>
  180. <!-- 主内容区域 -->
  181. <ion-content>
  182. <!-- 用户信息卡片 -->
  183. <ion-card class="profile-card">
  184. <div class="profile-content">
  185. <img src="https://randomuser.me/api/portraits/women/44.jpg" class="user-avatar" alt="用户头像">
  186. <div class="user-info">
  187. <div class="user-name">旅行达人</div>
  188. <div class="user-level">
  189. 黄金会员
  190. <span class="level-badge">Lv.3</span>
  191. </div>
  192. <ion-button class="edit-button" fill="solid" size="small">
  193. <ion-icon slot="start" name="create-outline"></ion-icon>
  194. 编辑资料
  195. </ion-button>
  196. </div>
  197. </div>
  198. </ion-card>
  199. <!-- 数据统计 -->
  200. <ion-card class="stats-card">
  201. <ion-grid class="stats-grid">
  202. <ion-row>
  203. <ion-col>
  204. <div class="stat-item">
  205. <div class="stat-value">128</div>
  206. <div class="stat-label">收藏</div>
  207. </div>
  208. </ion-col>
  209. <ion-col>
  210. <div class="stat-item">
  211. <div class="stat-value">24</div>
  212. <div class="stat-label">足迹</div>
  213. </div>
  214. </ion-col>
  215. <ion-col>
  216. <div class="stat-item">
  217. <div class="stat-value">356</div>
  218. <div class="stat-label">积分</div>
  219. </div>
  220. </ion-col>
  221. </ion-row>
  222. </ion-grid>
  223. </ion-card>
  224. <!-- 功能列表1 -->
  225. <ion-card class="menu-list">
  226. <ion-list lines="none">
  227. <ion-item class="menu-item" button detail="true">
  228. <ion-icon class="menu-icon" name="heart-outline" slot="start"></ion-icon>
  229. <ion-label>我的收藏</ion-label>
  230. </ion-item>
  231. <div class="divider"></div>
  232. <ion-item class="menu-item" button detail="true">
  233. <ion-icon class="menu-icon" name="calendar-outline" slot="start"></ion-icon>
  234. <ion-label>我的行程</ion-label>
  235. </ion-item>
  236. <div class="divider"></div>
  237. <ion-item class="menu-item" button detail="true">
  238. <ion-icon class="menu-icon" name="wallet-outline" slot="start"></ion-icon>
  239. <ion-label>我的订单</ion-label>
  240. </ion-item>
  241. </ion-list>
  242. </ion-card>
  243. <!-- 功能列表2 -->
  244. <ion-card class="menu-list">
  245. <ion-list lines="none">
  246. <ion-item class="menu-item" button detail="true">
  247. <ion-icon class="menu-icon" name="settings-outline" slot="start"></ion-icon>
  248. <ion-label>设置</ion-label>
  249. </ion-item>
  250. <div class="divider"></div>
  251. <ion-item class="menu-item" button detail="true">
  252. <ion-icon class="menu-icon" name="help-circle-outline" slot="start"></ion-icon>
  253. <ion-label>帮助与反馈</ion-label>
  254. </ion-item>
  255. <div class="divider"></div>
  256. <ion-item class="menu-item" button detail="true">
  257. <ion-icon class="menu-icon" name="information-circle-outline" slot="start"></ion-icon>
  258. <ion-label>关于智途</ion-label>
  259. </ion-item>
  260. </ion-list>
  261. </ion-card>
  262. <!-- 退出登录按钮 -->
  263. <ion-button expand="block" fill="clear" color="medium" style="margin: 16px;">
  264. <ion-icon slot="start" name="log-out-outline"></ion-icon>
  265. 退出登录
  266. </ion-button>
  267. </ion-content>
  268. <!-- 底部标签栏 -->
  269. <ion-tabs>
  270. <ion-tab-bar slot="bottom" class="tab-bar">
  271. <ion-tab-button tab="home">
  272. <ion-icon name="home-outline"></ion-icon>
  273. <ion-label>首页</ion-label>
  274. </ion-tab-button>
  275. <ion-tab-button tab="explore">
  276. <ion-icon name="compass-outline"></ion-icon>
  277. <ion-label>发现</ion-label>
  278. </ion-tab-button>
  279. <ion-tab-button tab="saved">
  280. <ion-icon name="bookmark-outline"></ion-icon>
  281. <ion-label>收藏</ion-label>
  282. </ion-tab-button>
  283. <ion-tab-button tab="profile" selected>
  284. <ion-icon name="person-outline"></ion-icon>
  285. <ion-label>我的</ion-label>
  286. </ion-tab-button>
  287. </ion-tab-bar>
  288. </ion-tabs>
  289. </ion-app>
  290. </body>
  291. </html>