与牧同行-小程序用户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

483 lines
8.4 KiB

  1. /* 全局样式 */
  2. .wzbox{
  3. min-height: 100vh;
  4. position: relative;
  5. background: linear-gradient(180deg, #F8FBFF 0%, #F0F7FF 100%);
  6. }
  7. /* 头部样式优化 */
  8. .header {
  9. padding: 20rpx 40rpx 20rpx;
  10. background: linear-gradient(135deg, #6D9EFF 0%, #4A7CFF 100%);
  11. border-radius: 0 0 36rpx 36rpx;
  12. box-shadow: 0 4rpx 20rpx rgba(74, 144, 226, 0.15);
  13. position: relative;
  14. overflow: hidden;
  15. }
  16. .header-content {
  17. position: relative;
  18. z-index: 2;
  19. }
  20. .title-section {
  21. display: flex;
  22. flex-direction: column;
  23. gap: 8rpx;
  24. }
  25. .title {
  26. font-size: 44rpx;
  27. font-weight: 700;
  28. color: #FFFFFF;
  29. letter-spacing: 0.5rpx;
  30. text-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
  31. }
  32. .subtitle {
  33. font-size: 28rpx;
  34. color: rgba(255, 255, 255, 0.9);
  35. font-weight: 400;
  36. }
  37. /* 头部装饰元素 */
  38. .header-decoration {
  39. position: absolute;
  40. top: 0;
  41. left: 0;
  42. right: 0;
  43. bottom: 0;
  44. overflow: hidden;
  45. z-index: 1;
  46. }
  47. .decoration-circle {
  48. position: absolute;
  49. border-radius: 50%;
  50. background: rgba(255, 255, 255, 0.08);
  51. }
  52. .circle-1 {
  53. width: 200rpx;
  54. height: 200rpx;
  55. top: -80rpx;
  56. right: -40rpx;
  57. }
  58. .circle-2 {
  59. width: 120rpx;
  60. height: 120rpx;
  61. bottom: -40rpx;
  62. left: -20rpx;
  63. }
  64. /* 问诊记录列表 */
  65. .record-list {
  66. height: calc(100vh - 200rpx);
  67. padding: 0 32rpx 20rpx;
  68. box-sizing: border-box;
  69. }
  70. .records-container {
  71. padding-top: 24rpx;
  72. }
  73. /* 列表头部 */
  74. .section-header {
  75. display: flex;
  76. justify-content: space-between;
  77. align-items: center;
  78. margin-bottom: 24rpx;
  79. padding: 0 4rpx;
  80. }
  81. .section-title {
  82. font-size: 32rpx;
  83. font-weight: 700;
  84. color: #1A1A1A;
  85. position: relative;
  86. padding-left: 16rpx;
  87. }
  88. .section-title::before {
  89. content: '';
  90. position: absolute;
  91. left: 0;
  92. top: 50%;
  93. transform: translateY(-50%);
  94. width: 4rpx;
  95. height: 20rpx;
  96. background: linear-gradient(180deg, #6D9EFF 0%, #4A7CFF 100%);
  97. border-radius: 2rpx;
  98. }
  99. .section-count {
  100. font-size: 26rpx;
  101. color: #666;
  102. background: #F0F7FF;
  103. padding: 6rpx 16rpx;
  104. border-radius: 16rpx;
  105. font-weight: 500;
  106. }
  107. /* 问诊记录卡片 */
  108. .record-card {
  109. background: #FFFFFF;
  110. border-radius: 24rpx;
  111. margin-bottom: 24rpx;
  112. box-shadow: 0 6rpx 24rpx rgba(74, 144, 226, 0.08);
  113. position: relative;
  114. overflow: hidden;
  115. transition: all 0.3s cubic-bezier(0.2, 0, 0.2, 1);
  116. border: 1rpx solid #F0F7FF;
  117. }
  118. .record-card:active {
  119. transform: translateY(-2rpx);
  120. box-shadow: 0 10rpx 30rpx rgba(74, 144, 226, 0.15);
  121. }
  122. /* 卡片头部 */
  123. .card-header {
  124. display: flex;
  125. justify-content: space-between;
  126. align-items: center;
  127. padding: 24rpx 28rpx;
  128. border-bottom: 1rpx solid #F5F9FF;
  129. }
  130. .user-section {
  131. display: flex;
  132. align-items: center;
  133. gap: 16rpx;
  134. flex: 1;
  135. }
  136. .user-avatar {
  137. width: 60rpx;
  138. height: 60rpx;
  139. border-radius: 50%;
  140. border: 2rpx solid rgba(255, 255, 255, 0.8);
  141. box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);
  142. }
  143. .user-name {
  144. font-size: 28rpx;
  145. color: #1A1A1A;
  146. font-weight: 600;
  147. }
  148. /* 状态标签 */
  149. .status-tag {
  150. padding: 8rpx 20rpx;
  151. border-radius: 20rpx;
  152. font-size: 22rpx;
  153. font-weight: 600;
  154. min-width: 80rpx;
  155. text-align: center;
  156. flex-shrink: 0;
  157. }
  158. .status-replied {
  159. background: linear-gradient(135deg, rgba(76, 217, 100, 0.12) 0%, rgba(46, 204, 113, 0.12) 100%);
  160. color: #2ECC71;
  161. border: 1rpx solid rgba(46, 204, 113, 0.2);
  162. }
  163. .status-pending {
  164. background: linear-gradient(135deg, rgba(255, 149, 0, 0.12) 0%, rgba(255, 127, 0, 0.12) 100%);
  165. color: #FF9500;
  166. border: 1rpx solid rgba(255, 149, 0, 0.2);
  167. }
  168. /* 牲畜信息 */
  169. .livestock-section {
  170. padding: 20rpx 28rpx;
  171. }
  172. /* 牲畜信息标题优化 */
  173. .livestock-title-wrapper {
  174. display: flex;
  175. align-items: center;
  176. justify-content: center;
  177. margin-bottom: 20rpx;
  178. position: relative;
  179. }
  180. .livestock-title-line {
  181. flex: 1;
  182. height: 2rpx;
  183. background: linear-gradient(90deg, transparent, #4A7CFF 50%, transparent);
  184. opacity: 0.3;
  185. }
  186. .livestock-title-content {
  187. display: flex;
  188. align-items: center;
  189. gap: 12rpx;
  190. padding: 0 20rpx;
  191. position: relative;
  192. }
  193. .livestock-title-text {
  194. font-size: 30rpx;
  195. font-weight: 700;
  196. color: #333;
  197. background: linear-gradient(135deg, #4A7CFF 0%, #8CB4FF 100%);
  198. -webkit-background-clip: text;
  199. -webkit-text-fill-color: transparent;
  200. background-clip: text;
  201. text-shadow: 0 2rpx 4rpx rgba(74, 124, 255, 0.1);
  202. letter-spacing: 1rpx;
  203. }
  204. @keyframes cowPulse {
  205. 0%, 100% {
  206. transform: scale(1) rotate(0deg);
  207. }
  208. 50% {
  209. transform: scale(1.1) rotate(5deg);
  210. }
  211. }
  212. .livestock-tags {
  213. display: flex;
  214. gap: 16rpx;
  215. flex-wrap: wrap;
  216. }
  217. .livestock-tag {
  218. padding: 5rpx 20rpx;
  219. border-radius: 20rpx;
  220. font-size: 26rpx;
  221. font-weight: 600;
  222. display: flex;
  223. align-items: center;
  224. justify-content: center;
  225. box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
  226. }
  227. .type-tag {
  228. background: linear-gradient(135deg, #6D9EFF 0%, #4A7CFF 100%);
  229. color: #FFFFFF;
  230. border: 2rpx solid rgba(255, 255, 255, 0.3);
  231. }
  232. .age-tag {
  233. background: linear-gradient(135deg, #FFB347 0%, #FFA033 100%);
  234. color: #FFFFFF;
  235. border: 2rpx solid rgba(255, 255, 255, 0.3);
  236. }
  237. .gender-tag {
  238. background: linear-gradient(135deg, #42E695 0%, #3BB2B8 100%);
  239. color: #FFFFFF;
  240. border: 2rpx solid rgba(255, 255, 255, 0.3);
  241. }
  242. .tag-text {
  243. font-size: 26rpx;
  244. font-weight: 600;
  245. color: #FFFFFF;
  246. }
  247. /* 症状描述 */
  248. .symptom-section {
  249. padding: 24rpx 28rpx 28rpx;
  250. }
  251. .symptom-content {
  252. background: #F9FAFF;
  253. padding: 20rpx 24rpx;
  254. border-radius: 16rpx;
  255. border: 1rpx solid #E6ECFF;
  256. position: relative;
  257. }
  258. .symptom-content::before {
  259. content: '症状描述';
  260. position: absolute;
  261. top: -12rpx;
  262. left: 24rpx;
  263. background: #FFFFFF;
  264. padding: 0 12rpx;
  265. font-size: 24rpx;
  266. font-weight: 600;
  267. color: #4A7CFF;
  268. z-index: 1;
  269. }
  270. .symptom-text {
  271. font-size: 28rpx;
  272. color: #333;
  273. line-height: 1.6;
  274. font-weight: 400;
  275. }
  276. /* 卡片底部 */
  277. .card-footer {
  278. display: flex;
  279. justify-content: space-between;
  280. align-items: center;
  281. padding: 20rpx 28rpx;
  282. border-top: 1rpx solid #F5F9FF;
  283. }
  284. .time-info {
  285. display: flex;
  286. align-items: center;
  287. gap: 8rpx;
  288. }
  289. .time-text {
  290. font-size: 24rpx;
  291. color: #999;
  292. font-weight: 400;
  293. }
  294. .reply-info {
  295. display: flex;
  296. align-items: center;
  297. gap: 8rpx;
  298. padding: 8rpx 16rpx;
  299. background: #F0F7FF;
  300. border-radius: 16rpx;
  301. border: 1rpx solid #E5EFFF;
  302. }
  303. .reply-count {
  304. font-size: 24rpx;
  305. font-weight: 500;
  306. color: #4A7CFF;
  307. }
  308. /* 空状态优化 */
  309. .empty-state {
  310. display: flex;
  311. flex-direction: column;
  312. align-items: center;
  313. padding-top: 120rpx;
  314. text-align: center;
  315. }
  316. .empty-icon {
  317. width: 400rpx;
  318. margin-bottom: 32rpx;
  319. opacity: 0.5;
  320. }
  321. .empty-text {
  322. font-size: 32rpx;
  323. color: #666;
  324. margin-bottom: 12rpx;
  325. font-weight: 600;
  326. }
  327. .empty-tip {
  328. font-size: 26rpx;
  329. color: #999;
  330. margin-bottom: 40rpx;
  331. line-height: 1.4;
  332. }
  333. /* 列表底部 */
  334. .list-footer {
  335. text-align: center;
  336. padding: 40rpx 0;
  337. color: #999;
  338. font-size: 24rpx;
  339. }
  340. .footer-text {
  341. opacity: 0.6;
  342. letter-spacing: 1rpx;
  343. }
  344. /* 新建问诊按钮优化 */
  345. .create-btn-container {
  346. position: fixed;
  347. bottom: 40rpx;
  348. right: 32rpx;
  349. z-index: 100;
  350. }
  351. .create-btn {
  352. width: 140rpx;
  353. height: 140rpx;
  354. background: linear-gradient(135deg, #6D9EFF 0%, #4A7CFF 100%);
  355. border-radius: 50%;
  356. display: flex;
  357. flex-direction: column;
  358. align-items: center;
  359. justify-content: center;
  360. box-shadow: 0 8rpx 32rpx rgba(74, 144, 226, 0.3);
  361. transition: all 0.3s cubic-bezier(0.2, 0, 0.2, 1);
  362. position: relative;
  363. overflow: hidden;
  364. }
  365. .create-btn::after {
  366. content: '';
  367. position: absolute;
  368. top: 0;
  369. left: 0;
  370. right: 0;
  371. bottom: 0;
  372. background: rgba(255, 255, 255, 0.1);
  373. opacity: 0;
  374. transition: opacity 0.2s ease;
  375. }
  376. .create-btn:active {
  377. transform: scale(0.95);
  378. box-shadow: 0 4rpx 20rpx rgba(74, 144, 226, 0.4);
  379. }
  380. .create-btn:active::after {
  381. opacity: 1;
  382. }
  383. .btn-icon {
  384. width: 40rpx;
  385. height: 40rpx;
  386. margin-bottom: 10rpx;
  387. }
  388. .btn-text {
  389. font-size: 26rpx;
  390. color: white;
  391. font-weight: 600;
  392. letter-spacing: 0.5rpx;
  393. }
  394. /* 卡片入场动画 */
  395. @keyframes cardSlideIn {
  396. from {
  397. opacity: 0;
  398. transform: translateY(30rpx);
  399. }
  400. to {
  401. opacity: 1;
  402. transform: translateY(0);
  403. }
  404. }
  405. .record-card {
  406. animation: cardSlideIn 0.4s ease-out forwards;
  407. opacity: 0;
  408. }
  409. .record-card:nth-child(1) { animation-delay: 0.1s; }
  410. .record-card:nth-child(2) { animation-delay: 0.15s; }
  411. .record-card:nth-child(3) { animation-delay: 0.2s; }
  412. .record-card:nth-child(4) { animation-delay: 0.25s; }
  413. .record-card:nth-child(5) { animation-delay: 0.3s; }
  414. /* 响应式适配 */
  415. @media screen and (min-width: 768px) {
  416. .record-card {
  417. max-width: 600rpx;
  418. margin-left: auto;
  419. margin-right: auto;
  420. }
  421. }