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

497 lines
8.2 KiB

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