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

349 lines
5.8 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. .input-unit {
  106. position: absolute;
  107. right: 24rpx;
  108. top: 50%;
  109. transform: translateY(-50%);
  110. font-size: 26rpx;
  111. color: #999;
  112. font-weight: 400;
  113. }
  114. /* 性别选择 */
  115. .gender-buttons {
  116. display: flex;
  117. gap: 16rpx;
  118. }
  119. .gender-btn {
  120. flex: 1;
  121. height: 80rpx;
  122. background: #F8FBFF;
  123. border-radius: 20rpx;
  124. display: flex;
  125. align-items: center;
  126. justify-content: center;
  127. font-size: 28rpx;
  128. color: #666;
  129. border: 1rpx solid #E5F0FF;
  130. transition: all 0.2s ease;
  131. }
  132. .gender-btn.active {
  133. background: linear-gradient(135deg, #4A90E2 0%, #357AE8 100%);
  134. color: #FFFFFF;
  135. border-color: #4A90E2;
  136. font-weight: 600;
  137. box-shadow: 0 4rpx 12rpx rgba(74, 144, 226, 0.2);
  138. }
  139. /* 症状描述 */
  140. .symptom-box {
  141. position: relative;
  142. }
  143. .symptom-textarea {
  144. width: 100%;
  145. min-height: 240rpx;
  146. background: #F8FBFF;
  147. border-radius: 20rpx;
  148. padding: 32rpx;
  149. font-size: 28rpx;
  150. color: #333;
  151. border: 1rpx solid #E5F0FF;
  152. box-sizing: border-box;
  153. line-height: 1.6;
  154. transition: all 0.2s ease;
  155. }
  156. .symptom-textarea::placeholder {
  157. color: #BBB;
  158. font-size: 28rpx;
  159. }
  160. .symptom-textarea:focus {
  161. border-color: #4A90E2;
  162. background: #FFFFFF;
  163. box-shadow: 0 0 0 3rpx rgba(74, 144, 226, 0.1);
  164. }
  165. .textarea-counter {
  166. position: absolute;
  167. right: 20rpx;
  168. bottom: 20rpx;
  169. font-size: 24rpx;
  170. color: #999;
  171. background: rgba(255, 255, 255, 0.9);
  172. padding: 4rpx 12rpx;
  173. border-radius: 12rpx;
  174. }
  175. /* 图片上传 */
  176. .upload-tips {
  177. font-size: 24rpx;
  178. color: #999;
  179. margin-bottom: 24rpx;
  180. line-height: 1.4;
  181. }
  182. .image-upload-grid {
  183. display: grid;
  184. grid-template-columns: repeat(3, 1fr);
  185. gap: 24rpx;
  186. }
  187. .image-preview {
  188. width: 200rpx;
  189. height: 200rpx;
  190. border-radius: 20rpx;
  191. overflow: hidden;
  192. position: relative;
  193. box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
  194. }
  195. .preview-image {
  196. width: 100%;
  197. height: 100%;
  198. object-fit: cover;
  199. }
  200. .remove-overlay {
  201. position: absolute;
  202. top: 8rpx;
  203. right: 8rpx;
  204. width: 40rpx;
  205. height: 40rpx;
  206. background: rgba(0, 0, 0, 0.6);
  207. border-radius: 50%;
  208. display: flex;
  209. align-items: center;
  210. justify-content: center;
  211. backdrop-filter: blur(4rpx);
  212. transition: all 0.2s ease;
  213. }
  214. .remove-overlay:active {
  215. background: rgba(0, 0, 0, 0.8);
  216. transform: scale(0.95);
  217. }
  218. .remove-icon {
  219. width: 20rpx;
  220. height: 20rpx;
  221. }
  222. /* 上传按钮 */
  223. .upload-btn {
  224. width: 200rpx;
  225. height: 200rpx;
  226. border: 2rpx dashed #D9E7FF;
  227. border-radius: 20rpx;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. justify-content: center;
  232. background: #F8FBFF;
  233. transition: all 0.2s ease;
  234. }
  235. .upload-btn:active {
  236. border-color: #4A90E2;
  237. background: #F0F7FF;
  238. transform: scale(0.98);
  239. }
  240. .upload-icon-wrapper {
  241. width: 60rpx;
  242. height: 60rpx;
  243. background: linear-gradient(135deg, #4A90E2 0%, #357AE8 100%);
  244. border-radius: 50%;
  245. display: flex;
  246. align-items: center;
  247. justify-content: center;
  248. margin-bottom: 16rpx;
  249. }
  250. .upload-icon {
  251. width: 28rpx;
  252. height: 28rpx;
  253. }
  254. .upload-text {
  255. font-size: 24rpx;
  256. color: #4A90E2;
  257. font-weight: 500;
  258. }
  259. /* 提交按钮 */
  260. .submit-section {
  261. padding: 40rpx 32rpx 80rpx;
  262. background: #FFFFFF;
  263. }
  264. .submit-btn {
  265. height: 96rpx;
  266. background: linear-gradient(135deg, #4A90E2 0%, #357AE8 100%);
  267. border-radius: 24rpx;
  268. font-size: 32rpx;
  269. font-weight: 700;
  270. color: #FFFFFF;
  271. border: none;
  272. transition: all 0.3s ease;
  273. box-shadow: 0 8rpx 32rpx rgba(74, 144, 226, 0.25);
  274. }
  275. .submit-btn:active {
  276. transform: translateY(2rpx);
  277. box-shadow: 0 4rpx 20rpx rgba(74, 144, 226, 0.3);
  278. }
  279. .submit-btn[disabled] {
  280. opacity: 0.6;
  281. transform: none;
  282. box-shadow: none;
  283. }
  284. /* 动画效果 */
  285. @keyframes fadeIn {
  286. from {
  287. opacity: 0;
  288. transform: translateY(20rpx);
  289. }
  290. to {
  291. opacity: 1;
  292. transform: translateY(0);
  293. }
  294. }
  295. .form-section {
  296. animation: fadeIn 0.4s ease-out forwards;
  297. opacity: 0;
  298. }
  299. .form-section:nth-child(1) { animation-delay: 0.1s; }
  300. .form-section:nth-child(2) { animation-delay: 0.15s; }
  301. .form-section:nth-child(3) { animation-delay: 0.2s; }
  302. .form-section:nth-child(4) { animation-delay: 0.25s; }