home.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  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. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@icon/ionicons@5.5.1/dist/ionicons/ionicons.min.css">
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  14. }
  15. body {
  16. background-color: #f5f5f5;
  17. color: #333;
  18. padding-bottom: 60px;
  19. }
  20. /* 顶部标题栏 */
  21. .header {
  22. position: fixed;
  23. top: 0;
  24. left: 0;
  25. right: 0;
  26. height: 50px;
  27. background-color: #4a90e2;
  28. color: white;
  29. display: flex;
  30. justify-content: center;
  31. align-items: center;
  32. z-index: 100;
  33. box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  34. }
  35. .header-title {
  36. font-size: 18px;
  37. font-weight: 500;
  38. }
  39. .header-actions {
  40. position: absolute;
  41. right: 15px;
  42. display: flex;
  43. gap: 15px;
  44. }
  45. .header-btn {
  46. background: none;
  47. border: none;
  48. color: white;
  49. font-size: 20px;
  50. cursor: pointer;
  51. padding: 5px;
  52. }
  53. /* 内容区域 */
  54. .content {
  55. margin-top: 60px;
  56. padding: 15px;
  57. margin-bottom: 60px;
  58. }
  59. /* 搜索条 */
  60. .search-bar {
  61. display: flex;
  62. align-items: center;
  63. background-color: white;
  64. border-radius: 25px;
  65. padding: 10px 15px;
  66. margin-bottom: 20px;
  67. box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  68. }
  69. .search-input {
  70. flex: 1;
  71. border: none;
  72. outline: none;
  73. padding: 5px 10px;
  74. font-size: 14px;
  75. }
  76. /* 轮播展示区 */
  77. .carousel-container {
  78. margin-bottom: 20px;
  79. }
  80. .carousel {
  81. display: flex;
  82. overflow-x: auto;
  83. scroll-snap-type: x mandatory;
  84. scroll-behavior: smooth;
  85. -webkit-overflow-scrolling: touch;
  86. margin-bottom: 10px;
  87. border-radius: 15px;
  88. }
  89. .carousel::-webkit-scrollbar {
  90. display: none;
  91. }
  92. .carousel-item {
  93. scroll-snap-align: start;
  94. flex-shrink: 0;
  95. width: 100%;
  96. background-color: white;
  97. border-radius: 15px;
  98. padding: 15px;
  99. box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  100. }
  101. .carousel-indicators {
  102. display: flex;
  103. justify-content: center;
  104. gap: 8px;
  105. }
  106. .carousel-indicator {
  107. width: 8px;
  108. height: 8px;
  109. border-radius: 50%;
  110. background-color: #ccc;
  111. cursor: pointer;
  112. }
  113. .carousel-indicator.active {
  114. background-color: #4a90e2;
  115. }
  116. /* 咨询必读卡片 */
  117. .read-card {
  118. display: flex;
  119. flex-direction: column;
  120. align-items: center;
  121. text-align: center;
  122. margin-bottom: 15px;
  123. }
  124. .read-card-header {
  125. display: flex;
  126. align-items: center;
  127. margin-bottom: 15px;
  128. width: 100%;
  129. }
  130. .read-card-img {
  131. width: 24px;
  132. height: 24px;
  133. border-radius: 4px;
  134. background-color: #4a90e2;
  135. margin-right: 10px;
  136. display: flex;
  137. align-items: center;
  138. justify-content: center;
  139. color: white;
  140. font-size: 12px;
  141. }
  142. .read-card-title {
  143. font-weight: 500;
  144. flex: 1;
  145. text-align: left;
  146. }
  147. .question-grid {
  148. display: grid;
  149. grid-template-columns: 1fr 1fr;
  150. gap: 10px;
  151. width: 100%;
  152. }
  153. .question-btn {
  154. display: flex;
  155. align-items: center;
  156. justify-content: center;
  157. padding: 8px 5px;
  158. background-color: #f0f7ff;
  159. border-radius: 8px;
  160. font-size: 12px;
  161. border: none;
  162. cursor: pointer;
  163. transition: background-color 0.2s;
  164. }
  165. .question-btn:hover {
  166. background-color: #d8e9ff;
  167. }
  168. /* 金刚区 */
  169. .diamond-area {
  170. display: flex;
  171. justify-content: space-between;
  172. margin-bottom: 20px;
  173. background-color: white;
  174. padding: 15px;
  175. border-radius: 15px;
  176. box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  177. }
  178. .diamond-item {
  179. display: flex;
  180. flex-direction: column;
  181. align-items: center;
  182. font-size: 12px;
  183. border: none;
  184. background: none;
  185. cursor: pointer;
  186. padding: 5px;
  187. }
  188. .diamond-icon {
  189. width: 40px;
  190. height: 40px;
  191. background-color: #f0f7ff;
  192. border-radius: 50%;
  193. display: flex;
  194. align-items: center;
  195. justify-content: center;
  196. margin-bottom: 5px;
  197. color: #4a90e2;
  198. transition: all 0.2s;
  199. }
  200. .diamond-item:hover .diamond-icon {
  201. background-color: #d8e9ff;
  202. }
  203. /* 筛选区域 */
  204. .filter-area {
  205. display: flex;
  206. flex-wrap: wrap;
  207. gap: 10px;
  208. margin-bottom: 15px;
  209. }
  210. .filter-item {
  211. position: relative;
  212. flex: 1;
  213. min-width: 0;
  214. }
  215. .filter-select {
  216. width: 100%;
  217. padding: 8px 15px;
  218. border: 1px solid #e0e0e0;
  219. border-radius: 15px;
  220. background-color: white;
  221. appearance: none;
  222. font-size: 12px;
  223. cursor: pointer;
  224. }
  225. .filter-icon {
  226. position: absolute;
  227. right: 10px;
  228. top: 50%;
  229. transform: translateY(-50%);
  230. pointer-events: none;
  231. }
  232. /* 标签区域 */
  233. .tag-area {
  234. display: flex;
  235. justify-content: space-between;
  236. gap: 8px;
  237. padding-bottom: 10px;
  238. margin-bottom: 15px;
  239. }
  240. .tag-btn {
  241. padding: 5px 10px;
  242. background-color: #e0f0ff;
  243. color: #333;
  244. border-radius: 15px;
  245. font-size: 12px;
  246. white-space: nowrap;
  247. border: none;
  248. outline: none;
  249. cursor: pointer;
  250. transition: all 0.2s ease;
  251. }
  252. .tag-btn:hover {
  253. background-color: #cce0ff;
  254. }
  255. .tag-btn.active {
  256. background-color: #4a90e2;
  257. color: white;
  258. }
  259. /* 咨询师列表 */
  260. .counselor-list {
  261. display: flex;
  262. flex-direction: column;
  263. gap: 15px;
  264. }
  265. .counselor-card {
  266. background-color: white;
  267. border-radius: 15px;
  268. padding: 15px;
  269. display: flex;
  270. box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  271. cursor: pointer;
  272. transition: transform 0.2s;
  273. }
  274. .counselor-card:hover {
  275. transform: translateY(-2px);
  276. }
  277. .counselor-avatar {
  278. width: 80px;
  279. height: 80px;
  280. border-radius: 10px;
  281. background-color: #e0e0e0;
  282. margin-right: 15px;
  283. display: flex;
  284. align-items: center;
  285. justify-content: center;
  286. color: #999;
  287. font-size: 12px;
  288. }
  289. .counselor-info {
  290. flex: 1;
  291. }
  292. .counselor-name {
  293. display: flex;
  294. align-items: center;
  295. justify-content: space-between;
  296. margin-bottom: 5px;
  297. }
  298. .counselor-name-container {
  299. display: flex;
  300. align-items: center;
  301. }
  302. .counselor-name-text {
  303. font-weight: 500;
  304. margin-right: 5px;
  305. }
  306. .counselor-level {
  307. font-size: 10px;
  308. color: white;
  309. background-color: #ff9500;
  310. padding: 2px 5px;
  311. border-radius: 3px;
  312. }
  313. .counselor-price {
  314. font-size: 14px;
  315. color: #4a90e2;
  316. font-weight: 500;
  317. }
  318. .counselor-desc {
  319. font-size: 12px;
  320. color: #666;
  321. margin-bottom: 5px;
  322. }
  323. .counselor-specialty {
  324. font-size: 12px;
  325. color: #4a90e2;
  326. margin-bottom: 5px;
  327. }
  328. .counselor-stats {
  329. font-size: 11px;
  330. color: #999;
  331. margin-bottom: 5px;
  332. }
  333. .counselor-review {
  334. font-size: 12px;
  335. color: #666;
  336. padding-top: 5px;
  337. border-top: 1px dashed #eee;
  338. }
  339. /* 底部Tab栏 */
  340. .tab-bar {
  341. position: fixed;
  342. bottom: 0;
  343. left: 0;
  344. right: 0;
  345. height: 60px;
  346. background-color: white;
  347. display: flex;
  348. justify-content: space-around;
  349. align-items: center;
  350. box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
  351. z-index: 100;
  352. }
  353. .tab-item {
  354. display: flex;
  355. flex-direction: column;
  356. align-items: center;
  357. font-size: 12px;
  358. border: none;
  359. background: none;
  360. cursor: pointer;
  361. }
  362. .tab-icon {
  363. font-size: 22px;
  364. margin-bottom: 3px;
  365. color: #666;
  366. }
  367. .tab-item.active .tab-icon {
  368. color: #4a90e2;
  369. }
  370. .tab-item.active .tab-text {
  371. color: #4a90e2;
  372. }
  373. </style>
  374. </head>
  375. <body>
  376. <!-- 顶部标题栏 -->
  377. <div class="header">
  378. <div class="header-title">心语AI</div>
  379. <div class="header-actions">
  380. <button class="header-btn">
  381. <ion-icon name="ellipsis-horizontal"></ion-icon>
  382. </button>
  383. <button class="header-btn">
  384. <ion-icon name="close"></ion-icon>
  385. </button>
  386. </div>
  387. </div>
  388. <!-- 内容区域 -->
  389. <div class="content">
  390. <!-- 搜索条 -->
  391. <div class="search-bar">
  392. <ion-icon name="search" style="font-size: 18px; color: #999;"></ion-icon>
  393. <input type="text" class="search-input" placeholder="此处心安是吾乡">
  394. </div>
  395. <!-- 轮播展示区 -->
  396. <div class="carousel-container">
  397. <div class="carousel">
  398. <div class="carousel-item">
  399. <div style="text-align: center; padding: 20px 0;">
  400. <div style="font-size: 16px; font-weight: 500; margin-bottom: 10px;">优秀的行业大咖展示</div>
  401. <div style="font-size: 12px; color: #666;">专业心理咨询师为您服务</div>
  402. </div>
  403. </div>
  404. <div class="carousel-item">
  405. <div class="read-card">
  406. <div class="read-card-header">
  407. <div class="read-card-img">
  408. <ion-icon name="help-circle" style="font-size: 14px;"></ion-icon>
  409. </div>
  410. <div class="read-card-title">咨询必读问题</div>
  411. </div>
  412. <div class="question-grid">
  413. <button class="question-btn">
  414. <ion-icon name="help-circle" style="margin-right: 5px;"></ion-icon>
  415. 为什么选择心语AI?
  416. </button>
  417. <button class="question-btn">
  418. <ion-icon name="help-circle" style="margin-right: 5px;"></ion-icon>
  419. 我需要心理咨询吗?
  420. </button>
  421. <button class="question-btn">
  422. <ion-icon name="help-circle" style="margin-right: 5px;"></ion-icon>
  423. 如何选择合适的咨询师?
  424. </button>
  425. <button class="question-btn">
  426. <ion-icon name="help-circle" style="margin-right: 5px;"></ion-icon>
  427. 心理咨询的过程是怎样的?
  428. </button>
  429. </div>
  430. </div>
  431. </div>
  432. </div>
  433. <div class="carousel-indicators">
  434. <button class="carousel-indicator active"></button>
  435. <button class="carousel-indicator"></button>
  436. </div>
  437. </div>
  438. <!-- 金刚区 - 改为按钮 -->
  439. <div class="diamond-area">
  440. <button class="diamond-item">
  441. <div class="diamond-icon">
  442. <ion-icon name="nervous"></ion-icon>
  443. </div>
  444. <div>焦虑情绪</div>
  445. </button>
  446. <button class="diamond-item">
  447. <div class="diamond-icon">
  448. <ion-icon name="sad"></ion-icon>
  449. </div>
  450. <div>抑郁情绪</div>
  451. </button>
  452. <button class="diamond-item">
  453. <div class="diamond-icon">
  454. <ion-icon name="heart-dislike"></ion-icon>
  455. </div>
  456. <div>离异/分手</div>
  457. </button>
  458. <button class="diamond-item">
  459. <div class="diamond-icon">
  460. <ion-icon name="person"></ion-icon>
  461. </div>
  462. <div>成长探索</div>
  463. </button>
  464. <button class="diamond-item">
  465. <div class="diamond-icon">
  466. <ion-icon name="home"></ion-icon>
  467. </div>
  468. <div>原生家庭</div>
  469. </button>
  470. </div>
  471. <!-- 心理咨询师列表区域 -->
  472. <div style="background-color: white; border-radius: 15px; padding: 15px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);">
  473. <!-- 筛选区域 -->
  474. <div class="filter-area">
  475. <div class="filter-item">
  476. <select class="filter-select">
  477. <option>城市</option>
  478. </select>
  479. <ion-icon name="chevron-down" class="filter-icon"></ion-icon>
  480. </div>
  481. <div class="filter-item">
  482. <select class="filter-select">
  483. <option>困扰</option>
  484. </select>
  485. <ion-icon name="chevron-down" class="filter-icon"></ion-icon>
  486. </div>
  487. <div class="filter-item">
  488. <select class="filter-select">
  489. <option>价格</option>
  490. </select>
  491. <ion-icon name="chevron-down" class="filter-icon"></ion-icon>
  492. </div>
  493. <div class="filter-item">
  494. <select class="filter-select">
  495. <option>更多</option>
  496. </select>
  497. <ion-icon name="chevron-down" class="filter-icon"></ion-icon>
  498. </div>
  499. <div class="filter-item">
  500. <select class="filter-select">
  501. <option>排序</option>
  502. </select>
  503. <ion-icon name="chevron-down" class="filter-icon"></ion-icon>
  504. </div>
  505. </div>
  506. <!-- 标签按钮区域 -->
  507. <div class="tag-area">
  508. <button class="tag-btn">焦虑抑郁</button>
  509. <button class="tag-btn">成长迷茫</button>
  510. <button class="tag-btn">情感破裂</button>
  511. <button class="tag-btn">好评最多</button>
  512. <button class="tag-btn">LGBTQ</button>
  513. </div>
  514. <!-- 咨询师列表 -->
  515. <div class="counselor-list">
  516. <!-- 咨询师卡片1 -->
  517. <button class="counselor-card">
  518. <div class="counselor-avatar">头像</div>
  519. <div class="counselor-info">
  520. <div class="counselor-name">
  521. <div class="counselor-name-container">
  522. <div class="counselor-name-text">心理咨询师1</div>
  523. <div class="counselor-level">资深</div>
  524. </div>
  525. <div class="counselor-price"></div>
  526. </div>
  527. <div class="counselor-desc">国家二级心理咨询师水准</div>
  528. <div class="counselor-specialty">擅长: 个人成长/亲子冲突/恋爱心理</div>
  529. <div class="counselor-stats">咨询人次: 1245 | 服务时长: 8年</div>
  530. <div class="counselor-review">来访评价: 很有耐心,分析问题很透彻</div>
  531. </div>
  532. </button>
  533. <!-- 咨询师卡片2 -->
  534. <button class="counselor-card">
  535. <div class="counselor-avatar">头像</div>
  536. <div class="counselor-info">
  537. <div class="counselor-name">
  538. <div class="counselor-name-container">
  539. <div class="counselor-name-text">心理咨询师2</div>
  540. <div class="counselor-level">专家</div>
  541. </div>
  542. <div class="counselor-price"></div>
  543. </div>
  544. <div class="counselor-desc">国家一级心理咨询师水准</div>
  545. <div class="counselor-specialty">擅长: 抑郁情绪/焦虑情绪/职场压力</div>
  546. <div class="counselor-stats">咨询人次: 2356 | 服务时长: 12年</div>
  547. <div class="counselor-review">来访评价: 咨询后感觉轻松了很多,找到了方向</div>
  548. </div>
  549. </button>
  550. <!-- 咨询师卡片3 -->
  551. <button class="counselor-card">
  552. <div class="counselor-avatar">头像</div>
  553. <div class="counselor-info">
  554. <div class="counselor-name">
  555. <div class="counselor-name-container">
  556. <div class="counselor-name-text">心理咨询师3</div>
  557. <div class="counselor-level">高级</div>
  558. </div>
  559. <div class="counselor-price"></div>
  560. </div>
  561. <div class="counselor-desc">国家二级心理咨询师水准</div>
  562. <div class="counselor-specialty">擅长: 原生家庭/婚姻关系/亲子教育</div>
  563. <div class="counselor-stats">咨询人次: 987 | 服务时长: 6年</div>
  564. <div class="counselor-review">来访评价: 很专业,给出了很多实用建议</div>
  565. </div>
  566. </button>
  567. <!-- 咨询师卡片4 -->
  568. <button class="counselor-card">
  569. <div class="counselor-avatar">头像</div>
  570. <div class="counselor-info">
  571. <div class="counselor-name">
  572. <div class="counselor-name-container">
  573. <div class="counselor-name-text">心理咨询师4</div>
  574. <div class="counselor-level">资深</div>
  575. </div>
  576. <div class="counselor-price"></div>
  577. </div>
  578. <div class="counselor-desc">国家二级心理咨询师水准</div>
  579. <div class="counselor-specialty">擅长: 青少年心理/学习压力/网络成瘾</div>
  580. <div class="counselor-stats">咨询人次: 1568 | 服务时长: 9年</div>
  581. <div class="counselor-review">来访评价: 孩子很喜欢和其交流,效果明显</div>
  582. </div>
  583. </button>
  584. <!-- 咨询师卡片5 -->
  585. <button class="counselor-card">
  586. <div class="counselor-avatar">头像</div>
  587. <div class="counselor-info">
  588. <div class="counselor-name">
  589. <div class="counselor-name-container">
  590. <div class="counselor-name-text">心理咨询师5</div>
  591. <div class="counselor-level">专家</div>
  592. </div>
  593. <div class="counselor-price"></div>
  594. </div>
  595. <div class="counselor-desc">国家一级心理咨询师水准</div>
  596. <div class="counselor-specialty">擅长: 创伤修复/危机干预/情绪管理</div>
  597. <div class="counselor-stats">咨询人次: 3120 | 服务时长: 15年</div>
  598. <div class="counselor-review">来访评价: 经验丰富,帮助我度过了人生低谷</div>
  599. </div>
  600. </button>
  601. </div>
  602. </div>
  603. </div>
  604. <!-- 底部Tab栏 -->
  605. <div class="tab-bar">
  606. <button class="tab-item active">
  607. <ion-icon name="home" class="tab-icon"></ion-icon>
  608. <div class="tab-text">首页</div>
  609. </button>
  610. <button class="tab-item">
  611. <ion-icon name="search" class="tab-icon"></ion-icon>
  612. <div class="tab-text">发现</div>
  613. </button>
  614. <button class="tab-item">
  615. <ion-icon name="chatbubbles" class="tab-icon"></ion-icon>
  616. <div class="tab-text">消息</div>
  617. </button>
  618. <button class="tab-item">
  619. <ion-icon name="person" class="tab-icon"></ion-icon>
  620. <div class="tab-text">我的</div>
  621. </button>
  622. </div>
  623. <script src="https://cdn.jsdelivr.net/npm/@icon/ionicons@5.5.1/dist/ionicons/ionicons.esm.js" type="module"></script>
  624. <script nomodule src="https://cdn.jsdelivr.net/npm/@icon/ionicons@5.5.1/dist/ionicons/ionicons.js"></script>
  625. <script>
  626. // 轮播图指示器交互
  627. document.addEventListener('DOMContentLoaded', function() {
  628. const carousel = document.querySelector('.carousel');
  629. const indicators = document.querySelectorAll('.carousel-indicator');
  630. carousel.addEventListener('scroll', function() {
  631. const scrollPosition = carousel.scrollLeft;
  632. const itemWidth = carousel.clientWidth;
  633. const activeIndex = Math.round(scrollPosition / itemWidth);
  634. indicators.forEach((indicator, index) => {
  635. if (index === activeIndex) {
  636. indicator.classList.add('active');
  637. } else {
  638. indicator.classList.remove('active');
  639. }
  640. });
  641. });
  642. // 点击指示器滑动到对应卡片
  643. indicators.forEach((indicator, index) => {
  644. indicator.addEventListener('click', function() {
  645. carousel.scrollTo({
  646. left: carousel.clientWidth * index,
  647. behavior: 'smooth'
  648. });
  649. });
  650. });
  651. // 金刚区按钮点击事件
  652. const diamondItems = document.querySelectorAll('.diamond-item');
  653. diamondItems.forEach(item => {
  654. item.addEventListener('click', function() {
  655. console.log('点击了:', this.querySelector('div:last-child').textContent);
  656. });
  657. });
  658. // 标签按钮点击事件
  659. const tagBtns = document.querySelectorAll('.tag-btn');
  660. tagBtns.forEach(btn => {
  661. btn.addEventListener('click', function() {
  662. tagBtns.forEach(b => b.classList.remove('active'));
  663. this.classList.add('active');
  664. console.log('选择了:', this.textContent);
  665. });
  666. });
  667. // 顶部按钮点击事件
  668. const headerBtns = document.querySelectorAll('.header-btn');
  669. headerBtns[0].addEventListener('click', function() {
  670. console.log('点击了更多按钮');
  671. });
  672. headerBtns[1].addEventListener('click', function() {
  673. console.log('点击了关闭按钮');
  674. });
  675. });
  676. </script>
  677. </body>
  678. </html>