detail-style.css 22 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387
  1. /* 页面背景 */
  2. page {
  3. background-color: #F8F8F8;
  4. }
  5. .detail-container {
  6. padding-bottom: 200rpx;
  7. }
  8. /* 顶部动态状态区 */
  9. .detail-header {
  10. background: linear-gradient(135deg, #FF9800 0%, #FF5722 100%);
  11. padding: 40rpx 40rpx 50rpx 40rpx;
  12. color: #fff;
  13. border-radius: 20rpx;
  14. margin: 30rpx 30rpx 25rpx 30rpx;
  15. box-shadow: 0 5rpx 15rpx rgba(255, 87, 34, 0.2);
  16. }
  17. .status-row {
  18. display: flex;
  19. justify-content: space-between;
  20. align-items: center;
  21. margin-bottom: 40rpx;
  22. }
  23. .status-title {
  24. font-size: 28rpx;
  25. font-weight: bold;
  26. }
  27. .status-price {
  28. font-size: 40rpx;
  29. font-weight: bold;
  30. }
  31. /* 进度条 */
  32. .progress-bar {
  33. display: flex;
  34. justify-content: space-between;
  35. align-items: flex-start;
  36. padding: 0 10rpx;
  37. }
  38. .step-item {
  39. display: flex;
  40. flex-direction: column;
  41. align-items: center;
  42. flex: 1;
  43. position: relative;
  44. opacity: 0.6;
  45. }
  46. .step-item.active {
  47. opacity: 1;
  48. }
  49. .step-circle-wrapper {
  50. position: relative;
  51. width: 100%;
  52. display: flex;
  53. justify-content: center;
  54. margin-bottom: 10rpx;
  55. }
  56. .step-circle {
  57. width: 40rpx;
  58. height: 40rpx;
  59. border-radius: 50%;
  60. background-color: rgba(255, 255, 255, 0.3);
  61. color: #fff;
  62. font-size: 20rpx;
  63. display: flex;
  64. justify-content: center;
  65. align-items: center;
  66. position: relative;
  67. z-index: 2;
  68. }
  69. .step-item.active .step-circle {
  70. background-color: #fff;
  71. color: #FF5722;
  72. font-weight: bold;
  73. }
  74. .step-line {
  75. position: absolute;
  76. top: 50%;
  77. right: calc(50% + 20rpx);
  78. width: calc(100% - 40rpx);
  79. height: 2rpx;
  80. background-color: rgba(255, 255, 255, 0.3);
  81. z-index: 1;
  82. transform: translateY(-50%);
  83. }
  84. .step-line.active-line {
  85. background-color: #fff;
  86. }
  87. .step-text {
  88. font-size: 24rpx;
  89. }
  90. /* 内容区通用卡片 */
  91. .detail-content {
  92. width: 100%;
  93. box-sizing: border-box;
  94. padding: 0 30rpx;
  95. position: relative;
  96. z-index: 10;
  97. }
  98. .white-card {
  99. background-color: #fff;
  100. border-radius: 20rpx;
  101. padding: 30rpx;
  102. margin-bottom: 25rpx;
  103. box-shadow: 0 5rpx 20rpx rgba(0, 0, 0, 0.03);
  104. }
  105. /* 宠物信息条 */
  106. .pet-bar {
  107. display: flex;
  108. align-items: center;
  109. }
  110. .pb-avatar {
  111. width: 100rpx;
  112. height: 100rpx;
  113. border-radius: 50%;
  114. margin-right: 20rpx;
  115. }
  116. .pb-info {
  117. flex: 1;
  118. display: flex;
  119. flex-direction: column;
  120. }
  121. .pb-name-row {
  122. margin-bottom: 10rpx;
  123. }
  124. .pb-name {
  125. font-size: 32rpx;
  126. font-weight: bold;
  127. color: #333;
  128. margin-right: 15rpx;
  129. }
  130. .pb-breed {
  131. font-size: 26rpx;
  132. color: #999;
  133. }
  134. .pb-tags {
  135. display: flex;
  136. }
  137. .pb-tag {
  138. background-color: #FFF3E0;
  139. color: #FF9800;
  140. font-size: 22rpx;
  141. padding: 4rpx 16rpx;
  142. border-radius: 8rpx;
  143. }
  144. .pb-actions {
  145. display: flex;
  146. align-items: center;
  147. }
  148. .pb-btn {
  149. display: flex;
  150. align-items: center;
  151. justify-content: center;
  152. }
  153. .profile-btn {
  154. border: 2rpx solid #FF9800;
  155. color: #FF9800;
  156. font-size: 24rpx;
  157. padding: 8rpx 20rpx;
  158. border-radius: 30rpx;
  159. margin-right: 20rpx;
  160. }
  161. .phone-btn {
  162. width: 60rpx;
  163. height: 60rpx;
  164. border-radius: 50%;
  165. background-color: #FFF3E0;
  166. }
  167. .phone-icon {
  168. width: 32rpx;
  169. height: 32rpx;
  170. }
  171. /* 服务及路线信息 */
  172. .si-row {
  173. display: flex;
  174. align-items: flex-start;
  175. margin-bottom: 30rpx;
  176. }
  177. .si-row:last-child {
  178. margin-bottom: 0;
  179. }
  180. .si-icon {
  181. width: 36rpx;
  182. height: 36rpx;
  183. margin-right: 20rpx;
  184. margin-top: 4rpx;
  185. }
  186. .si-icon-uni {
  187. margin-right: 20rpx;
  188. margin-top: 4rpx;
  189. display: flex;
  190. align-items: center;
  191. justify-content: center;
  192. }
  193. .si-content {
  194. flex: 1;
  195. display: flex;
  196. flex-direction: column;
  197. }
  198. .si-label {
  199. font-size: 24rpx;
  200. color: #999;
  201. margin-bottom: 6rpx;
  202. }
  203. .icon-bg {
  204. width: 44rpx;
  205. height: 44rpx;
  206. border-radius: 8rpx;
  207. display: flex;
  208. justify-content: center;
  209. align-items: center;
  210. margin-right: 20rpx;
  211. margin-top: 4rpx;
  212. flex-shrink: 0;
  213. }
  214. .icon-bg.grey-bg {
  215. background-color: #F8F8F8;
  216. }
  217. .custom-icon {
  218. width: 28rpx;
  219. height: 28rpx;
  220. }
  221. .custom-icon-file {
  222. width: 36rpx;
  223. height: 36rpx;
  224. }
  225. .si-val {
  226. font-size: 28rpx;
  227. color: #333;
  228. }
  229. .record-btn {
  230. font-size: 24rpx;
  231. color: #FF5722;
  232. display: flex;
  233. align-items: center;
  234. }
  235. .record-arrow {
  236. width: 24rpx;
  237. height: 24rpx;
  238. margin-left: 6rpx;
  239. }
  240. /* 地址展现复用图标逻辑 */
  241. .addr-row {
  242. position: relative;
  243. align-items: stretch;
  244. }
  245. .icon-circle {
  246. width: 40rpx;
  247. height: 40rpx;
  248. border-radius: 50%;
  249. color: #fff;
  250. font-size: 22rpx;
  251. display: flex;
  252. align-items: center;
  253. justify-content: center;
  254. margin-right: 20rpx;
  255. flex-shrink: 0;
  256. font-weight: bold;
  257. margin-top: 6rpx;
  258. position: relative;
  259. z-index: 1;
  260. }
  261. .icon-circle.start {
  262. background-color: #FFB74D;
  263. }
  264. .icon-circle.end {
  265. background-color: #81C784;
  266. }
  267. .icon-circle.service {
  268. background-color: #81C784;
  269. }
  270. .route-line-vertical {
  271. position: absolute;
  272. left: 19rpx;
  273. top: 46rpx;
  274. bottom: -6rpx;
  275. border-left: 2rpx dashed #E0E0E0;
  276. width: 0;
  277. z-index: 0;
  278. }
  279. .si-addr-title {
  280. font-size: 30rpx;
  281. font-weight: bold;
  282. color: #333;
  283. margin-bottom: 6rpx;
  284. }
  285. .si-addr-desc {
  286. font-size: 24rpx;
  287. color: #999;
  288. }
  289. .nav-btn-circle {
  290. width: 50rpx;
  291. height: 50rpx;
  292. background-color: #FFF3E0;
  293. border-radius: 50%;
  294. display: flex;
  295. align-items: center;
  296. justify-content: center;
  297. margin-top: 6rpx;
  298. }
  299. .nav-arrow {
  300. width: 28rpx;
  301. height: 28rpx;
  302. }
  303. /* 打卡任务区 */
  304. .task-card {
  305. display: flex;
  306. flex-direction: column;
  307. }
  308. .tc-title {
  309. font-size: 30rpx;
  310. font-weight: bold;
  311. color: #333;
  312. margin-bottom: 15rpx;
  313. }
  314. .tc-desc {
  315. font-size: 22rpx;
  316. color: #666;
  317. margin-bottom: 12rpx;
  318. }
  319. .media-grid {
  320. display: flex;
  321. flex-wrap: wrap;
  322. gap: 20rpx;
  323. margin-bottom: 20rpx;
  324. }
  325. .media-item {
  326. width: 160rpx;
  327. height: 160rpx;
  328. position: relative;
  329. border-radius: 12rpx;
  330. }
  331. .media-preview {
  332. width: 100%;
  333. height: 100%;
  334. border-radius: 12rpx;
  335. }
  336. .media-del {
  337. position: absolute;
  338. top: -10rpx;
  339. right: -10rpx;
  340. width: 36rpx;
  341. height: 36rpx;
  342. background-color: rgba(0, 0, 0, 0.5);
  343. color: #fff;
  344. border-radius: 50%;
  345. display: flex;
  346. align-items: center;
  347. justify-content: center;
  348. font-size: 24rpx;
  349. z-index: 2;
  350. }
  351. .media-add {
  352. width: 160rpx;
  353. height: 160rpx;
  354. border: 2rpx dashed #ccc;
  355. border-radius: 12rpx;
  356. display: flex;
  357. flex-direction: column;
  358. align-items: center;
  359. justify-content: center;
  360. background-color: #FAFAFA;
  361. box-sizing: border-box;
  362. }
  363. .upload-icon-small {
  364. width: 40rpx;
  365. height: 40rpx;
  366. margin-bottom: 10rpx;
  367. }
  368. .upload-text-small {
  369. font-size: 22rpx;
  370. color: #999;
  371. }
  372. .full-media-add {
  373. width: 100%;
  374. height: 140rpx;
  375. background-color: #FAFAFA;
  376. border: 2rpx dashed #E0E0E0;
  377. border-radius: 12rpx;
  378. display: flex;
  379. flex-direction: column;
  380. justify-content: center;
  381. align-items: center;
  382. margin-top: 10rpx;
  383. }
  384. .upload-icon-large {
  385. width: 50rpx;
  386. height: 50rpx;
  387. margin-bottom: 10rpx;
  388. opacity: 0.5;
  389. }
  390. .upload-text-large {
  391. font-size: 24rpx;
  392. color: #999;
  393. }
  394. /* 基础信息区 */
  395. .bi-row {
  396. display: flex;
  397. align-items: flex-start;
  398. margin-bottom: 25rpx;
  399. }
  400. .bi-row:last-child {
  401. margin-bottom: 0;
  402. }
  403. .bi-icon {
  404. width: 32rpx;
  405. height: 32rpx;
  406. margin-right: 20rpx;
  407. margin-top: 4rpx;
  408. }
  409. .bi-icon-uni {
  410. margin-right: 20rpx;
  411. margin-top: 4rpx;
  412. display: flex;
  413. align-items: center;
  414. justify-content: center;
  415. }
  416. .bi-content {
  417. flex: 1;
  418. display: flex;
  419. flex-direction: column;
  420. }
  421. .bi-label {
  422. font-size: 24rpx;
  423. color: #999;
  424. margin-bottom: 6rpx;
  425. }
  426. .bi-val-row {
  427. display: flex;
  428. align-items: center;
  429. }
  430. .bi-val {
  431. font-size: 28rpx;
  432. color: #333;
  433. }
  434. .bi-copy {
  435. background-color: #F0F0F0;
  436. color: #666;
  437. font-size: 20rpx;
  438. padding: 2rpx 10rpx;
  439. border-radius: 6rpx;
  440. margin-left: 15rpx;
  441. }
  442. /* 订单进度 */
  443. .tl-title-row {
  444. display: flex;
  445. align-items: center;
  446. margin-bottom: 30rpx;
  447. }
  448. .orange-bar {
  449. width: 8rpx;
  450. height: 32rpx;
  451. background-color: #FF9800;
  452. margin-right: 16rpx;
  453. border-radius: 4rpx;
  454. }
  455. .tl-title {
  456. font-size: 30rpx;
  457. font-weight: bold;
  458. color: #333;
  459. }
  460. .tl-list {
  461. display: flex;
  462. flex-direction: column;
  463. padding-left: 10rpx;
  464. }
  465. .tl-item {
  466. display: flex;
  467. position: relative;
  468. padding-bottom: 40rpx;
  469. }
  470. .tl-item:last-child {
  471. padding-bottom: 0;
  472. }
  473. .tl-marker {
  474. width: 16rpx;
  475. height: 16rpx;
  476. border-radius: 50%;
  477. background-color: #E0E0E0;
  478. position: absolute;
  479. left: 0;
  480. top: 6rpx;
  481. z-index: 2;
  482. display: flex;
  483. justify-content: center;
  484. align-items: center;
  485. }
  486. .tl-marker.active {
  487. background-color: #fff;
  488. border: 3rpx solid #FF9800;
  489. width: 18rpx;
  490. height: 18rpx;
  491. left: -1rpx;
  492. /* offset for border width */
  493. }
  494. .tl-dot-inner {
  495. width: 10rpx;
  496. height: 10rpx;
  497. border-radius: 50%;
  498. background-color: #FF9800;
  499. }
  500. .tl-item:not(:last-child)::after {
  501. content: '';
  502. position: absolute;
  503. left: 7rpx;
  504. top: 24rpx;
  505. bottom: -6rpx;
  506. width: 2rpx;
  507. background-color: #FFE0B2;
  508. z-index: 1;
  509. }
  510. .tl-content-row {
  511. margin-left: 40rpx;
  512. display: flex;
  513. flex-direction: column;
  514. width: 100%;
  515. }
  516. .tl-header {
  517. display: flex;
  518. justify-content: space-between;
  519. align-items: center;
  520. width: 100%;
  521. margin-bottom: 10rpx;
  522. }
  523. .tl-status {
  524. font-size: 28rpx;
  525. color: #333;
  526. font-weight: 500;
  527. }
  528. .tl-time {
  529. font-size: 24rpx;
  530. color: #999;
  531. }
  532. .tl-medias {
  533. display: flex;
  534. flex-wrap: wrap;
  535. gap: 15rpx;
  536. margin-bottom: 15rpx;
  537. }
  538. .tl-img {
  539. width: 140rpx;
  540. height: 140rpx;
  541. border-radius: 8rpx;
  542. }
  543. .tl-remark {
  544. font-size: 24rpx;
  545. color: #666;
  546. background-color: #F9F9F9;
  547. padding: 15rpx;
  548. border-radius: 8rpx;
  549. line-height: 1.5;
  550. }
  551. /* 底部操作栏 */
  552. .bottom-action-bar {
  553. position: fixed;
  554. bottom: 0;
  555. left: 0;
  556. width: 100%;
  557. height: 120rpx;
  558. background-color: #fff;
  559. display: flex;
  560. align-items: center;
  561. justify-content: space-between;
  562. padding: 0 30rpx;
  563. box-shadow: 0 -5rpx 20rpx rgba(0, 0, 0, 0.05);
  564. box-sizing: border-box;
  565. padding-bottom: constant(safe-area-inset-bottom);
  566. padding-bottom: env(safe-area-inset-bottom);
  567. z-index: 100;
  568. }
  569. .action-left,
  570. .action-right {
  571. display: flex;
  572. align-items: center;
  573. }
  574. .action-btn {
  575. height: 64rpx;
  576. line-height: 64rpx;
  577. border-radius: 32rpx;
  578. font-size: 26rpx;
  579. padding: 0 35rpx;
  580. margin: 0;
  581. }
  582. .action-left .action-btn:first-child {
  583. margin-right: 20rpx;
  584. }
  585. .action-btn.grey-outline {
  586. background-color: #fff;
  587. color: #666;
  588. border: 1px solid #E0E0E0;
  589. }
  590. .action-btn.orange-outline {
  591. background-color: #FFF8F0;
  592. color: #FF9800;
  593. border: 1px solid #FF9800;
  594. }
  595. .action-btn.primary {
  596. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  597. color: #fff;
  598. box-shadow: 0 4rpx 12rpx rgba(255, 87, 34, 0.2);
  599. border: none;
  600. }
  601. .action-btn.grey-bg {
  602. background: #E0E0E0;
  603. color: #999;
  604. box-shadow: none;
  605. border: none;
  606. }
  607. .action-btn::after {
  608. border: none;
  609. }
  610. /* 上传图片视频弹窗 */
  611. .upload-modal-mask {
  612. position: fixed;
  613. top: 0;
  614. left: 0;
  615. width: 100%;
  616. height: 100%;
  617. background-color: rgba(0, 0, 0, 0.4);
  618. z-index: 999;
  619. display: flex;
  620. justify-content: center;
  621. align-items: center;
  622. }
  623. .upload-modal-content {
  624. width: 600rpx;
  625. background-color: #ffffff;
  626. border-radius: 20rpx;
  627. padding: 40rpx;
  628. box-sizing: border-box;
  629. display: flex;
  630. flex-direction: column;
  631. }
  632. .um-header {
  633. text-align: center;
  634. margin-bottom: 40rpx;
  635. }
  636. .um-title {
  637. font-size: 32rpx;
  638. font-weight: bold;
  639. color: #333;
  640. }
  641. .um-grid {
  642. display: flex;
  643. flex-wrap: wrap;
  644. margin-bottom: 30rpx;
  645. }
  646. .um-item {
  647. width: 130rpx;
  648. height: 130rpx;
  649. border-radius: 8rpx;
  650. margin-right: 20rpx;
  651. margin-bottom: 20rpx;
  652. position: relative;
  653. background-color: #f5f5f5;
  654. overflow: hidden;
  655. }
  656. .um-item:nth-child(4n) {
  657. margin-right: 0;
  658. }
  659. .um-preview {
  660. width: 100%;
  661. height: 100%;
  662. }
  663. .um-del {
  664. position: absolute;
  665. top: 4rpx;
  666. right: 4rpx;
  667. width: 36rpx;
  668. height: 36rpx;
  669. line-height: 32rpx;
  670. text-align: center;
  671. background-color: rgba(0, 0, 0, 0.5);
  672. color: #fff;
  673. border-radius: 50%;
  674. font-size: 28rpx;
  675. }
  676. .um-add {
  677. width: 130rpx;
  678. height: 130rpx;
  679. border-radius: 8rpx;
  680. border: 1px dashed #e5e5e5;
  681. display: flex;
  682. flex-direction: column;
  683. justify-content: center;
  684. align-items: center;
  685. box-sizing: border-box;
  686. margin-bottom: 20rpx;
  687. }
  688. .um-add-icon {
  689. width: 44rpx;
  690. height: 44rpx;
  691. margin-bottom: 10rpx;
  692. opacity: 0.4;
  693. }
  694. .um-add-text {
  695. font-size: 24rpx;
  696. color: #ccc;
  697. }
  698. .um-textarea {
  699. width: 100%;
  700. height: 160rpx;
  701. background-color: #ffffff;
  702. border-radius: 12rpx;
  703. padding: 24rpx;
  704. font-size: 28rpx;
  705. color: #333;
  706. box-sizing: border-box;
  707. border: 1px solid #f0f0f0;
  708. }
  709. .um-footer {
  710. margin-top: 40rpx;
  711. display: flex;
  712. justify-content: center;
  713. }
  714. .um-submit-btn {
  715. width: 100%;
  716. height: 88rpx;
  717. line-height: 88rpx;
  718. border-radius: 44rpx;
  719. font-size: 32rpx;
  720. background-color: #E0E0E0;
  721. color: #fff;
  722. border: none;
  723. text-align: center;
  724. }
  725. .um-submit-btn.active {
  726. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  727. color: #fff;
  728. box-shadow: 0 4rpx 10rpx rgba(255, 87, 34, 0.3);
  729. }
  730. .um-submit-btn::after {
  731. border: none;
  732. }
  733. /* 宠物档案弹窗 */
  734. .pet-modal-mask {
  735. position: fixed;
  736. top: 0;
  737. left: 0;
  738. width: 100%;
  739. height: 100%;
  740. background-color: rgba(0, 0, 0, 0.5);
  741. z-index: 999;
  742. display: flex;
  743. justify-content: center;
  744. align-items: center;
  745. }
  746. .pet-modal-content {
  747. width: 680rpx;
  748. max-height: 85vh;
  749. background-color: #fff;
  750. border-radius: 20rpx;
  751. display: flex;
  752. flex-direction: column;
  753. overflow: hidden;
  754. box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.15);
  755. }
  756. .pet-modal-header {
  757. display: flex;
  758. align-items: center;
  759. padding: 28rpx 30rpx 20rpx;
  760. border-bottom: 1px solid #f5f5f5;
  761. flex-shrink: 0;
  762. }
  763. .pet-modal-title {
  764. font-size: 32rpx;
  765. font-weight: bold;
  766. color: #333;
  767. }
  768. .close-icon-btn {
  769. width: 52rpx;
  770. height: 52rpx;
  771. line-height: 52rpx;
  772. text-align: center;
  773. font-size: 36rpx;
  774. color: #999;
  775. border-radius: 50%;
  776. background-color: #f5f5f5;
  777. flex-shrink: 0;
  778. }
  779. .pm-remark-btn {
  780. height: 52rpx;
  781. line-height: 52rpx;
  782. padding: 0 24rpx;
  783. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  784. color: #fff;
  785. font-size: 26rpx;
  786. border-radius: 26rpx;
  787. margin-right: 16rpx;
  788. font-weight: bold;
  789. flex-shrink: 0;
  790. }
  791. .pet-modal-scroll {
  792. flex: 1;
  793. height: 65vh;
  794. overflow: auto;
  795. }
  796. .pet-base-info {
  797. display: flex;
  798. align-items: center;
  799. padding: 24rpx 30rpx;
  800. border-bottom: 1px solid #f9f9f9;
  801. }
  802. .pm-avatar {
  803. width: 100rpx;
  804. height: 100rpx;
  805. border-radius: 50%;
  806. margin-right: 20rpx;
  807. flex-shrink: 0;
  808. }
  809. .pm-info-text {
  810. flex: 1;
  811. display: flex;
  812. flex-direction: column;
  813. }
  814. .pm-name-row {
  815. display: flex;
  816. align-items: center;
  817. margin-bottom: 8rpx;
  818. }
  819. .pm-name {
  820. font-size: 32rpx;
  821. font-weight: bold;
  822. color: #333;
  823. margin-right: 12rpx;
  824. }
  825. .pm-gender {
  826. display: flex;
  827. align-items: center;
  828. background-color: #E3F2FD;
  829. color: #1976D2;
  830. font-size: 22rpx;
  831. padding: 2rpx 10rpx;
  832. border-radius: 10rpx;
  833. }
  834. .pm-gender.female {
  835. background-color: #FCE4EC;
  836. color: #C2185B;
  837. }
  838. .gender-icon {
  839. font-size: 22rpx;
  840. margin-right: 4rpx;
  841. }
  842. .pm-breed {
  843. font-size: 26rpx;
  844. color: #999;
  845. }
  846. .pm-detail-grid {
  847. padding: 20rpx 30rpx;
  848. display: flex;
  849. flex-wrap: wrap;
  850. gap: 16rpx;
  851. border-bottom: 1px solid #f9f9f9;
  852. }
  853. .pm-grid-item {
  854. background-color: #FAFAFA;
  855. border-radius: 12rpx;
  856. padding: 16rpx 20rpx;
  857. display: flex;
  858. flex-direction: column;
  859. }
  860. .pm-grid-item.half {
  861. width: calc(50% - 8rpx);
  862. }
  863. .pm-grid-item.full {
  864. width: 100%;
  865. }
  866. .pm-label {
  867. font-size: 24rpx;
  868. color: #999;
  869. margin-bottom: 8rpx;
  870. }
  871. .pm-val {
  872. font-size: 28rpx;
  873. color: #333;
  874. line-height: 1.5;
  875. }
  876. .pm-tags-row {
  877. display: flex;
  878. flex-wrap: wrap;
  879. padding: 16rpx 30rpx;
  880. gap: 16rpx;
  881. border-bottom: 1px solid #f9f9f9;
  882. }
  883. .pm-tag-chip {
  884. background-color: #FFF3E0;
  885. border: 1px solid #FFB74D;
  886. border-radius: 20rpx;
  887. padding: 6rpx 20rpx;
  888. }
  889. .pm-tag-chip-text {
  890. font-size: 24rpx;
  891. color: #FF9800;
  892. }
  893. .pm-log-section {
  894. padding: 20rpx 30rpx;
  895. }
  896. .pm-log-header {
  897. display: flex;
  898. align-items: center;
  899. margin-bottom: 20rpx;
  900. }
  901. .pm-log-section-title {
  902. font-size: 28rpx;
  903. font-weight: bold;
  904. color: #333;
  905. }
  906. .pm-log-item {
  907. padding: 18rpx 0;
  908. border-bottom: 1rpx solid #f5f5f5;
  909. display: flex;
  910. flex-direction: column;
  911. }
  912. .pm-log-date {
  913. font-size: 24rpx;
  914. color: #999;
  915. margin-bottom: 8rpx;
  916. }
  917. .pm-log-text {
  918. font-size: 28rpx;
  919. color: #333;
  920. line-height: 1.6;
  921. margin-bottom: 6rpx;
  922. }
  923. .pm-log-recorder {
  924. font-size: 22rpx;
  925. color: #FF9800;
  926. text-align: right;
  927. }
  928. .pm-log-recorder.system {
  929. color: #999;
  930. }
  931. .pm-bottom-close {
  932. margin: 16rpx 30rpx;
  933. height: 72rpx;
  934. line-height: 72rpx;
  935. border-radius: 36rpx;
  936. font-size: 28rpx;
  937. background-color: #f5f5f5;
  938. color: #666;
  939. border: none;
  940. }
  941. .pm-bottom-close::after {
  942. border: none;
  943. }
  944. /* 宠护小结底部弹窗 */
  945. .sum-modal-mask {
  946. position: fixed;
  947. top: 0;
  948. left: 0;
  949. width: 100%;
  950. height: 100%;
  951. background-color: rgba(0, 0, 0, 0.50);
  952. z-index: 999;
  953. display: flex;
  954. align-items: flex-end;
  955. }
  956. .sum-modal-sheet {
  957. width: 100%;
  958. max-height: 90vh;
  959. background-color: #fff;
  960. border-radius: 24rpx 24rpx 0 0;
  961. display: flex;
  962. flex-direction: column;
  963. overflow: hidden;
  964. }
  965. .sum-modal-scroll {
  966. flex: 1;
  967. overflow: hidden;
  968. }
  969. .sum-modal-inner {
  970. padding: 32rpx 36rpx 0;
  971. }
  972. .sum-modal-title {
  973. display: block;
  974. font-size: 34rpx;
  975. font-weight: bold;
  976. color: #333;
  977. text-align: center;
  978. margin-bottom: 30rpx;
  979. }
  980. .sum-meta-row {
  981. display: flex;
  982. margin-bottom: 16rpx;
  983. align-items: flex-start;
  984. }
  985. .sum-meta-label {
  986. font-size: 26rpx;
  987. color: #999;
  988. flex-shrink: 0;
  989. width: 140rpx;
  990. }
  991. .sum-meta-val {
  992. font-size: 24rpx;
  993. color: #333;
  994. flex: 1;
  995. }
  996. .sum-section-title {
  997. font-size: 26rpx;
  998. font-weight: bold;
  999. color: #333;
  1000. padding-left: 12rpx;
  1001. border-left: 6rpx solid #FF9800;
  1002. margin-top: 24rpx;
  1003. margin-bottom: 16rpx;
  1004. }
  1005. .sum-pet-card {
  1006. background-color: #FAFAFA;
  1007. border-radius: 12rpx;
  1008. padding: 20rpx;
  1009. display: flex;
  1010. align-items: center;
  1011. }
  1012. .sum-pet-avatar {
  1013. width: 80rpx;
  1014. height: 80rpx;
  1015. border-radius: 50%;
  1016. margin-right: 20rpx;
  1017. flex-shrink: 0;
  1018. }
  1019. .sum-pet-info {
  1020. flex: 1;
  1021. display: flex;
  1022. flex-direction: column;
  1023. }
  1024. .sum-pet-name-row {
  1025. display: flex;
  1026. align-items: center;
  1027. margin-bottom: 8rpx;
  1028. }
  1029. .sum-pet-name {
  1030. font-size: 26rpx;
  1031. font-weight: bold;
  1032. color: #333;
  1033. margin-right: 12rpx;
  1034. }
  1035. .sum-pet-breed {
  1036. font-size: 24rpx;
  1037. color: #999;
  1038. }
  1039. .sum-pet-remark {
  1040. font-size: 24rpx;
  1041. color: #666;
  1042. line-height: 1.5;
  1043. }
  1044. .sum-textarea {
  1045. width: 100%;
  1046. min-height: 220rpx;
  1047. background-color: #fff;
  1048. border: 1px solid #eeeeee;
  1049. border-radius: 12rpx;
  1050. padding: 18rpx;
  1051. font-size: 26rpx;
  1052. color: #333;
  1053. box-sizing: border-box;
  1054. line-height: 1.8;
  1055. }
  1056. .sum-sign-row {
  1057. display: flex;
  1058. align-items: center;
  1059. margin-top: 30rpx;
  1060. padding: 16rpx 0;
  1061. border-top: 1px solid #f5f5f5;
  1062. }
  1063. .sum-sign-label {
  1064. font-size: 26rpx;
  1065. color: #999;
  1066. margin-right: 10rpx;
  1067. }
  1068. .sum-sign-val {
  1069. font-size: 26rpx;
  1070. color: #333;
  1071. }
  1072. .sum-footer {
  1073. padding: 20rpx 36rpx 36rpx;
  1074. padding-bottom: max(36rpx, constant(safe-area-inset-bottom));
  1075. padding-bottom: max(36rpx, env(safe-area-inset-bottom));
  1076. background-color: #fff;
  1077. }
  1078. .sum-submit-btn {
  1079. width: 100%;
  1080. height: 84rpx;
  1081. line-height: 84rpx;
  1082. border-radius: 42rpx;
  1083. font-size: 30rpx;
  1084. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  1085. color: #fff;
  1086. border: none;
  1087. box-shadow: 0 4rpx 16rpx rgba(255, 87, 34, 0.25);
  1088. }
  1089. .sum-submit-btn::after {
  1090. border: none;
  1091. }
  1092. /* 宠护小结 - 居中白卡样式 */
  1093. .sum-modal-mask {
  1094. position: fixed;
  1095. top: 0;
  1096. left: 0;
  1097. width: 100%;
  1098. height: 100%;
  1099. background-color: rgba(0, 0, 0, 0.5);
  1100. z-index: 999;
  1101. display: flex;
  1102. justify-content: center;
  1103. align-items: center;
  1104. }
  1105. .sum-modal-card {
  1106. width: 660rpx;
  1107. max-height: 80vh;
  1108. background-color: #fff;
  1109. border-radius: 20rpx;
  1110. display: flex;
  1111. flex-direction: column;
  1112. overflow: hidden;
  1113. box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.15);
  1114. }
  1115. .sum-modal-scroll {
  1116. flex: 1;
  1117. overflow: hidden;
  1118. }
  1119. /* 宠物档案 - 备注按钮 */
  1120. .pet-modal-header {
  1121. display: flex;
  1122. align-items: center;
  1123. padding: 30rpx 30rpx 20rpx;
  1124. border-bottom: 1px solid #f5f5f5;
  1125. }
  1126. .pm-remark-btn {
  1127. height: 52rpx;
  1128. line-height: 52rpx;
  1129. padding: 0 24rpx;
  1130. background: linear-gradient(90deg, #FF9800 0%, #FF5722 100%);
  1131. color: #fff;
  1132. font-size: 26rpx;
  1133. border-radius: 26rpx;
  1134. margin-right: 16rpx;
  1135. font-weight: bold;
  1136. }
  1137. /* 标签芯片 */
  1138. .pm-tags-row {
  1139. display: flex;
  1140. flex-wrap: wrap;
  1141. padding: 0 24rpx 20rpx;
  1142. gap: 16rpx;
  1143. }
  1144. .pm-tag-chip {
  1145. background-color: #FFF3E0;
  1146. border: 1px solid #FFB74D;
  1147. border-radius: 20rpx;
  1148. padding: 6rpx 20rpx;
  1149. }
  1150. .pm-tag-chip-text {
  1151. font-size: 24rpx;
  1152. color: #FF9800;
  1153. }
  1154. /* 备注日志 */
  1155. .pm-log-section {
  1156. padding: 20rpx 24rpx;
  1157. border-top: 1px solid #f5f5f5;
  1158. margin-top: 10rpx;
  1159. }
  1160. .pm-log-header {
  1161. display: flex;
  1162. align-items: center;
  1163. margin-bottom: 20rpx;
  1164. }
  1165. .pm-log-section-title {
  1166. font-size: 28rpx;
  1167. font-weight: bold;
  1168. color: #333;
  1169. }
  1170. .pm-log-item {
  1171. padding: 16rpx 0;
  1172. border-bottom: 1px solid #f9f9f9;
  1173. display: flex;
  1174. flex-direction: column;
  1175. }
  1176. .pm-log-date {
  1177. font-size: 24rpx;
  1178. color: #999;
  1179. margin-bottom: 8rpx;
  1180. }
  1181. .pm-log-text {
  1182. font-size: 28rpx;
  1183. color: #333;
  1184. line-height: 1.6;
  1185. margin-bottom: 6rpx;
  1186. }
  1187. .pm-log-recorder {
  1188. font-size: 22rpx;
  1189. color: #FF9800;
  1190. text-align: right;
  1191. }
  1192. .pm-log-recorder.system {
  1193. color: #999;
  1194. }