first.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068
  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://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  8. <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
  9. <style>
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  15. }
  16. :root {
  17. --primary-blue: #2563eb;
  18. --accent-teal: #0d9488;
  19. --accent-purple: #7b4bff;
  20. --light-gray: #f3f4f6;
  21. --text-dark: #1f2937;
  22. --text-light: #6b7280;
  23. --card-bg: #ffffff;
  24. --border-color: #e5e7eb;
  25. --transition: all 0.3s ease;
  26. --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05);
  27. --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  28. --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);
  29. }
  30. body {
  31. background-color: #ffffff;
  32. color: var(--text-dark);
  33. min-height: 100vh;
  34. padding: 20px 16px 40px;
  35. position: relative;
  36. overflow-x: hidden;
  37. }
  38. /* 头部导航 */
  39. .header {
  40. display: flex;
  41. justify-content: space-between;
  42. align-items: center;
  43. padding: 12px 0 20px;
  44. margin-bottom: 10px;
  45. position: relative;
  46. }
  47. .logo {
  48. display: flex;
  49. align-items: center;
  50. gap: 12px;
  51. }
  52. .logo-icon {
  53. width: 40px;
  54. height: 40px;
  55. background: linear-gradient(135deg, var(--primary-blue), #3b82f6);
  56. border-radius: 12px;
  57. display: flex;
  58. align-items: center;
  59. justify-content: center;
  60. box-shadow: var(--shadow-sm);
  61. }
  62. .logo-icon i {
  63. font-size: 20px;
  64. color: white;
  65. }
  66. .logo-text {
  67. font-size: 22px;
  68. font-weight: 700;
  69. color: var(--text-dark);
  70. letter-spacing: -0.5px;
  71. }
  72. .logo-subtext {
  73. font-size: 12px;
  74. color: var(--primary-blue);
  75. font-weight: 500;
  76. margin-top: -5px;
  77. letter-spacing: 0.5px;
  78. }
  79. .user-actions {
  80. display: flex;
  81. gap: 16px;
  82. }
  83. .action-btn {
  84. background: var(--light-gray);
  85. border-radius: 10px;
  86. width: 40px;
  87. height: 40px;
  88. display: flex;
  89. align-items: center;
  90. justify-content: center;
  91. color: var(--text-dark);
  92. font-size: 18px;
  93. cursor: pointer;
  94. transition: var(--transition);
  95. border: 1px solid var(--border-color);
  96. position: relative;
  97. }
  98. .action-btn:hover {
  99. background: #e5e7eb;
  100. transform: translateY(-2px);
  101. box-shadow: var(--shadow-sm);
  102. }
  103. .badge {
  104. position: absolute;
  105. top: -5px;
  106. right: -5px;
  107. width: 20px;
  108. height: 20px;
  109. background: #ef4444;
  110. color: white;
  111. border-radius: 50%;
  112. display: flex;
  113. align-items: center;
  114. justify-content: center;
  115. font-size: 11px;
  116. font-weight: 600;
  117. }
  118. /* 欢迎区域 */
  119. .welcome-section {
  120. margin: 15px 0 25px;
  121. padding: 0 5px;
  122. text-align: center;
  123. }
  124. .greeting {
  125. font-size: 26px;
  126. font-weight: 700;
  127. margin-bottom: 8px;
  128. line-height: 1.3;
  129. }
  130. .greeting span {
  131. color: var(--primary-blue);
  132. position: relative;
  133. }
  134. .greeting span::after {
  135. content: '';
  136. position: absolute;
  137. bottom: 2px;
  138. left: 0;
  139. width: 100%;
  140. height: 6px;
  141. background: rgba(37, 99, 235, 0.15);
  142. border-radius: 3px;
  143. z-index: -1;
  144. }
  145. .motivational-text {
  146. font-size: 18px;
  147. color: var(--primary-blue);
  148. font-weight: 600;
  149. line-height: 1.6;
  150. max-width: 90%;
  151. margin: 20px auto;
  152. padding: 15px;
  153. border-radius: 16px;
  154. background: rgba(37, 99, 235, 0.05);
  155. border-left: 4px solid var(--primary-blue);
  156. position: relative;
  157. }
  158. .motivational-text::before {
  159. content: """;
  160. position: absolute;
  161. top: -15px;
  162. left: 10px;
  163. font-size: 60px;
  164. color: rgba(37, 99, 235, 0.1);
  165. font-family: Georgia, serif;
  166. }
  167. /* 功能卡片网格 */
  168. .features-grid {
  169. display: grid;
  170. grid-template-columns: repeat(2, 1fr);
  171. gap: 18px;
  172. margin-top: 25px;
  173. }
  174. .feature-card {
  175. background: var(--card-bg);
  176. border-radius: 20px;
  177. padding: 25px 20px;
  178. position: relative;
  179. overflow: hidden;
  180. transition: var(--transition);
  181. border: 1px solid var(--border-color);
  182. box-shadow: var(--shadow-md);
  183. cursor: pointer;
  184. height: 180px;
  185. display: flex;
  186. flex-direction: column;
  187. }
  188. .feature-card:hover {
  189. transform: translateY(-5px);
  190. box-shadow: var(--shadow-lg);
  191. border-color: #d1d5db;
  192. }
  193. .card-icon {
  194. width: 50px;
  195. height: 50px;
  196. background: var(--light-gray);
  197. border-radius: 14px;
  198. display: flex;
  199. align-items: center;
  200. justify-content: center;
  201. margin-bottom: 18px;
  202. font-size: 22px;
  203. color: var(--primary-blue);
  204. }
  205. .card-title {
  206. font-size: 18px;
  207. font-weight: 600;
  208. margin-bottom: 8px;
  209. color: var(--text-dark);
  210. }
  211. .card-desc {
  212. font-size: 14px;
  213. color: var(--text-light);
  214. line-height: 1.5;
  215. flex-grow: 1;
  216. }
  217. .card-stats {
  218. display: flex;
  219. justify-content: space-between;
  220. margin-top: 15px;
  221. font-size: 12px;
  222. color: var(--primary-blue);
  223. font-weight: 500;
  224. }
  225. /* 数据统计卡片 */
  226. .stats-card {
  227. background: var(--card-bg);
  228. border-radius: 20px;
  229. padding: 20px;
  230. margin: 25px 0 15px;
  231. border: 1px solid var(--border-color);
  232. box-shadow: var(--shadow-sm);
  233. position: relative;
  234. overflow: hidden;
  235. }
  236. .stats-card::before {
  237. content: '';
  238. position: absolute;
  239. top: 0;
  240. left: 0;
  241. right: 0;
  242. height: 4px;
  243. background: linear-gradient(90deg, var(--primary-blue), #0d9488);
  244. }
  245. .stats-header {
  246. display: flex;
  247. justify-content: space-between;
  248. align-items: center;
  249. margin-bottom: 20px;
  250. }
  251. .stats-title {
  252. font-size: 18px;
  253. font-weight: 600;
  254. color: var(--text-dark);
  255. }
  256. .stats-container {
  257. display: grid;
  258. grid-template-columns: repeat(3, 1fr);
  259. gap: 15px;
  260. }
  261. .stat-item {
  262. text-align: center;
  263. padding: 10px;
  264. background: var(--light-gray);
  265. border-radius: 14px;
  266. transition: var(--transition);
  267. }
  268. .stat-item:hover {
  269. transform: translateY(-3px);
  270. box-shadow: var(--shadow-sm);
  271. }
  272. .stat-value {
  273. font-size: 22px;
  274. font-weight: 700;
  275. color: var(--primary-blue);
  276. margin-bottom: 5px;
  277. }
  278. .stat-label {
  279. font-size: 13px;
  280. color: var(--text-light);
  281. }
  282. /* 激励区域 */
  283. .inspiration-section {
  284. background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
  285. border-radius: 20px;
  286. padding: 25px;
  287. margin: 30px 0;
  288. text-align: center;
  289. border: 1px solid #dbeafe;
  290. position: relative;
  291. overflow: hidden;
  292. }
  293. .inspiration-title {
  294. font-size: 22px;
  295. font-weight: 700;
  296. color: var(--primary-blue);
  297. margin-bottom: 15px;
  298. }
  299. .inspiration-content {
  300. font-size: 16px;
  301. color: var(--text-dark);
  302. line-height: 1.7;
  303. max-width: 600px;
  304. margin: 0 auto;
  305. }
  306. .inspiration-icon {
  307. position: absolute;
  308. top: 20px;
  309. right: 20px;
  310. font-size: 60px;
  311. color: rgba(37, 99, 235, 0.1);
  312. }
  313. /* 消息弹窗 */
  314. .popup-overlay {
  315. position: fixed;
  316. top: 0;
  317. left: 0;
  318. right: 0;
  319. bottom: 0;
  320. background: rgba(0, 0, 0, 0.5);
  321. backdrop-filter: blur(5px);
  322. display: flex;
  323. justify-content: center;
  324. align-items: center;
  325. z-index: 1000;
  326. opacity: 0;
  327. visibility: hidden;
  328. transition: var(--transition);
  329. }
  330. .popup-overlay.active {
  331. opacity: 1;
  332. visibility: visible;
  333. }
  334. .message-popup {
  335. background: white;
  336. border-radius: 20px;
  337. width: 90%;
  338. max-width: 400px;
  339. max-height: 80vh;
  340. overflow: hidden;
  341. box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2);
  342. transform: translateY(20px);
  343. transition: transform 0.4s ease;
  344. }
  345. .popup-overlay.active .message-popup {
  346. transform: translateY(0);
  347. }
  348. .popup-header {
  349. padding: 20px;
  350. background: var(--primary-blue);
  351. color: white;
  352. display: flex;
  353. justify-content: space-between;
  354. align-items: center;
  355. }
  356. .popup-title {
  357. font-size: 20px;
  358. font-weight: 600;
  359. }
  360. .close-btn {
  361. background: rgba(255, 255, 255, 0.2);
  362. width: 36px;
  363. height: 36px;
  364. border-radius: 50%;
  365. display: flex;
  366. align-items: center;
  367. justify-content: center;
  368. cursor: pointer;
  369. transition: var(--transition);
  370. }
  371. .close-btn:hover {
  372. background: rgba(255, 255, 255, 0.3);
  373. transform: rotate(90deg);
  374. }
  375. .popup-content {
  376. padding: 0;
  377. max-height: 60vh;
  378. overflow-y: auto;
  379. }
  380. .message-list {
  381. list-style: none;
  382. }
  383. .message-item {
  384. padding: 18px 20px;
  385. border-bottom: 1px solid var(--border-color);
  386. cursor: pointer;
  387. transition: var(--transition);
  388. }
  389. .message-item:hover {
  390. background: var(--light-gray);
  391. }
  392. .message-item.unread {
  393. background: rgba(37, 99, 235, 0.05);
  394. }
  395. .message-title {
  396. font-weight: 600;
  397. margin-bottom: 5px;
  398. display: flex;
  399. align-items: center;
  400. }
  401. .message-title .unread-badge {
  402. width: 8px;
  403. height: 8px;
  404. background: var(--primary-blue);
  405. border-radius: 50%;
  406. margin-right: 10px;
  407. }
  408. .message-preview {
  409. color: var(--text-light);
  410. font-size: 14px;
  411. line-height: 1.5;
  412. display: -webkit-box;
  413. -webkit-line-clamp: 2;
  414. -webkit-box-orient: vertical;
  415. overflow: hidden;
  416. }
  417. .message-time {
  418. font-size: 12px;
  419. color: var(--text-light);
  420. margin-top: 8px;
  421. text-align: right;
  422. }
  423. /* 个人中心弹窗 */
  424. .profile-popup {
  425. background: white;
  426. border-radius: 20px;
  427. width: 90%;
  428. max-width: 400px;
  429. max-height: 90vh;
  430. overflow: hidden;
  431. box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2);
  432. transform: translateY(20px);
  433. transition: transform 0.4s ease;
  434. }
  435. .popup-overlay.active .profile-popup {
  436. transform: translateY(0);
  437. }
  438. .user-info {
  439. padding: 30px 20px;
  440. background: linear-gradient(135deg, var(--primary-blue), #3b82f6);
  441. color: white;
  442. text-align: center;
  443. position: relative;
  444. }
  445. .user-avatar {
  446. width: 80px;
  447. height: 80px;
  448. border-radius: 50%;
  449. background: white;
  450. margin: 0 auto 15px;
  451. display: flex;
  452. align-items: center;
  453. justify-content: center;
  454. font-size: 36px;
  455. color: var(--primary-blue);
  456. border: 3px solid white;
  457. box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  458. }
  459. .user-name {
  460. font-size: 22px;
  461. font-weight: 700;
  462. margin-bottom: 5px;
  463. }
  464. .user-role {
  465. font-size: 14px;
  466. background: rgba(255, 255, 255, 0.2);
  467. padding: 4px 12px;
  468. border-radius: 20px;
  469. display: inline-block;
  470. }
  471. .training-section {
  472. padding: 20px;
  473. }
  474. .section-title {
  475. font-size: 18px;
  476. font-weight: 600;
  477. margin-bottom: 20px;
  478. padding-bottom: 10px;
  479. border-bottom: 2px solid var(--light-gray);
  480. display: flex;
  481. justify-content: space-between;
  482. align-items: center;
  483. }
  484. .training-list {
  485. list-style: none;
  486. }
  487. .training-item {
  488. padding: 15px;
  489. border-radius: 14px;
  490. border: 1px solid var(--border-color);
  491. margin-bottom: 15px;
  492. transition: var(--transition);
  493. cursor: pointer;
  494. }
  495. .training-item:hover {
  496. transform: translateY(-3px);
  497. box-shadow: var(--shadow-md);
  498. border-color: var(--primary-blue);
  499. }
  500. .training-header {
  501. display: flex;
  502. justify-content: space-between;
  503. margin-bottom: 10px;
  504. }
  505. .training-title {
  506. font-weight: 600;
  507. color: var(--text-dark);
  508. }
  509. .training-date {
  510. font-size: 12px;
  511. color: var(--text-light);
  512. }
  513. .training-stats {
  514. display: flex;
  515. justify-content: space-between;
  516. font-size: 14px;
  517. color: var(--text-light);
  518. }
  519. .training-score {
  520. color: var(--primary-blue);
  521. font-weight: 600;
  522. }
  523. .progress-bar {
  524. height: 6px;
  525. background: var(--light-gray);
  526. border-radius: 3px;
  527. margin-top: 10px;
  528. overflow: hidden;
  529. }
  530. .progress-fill {
  531. height: 100%;
  532. background: var(--primary-blue);
  533. border-radius: 3px;
  534. width: 75%; /* 示例值 */
  535. }
  536. /* 功能区颜色 */
  537. .feature-card:nth-child(1) .card-icon {
  538. color: #0d9488;
  539. background: rgba(13, 148, 136, 0.1);
  540. }
  541. .feature-card:nth-child(1):hover .card-icon {
  542. background: rgba(13, 148, 136, 0.15);
  543. }
  544. .feature-card:nth-child(2) .card-icon {
  545. color: #7b4bff;
  546. background: rgba(123, 75, 255, 0.1);
  547. }
  548. .feature-card:nth-child(2):hover .card-icon {
  549. background: rgba(123, 75, 255, 0.15);
  550. }
  551. .feature-card:nth-child(3) .card-icon {
  552. color: #ec4899;
  553. background: rgba(236, 72, 153, 0.1);
  554. }
  555. .feature-card:nth-child(3):hover .card-icon {
  556. background: rgba(236, 72, 153, 0.15);
  557. }
  558. .feature-card:nth-child(4) .card-icon {
  559. color: #f59e0b;
  560. background: rgba(245, 158, 11, 0.1);
  561. }
  562. .feature-card:nth-child(4):hover .card-icon {
  563. background: rgba(245, 158, 11, 0.15);
  564. }
  565. /* 微交互效果 */
  566. .feature-card:hover .card-icon {
  567. transform: rotate(5deg) scale(1.1);
  568. transition: transform 0.3s ease;
  569. background: rgba(37, 99, 235, 0.1);
  570. }
  571. .pulse {
  572. position: absolute;
  573. top: 10px;
  574. right: 10px;
  575. width: 8px;
  576. height: 8px;
  577. background: #ef4444;
  578. border-radius: 50%;
  579. }
  580. /* 响应式设计 */
  581. @media (max-width: 480px) {
  582. .features-grid {
  583. gap: 15px;
  584. }
  585. .feature-card {
  586. padding: 20px 16px;
  587. height: 170px;
  588. }
  589. .card-icon {
  590. width: 45px;
  591. height: 45px;
  592. font-size: 20px;
  593. }
  594. .card-title {
  595. font-size: 17px;
  596. }
  597. .card-desc {
  598. font-size: 13px;
  599. }
  600. .greeting {
  601. font-size: 24px;
  602. }
  603. .stats-card {
  604. padding: 18px;
  605. }
  606. .stat-value {
  607. font-size: 20px;
  608. }
  609. .motivational-text {
  610. font-size: 16px;
  611. padding: 12px;
  612. }
  613. }
  614. </style>
  615. </head>
  616. <body>
  617. <!-- 头部导航 -->
  618. <div class="header">
  619. <div class="logo">
  620. <div class="logo-icon">
  621. <i class="fas fa-brain"></i>
  622. </div>
  623. <div>
  624. <div class="logo-text">AI实验室</div>
  625. <div class="logo-subtext">酒店销售智能平台</div>
  626. </div>
  627. </div>
  628. <div class="user-actions">
  629. <div class="action-btn" id="message-btn">
  630. <i class="fas fa-bell"></i>
  631. <div class="badge">3</div>
  632. </div>
  633. <div class="action-btn" id="profile-btn">
  634. <i class="fas fa-user"></i>
  635. </div>
  636. </div>
  637. </div>
  638. <!-- 欢迎区域 -->
  639. <div class="welcome-section">
  640. <h1 class="greeting">你好,<span>销售精英</span> 👋</h1>
  641. <div class="motivational-text">
  642. 每一次对话都是展现专业的机会,每一次练习都在提升成功的概率!今天,让AI成为您最强大的销售伙伴
  643. </div>
  644. </div>
  645. <!-- 激励区域 -->
  646. <div class="inspiration-section">
  647. <div class="inspiration-icon">
  648. <i class="fas fa-bullhorn"></i>
  649. </div>
  650. <h2 class="inspiration-title">今日激励</h2>
  651. <p class="inspiration-content">
  652. 卓越的销售不是天生的,而是通过每一次精心准备的对话和持续训练铸就的。您今天的努力,将成就明天签约的喜悦!
  653. </p>
  654. </div>
  655. <!-- 数据统计卡片 -->
  656. <div class="stats-card">
  657. <div class="stats-header">
  658. <div class="stats-title">团队今日战绩</div>
  659. <div class="action-btn">
  660. <i class="fas fa-arrow-right"></i>
  661. </div>
  662. </div>
  663. <div class="stats-container">
  664. <div class="stat-item">
  665. <div class="stat-value">42</div>
  666. <div class="stat-label">陪练次数</div>
  667. </div>
  668. <div class="stat-item">
  669. <div class="stat-value">28</div>
  670. <div class="stat-label">策略生成</div>
  671. </div>
  672. <div class="stat-item">
  673. <div class="stat-value">96%</div>
  674. <div class="stat-label">满意度</div>
  675. </div>
  676. </div>
  677. </div>
  678. <!-- 功能卡片网格 -->
  679. <div class="features-grid">
  680. <!-- 虚拟陪练 -->
  681. <div class="feature-card">
  682. <div class="pulse"></div>
  683. <div class="card-icon">
  684. <i class="fas fa-robot"></i>
  685. </div>
  686. <h3 class="card-title">虚拟陪练</h3>
  687. <p class="card-desc">与AI客户进行真实销售对话练习,提升沟通技巧</p>
  688. <div class="card-stats">
  689. <span><i class="fas fa-history"></i> 12次练习</span>
  690. <span>85%得分</span>
  691. </div>
  692. </div>
  693. <!-- 话术决策 -->
  694. <div class="feature-card">
  695. <div class="card-icon">
  696. <i class="fas fa-comments"></i>
  697. </div>
  698. <h3 class="card-title">话术决策</h3>
  699. <p class="card-desc">智能生成最佳沟通策略,应对各种销售场景</p>
  700. <div class="card-stats">
  701. <span><i class="fas fa-star"></i> 8个策略</span>
  702. <span>92%有效</span>
  703. </div>
  704. </div>
  705. <!-- 数据训练 -->
  706. <div class="feature-card">
  707. <div class="card-icon">
  708. <i class="fas fa-database"></i>
  709. </div>
  710. <h3 class="card-title">数据训练</h3>
  711. <p class="card-desc">上传销售数据训练AI模型,优化决策能力</p>
  712. <div class="card-stats">
  713. <span><i class="fas fa-chart-line"></i> 3.2TB</span>
  714. <span>98%准确</span>
  715. </div>
  716. </div>
  717. <!-- 客户画像 -->
  718. <div class="feature-card">
  719. <div class="card-icon">
  720. <i class="fas fa-user-tie"></i>
  721. </div>
  722. <h3 class="card-title">客户画像</h3>
  723. <p class="card-desc">生成详细客户分析报告,洞察客户需求</p>
  724. <div class="card-stats">
  725. <span><i class="fas fa-file-alt"></i> 24份</span>
  726. <span>更新中</span>
  727. </div>
  728. </div>
  729. </div>
  730. <!-- 激励话语 -->
  731. <div class="inspiration-section" style="margin-top: 30px;">
  732. <h2 class="inspiration-title">成功源于持续精进</h2>
  733. <p class="inspiration-content">
  734. 您已经完成了<span style="color: var(--primary-blue); font-weight: 600;">12次</span>虚拟陪练,
  735. 击败了<span style="color: var(--primary-blue); font-weight: 600;">86%</span>的同级销售。
  736. 继续保持,下一个销售冠军就是您!
  737. </p>
  738. </div>
  739. <!-- 消息提醒弹窗 -->
  740. <div class="popup-overlay" id="message-popup">
  741. <div class="message-popup">
  742. <div class="popup-header">
  743. <div class="popup-title">消息提醒</div>
  744. <div class="close-btn" id="close-message">
  745. <i class="fas fa-times"></i>
  746. </div>
  747. </div>
  748. <div class="popup-content">
  749. <ul class="message-list">
  750. <li class="message-item unread">
  751. <div class="message-title">
  752. <span class="unread-badge"></span>
  753. 新的陪练挑战
  754. </div>
  755. <div class="message-preview">
  756. 您有一个新的虚拟陪练挑战等待完成,主题:高端客户价格谈判
  757. </div>
  758. <div class="message-time">10分钟前</div>
  759. </li>
  760. <li class="message-item unread">
  761. <div class="message-title">
  762. <span class="unread-badge"></span>
  763. 话术策略更新
  764. </div>
  765. <div class="message-preview">
  766. 您收藏的"投诉处理"话术策略已更新至3.2版本
  767. </div>
  768. <div class="message-time">1小时前</div>
  769. </li>
  770. <li class="message-item">
  771. <div class="message-title">
  772. 陪练成绩通知
  773. </div>
  774. <div class="message-preview">
  775. 您最近的虚拟陪练成绩为92分,超过89%的销售同事
  776. </div>
  777. <div class="message-time">昨天</div>
  778. </li>
  779. <li class="message-item">
  780. <div class="message-title">
  781. 团队周报
  782. </div>
  783. <div class="message-preview">
  784. 本周团队陪练报告已生成,点击查看详细分析
  785. </div>
  786. <div class="message-time">2天前</div>
  787. </li>
  788. <li class="message-item">
  789. <div class="message-title">
  790. 系统维护通知
  791. </div>
  792. <div class="message-preview">
  793. 系统将于本周六凌晨2:00-4:00进行维护升级
  794. </div>
  795. <div class="message-time">3天前</div>
  796. </li>
  797. </ul>
  798. </div>
  799. </div>
  800. </div>
  801. <!-- 个人中心弹窗 -->
  802. <div class="popup-overlay" id="profile-popup">
  803. <div class="profile-popup">
  804. <div class="user-info">
  805. <div class="close-btn" id="close-profile">
  806. <i class="fas fa-times"></i>
  807. </div>
  808. <div class="user-avatar">
  809. <i class="fas fa-user"></i>
  810. </div>
  811. <div class="user-name">张明</div>
  812. <div class="user-role">高级销售经理</div>
  813. </div>
  814. <div class="training-section">
  815. <div class="section-title">
  816. <span>我的训练记录</span>
  817. <span>总计: 12次</span>
  818. </div>
  819. <ul class="training-list">
  820. <li class="training-item">
  821. <div class="training-header">
  822. <div class="training-title">高端客户价格谈判</div>
  823. <div class="training-date">2023-10-15</div>
  824. </div>
  825. <div class="training-stats">
  826. <div>难度: <span class="training-score">⭐⭐⭐</span></div>
  827. <div>得分: <span class="training-score">92分</span></div>
  828. </div>
  829. <div class="progress-bar">
  830. <div class="progress-fill" style="width: 92%"></div>
  831. </div>
  832. </li>
  833. <li class="training-item">
  834. <div class="training-header">
  835. <div class="training-title">首次接触技巧</div>
  836. <div class="training-date">2023-10-12</div>
  837. </div>
  838. <div class="training-stats">
  839. <div>难度: <span class="training-score">⭐⭐</span></div>
  840. <div>得分: <span class="training-score">85分</span></div>
  841. </div>
  842. <div class="progress-bar">
  843. <div class="progress-fill" style="width: 85%"></div>
  844. </div>
  845. </li>
  846. <li class="training-item">
  847. <div class="training-header">
  848. <div class="training-title">投诉处理模拟</div>
  849. <div class="training-date">2023-10-08</div>
  850. </div>
  851. <div class="training-stats">
  852. <div>难度: <span class="training-score">⭐⭐⭐</span></div>
  853. <div>得分: <span class="training-score">88分</span></div>
  854. </div>
  855. <div class="progress-bar">
  856. <div class="progress-fill" style="width: 88%"></div>
  857. </div>
  858. </li>
  859. <li class="training-item">
  860. <div class="training-header">
  861. <div class="training-title">长期合作谈判</div>
  862. <div class="training-date">2023-10-02</div>
  863. </div>
  864. <div class="training-stats">
  865. <div>难度: <span class="training-score">⭐⭐⭐⭐</span></div>
  866. <div>得分: <span class="training-score">78分</span></div>
  867. </div>
  868. <div class="progress-bar">
  869. <div class="progress-fill" style="width: 78%"></div>
  870. </div>
  871. </li>
  872. </ul>
  873. </div>
  874. </div>
  875. </div>
  876. <script>
  877. // 获取DOM元素
  878. const messageBtn = document.getElementById('message-btn');
  879. const profileBtn = document.getElementById('profile-btn');
  880. const messagePopup = document.getElementById('message-popup');
  881. const profilePopup = document.getElementById('profile-popup');
  882. const closeMessage = document.getElementById('close-message');
  883. const closeProfile = document.getElementById('close-profile');
  884. // 消息弹窗控制
  885. messageBtn.addEventListener('click', () => {
  886. messagePopup.classList.add('active');
  887. });
  888. closeMessage.addEventListener('click', () => {
  889. messagePopup.classList.remove('active');
  890. });
  891. // 个人中心弹窗控制
  892. profileBtn.addEventListener('click', () => {
  893. profilePopup.classList.add('active');
  894. });
  895. closeProfile.addEventListener('click', () => {
  896. profilePopup.classList.remove('active');
  897. });
  898. // 点击弹窗外部关闭
  899. [messagePopup, profilePopup].forEach(popup => {
  900. popup.addEventListener('click', (e) => {
  901. if (e.target === popup) {
  902. popup.classList.remove('active');
  903. }
  904. });
  905. });
  906. // 卡片悬停效果增强
  907. document.querySelectorAll('.feature-card').forEach(card => {
  908. card.addEventListener('mouseenter', () => {
  909. card.style.transform = 'translateY(-8px)';
  910. card.style.boxShadow = '0 15px 30px rgba(0, 0, 0, 0.12)';
  911. });
  912. card.addEventListener('mouseleave', () => {
  913. card.style.transform = 'translateY(0)';
  914. card.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.08)';
  915. });
  916. card.addEventListener('click', () => {
  917. card.style.transform = 'scale(0.97)';
  918. setTimeout(() => {
  919. card.style.transform = '';
  920. // 实际项目中这里会有页面跳转逻辑
  921. alert('进入' + card.querySelector('.card-title').textContent + '功能');
  922. }, 200);
  923. });
  924. });
  925. // 模拟数据更新
  926. setInterval(() => {
  927. const stats = document.querySelectorAll('.stat-value');
  928. stats[0].textContent = Math.floor(Math.random() * 20 + 35);
  929. stats[1].textContent = Math.floor(Math.random() * 15 + 20);
  930. }, 5000);
  931. // 随机激励语句
  932. const motivationalPhrases = [
  933. "每一次拒绝都是离成功更近一步!",
  934. "卓越的销售不是推销产品,而是解决问题!",
  935. "今天的练习,明天的签约!",
  936. "客户的需求是您成功的地图,AI是您的导航仪!",
  937. "专业来自准备,成功源于坚持!",
  938. "您不是一个人在战斗,AI是您最强大的后援!"
  939. ];
  940. // 随机选择激励语句
  941. function updateMotivationalText() {
  942. const textElement = document.querySelector('.motivational-text');
  943. const randomIndex = Math.floor(Math.random() * motivationalPhrases.length);
  944. textElement.textContent = motivationalPhrases[randomIndex];
  945. }
  946. // 每10秒更新一次激励语句
  947. setInterval(updateMotivationalText, 10000);
  948. </script>
  949. </body>
  950. </html>