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

467 lines
7.6 KiB

  1. .container {
  2. min-height: 100vh;
  3. background-color: #f5f7fa;
  4. padding-bottom: 40rpx;
  5. }
  6. /* 头部样式 */
  7. .header {
  8. background: linear-gradient(135deg, #1a5f23 0%, #2d8c3c 100%);
  9. color: white;
  10. padding: 40rpx 30rpx 30rpx;
  11. border-radius: 0 0 30rpx 30rpx;
  12. box-shadow: 0 4rpx 20rpx rgba(26, 95, 35, 0.2);
  13. }
  14. .title-section {
  15. margin-bottom: 20rpx;
  16. }
  17. .page-title {
  18. font-size: 48rpx;
  19. font-weight: bold;
  20. display: block;
  21. margin-bottom: 10rpx;
  22. }
  23. .page-subtitle {
  24. font-size: 28rpx;
  25. opacity: 0.9;
  26. }
  27. .date-info {
  28. font-size: 24rpx;
  29. text-align: right;
  30. opacity: 0.8;
  31. }
  32. /* 搜索区域 */
  33. .search-section {
  34. background-color: white;
  35. margin: -20rpx 30rpx 30rpx;
  36. border-radius: 20rpx;
  37. padding: 30rpx;
  38. box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.06);
  39. }
  40. .search-box {
  41. display: flex;
  42. align-items: center;
  43. background-color: #f5f7fa;
  44. border-radius: 50rpx;
  45. margin-bottom: 30rpx;
  46. }
  47. .search-icon {
  48. width: 36rpx;
  49. height: 36rpx;
  50. margin: 0 20rpx;
  51. }
  52. .search-input {
  53. flex: 1;
  54. height: 80rpx;
  55. font-size: 28rpx;
  56. }
  57. .placeholder-style {
  58. color: #999;
  59. }
  60. /* 筛选区域 */
  61. .filter-scroll {
  62. white-space: nowrap;
  63. width: 100%;
  64. }
  65. .filter-tag {
  66. display: inline-block;
  67. padding: 16rpx 30rpx;
  68. margin-right: 20rpx;
  69. background-color: #f5f7fa;
  70. border-radius: 40rpx;
  71. font-size: 26rpx;
  72. color: #666;
  73. }
  74. .filter-tag.active {
  75. background-color: #2d8c3c;
  76. color: white;
  77. }
  78. /* 政策列表 */
  79. .policy-list {
  80. padding: 0 30rpx;
  81. }
  82. .policy-card {
  83. background-color: white;
  84. border-radius: 20rpx;
  85. padding: 30rpx;
  86. margin-bottom: 30rpx;
  87. box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.06);
  88. transition: transform 0.3s, box-shadow 0.3s;
  89. }
  90. .policy-card:active {
  91. transform: translateY(-4rpx);
  92. box-shadow: 0 12rpx 40rpx rgba(0, 0, 0, 0.1);
  93. }
  94. .policy-header {
  95. display: flex;
  96. justify-content: space-between;
  97. align-items: center;
  98. margin-bottom: 20rpx;
  99. }
  100. .policy-tag {
  101. font-size: 22rpx;
  102. padding: 6rpx 20rpx;
  103. border-radius: 20rpx;
  104. background-color: #e8f4ea;
  105. color: #1a5f23;
  106. }
  107. .policy-tag.financial {
  108. background-color: #e8f4ea;
  109. color: #1a5f23;
  110. }
  111. .policy-tag.technology {
  112. background-color: #e8f0fb;
  113. color: #1a5b8c;
  114. }
  115. .policy-tag.insurance {
  116. background-color: #fff7e6;
  117. color: #d48806;
  118. }
  119. .policy-tag.environment {
  120. background-color: #e6f7ff;
  121. color: #006d75;
  122. }
  123. .policy-date {
  124. font-size: 24rpx;
  125. color: #999;
  126. }
  127. .policy-title {
  128. font-size: 30rpx;
  129. font-weight: bold;
  130. color: #333;
  131. margin-bottom: 20rpx;
  132. line-height: 1.4;
  133. }
  134. .policy-footer {
  135. display: flex;
  136. justify-content: space-between;
  137. align-items: center;
  138. margin-top: 25rpx;
  139. padding-top: 20rpx;
  140. border-top: 1rpx solid #eee;
  141. }
  142. .policy-source {
  143. font-size: 24rpx;
  144. color: #999;
  145. }
  146. .policy-arrow {
  147. width: 26rpx;
  148. height: 26rpx;
  149. }
  150. /* 空状态 */
  151. .empty-state {
  152. text-align: center;
  153. padding: 80rpx 30rpx;
  154. }
  155. .empty-text {
  156. display: block;
  157. font-size: 32rpx;
  158. color: #999;
  159. margin-bottom: 15rpx;
  160. }
  161. .empty-tip {
  162. font-size: 26rpx;
  163. color: #ccc;
  164. }
  165. /* 政策详情弹窗 */
  166. .modal {
  167. position: fixed;
  168. top: 0;
  169. left: 0;
  170. right: 0;
  171. bottom: 0;
  172. background-color: rgba(0, 0, 0, 0.5);
  173. display: flex;
  174. align-items: center;
  175. justify-content: center;
  176. z-index: 1000;
  177. opacity: 0;
  178. visibility: hidden;
  179. transition: all 0.3s;
  180. }
  181. .modal.show {
  182. opacity: 1;
  183. visibility: visible;
  184. }
  185. .modal-content {
  186. background-color: white;
  187. width: 90%;
  188. max-height: 80vh;
  189. border-radius: 20rpx;
  190. overflow: hidden;
  191. transform: translateY(50rpx);
  192. transition: transform 0.3s;
  193. }
  194. .modal.show .modal-content {
  195. transform: translateY(0);
  196. }
  197. .modal-header {
  198. display: flex;
  199. justify-content: space-between;
  200. align-items: center;
  201. padding: 30rpx;
  202. border-bottom: 1rpx solid #eee;
  203. background-color: #f9f9f9;
  204. }
  205. .modal-title {
  206. font-size: 32rpx;
  207. font-weight: bold;
  208. color: #333;
  209. flex: 1;
  210. margin-right: 20rpx;
  211. }
  212. .modal-close {
  213. font-size: 50rpx;
  214. color: #999;
  215. width: 60rpx;
  216. height: 60rpx;
  217. text-align: center;
  218. line-height: 50rpx;
  219. }
  220. .modal-body {
  221. max-height: 60vh;
  222. padding: 30rpx;
  223. box-sizing: border-box;
  224. }
  225. .policy-info-row {
  226. background-color: #f9f9f9;
  227. border-radius: 12rpx;
  228. padding: 20rpx;
  229. margin-bottom: 30rpx;
  230. }
  231. .info-item {
  232. margin-bottom: 15rpx;
  233. }
  234. .info-label {
  235. font-size: 26rpx;
  236. color: #999;
  237. margin-right: 10rpx;
  238. }
  239. .info-value {
  240. font-size: 26rpx;
  241. color: #333;
  242. font-weight: 500;
  243. }
  244. .section {
  245. margin-bottom: 40rpx;
  246. }
  247. .section-title {
  248. font-size: 30rpx;
  249. font-weight: bold;
  250. color: #1a5f23;
  251. margin-bottom: 20rpx;
  252. padding-bottom: 10rpx;
  253. border-bottom: 2rpx solid #e8f4ea;
  254. }
  255. .section-content {
  256. font-size: 28rpx;
  257. color: #333;
  258. line-height: 1.6;
  259. }
  260. .key-point {
  261. margin-bottom: 15rpx;
  262. padding-left: 20rpx;
  263. position: relative;
  264. }
  265. .key-point:before {
  266. content: "";
  267. position: absolute;
  268. left: 0;
  269. top: 16rpx;
  270. width: 8rpx;
  271. height: 8rpx;
  272. background-color: #2d8c3c;
  273. border-radius: 50%;
  274. }
  275. .interpretation-text {
  276. text-align: justify;
  277. }
  278. .modal-footer {
  279. display: flex;
  280. padding: 30rpx;
  281. border-top: 1rpx solid #eee;
  282. gap: 20rpx;
  283. }
  284. .btn {
  285. flex: 1;
  286. height: 80rpx;
  287. line-height: 80rpx;
  288. border-radius: 40rpx;
  289. font-size: 28rpx;
  290. }
  291. .btn::after{
  292. border: none;
  293. }
  294. .btn-secondary {
  295. background-color: #f5f7fa;
  296. color: #666;
  297. border:1px solid rgb(243, 241, 241);
  298. }
  299. /* 底部提示 */
  300. .bottom-tip {
  301. text-align: center;
  302. padding: 30rpx;
  303. }
  304. .tip-text {
  305. display: block;
  306. font-size: 24rpx;
  307. color: #999;
  308. margin-bottom: 10rpx;
  309. }
  310. /* 在原有样式基础上添加以下样式 */
  311. /* 清空按钮样式 */
  312. .clear-btn {
  313. width: 40rpx;
  314. height: 40rpx;
  315. line-height: 36rpx;
  316. text-align: center;
  317. background-color: #ccc;
  318. color: white;
  319. border-radius: 50%;
  320. font-size: 30rpx;
  321. margin-right: 20rpx;
  322. font-weight: bold;
  323. }
  324. /* 滚动容器 */
  325. .policy-list {
  326. padding: 0 30rpx;
  327. box-sizing: border-box;
  328. }
  329. /* 加载更多样式 */
  330. .loading-more, .no-more {
  331. text-align: center;
  332. padding: 40rpx 0;
  333. color: #999;
  334. font-size: 26rpx;
  335. }
  336. .loading-more {
  337. display: flex;
  338. align-items: center;
  339. justify-content: center;
  340. }
  341. .loading-text {
  342. margin-left: 10rpx;
  343. }
  344. .loading-more::before {
  345. content: "";
  346. width: 30rpx;
  347. height: 30rpx;
  348. border: 3rpx solid #f3f3f3;
  349. border-top: 3rpx solid #2d8c3c;
  350. border-radius: 50%;
  351. animation: spin 1s linear infinite;
  352. }
  353. @keyframes spin {
  354. 0% { transform: rotate(0deg); }
  355. 100% { transform: rotate(360deg); }
  356. }
  357. .no-more-text {
  358. color: #ccc;
  359. font-size: 24rpx;
  360. }
  361. /* 确保政策卡片样式不变 */
  362. .policy-card {
  363. background-color: white;
  364. border-radius: 20rpx;
  365. padding: 30rpx;
  366. margin-bottom: 30rpx;
  367. box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.06);
  368. transition: transform 0.3s, box-shadow 0.3s;
  369. }
  370. .policy-card:active {
  371. transform: translateY(-4rpx);
  372. box-shadow: 0 12rpx 40rpx rgba(0, 0, 0, 0.1);
  373. }
  374. /* 加载状态 */
  375. .empty-state {
  376. text-align: center;
  377. padding: 100rpx 30rpx;
  378. }
  379. .empty-text {
  380. display: block;
  381. font-size: 32rpx;
  382. color: #999;
  383. margin-bottom: 15rpx;
  384. }
  385. .empty-tip {
  386. font-size: 26rpx;
  387. color: #ccc;
  388. }