与牧同行-小程序用户端
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.

414 lines
7.6 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: 3rpx;
  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: flex-start;
  127. padding: 28rpx 28rpx 24rpx;
  128. border-bottom: 1rpx solid #F5F9FF;
  129. }
  130. .user-info {
  131. display: flex;
  132. align-items: flex-start;
  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-details {
  144. display: flex;
  145. flex-direction: column;
  146. gap: 6rpx;
  147. }
  148. .user-name {
  149. font-size: 28rpx;
  150. color: #1A1A1A;
  151. font-weight: 600;
  152. line-height: 1.2;
  153. }
  154. .pet-info {
  155. font-size: 24rpx;
  156. color: #666;
  157. font-weight: 400;
  158. line-height: 1.2;
  159. }
  160. /* 状态标签 - 移至右上角 */
  161. .status-tag {
  162. padding: 8rpx 20rpx;
  163. border-radius: 20rpx;
  164. font-size: 22rpx;
  165. font-weight: 600;
  166. min-width: 80rpx;
  167. text-align: center;
  168. flex-shrink: 0;
  169. margin-left: 16rpx;
  170. }
  171. .status-replied {
  172. background: linear-gradient(135deg, rgba(76, 217, 100, 0.12) 0%, rgba(46, 204, 113, 0.12) 100%);
  173. color: #2ECC71;
  174. border: 1rpx solid rgba(46, 204, 113, 0.2);
  175. }
  176. .status-pending {
  177. background: linear-gradient(135deg, rgba(255, 149, 0, 0.12) 0%, rgba(255, 127, 0, 0.12) 100%);
  178. color: #FF9500;
  179. border: 1rpx solid rgba(255, 149, 0, 0.2);
  180. }
  181. /* 症状描述 */
  182. .symptom-section {
  183. padding: 24rpx 28rpx;
  184. border-bottom: 1rpx solid #F5F9FF;
  185. }
  186. .section-title-row {
  187. display: flex;
  188. align-items: center;
  189. gap: 12rpx;
  190. margin-bottom: 16rpx;
  191. }
  192. .section-title-text {
  193. font-size: 28rpx;
  194. font-weight: 600;
  195. color: #1A1A1A;
  196. }
  197. .symptom-content {
  198. display: flex;
  199. align-items: flex-start;
  200. gap: 20rpx;
  201. }
  202. .symptom-text {
  203. flex: 1;
  204. font-size: 28rpx;
  205. color: #333;
  206. line-height: 1.6;
  207. font-weight: 400;
  208. }
  209. /* 卡片底部 */
  210. .card-footer {
  211. display: flex;
  212. justify-content: space-between;
  213. align-items: center;
  214. padding: 20rpx 28rpx;
  215. }
  216. .time-info {
  217. display: flex;
  218. align-items: center;
  219. gap: 8rpx;
  220. }
  221. .time-text {
  222. font-size: 24rpx;
  223. color: #999;
  224. font-weight: 400;
  225. }
  226. .reply-info {
  227. display: flex;
  228. align-items: center;
  229. gap: 8rpx;
  230. padding: 8rpx 16rpx;
  231. background: #F0F7FF;
  232. border-radius: 16rpx;
  233. border: 1rpx solid #E5EFFF;
  234. }
  235. .reply-count {
  236. font-size: 24rpx;
  237. font-weight: 500;
  238. color: #4A7CFF;
  239. }
  240. /* 空状态优化 */
  241. .empty-state {
  242. display: flex;
  243. flex-direction: column;
  244. align-items: center;
  245. padding-top: 120rpx;
  246. text-align: center;
  247. }
  248. .empty-icon {
  249. width: 240rpx;
  250. height: 180rpx;
  251. margin-bottom: 32rpx;
  252. opacity: 0.5;
  253. }
  254. .empty-text {
  255. font-size: 32rpx;
  256. color: #666;
  257. margin-bottom: 12rpx;
  258. font-weight: 600;
  259. }
  260. .empty-tip {
  261. font-size: 26rpx;
  262. color: #999;
  263. margin-bottom: 40rpx;
  264. line-height: 1.4;
  265. }
  266. /* 列表底部 */
  267. .list-footer {
  268. text-align: center;
  269. padding: 40rpx 0;
  270. color: #999;
  271. font-size: 24rpx;
  272. }
  273. .footer-text {
  274. opacity: 0.6;
  275. letter-spacing: 1rpx;
  276. }
  277. /* 新建问诊按钮优化 */
  278. .create-btn-container {
  279. position: fixed;
  280. bottom: 40rpx;
  281. right: 32rpx;
  282. z-index: 100;
  283. }
  284. .create-btn {
  285. width: 140rpx;
  286. height: 140rpx;
  287. background: linear-gradient(135deg, #6D9EFF 0%, #4A7CFF 100%);
  288. border-radius: 50%;
  289. display: flex;
  290. flex-direction: column;
  291. align-items: center;
  292. justify-content: center;
  293. box-shadow: 0 8rpx 32rpx rgba(74, 144, 226, 0.3);
  294. transition: all 0.3s cubic-bezier(0.2, 0, 0.2, 1);
  295. position: relative;
  296. overflow: hidden;
  297. }
  298. .create-btn::after {
  299. content: '';
  300. position: absolute;
  301. top: 0;
  302. left: 0;
  303. right: 0;
  304. bottom: 0;
  305. background: rgba(255, 255, 255, 0.1);
  306. opacity: 0;
  307. transition: opacity 0.2s ease;
  308. }
  309. .create-btn:active {
  310. transform: scale(0.95);
  311. box-shadow: 0 4rpx 20rpx rgba(74, 144, 226, 0.4);
  312. }
  313. .create-btn:active::after {
  314. opacity: 1;
  315. }
  316. .btn-icon {
  317. width: 40rpx;
  318. height: 40rpx;
  319. margin-bottom: 10rpx;
  320. }
  321. .btn-text {
  322. font-size: 26rpx;
  323. color: white;
  324. font-weight: 600;
  325. letter-spacing: 0.5rpx;
  326. }
  327. /* 卡片入场动画 */
  328. @keyframes cardSlideIn {
  329. from {
  330. opacity: 0;
  331. transform: translateY(30rpx);
  332. }
  333. to {
  334. opacity: 1;
  335. transform: translateY(0);
  336. }
  337. }
  338. .record-card {
  339. animation: cardSlideIn 0.4s ease-out forwards;
  340. opacity: 0;
  341. }
  342. .record-card:nth-child(1) { animation-delay: 0.1s; }
  343. .record-card:nth-child(2) { animation-delay: 0.15s; }
  344. .record-card:nth-child(3) { animation-delay: 0.2s; }
  345. .record-card:nth-child(4) { animation-delay: 0.25s; }
  346. .record-card:nth-child(5) { animation-delay: 0.3s; }
  347. /* 响应式适配 */
  348. @media screen and (min-width: 768px) {
  349. .record-card {
  350. max-width: 600rpx;
  351. margin-left: auto;
  352. margin-right: auto;
  353. }
  354. }