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

130 lines
4.6 KiB

  1. <view class="container">
  2. <!-- 头部区域 -->
  3. <view class="header">
  4. <view class="title-section">
  5. <text class="page-title">农牧业政策解读</text>
  6. <text class="page-subtitle">为您解读最新政策,助力农牧业发展</text>
  7. </view>
  8. <view class="date-info">数据更新至: {{currentDate}}</view>
  9. </view>
  10. <!-- 搜索和筛选区域 -->
  11. <view class="search-section">
  12. <view class="search-box">
  13. <image class="search-icon" src="/pagesA/images/ss.png"></image>
  14. <input
  15. class="search-input"
  16. placeholder="搜索政策关键词"
  17. placeholder-class="placeholder-style"
  18. bindinput="onSearchInput"
  19. value="{{searchKeyword}}"
  20. />
  21. <view class="search-btn" bindtap="onSearch">搜索</view>
  22. </view>
  23. <view class="filter-section">
  24. <scroll-view class="filter-scroll" scroll-x="true">
  25. <view
  26. class="filter-tag {{activeFilter === 'all' ? 'active' : ''}}"
  27. data-filter="all"
  28. bindtap="onFilterTap"
  29. >全部</view>
  30. <view
  31. class="filter-tag {{activeFilter === 'financial' ? 'active' : ''}}"
  32. data-filter="financial"
  33. bindtap="onFilterTap"
  34. >财政补贴</view>
  35. <view
  36. class="filter-tag {{activeFilter === 'technology' ? 'active' : ''}}"
  37. data-filter="technology"
  38. bindtap="onFilterTap"
  39. >技术推广</view>
  40. <view
  41. class="filter-tag {{activeFilter === 'insurance' ? 'active' : ''}}"
  42. data-filter="insurance"
  43. bindtap="onFilterTap"
  44. >农业保险</view>
  45. <view
  46. class="filter-tag {{activeFilter === 'environment' ? 'active' : ''}}"
  47. data-filter="environment"
  48. bindtap="onFilterTap"
  49. >生态保护</view>
  50. <view
  51. class="filter-tag {{activeFilter === 'latest' ? 'active' : ''}}"
  52. data-filter="latest"
  53. bindtap="onFilterTap"
  54. >最新政策</view>
  55. </scroll-view>
  56. </view>
  57. </view>
  58. <!-- 政策列表区域 -->
  59. <view class="policy-list">
  60. <view wx:if="{{filteredPolicies.length === 0}}" class="empty-state">
  61. <image class="empty-icon" src="/images/empty.png"></image>
  62. <text class="empty-text">暂无相关政策</text>
  63. <text class="empty-tip">请尝试其他筛选条件</text>
  64. </view>
  65. <block wx:for="{{filteredPolicies}}" wx:key="id">
  66. <view class="policy-card" data-id="{{item.id}}" bindtap="onPolicyTap">
  67. <view class="policy-header">
  68. <view class="policy-tag {{item.type}}">{{item.policyCategory}}</view>
  69. <view class="policy-date">{{item.releaseDate}}</view>
  70. </view>
  71. <view class="policy-title">{{item.title}}</view>
  72. <view class="policy-footer">
  73. <view class="policy-source">{{item.issuingAgency}}</view>
  74. <image class="policy-arrow" src="/pagesB/images/you.png" mode=""/>
  75. </view>
  76. </view>
  77. </block>
  78. </view>
  79. <!-- 政策详情弹窗 -->
  80. <view class="modal {{showPolicyDetail ? 'show' : ''}}" catchtap="hidePolicyDetail">
  81. <view class="modal-content" catchtap="stopPropagation">
  82. <view class="modal-header">
  83. <view class="modal-title">{{currentPolicy.title}}</view>
  84. <view class="modal-close" bindtap="hidePolicyDetail">×</view>
  85. </view>
  86. <scroll-view class="modal-body" scroll-y="true">
  87. <view class="policy-info-row">
  88. <view class="info-item">
  89. <text class="info-label">政策类型:</text>
  90. <text class="info-value">{{currentPolicy.policyCategory}}</text>
  91. </view>
  92. <view class="info-item">
  93. <text class="info-label">发布日期:</text>
  94. <text class="info-value">{{currentPolicy.releaseDate}}</text>
  95. </view>
  96. <view class="info-item">
  97. <text class="info-label">发布单位:</text>
  98. <text class="info-value">{{currentPolicy.issuingAgency}}</text>
  99. </view>
  100. </view>
  101. <view class="section">
  102. <view class="section-title">详细解读</view>
  103. <view class="section-content">
  104. <rich-text class="interpretation-text" space="emsp" nodes="{{currentPolicy.issuingAgency}}"></rich-text>
  105. </view>
  106. </view>
  107. </scroll-view>
  108. <view class="modal-footer">
  109. <button class="btn btn-secondary" bindtap="hidePolicyDetail">关闭</button>
  110. </view>
  111. </view>
  112. </view>
  113. <!-- 底部导航提示 -->
  114. <view class="bottom-tip">
  115. <text class="tip-text">已加载 {{filteredPolicies.length}} 条政策解读</text>
  116. </view>
  117. </view>