page-crm-member.scss 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678
  1. /* 全局样式 */
  2. * {
  3. margin: 0;
  4. padding: 0;
  5. box-sizing: border-box;
  6. font-family: "阿里巴巴普惠体", sans-serif;
  7. }
  8. body {
  9. background-color: #f8f4e8;
  10. // background-image: url('paper-texture.png');
  11. color: #333;
  12. line-height: 1.6;
  13. display: flex;
  14. justify-content: center;
  15. align-items: center;
  16. min-height: 100vh;
  17. padding: 20px;
  18. }
  19. /* 自定义字体 */
  20. @font-face {
  21. font-family: "赣锋体";
  22. src: url("/assets/fonts/ganfeng.ttf"); /* 修改为正确的相对路径 */
  23. }
  24. /* 主色调定义 */
  25. :host {
  26. --primary-blue: #2F7DAD; /* 天青瓷 */
  27. --primary-green: #5B8C5A; /* 香樟绿 */
  28. --primary-gold: #D4B16A; /* 庐金 */
  29. --secondary-gray: #6D6D6D; /* 婺源黛瓦灰 */
  30. --secondary-red: #C53D43; /* 井冈山鹃红 */
  31. --secondary-white: #F0F0F0; /* 鄱阳湖银白 */
  32. }
  33. /* PPT容器 */
  34. .ppt-container {
  35. width: 100%;
  36. max-width: 1400px;
  37. background-color: white;
  38. border-radius: 12px;
  39. overflow: hidden;
  40. box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  41. display: flex;
  42. flex-direction: column;
  43. min-height: 800px;
  44. }
  45. /* 主要内容区域 */
  46. .ppt-main {
  47. display: flex;
  48. flex: 1;
  49. overflow: hidden;
  50. }
  51. /* 左侧目录 */
  52. .sidebar {
  53. width: 280px;
  54. background-color: #f9f9f9;
  55. border-right: 1px solid #eee;
  56. padding: 30px 20px;
  57. overflow-y: auto;
  58. }
  59. .sidebar-title {
  60. font-family: "赣锋体", serif;
  61. font-size: 1.5rem;
  62. color: var(--primary-blue);
  63. margin-bottom: 25px;
  64. padding-bottom: 10px;
  65. border-bottom: 2px solid var(--primary-blue);
  66. }
  67. .sidebar-menu {
  68. list-style: none;
  69. }
  70. .sidebar-item {
  71. margin-bottom: 15px;
  72. }
  73. .sidebar-link {
  74. display: block;
  75. padding: 10px 15px;
  76. color: var(--secondary-gray);
  77. text-decoration: none;
  78. border-radius: 6px;
  79. transition: all 0.3s ease;
  80. position: relative;
  81. font-size: 1.05rem;
  82. }
  83. .sidebar-link:hover {
  84. background-color: rgba(47, 125, 173, 0.08);
  85. color: var(--primary-blue);
  86. }
  87. .sidebar-link.active {
  88. background-color: rgba(47, 125, 173, 0.15);
  89. color: var(--primary-blue);
  90. font-weight: bold;
  91. }
  92. .sidebar-link.active::before {
  93. content: "";
  94. position: absolute;
  95. left: 0;
  96. top: 50%;
  97. transform: translateY(-50%);
  98. width: 4px;
  99. height: 70%;
  100. background-color: var(--primary-gold);
  101. border-radius: 0 2px 2px 0;
  102. }
  103. /* 子菜单 */
  104. .submenu {
  105. list-style: none;
  106. margin-left: 25px;
  107. margin-top: 10px;
  108. display: none;
  109. }
  110. .submenu.active {
  111. display: block;
  112. }
  113. .submenu-item {
  114. margin-bottom: 8px;
  115. }
  116. .submenu-link {
  117. display: block;
  118. padding: 8px 10px;
  119. color: var(--secondary-gray);
  120. text-decoration: none;
  121. border-radius: 4px;
  122. transition: all 0.3s ease;
  123. font-size: 0.95rem;
  124. }
  125. .submenu-link:hover {
  126. background-color: rgba(47, 125, 173, 0.05);
  127. color: var(--primary-blue);
  128. }
  129. .submenu-link.active {
  130. background-color: rgba(47, 125, 173, 0.1);
  131. color: var(--primary-blue);
  132. font-weight: 500;
  133. }
  134. /* 内容区域 */
  135. .content-area {
  136. flex: 1;
  137. padding: 40px 50px;
  138. overflow-y: auto;
  139. }
  140. .section-header {
  141. display: flex;
  142. align-items: center;
  143. margin-bottom: 30px;
  144. position: relative;
  145. }
  146. .section-number {
  147. font-family: "赣锋体", serif;
  148. font-size: 3rem;
  149. color: var(--primary-blue);
  150. font-weight: bold;
  151. margin-right: 20px;
  152. line-height: 1;
  153. }
  154. .section-title {
  155. font-family: "赣锋体", serif;
  156. font-size: 2.2rem;
  157. color: var(--primary-blue);
  158. position: relative;
  159. padding-bottom: 10px;
  160. }
  161. .section-title::after {
  162. content: "";
  163. display: block;
  164. width: 60px;
  165. height: 3px;
  166. background: linear-gradient(to right, var(--primary-blue), var(--primary-green));
  167. margin-top: 10px;
  168. }
  169. .section-desc {
  170. color: var(--secondary-gray);
  171. margin-bottom: 40px;
  172. max-width: 900px;
  173. }
  174. /* 统计卡片 */
  175. .stats-container {
  176. display: grid;
  177. grid-template-columns: repeat(4, 1fr);
  178. gap: 20px;
  179. margin-bottom: 50px;
  180. }
  181. .stats-card {
  182. background-color: white;
  183. border-radius: 8px;
  184. padding: 20px;
  185. box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  186. transition: all 0.3s ease;
  187. border-left: 4px solid var(--primary-blue);
  188. }
  189. .stats-card:hover {
  190. transform: translateY(-5px);
  191. box-shadow: 0 8px 20px rgba(0,0,0,0.12);
  192. }
  193. .stats-value {
  194. font-family: "赣锋体", serif;
  195. font-size: 2.5rem;
  196. color: var(--primary-blue);
  197. font-weight: bold;
  198. margin-bottom: 5px;
  199. }
  200. .stats-label {
  201. color: var(--secondary-gray);
  202. font-size: 1.1rem;
  203. }
  204. /* 内容块 */
  205. .content-block {
  206. display: none;
  207. }
  208. .content-block.active {
  209. display: block;
  210. }
  211. .block-title {
  212. font-family: "赣锋体", serif;
  213. font-size: 1.8rem;
  214. color: var(--primary-blue);
  215. margin-bottom: 30px;
  216. padding-bottom: 10px;
  217. border-bottom: 2px solid #eee;
  218. }
  219. /* 特性卡片 */
  220. .feature-grid {
  221. display: grid;
  222. grid-template-columns: repeat(3, 1fr);
  223. gap: 25px;
  224. margin-bottom: 40px;
  225. }
  226. .feature-card {
  227. background-color: white;
  228. border-radius: 10px;
  229. box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  230. overflow: hidden;
  231. transition: all 0.3s ease;
  232. border: 1px solid #eee;
  233. }
  234. .feature-card:hover {
  235. transform: translateY(-5px);
  236. box-shadow: 0 8px 25px rgba(0,0,0,0.12);
  237. }
  238. .card-header {
  239. display: flex;
  240. align-items: center;
  241. padding: 15px 20px;
  242. background-color: rgba(47, 125, 173, 0.05);
  243. border-bottom: 1px solid #eee;
  244. }
  245. .card-icon {
  246. font-size: 1.5rem;
  247. margin-right: 15px;
  248. color: var(--primary-blue);
  249. }
  250. .card-title {
  251. font-size: 1.2rem;
  252. color: var(--primary-blue);
  253. font-weight: 600;
  254. }
  255. .card-content {
  256. padding: 20px;
  257. }
  258. .card-desc {
  259. color: var(--secondary-gray);
  260. margin-bottom: 15px;
  261. }
  262. .card-list {
  263. list-style: none;
  264. }
  265. .card-list li {
  266. margin-bottom: 8px;
  267. color: #555;
  268. display: flex;
  269. align-items: center;
  270. }
  271. .card-list li::before {
  272. content: "•";
  273. color: var(--primary-blue);
  274. margin-right: 8px;
  275. }
  276. .card-footer {
  277. display: flex;
  278. justify-content: space-between;
  279. align-items: center;
  280. padding: 15px 20px;
  281. background-color: rgba(47, 125, 173, 0.03);
  282. border-top: 1px solid #eee;
  283. }
  284. .card-link {
  285. color: var(--primary-blue);
  286. text-decoration: none;
  287. font-weight: 500;
  288. transition: all 0.3s ease;
  289. }
  290. .card-link:hover {
  291. color: var(--primary-gold);
  292. }
  293. .card-status {
  294. padding: 4px 10px;
  295. border-radius: 4px;
  296. font-size: 0.9rem;
  297. font-weight: 500;
  298. }
  299. .card-status[status="已上线"] {
  300. background-color: rgba(91, 140, 90, 0.15);
  301. color: var(--primary-green);
  302. }
  303. .card-status[status="测试中"] {
  304. background-color: rgba(212, 177, 106, 0.15);
  305. color: var(--primary-gold);
  306. }
  307. .card-status[status="开发中"] {
  308. background-color: rgba(47, 125, 173, 0.15);
  309. color: var(--primary-blue);
  310. }
  311. .card-status[status="规划中"] {
  312. background-color: rgba(109, 109, 109, 0.15);
  313. color: var(--secondary-gray);
  314. }
  315. /* 流程图 */
  316. .flow-chart {
  317. margin-bottom: 40px;
  318. padding: 25px;
  319. background-color: white;
  320. border-radius: 10px;
  321. box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  322. }
  323. .flow-title {
  324. font-size: 1.3rem;
  325. color: var(--primary-blue);
  326. margin-bottom: 25px;
  327. font-weight: 600;
  328. }
  329. .flow-steps {
  330. display: flex;
  331. justify-content: space-between;
  332. align-items: center;
  333. position: relative;
  334. }
  335. .flow-steps::before {
  336. content: "";
  337. position: absolute;
  338. top: 50%;
  339. left: 0;
  340. right: 0;
  341. height: 2px;
  342. background-color: #eee;
  343. transform: translateY(-50%);
  344. z-index: 1;
  345. }
  346. .flow-step {
  347. position: relative;
  348. z-index: 2;
  349. text-align: center;
  350. width: 100%;
  351. }
  352. .step-number {
  353. width: 40px;
  354. height: 40px;
  355. border-radius: 50%;
  356. background-color: var(--primary-blue);
  357. color: white;
  358. display: flex;
  359. justify-content: center;
  360. align-items: center;
  361. margin: 0 auto 10px;
  362. font-weight: bold;
  363. }
  364. .step-label {
  365. color: var(--secondary-gray);
  366. font-weight: 500;
  367. }
  368. /* 案例展示 */
  369. .case-studies {
  370. margin-top: 40px;
  371. }
  372. .case-title {
  373. font-size: 1.3rem;
  374. color: var(--primary-blue);
  375. margin-bottom: 25px;
  376. font-weight: 600;
  377. }
  378. .case-grid {
  379. display: grid;
  380. grid-template-columns: repeat(2, 1fr);
  381. gap: 25px;
  382. }
  383. .case-card {
  384. background-color: white;
  385. border-radius: 10px;
  386. box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  387. overflow: hidden;
  388. transition: all 0.3s ease;
  389. }
  390. .case-card:hover {
  391. transform: translateY(-5px);
  392. box-shadow: 0 8px 25px rgba(0,0,0,0.12);
  393. }
  394. .case-image {
  395. height: 200px;
  396. background-size: cover;
  397. background-position: center;
  398. }
  399. .case-content {
  400. padding: 20px;
  401. }
  402. .case-name {
  403. font-size: 1.2rem;
  404. color: var(--primary-blue);
  405. font-weight: 600;
  406. margin-bottom: 10px;
  407. }
  408. .case-desc {
  409. color: var(--secondary-gray);
  410. margin-bottom: 15px;
  411. }
  412. .case-meta {
  413. display: flex;
  414. flex-wrap: wrap;
  415. gap: 8px;
  416. }
  417. .case-tag {
  418. padding: 3px 10px;
  419. background-color: rgba(47, 125, 173, 0.08);
  420. color: var(--primary-blue);
  421. border-radius: 4px;
  422. font-size: 0.9rem;
  423. }
  424. /* 图表容器 */
  425. .chart-container {
  426. margin-bottom: 40px;
  427. background-color: white;
  428. border-radius: 10px;
  429. box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  430. padding: 25px;
  431. }
  432. .chart-title {
  433. font-size: 1.3rem;
  434. color: var(--primary-blue);
  435. margin-bottom: 25px;
  436. font-weight: 600;
  437. }
  438. .chart {
  439. position: relative;
  440. }
  441. .placeholder-text {
  442. color: var(--secondary-gray);
  443. font-size: 1.1rem;
  444. }
  445. /* 时间线 */
  446. .timeline {
  447. margin-bottom: 40px;
  448. }
  449. .timeline-item {
  450. display: flex;
  451. margin-bottom: 30px;
  452. }
  453. .timeline-marker {
  454. min-width: 60px;
  455. height: 60px;
  456. border-radius: 50%;
  457. background-color: var(--primary-blue);
  458. color: white;
  459. display: flex;
  460. justify-content: center;
  461. align-items: center;
  462. font-weight: bold;
  463. margin-right: 20px;
  464. position: relative;
  465. }
  466. .timeline-marker::after {
  467. content: "";
  468. position: absolute;
  469. bottom: -30px;
  470. left: 50%;
  471. width: 2px;
  472. height: 30px;
  473. background-color: #eee;
  474. }
  475. .timeline-item:last-child .timeline-marker::after {
  476. display: none;
  477. }
  478. .timeline-content {
  479. flex: 1;
  480. }
  481. .timeline-title {
  482. font-size: 1.2rem;
  483. color: var(--primary-blue);
  484. font-weight: 600;
  485. margin-bottom: 5px;
  486. }
  487. .timeline-date {
  488. color: var(--primary-gold);
  489. font-weight: 500;
  490. margin-bottom: 10px;
  491. }
  492. .timeline-desc {
  493. color: var(--secondary-gray);
  494. }
  495. /* 表格 */
  496. .table {
  497. width: 100%;
  498. border-collapse: collapse;
  499. }
  500. .table th, .table td {
  501. padding: 15px;
  502. border: 1px solid #eee;
  503. text-align: left;
  504. }
  505. .table th {
  506. background-color: rgba(47, 125, 173, 0.05);
  507. color: var(--primary-blue);
  508. font-weight: 600;
  509. }
  510. .table tr:hover {
  511. background-color: rgba(47, 125, 173, 0.03);
  512. }
  513. /* 响应式设计 */
  514. @media (max-width: 1200px) {
  515. .feature-grid {
  516. grid-template-columns: repeat(2, 1fr);
  517. }
  518. .stats-container {
  519. grid-template-columns: repeat(2, 1fr);
  520. }
  521. .case-grid {
  522. grid-template-columns: 1fr;
  523. }
  524. .sidebar {
  525. width: 240px;
  526. }
  527. }
  528. @media (max-width: 992px) {
  529. .content-area {
  530. padding: 30px 40px;
  531. }
  532. .flow-steps {
  533. flex-direction: column;
  534. }
  535. .flow-steps::before {
  536. top: 0;
  537. left: 50%;
  538. right: auto;
  539. bottom: 0;
  540. width: 2px;
  541. height: 100%;
  542. transform: translateX(-50%);
  543. }
  544. .flow-step {
  545. margin-bottom: 30px;
  546. }
  547. .step-number {
  548. margin-bottom: 15px;
  549. }
  550. }
  551. @media (max-width: 768px) {
  552. .ppt-main {
  553. flex-direction: column;
  554. }
  555. .sidebar {
  556. width: 100%;
  557. border-right: none;
  558. border-bottom: 1px solid #eee;
  559. }
  560. .section-number {
  561. font-size: 2.5rem;
  562. }
  563. .section-title {
  564. font-size: 1.8rem;
  565. }
  566. .block-title {
  567. font-size: 1.5rem;
  568. }
  569. .feature-grid {
  570. grid-template-columns: 1fr;
  571. }
  572. .stats-container {
  573. grid-template-columns: 1fr;
  574. }
  575. }