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

340 lines
5.6 KiB

  1. .xqbox{
  2. min-height: 100vh;
  3. background: #F8FBFF;
  4. }
  5. /* 页面内容 */
  6. .page-content {
  7. height: calc(100vh - 120rpx);
  8. box-sizing: border-box;
  9. }
  10. /* 表单区域 */
  11. .form-section {
  12. background: #FFFFFF;
  13. margin-bottom: 24rpx;
  14. padding: 32rpx;
  15. border-radius: 0;
  16. border-bottom: 1rpx solid #F0F7FF;
  17. }
  18. .section-header {
  19. display: flex;
  20. justify-content: space-between;
  21. align-items: center;
  22. margin-bottom: 24rpx;
  23. }
  24. .section-title {
  25. display: flex;
  26. align-items: center;
  27. gap: 12rpx;
  28. }
  29. .section-title text {
  30. font-size: 32rpx;
  31. font-weight: 700;
  32. color: #1A1A1A;
  33. }
  34. .section-required {
  35. font-size: 24rpx;
  36. color: #FF6B6B;
  37. font-weight: 500;
  38. background: rgba(255, 107, 107, 0.1);
  39. padding: 4rpx 12rpx;
  40. border-radius: 12rpx;
  41. }
  42. .section-optional {
  43. font-size: 24rpx;
  44. color: #999;
  45. font-weight: 400;
  46. }
  47. /* 表单输入 */
  48. .form-input {
  49. height: 96rpx;
  50. background: #F8FBFF;
  51. border-radius: 20rpx;
  52. padding: 0 32rpx;
  53. font-size: 30rpx;
  54. color: #333;
  55. border: 1rpx solid #E5F0FF;
  56. box-sizing: border-box;
  57. width: 100%;
  58. transition: all 0.2s ease;
  59. }
  60. .form-input::placeholder {
  61. color: #BBB;
  62. font-size: 28rpx;
  63. }
  64. .form-input:focus {
  65. border-color: #4A90E2;
  66. background: #FFFFFF;
  67. box-shadow: 0 0 0 3rpx rgba(74, 144, 226, 0.1);
  68. }
  69. /* 宠物信息网格 */
  70. .info-grid {
  71. display: grid;
  72. grid-template-columns: 1fr 1fr;
  73. gap: 24rpx;
  74. }
  75. .info-item {
  76. display: flex;
  77. flex-direction: column;
  78. gap: 16rpx;
  79. }
  80. .item-label {
  81. display: flex;
  82. align-items: center;
  83. gap: 8rpx;
  84. }
  85. .item-label text {
  86. font-size: 26rpx;
  87. color: #666;
  88. font-weight: 500;
  89. }
  90. .item-input-wrapper {
  91. position: relative;
  92. }
  93. .item-input {
  94. height: 80rpx;
  95. background: #F8FBFF;
  96. border-radius: 20rpx;
  97. padding: 0 32rpx 0 24rpx;
  98. font-size: 28rpx;
  99. color: #333;
  100. border: 1rpx solid #E5F0FF;
  101. box-sizing: border-box;
  102. width: 100%;
  103. text-align: center;
  104. }
  105. /* 性别选择 */
  106. .gender-buttons {
  107. display: flex;
  108. gap: 16rpx;
  109. }
  110. .gender-btn {
  111. flex: 1;
  112. height: 80rpx;
  113. background: #F8FBFF;
  114. border-radius: 20rpx;
  115. display: flex;
  116. align-items: center;
  117. justify-content: center;
  118. font-size: 28rpx;
  119. color: #666;
  120. border: 1rpx solid #E5F0FF;
  121. transition: all 0.2s ease;
  122. }
  123. .gender-btn.active {
  124. background: linear-gradient(135deg, #4A90E2 0%, #357AE8 100%);
  125. color: #FFFFFF;
  126. border-color: #4A90E2;
  127. font-weight: 600;
  128. box-shadow: 0 4rpx 12rpx rgba(74, 144, 226, 0.2);
  129. }
  130. /* 症状描述 */
  131. .symptom-box {
  132. position: relative;
  133. }
  134. .symptom-textarea {
  135. width: 100%;
  136. min-height: 240rpx;
  137. background: #F8FBFF;
  138. border-radius: 20rpx;
  139. padding: 32rpx;
  140. font-size: 28rpx;
  141. color: #333;
  142. border: 1rpx solid #E5F0FF;
  143. box-sizing: border-box;
  144. line-height: 1.6;
  145. transition: all 0.2s ease;
  146. }
  147. .symptom-textarea::placeholder {
  148. color: #BBB;
  149. font-size: 28rpx;
  150. }
  151. .symptom-textarea:focus {
  152. border-color: #4A90E2;
  153. background: #FFFFFF;
  154. box-shadow: 0 0 0 3rpx rgba(74, 144, 226, 0.1);
  155. }
  156. .textarea-counter {
  157. position: absolute;
  158. right: 20rpx;
  159. bottom: 20rpx;
  160. font-size: 24rpx;
  161. color: #999;
  162. background: rgba(255, 255, 255, 0.9);
  163. padding: 4rpx 12rpx;
  164. border-radius: 12rpx;
  165. }
  166. /* 图片上传 */
  167. .upload-tips {
  168. font-size: 24rpx;
  169. color: #999;
  170. margin-bottom: 24rpx;
  171. line-height: 1.4;
  172. }
  173. .image-upload-grid {
  174. display: grid;
  175. grid-template-columns: repeat(3, 1fr);
  176. gap: 24rpx;
  177. }
  178. .image-preview {
  179. width: 200rpx;
  180. height: 200rpx;
  181. border-radius: 20rpx;
  182. overflow: hidden;
  183. position: relative;
  184. box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
  185. }
  186. .preview-image {
  187. width: 100%;
  188. height: 100%;
  189. object-fit: cover;
  190. }
  191. .remove-overlay {
  192. position: absolute;
  193. top: 8rpx;
  194. right: 8rpx;
  195. width: 40rpx;
  196. height: 40rpx;
  197. background: rgba(0, 0, 0, 0.6);
  198. border-radius: 50%;
  199. display: flex;
  200. align-items: center;
  201. justify-content: center;
  202. backdrop-filter: blur(4rpx);
  203. transition: all 0.2s ease;
  204. }
  205. .remove-overlay:active {
  206. background: rgba(0, 0, 0, 0.8);
  207. transform: scale(0.95);
  208. }
  209. .remove-icon {
  210. width: 20rpx;
  211. height: 20rpx;
  212. }
  213. /* 上传按钮 */
  214. .upload-btn {
  215. width: 200rpx;
  216. height: 200rpx;
  217. border: 2rpx dashed #D9E7FF;
  218. border-radius: 20rpx;
  219. display: flex;
  220. flex-direction: column;
  221. align-items: center;
  222. justify-content: center;
  223. background: #F8FBFF;
  224. transition: all 0.2s ease;
  225. }
  226. .upload-btn:active {
  227. border-color: #4A90E2;
  228. background: #F0F7FF;
  229. transform: scale(0.98);
  230. }
  231. .upload-icon-wrapper {
  232. width: 60rpx;
  233. height: 60rpx;
  234. background: linear-gradient(135deg, #4A90E2 0%, #357AE8 100%);
  235. border-radius: 50%;
  236. display: flex;
  237. align-items: center;
  238. justify-content: center;
  239. margin-bottom: 16rpx;
  240. }
  241. .upload-icon {
  242. width: 28rpx;
  243. height: 28rpx;
  244. }
  245. .upload-text {
  246. font-size: 24rpx;
  247. color: #4A90E2;
  248. font-weight: 500;
  249. }
  250. /* 提交按钮 */
  251. .submit-section {
  252. padding: 40rpx 32rpx 80rpx;
  253. background: #FFFFFF;
  254. }
  255. .submit-btn {
  256. background: linear-gradient(135deg, #4A90E2 0%, #357AE8 100%);
  257. border-radius: 24rpx;
  258. padding: 10rpx 0;
  259. font-size: 32rpx;
  260. font-weight: 700;
  261. color: #FFFFFF;
  262. border: none;
  263. transition: all 0.3s ease;
  264. box-shadow: 0 8rpx 32rpx rgba(74, 144, 226, 0.25);
  265. }
  266. .submit-btn:active {
  267. transform: translateY(2rpx);
  268. box-shadow: 0 4rpx 20rpx rgba(74, 144, 226, 0.3);
  269. }
  270. .submit-btn[disabled] {
  271. opacity: 0.6;
  272. transform: none;
  273. box-shadow: none;
  274. }
  275. /* 动画效果 */
  276. @keyframes fadeIn {
  277. from {
  278. opacity: 0;
  279. transform: translateY(20rpx);
  280. }
  281. to {
  282. opacity: 1;
  283. transform: translateY(0);
  284. }
  285. }
  286. .form-section {
  287. animation: fadeIn 0.4s ease-out forwards;
  288. opacity: 0;
  289. }
  290. .form-section:nth-child(1) { animation-delay: 0.1s; }
  291. .form-section:nth-child(2) { animation-delay: 0.15s; }
  292. .form-section:nth-child(3) { animation-delay: 0.2s; }
  293. .form-section:nth-child(4) { animation-delay: 0.25s; }