wodexingcheng.wxss 17 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129
  1. .container {
  2. padding: 20rpx;
  3. min-height: 100vh;
  4. background-color: #f5f5f5;
  5. }
  6. .header {
  7. padding: 30rpx 0;
  8. text-align: center;
  9. }
  10. .title {
  11. font-size: 40rpx;
  12. font-weight: bold;
  13. color: #333;
  14. }
  15. .tabs {
  16. display: flex;
  17. margin-bottom: 30rpx;
  18. border-bottom: 1rpx solid #eee;
  19. }
  20. .tab {
  21. flex: 1;
  22. text-align: center;
  23. padding: 20rpx 0;
  24. font-size: 32rpx;
  25. color: #666;
  26. }
  27. .tab.active {
  28. color: #e74c3c;
  29. border-bottom: 4rpx solid #e74c3c;
  30. }
  31. /* 地图部分样式 */
  32. .map-section {
  33. margin: 20rpx 0;
  34. background: #fff;
  35. border-radius: 16rpx;
  36. padding: 20rpx;
  37. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.08);
  38. }
  39. .day-tabs {
  40. white-space: nowrap;
  41. margin-bottom: 20rpx;
  42. }
  43. .day-tab {
  44. display: inline-block;
  45. padding: 8rpx 20rpx;
  46. margin-right: 16rpx;
  47. border-radius: 40rpx;
  48. border: 2rpx solid #e54d42;
  49. font-size: 26rpx;
  50. }
  51. .day-tab.active {
  52. color: #fff;
  53. background-color: #e54d42;
  54. }
  55. .map-container {
  56. position: relative;
  57. border-radius: 12rpx;
  58. overflow: hidden;
  59. }
  60. .map-controls {
  61. position: absolute;
  62. right: 20rpx;
  63. bottom: 20rpx;
  64. display: flex;
  65. flex-direction: column;
  66. }
  67. .control-btn {
  68. width: 60rpx;
  69. height: 60rpx;
  70. background: #fff;
  71. border-radius: 50%;
  72. display: flex;
  73. justify-content: center;
  74. align-items: center;
  75. margin-bottom: 12rpx;
  76. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.12);
  77. }
  78. .control-icon {
  79. width: 32rpx;
  80. height: 32rpx;
  81. }
  82. .map-legend {
  83. display: flex;
  84. justify-content: center;
  85. margin-top: 20rpx;
  86. flex-wrap: wrap;
  87. }
  88. .legend-item {
  89. display: flex;
  90. align-items: center;
  91. margin: 0 20rpx;
  92. font-size: 24rpx;
  93. color: #666;
  94. }
  95. .legend-color {
  96. width: 24rpx;
  97. height: 24rpx;
  98. border-radius: 4rpx;
  99. margin-right: 8rpx;
  100. }
  101. .legend-icon {
  102. width: 24rpx;
  103. height: 24rpx;
  104. margin-right: 8rpx;
  105. }
  106. /* 路线详情部分 */
  107. .route-plan-section {
  108. margin: 30rpx 0;
  109. background: #fff;
  110. border-radius: 24rpx;
  111. padding: 30rpx;
  112. box-shadow: 0 4rpx 24rpx rgba(0, 0, 0, 0.04);
  113. }
  114. .section-header {
  115. display: flex;
  116. align-items: center;
  117. margin-bottom: 30rpx;
  118. }
  119. .section-icon {
  120. width: 44rpx;
  121. height: 44rpx;
  122. margin-right: 16rpx;
  123. }
  124. .section-title {
  125. font-size: 36rpx;
  126. font-weight: bold;
  127. color: #333;
  128. }
  129. .day-route {
  130. margin-bottom: 40rpx;
  131. position: relative;
  132. }
  133. .route-header {
  134. display: flex;
  135. align-items: center;
  136. margin-bottom: 24rpx;
  137. }
  138. .route-day-tag {
  139. padding: 8rpx 24rpx;
  140. border-radius: 24rpx;
  141. color: #fff;
  142. font-size: 28rpx;
  143. font-weight: 500;
  144. margin-right: 20rpx;
  145. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
  146. }
  147. .route-theme {
  148. font-size: 32rpx;
  149. font-weight: bold;
  150. color: #333;
  151. }
  152. .route-steps {
  153. margin-left: 60rpx;
  154. border-left: 4rpx dashed rgba(0, 0, 0, 0.08);
  155. padding-left: 40rpx;
  156. position: relative;
  157. }
  158. .route-step {
  159. display: flex;
  160. margin-bottom: 40rpx;
  161. position: relative;
  162. transition: all 0.3s ease;
  163. }
  164. .route-step:active {
  165. transform: scale(0.98);
  166. }
  167. .step-marker {
  168. width: 48rpx;
  169. height: 48rpx;
  170. border-radius: 50%;
  171. color: #fff;
  172. display: flex;
  173. justify-content: center;
  174. align-items: center;
  175. font-size: 28rpx;
  176. font-weight: bold;
  177. position: absolute;
  178. left: -74rpx;
  179. top: 0;
  180. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.2);
  181. z-index: 2;
  182. }
  183. .checked-icon {
  184. width: 28rpx;
  185. height: 28rpx;
  186. position: absolute;
  187. right: -6rpx;
  188. bottom: -6rpx;
  189. background: #fff;
  190. border-radius: 50%;
  191. padding: 2rpx;
  192. }
  193. .step-content {
  194. flex: 1;
  195. background: #f8fafc;
  196. border-radius: 16rpx;
  197. padding: 30rpx;
  198. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
  199. display: flex;
  200. justify-content: space-between;
  201. align-items: center;
  202. }
  203. .step-main {
  204. flex: 1;
  205. margin-right: 20rpx;
  206. }
  207. .step-header {
  208. display: flex;
  209. align-items: center;
  210. margin-bottom: 20rpx;
  211. }
  212. .step-title {
  213. font-size: 32rpx;
  214. font-weight: bold;
  215. color: #333;
  216. margin-right: 16rpx;
  217. }
  218. .step-tag {
  219. font-size: 24rpx;
  220. color: #fff;
  221. background: #0081ff;
  222. padding: 4rpx 12rpx;
  223. border-radius: 8rpx;
  224. }
  225. .step-info {
  226. margin-bottom: 20rpx;
  227. }
  228. .info-item {
  229. display: flex;
  230. align-items: center;
  231. margin-bottom: 12rpx;
  232. font-size: 26rpx;
  233. color: #666;
  234. }
  235. .info-icon {
  236. width: 28rpx;
  237. height: 28rpx;
  238. margin-right: 10rpx;
  239. opacity: 0.8;
  240. }
  241. .step-actions {
  242. flex-shrink: 0;
  243. }
  244. .step-actions-vertical {
  245. display: flex;
  246. flex-direction: column;
  247. gap: 10rpx;
  248. width: 160rpx;
  249. margin-left: 20rpx;
  250. }
  251. /* 打卡弹窗样式 */
  252. .checkin-modal {
  253. width: 90%;
  254. max-height: 80vh;
  255. border-radius: 16rpx;
  256. overflow: hidden;
  257. }
  258. .checkin-image-section {
  259. margin-bottom: 30rpx;
  260. }
  261. .image-uploader {
  262. width: 93%;
  263. height: 300rpx;
  264. background: #f7f7f7;
  265. border-radius: 12rpx;
  266. display: flex;
  267. flex-direction: column;
  268. justify-content: center;
  269. align-items: center;
  270. position: relative;
  271. overflow: hidden;
  272. margin-top: 20rpx;
  273. }
  274. .uploaded-image {
  275. width: 100%;
  276. height: 100%;
  277. }
  278. .upload-icon {
  279. width: 80rpx;
  280. height: 80rpx;
  281. margin-bottom: 20rpx;
  282. }
  283. .upload-text {
  284. font-size: 28rpx;
  285. color: #999;
  286. }
  287. .uploading-mask {
  288. position: absolute;
  289. top: 0;
  290. left: 0;
  291. right: 0;
  292. bottom: 0;
  293. background: rgba(0, 0, 0, 0.3);
  294. display: flex;
  295. justify-content: center;
  296. align-items: center;
  297. }
  298. .loading-icon {
  299. width: 60rpx;
  300. height: 60rpx;
  301. }
  302. .checkin-note-section {
  303. margin-bottom: 20rpx;
  304. }
  305. .note-textarea {
  306. width: 93%;
  307. height: 200rpx;
  308. background: #f7f7f7;
  309. border-radius: 12rpx;
  310. padding: 20rpx;
  311. box-sizing: border-box;
  312. font-size: 28rpx;
  313. margin-top: 20rpx;
  314. }
  315. .word-count {
  316. font-size: 24rpx;
  317. color: #999;
  318. text-align: right;
  319. display: block;
  320. margin-top: 10rpx;
  321. margin-right: 40rpx;
  322. }
  323. .section-label {
  324. font-size: 30rpx;
  325. color: #333;
  326. font-weight: bold;
  327. }
  328. .modal-footer {
  329. display: flex;
  330. justify-content: space-between;
  331. padding: 20rpx 30rpx;
  332. }
  333. .modal-btn {
  334. flex: 1;
  335. height: 80rpx;
  336. line-height: 80rpx;
  337. border-radius: 40rpx;
  338. font-size: 30rpx;
  339. margin: 0 10rpx;
  340. }
  341. .cancel-btn {
  342. background: #f5f5f5;
  343. color: #666;
  344. }
  345. .confirm-btn {
  346. background: #e54d42;
  347. color: white;
  348. }
  349. /* 打卡图片样式 */
  350. .checkin-images {
  351. display: flex;
  352. flex-wrap: wrap;
  353. margin-top: 10rpx;
  354. }
  355. .checkin-image {
  356. width: 120rpx;
  357. height: 120rpx;
  358. border-radius: 8rpx;
  359. margin-right: 10rpx;
  360. margin-bottom: 10rpx;
  361. border: 1rpx solid #eee;
  362. }
  363. .detail-btn {
  364. background: #fff;
  365. border: 2rpx solid #e54d42;
  366. color: #e54d42;
  367. border-radius: 40rpx;
  368. font-size: 28rpx;
  369. padding: 0 24rpx;
  370. height: 64rpx;
  371. line-height: 64rpx;
  372. display: flex;
  373. align-items: center;
  374. transition: all 0.3s ease;
  375. white-space: nowrap;
  376. }
  377. .detail-btn .action-icon {
  378. width: 14px;
  379. height: 14px;
  380. margin-right: 4px;
  381. }
  382. .check-btn {
  383. background: #fff;
  384. border: 2rpx solid #e54d42;
  385. color: #e54d42;
  386. border-radius: 40rpx;
  387. font-size: 28rpx;
  388. padding: 0 24rpx;
  389. height: 64rpx;
  390. line-height: 64rpx;
  391. display: flex;
  392. align-items: center;
  393. transition: all 0.3s ease;
  394. white-space: nowrap;
  395. }
  396. .check-btn.checked {
  397. background: #e54d42;
  398. color: #fff;
  399. }
  400. .action-icon {
  401. width: 30rpx;
  402. height: 30rpx;
  403. margin-right: 10rpx;
  404. }
  405. .route-summary {
  406. display: flex;
  407. background: #f8fafc;
  408. border-radius: 16rpx;
  409. padding: 24rpx;
  410. margin-top: 30rpx;
  411. border-left: 4rpx solid #e54d42;
  412. }
  413. .summary-icon {
  414. width: 36rpx;
  415. height: 36rpx;
  416. margin-right: 16rpx;
  417. margin-top: 4rpx;
  418. }
  419. .summary-text {
  420. font-size: 28rpx;
  421. color: #666;
  422. line-height: 1.6;
  423. flex: 1;
  424. }
  425. /* 操作按钮 */
  426. .action-buttons {
  427. display: flex;
  428. justify-content: space-between;
  429. margin-top: 40rpx;
  430. }
  431. .action-buttons button {
  432. flex: 1;
  433. margin: 0 10rpx;
  434. border-radius: 50rpx;
  435. font-size: 28rpx;
  436. height: 80rpx;
  437. line-height: 80rpx;
  438. display: flex;
  439. align-items: center;
  440. justify-content: center;
  441. }
  442. .view-btn {
  443. background: #f0f7ff;
  444. color: #0081ff;
  445. }
  446. .share-btn {
  447. background: #fff0f0;
  448. color: #e54d42;
  449. }
  450. .btn-icon {
  451. width: 32rpx;
  452. height: 32rpx;
  453. margin-right: 8rpx;
  454. }
  455. /* 打卡按钮样式 */
  456. .check-btn {
  457. background: #fff;
  458. border: 1rpx solid #e54d42;
  459. color: #e54d42;
  460. border-radius: 40rpx;
  461. font-size: 26rpx;
  462. padding: 0 20rpx;
  463. height: 60rpx;
  464. line-height: 60rpx;
  465. display: flex;
  466. align-items: center;
  467. }
  468. .check-btn[disabled] {
  469. background: #f5f5f5;
  470. color: #999;
  471. border-color: #ddd;
  472. }
  473. .action-icon {
  474. width: 28rpx;
  475. height: 28rpx;
  476. margin-right: 8rpx;
  477. }
  478. .step-actions {
  479. margin-top: 15rpx;
  480. display: flex;
  481. justify-content: flex-end;
  482. }
  483. .checked-icon {
  484. width: 24rpx;
  485. height: 24rpx;
  486. position: absolute;
  487. right: -6rpx;
  488. bottom: -6rpx;
  489. }
  490. /* 详情弹窗样式 */
  491. .modal {
  492. position: fixed;
  493. top: 0;
  494. left: 0;
  495. width: 100%;
  496. height: 100%;
  497. z-index: 999;
  498. display: flex;
  499. justify-content: center;
  500. align-items: center;
  501. }
  502. .modal-mask {
  503. position: absolute;
  504. top: 0;
  505. left: 0;
  506. width: 100%;
  507. height: 100%;
  508. background: rgba(0, 0, 0, 0.5);
  509. }
  510. .modal-content {
  511. width: 90%;
  512. max-height: 80vh;
  513. background: #fff;
  514. border-radius: 20rpx;
  515. overflow: hidden;
  516. display: flex;
  517. flex-direction: column;
  518. z-index: 1000;
  519. }
  520. .modal-header {
  521. padding: 30rpx;
  522. border-bottom: 1rpx solid #eee;
  523. display: flex;
  524. justify-content: space-between;
  525. align-items: center;
  526. flex-shrink: 0;
  527. }
  528. .modal-title {
  529. font-size: 34rpx;
  530. font-weight: bold;
  531. color: #333;
  532. flex: 1;
  533. }
  534. .close-icon {
  535. width: 36rpx;
  536. height: 36rpx;
  537. margin-left: 20rpx;
  538. }
  539. .modal-body {
  540. flex: 1;
  541. padding: 30rpx;
  542. overflow-y: auto;
  543. }
  544. .spot-image {
  545. width: 90%;
  546. max-height: 500rpx;
  547. border-radius: 12rpx;
  548. margin-bottom: 30rpx;
  549. object-fit: cover;
  550. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
  551. }
  552. .spot-info {
  553. margin-bottom: 30rpx;
  554. }
  555. .info-item {
  556. display: flex;
  557. align-items: center;
  558. margin-bottom: 15rpx;
  559. font-size: 28rpx;
  560. color: #666;
  561. }
  562. .info-icon {
  563. width: 32rpx;
  564. height: 32rpx;
  565. margin-right: 12rpx;
  566. }
  567. .desc-title {
  568. font-size: 30rpx;
  569. font-weight: bold;
  570. color: #333;
  571. display: block;
  572. margin-bottom: 15rpx;
  573. }
  574. .spot-desc{
  575. margin-right: 50rpx;
  576. }
  577. .desc-content {
  578. font-size: 28rpx;
  579. color: #666;
  580. line-height: 1.8;
  581. white-space: pre-line;
  582. }
  583. .modal-footer {
  584. display: flex;
  585. padding: 20rpx 30rpx;
  586. border-top: 1rpx solid #eee;
  587. flex-shrink: 0;
  588. }
  589. .modal-btn {
  590. flex: 1;
  591. margin: 0 10rpx;
  592. height: 80rpx;
  593. line-height: 80rpx;
  594. font-size: 28rpx;
  595. display: flex;
  596. justify-content: center;
  597. align-items: center;
  598. }
  599. .nav-btn {
  600. background: #e54d42;
  601. color: #fff;
  602. border-radius: 40rpx;
  603. }
  604. /* 历史行程容器 */
  605. .history-container {
  606. padding: 20rpx 30rpx 60rpx;
  607. background-color: #fafafa;
  608. min-height: 100vh;
  609. }
  610. /* 分区标题 */
  611. .section-header {
  612. position: relative;
  613. margin: 40rpx 0 50rpx;
  614. padding-left: 20rpx;
  615. }
  616. .section-icon {
  617. width: 48rpx;
  618. height: 48rpx;
  619. position: absolute;
  620. left: 0;
  621. top: 50%;
  622. transform: translateY(-50%);
  623. }
  624. .section-title {
  625. font-size: 38rpx;
  626. font-weight: 600;
  627. color: #333;
  628. margin-left: 60rpx;
  629. position: relative;
  630. display: inline-block;
  631. }
  632. .section-title::after {
  633. content: "";
  634. position: absolute;
  635. left: 0;
  636. bottom: -10rpx;
  637. width: 100%;
  638. height: 6rpx;
  639. background: linear-gradient(90deg, rgba(219, 68, 55, 0.5), rgba(219, 68, 55, 0.1));
  640. border-radius: 3rpx;
  641. }
  642. .section-decoration {
  643. position: absolute;
  644. right: 0;
  645. top: 50%;
  646. width: 120rpx;
  647. height: 2rpx;
  648. background: linear-gradient(90deg, rgba(219, 68, 55, 0.1), rgba(219, 68, 55, 0.5));
  649. border-radius: 1rpx;
  650. }
  651. /* 行程卡片 */
  652. .plan-list {
  653. display: flex;
  654. flex-direction: column;
  655. gap: 30rpx;
  656. }
  657. .plan-card {
  658. background: #fff;
  659. border-radius: 20rpx;
  660. overflow: hidden;
  661. box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.06);
  662. position: relative;
  663. transition: all 0.3s ease;
  664. border: 1rpx solid #f0f0f0;
  665. }
  666. .plan-card:active {
  667. transform: translateY(-4rpx);
  668. box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.1);
  669. }
  670. .card-ribbon {
  671. height: 56rpx;
  672. display: flex;
  673. align-items: center;
  674. justify-content: flex-end;
  675. padding: 0 30rpx;
  676. background-color: rgba(219, 68, 55, 0.9);
  677. }
  678. .ribbon-text {
  679. color: white;
  680. font-size: 26rpx;
  681. font-weight: 500;
  682. }
  683. .card-content {
  684. padding: 30rpx;
  685. }
  686. /* 卡片头部 */
  687. .plan-header {
  688. margin-bottom: 20rpx;
  689. }
  690. .city-tags {
  691. display: flex;
  692. flex-wrap: wrap;
  693. gap: 10rpx;
  694. margin-bottom: 15rpx;
  695. }
  696. .city-tag {
  697. font-size: 30rpx;
  698. color: #db4437;
  699. background: rgba(219, 68, 55, 0.08);
  700. padding: 6rpx 16rpx;
  701. border-radius: 20rpx;
  702. }
  703. .plan-title {
  704. font-size: 34rpx;
  705. font-weight: 600;
  706. color: #333;
  707. line-height: 1.4;
  708. display: -webkit-box;
  709. -webkit-box-orient: vertical;
  710. -webkit-line-clamp: 2;
  711. overflow: hidden;
  712. }
  713. /* 卡片内容 */
  714. .plan-content {
  715. margin: 25rpx 0;
  716. }
  717. .plan-desc {
  718. font-size: 28rpx;
  719. color: #666;
  720. line-height: 1.6;
  721. display: -webkit-box;
  722. -webkit-box-orient: vertical;
  723. -webkit-line-clamp: 3;
  724. overflow: hidden;
  725. margin-bottom: 25rpx;
  726. }
  727. .plan-stats {
  728. display: flex;
  729. flex-wrap: wrap;
  730. gap: 20rpx;
  731. }
  732. .stat-item {
  733. display: flex;
  734. align-items: center;
  735. font-size: 26rpx;
  736. color: #888;
  737. }
  738. .stat-icon {
  739. width: 28rpx;
  740. height: 28rpx;
  741. margin-right: 8rpx;
  742. }
  743. /* 卡片底部操作区域 */
  744. .card-footer {
  745. display: flex;
  746. border-top: 1rpx solid #f5f5f5;
  747. padding: 20rpx 0 0;
  748. margin-top: 20rpx;
  749. }
  750. .action-btn {
  751. flex: 1;
  752. height: 76rpx;
  753. line-height: 76rpx;
  754. font-size: 28rpx;
  755. font-weight: 500;
  756. border-radius: 38rpx;
  757. margin: 0 10rpx;
  758. display: flex;
  759. align-items: center;
  760. justify-content: center;
  761. transition: all 0.3s ease;
  762. background: #fff;
  763. }
  764. .action-btn:active {
  765. opacity: 0.9;
  766. transform: scale(0.98);
  767. }
  768. .detail-btn {
  769. color: #db4437;
  770. border: 1rpx solid #db4437;
  771. }
  772. .share-btn {
  773. color: #666;
  774. border: 1rpx solid #e0e0e0;
  775. }
  776. .btn-icon {
  777. width: 30rpx;
  778. height: 30rpx;
  779. margin-right: 8rpx;
  780. }
  781. /* 分页容器 */
  782. .pagination-container {
  783. margin: 60rpx 0 40rpx;
  784. }
  785. .pagination {
  786. display: flex;
  787. justify-content: center;
  788. align-items: center;
  789. gap: 30rpx;
  790. }
  791. .pagination-btn {
  792. height: 68rpx;
  793. line-height: 68rpx;
  794. font-size: 28rpx;
  795. color: #db4437;
  796. background: transparent;
  797. border: 1rpx solid rgba(219, 68, 55, 0.5);
  798. border-radius: 34rpx;
  799. padding: 0 30rpx;
  800. display: flex;
  801. align-items: center;
  802. transition: all 0.3s ease;
  803. }
  804. .pagination-btn[disabled] {
  805. opacity: 0.5;
  806. }
  807. .pagination-btn:active {
  808. background: rgba(219, 68, 55, 0.05);
  809. }
  810. .pagination-icon {
  811. width: 24rpx;
  812. height: 24rpx;
  813. }
  814. .prev .pagination-icon {
  815. margin-right: 10rpx;
  816. }
  817. .next .pagination-icon {
  818. margin-left: 10rpx;
  819. }
  820. .page-indicator {
  821. display: flex;
  822. align-items: center;
  823. font-size: 28rpx;
  824. }
  825. .current-page {
  826. color: #db4437;
  827. font-weight: 500;
  828. }
  829. .page-separator {
  830. margin: 0 8rpx;
  831. color: #ccc;
  832. }
  833. .total-pages {
  834. color: #999;
  835. }
  836. /* 空状态 */
  837. .empty-state {
  838. display: flex;
  839. flex-direction: column;
  840. align-items: center;
  841. justify-content: center;
  842. padding: 100rpx 0;
  843. text-align: center;
  844. }
  845. .empty-illustration {
  846. width: 300rpx;
  847. height: 300rpx;
  848. margin-bottom: 40rpx;
  849. opacity: 0.8;
  850. }
  851. .empty-title {
  852. font-size: 34rpx;
  853. color: #333;
  854. font-weight: 500;
  855. margin-bottom: 10rpx;
  856. }
  857. .empty-subtitle {
  858. font-size: 28rpx;
  859. color: #999;
  860. margin-bottom: 50rpx;
  861. }
  862. .create-btn {
  863. background: #db4437;
  864. color: white;
  865. border-radius: 40rpx;
  866. font-size: 30rpx;
  867. height: 80rpx;
  868. line-height: 80rpx;
  869. padding: 0 50rpx;
  870. display: flex;
  871. align-items: center;
  872. transition: all 0.3s ease;
  873. box-shadow: 0 4rpx 12rpx rgba(219, 68, 55, 0.2);
  874. }
  875. .create-btn:active {
  876. transform: scale(0.98);
  877. opacity: 0.9;
  878. }
  879. .create-btn .btn-icon {
  880. width: 32rpx;
  881. height: 32rpx;
  882. margin-right: 10rpx;
  883. }
  884. /* 状态标签样式 */
  885. .status-tag {
  886. position: absolute;
  887. top: 10rpx;
  888. right: 10rpx;
  889. padding: 6rpx 16rpx;
  890. border-radius: 20rpx;
  891. font-size: 24rpx;
  892. font-weight: 500;
  893. z-index: 10;
  894. }
  895. .status-tag.in-progress {
  896. background-color: #ff9800;
  897. color: #fff;
  898. }
  899. .status-tag.completed {
  900. background-color: #4caf50;
  901. color: #fff;
  902. }
  903. /* 开始行程按钮样式 */
  904. .start-btn {
  905. color: #fff;
  906. background-color: #ff9800;
  907. border: 1rpx solid #ff9800;
  908. }
  909. /* 添加分享相关样式 */
  910. .custom-share-sheet {
  911. position: fixed;
  912. top: 0;
  913. left: 0;
  914. right: 0;
  915. bottom: 0;
  916. background: rgba(0, 0, 0, 0.5);
  917. z-index: 9999;
  918. display: flex;
  919. align-items: flex-end;
  920. }
  921. .share-sheet-content {
  922. width: 100%;
  923. background: #fff;
  924. border-radius: 24rpx 24rpx 0 0;
  925. padding: 40rpx 0;
  926. }
  927. .share-title {
  928. text-align: center;
  929. font-size: 32rpx;
  930. color: #999;
  931. margin-bottom: 40rpx;
  932. }
  933. .share-options {
  934. display: flex;
  935. justify-content: space-around;
  936. padding: 0 40rpx;
  937. margin-bottom: 60rpx;
  938. }
  939. .share-option {
  940. display: flex;
  941. flex-direction: column;
  942. align-items: center;
  943. background: none;
  944. border: none;
  945. padding: 0;
  946. margin: 0;
  947. line-height: normal;
  948. }
  949. .share-option::after {
  950. border: none;
  951. }
  952. .share-icon {
  953. width: 100rpx;
  954. height: 100rpx;
  955. margin-bottom: 20rpx;
  956. }
  957. .share-option text {
  958. font-size: 24rpx;
  959. color: #333;
  960. }
  961. .share-cancel {
  962. text-align: center;
  963. padding: 30rpx 0;
  964. border-top: 1rpx solid #f5f5f5;
  965. font-size: 32rpx;
  966. color: #333;
  967. }