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

387 lines
6.3 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. .search-btn {
  61. background-color: #2d8c3c;
  62. color: white;
  63. font-size: 28rpx;
  64. padding: 16rpx 30rpx;
  65. border-radius: 40rpx;
  66. margin-left: 20rpx;
  67. }
  68. /* 筛选区域 */
  69. .filter-scroll {
  70. white-space: nowrap;
  71. width: 100%;
  72. }
  73. .filter-tag {
  74. display: inline-block;
  75. padding: 16rpx 30rpx;
  76. margin-right: 20rpx;
  77. background-color: #f5f7fa;
  78. border-radius: 40rpx;
  79. font-size: 26rpx;
  80. color: #666;
  81. }
  82. .filter-tag.active {
  83. background-color: #2d8c3c;
  84. color: white;
  85. }
  86. /* 政策列表 */
  87. .policy-list {
  88. padding: 0 30rpx;
  89. }
  90. .policy-card {
  91. background-color: white;
  92. border-radius: 20rpx;
  93. padding: 30rpx;
  94. margin-bottom: 30rpx;
  95. box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.06);
  96. transition: transform 0.3s, box-shadow 0.3s;
  97. }
  98. .policy-card:active {
  99. transform: translateY(-4rpx);
  100. box-shadow: 0 12rpx 40rpx rgba(0, 0, 0, 0.1);
  101. }
  102. .policy-header {
  103. display: flex;
  104. justify-content: space-between;
  105. align-items: center;
  106. margin-bottom: 20rpx;
  107. }
  108. .policy-tag {
  109. font-size: 22rpx;
  110. padding: 6rpx 20rpx;
  111. border-radius: 20rpx;
  112. background-color: #e8f4ea;
  113. color: #1a5f23;
  114. }
  115. .policy-tag.financial {
  116. background-color: #e8f4ea;
  117. color: #1a5f23;
  118. }
  119. .policy-tag.technology {
  120. background-color: #e8f0fb;
  121. color: #1a5b8c;
  122. }
  123. .policy-tag.insurance {
  124. background-color: #fff7e6;
  125. color: #d48806;
  126. }
  127. .policy-tag.environment {
  128. background-color: #e6f7ff;
  129. color: #006d75;
  130. }
  131. .policy-date {
  132. font-size: 24rpx;
  133. color: #999;
  134. }
  135. .policy-title {
  136. font-size: 30rpx;
  137. font-weight: bold;
  138. color: #333;
  139. margin-bottom: 20rpx;
  140. line-height: 1.4;
  141. }
  142. .policy-footer {
  143. display: flex;
  144. justify-content: space-between;
  145. align-items: center;
  146. margin-top: 25rpx;
  147. padding-top: 20rpx;
  148. border-top: 1rpx solid #eee;
  149. }
  150. .policy-source {
  151. font-size: 24rpx;
  152. color: #999;
  153. }
  154. .policy-arrow {
  155. width: 26rpx;
  156. height: 26rpx;
  157. }
  158. /* 空状态 */
  159. .empty-state {
  160. text-align: center;
  161. padding: 80rpx 30rpx;
  162. }
  163. .empty-icon {
  164. width: 200rpx;
  165. height: 200rpx;
  166. margin-bottom: 30rpx;
  167. opacity: 0.5;
  168. }
  169. .empty-text {
  170. display: block;
  171. font-size: 32rpx;
  172. color: #999;
  173. margin-bottom: 15rpx;
  174. }
  175. .empty-tip {
  176. font-size: 26rpx;
  177. color: #ccc;
  178. }
  179. /* 政策详情弹窗 */
  180. .modal {
  181. position: fixed;
  182. top: 0;
  183. left: 0;
  184. right: 0;
  185. bottom: 0;
  186. background-color: rgba(0, 0, 0, 0.5);
  187. display: flex;
  188. align-items: center;
  189. justify-content: center;
  190. z-index: 1000;
  191. opacity: 0;
  192. visibility: hidden;
  193. transition: all 0.3s;
  194. }
  195. .modal.show {
  196. opacity: 1;
  197. visibility: visible;
  198. }
  199. .modal-content {
  200. background-color: white;
  201. width: 90%;
  202. max-height: 80vh;
  203. border-radius: 20rpx;
  204. overflow: hidden;
  205. transform: translateY(50rpx);
  206. transition: transform 0.3s;
  207. }
  208. .modal.show .modal-content {
  209. transform: translateY(0);
  210. }
  211. .modal-header {
  212. display: flex;
  213. justify-content: space-between;
  214. align-items: center;
  215. padding: 30rpx;
  216. border-bottom: 1rpx solid #eee;
  217. background-color: #f9f9f9;
  218. }
  219. .modal-title {
  220. font-size: 32rpx;
  221. font-weight: bold;
  222. color: #333;
  223. flex: 1;
  224. margin-right: 20rpx;
  225. }
  226. .modal-close {
  227. font-size: 50rpx;
  228. color: #999;
  229. width: 60rpx;
  230. height: 60rpx;
  231. text-align: center;
  232. line-height: 50rpx;
  233. }
  234. .modal-body {
  235. max-height: 60vh;
  236. padding: 30rpx;
  237. box-sizing: border-box;
  238. }
  239. .policy-info-row {
  240. background-color: #f9f9f9;
  241. border-radius: 12rpx;
  242. padding: 20rpx;
  243. margin-bottom: 30rpx;
  244. }
  245. .info-item {
  246. margin-bottom: 15rpx;
  247. }
  248. .info-label {
  249. font-size: 26rpx;
  250. color: #999;
  251. margin-right: 10rpx;
  252. }
  253. .info-value {
  254. font-size: 26rpx;
  255. color: #333;
  256. font-weight: 500;
  257. }
  258. .section {
  259. margin-bottom: 40rpx;
  260. }
  261. .section-title {
  262. font-size: 30rpx;
  263. font-weight: bold;
  264. color: #1a5f23;
  265. margin-bottom: 20rpx;
  266. padding-bottom: 10rpx;
  267. border-bottom: 2rpx solid #e8f4ea;
  268. }
  269. .section-content {
  270. font-size: 28rpx;
  271. color: #333;
  272. line-height: 1.6;
  273. }
  274. .key-point {
  275. margin-bottom: 15rpx;
  276. padding-left: 20rpx;
  277. position: relative;
  278. }
  279. .key-point:before {
  280. content: "";
  281. position: absolute;
  282. left: 0;
  283. top: 16rpx;
  284. width: 8rpx;
  285. height: 8rpx;
  286. background-color: #2d8c3c;
  287. border-radius: 50%;
  288. }
  289. .interpretation-text {
  290. text-align: justify;
  291. }
  292. .modal-footer {
  293. display: flex;
  294. padding: 30rpx;
  295. border-top: 1rpx solid #eee;
  296. gap: 20rpx;
  297. }
  298. .btn {
  299. flex: 1;
  300. height: 80rpx;
  301. line-height: 80rpx;
  302. border-radius: 40rpx;
  303. font-size: 28rpx;
  304. }
  305. .btn::after{
  306. border: none;
  307. }
  308. .btn-secondary {
  309. background-color: #f5f7fa;
  310. color: #666;
  311. border:1px solid rgb(243, 241, 241);
  312. }
  313. /* 底部提示 */
  314. .bottom-tip {
  315. text-align: center;
  316. padding: 30rpx;
  317. }
  318. .tip-text {
  319. display: block;
  320. font-size: 24rpx;
  321. color: #999;
  322. margin-bottom: 10rpx;
  323. }