武隆区智慧救助终端
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 

238 rader
6.2 KiB

  1. <template>
  2. <Framework header-themte="white">
  3. <div class="policy-query">
  4. <div class="policy-query__title">
  5. 救助政策
  6. </div>
  7. <div class="policy-query__search">
  8. <input type="text" v-model="searchValue" placeholder="请输入关键字查询" @keyup.enter ="getPolicyList" >
  9. <div class="search-btn" @click="getPolicyList"> <el-icon><Search /></el-icon> 查询</div>
  10. </div>
  11. <div class="policy-query__list">
  12. <div class="list-item" v-for="(item,index) in policyList" :key="index" @click="this.$router.push({name:'policyDetail',query:{ data_id: item.data_id,type:'policy'}})">
  13. <!-- <div class="tag tag1">-->
  14. <!-- 城乡低保-->
  15. <!-- </div>-->
  16. <div class="type" v-if="item.policyTypeName || item.policy_type_name || item.policy_type_Name">{{ item.policyTypeName || item.policy_type_name || item.policy_type_Name }}</div>
  17. <!-- 用于占位-->
  18. <div v-else style="width: 78px"></div>
  19. <div class="text over-hidden_one">{{item.title}}</div>
  20. <div class="tag tag2" v-for="(item,index) in item.archive_type.split(',')" :key="index" :style="index%2 === 1? {backgroundColor: '#C4DEFF',color: '#347BD5'} : {} ">
  21. {{ item }}
  22. </div>
  23. <!-- <div class="type" v-if="false">办事指南</div>-->
  24. <div class="date">
  25. {{ item.policy_date }}
  26. </div>
  27. </div>
  28. <div v-if="policyList.length === 0">
  29. <el-empty description="暂无数据" />
  30. </div>
  31. </div>
  32. <div class="policy-query__pagination">
  33. <el-pagination :page-sizes="[10, 20, 50, 100]"
  34. background size="large"
  35. layout="total, prev, pager, next,sizes"
  36. :total="total"
  37. v-model:current-page="currentPage"
  38. v-model:page-size="pageSize"
  39. @change = "paginationChange"
  40. />
  41. </div>
  42. </div>
  43. <div class="btn">
  44. <router-link to="/"><img src="../../assets/images/close_btn.png" alt=""></router-link>
  45. </div>
  46. </Framework>
  47. </template>
  48. <script>
  49. import Framework from '@/components/framework.vue'
  50. export default {
  51. components: { Framework },
  52. created () {
  53. this.getPolicyList()
  54. },
  55. data () {
  56. return {
  57. total: 0,
  58. pageSize: 10,
  59. currentPage: 100,
  60. pageNum: 1,
  61. policyList: [],
  62. searchValue: ''
  63. }
  64. },
  65. // 监听searchValue
  66. watch: {
  67. searchValue (newValue) {
  68. if (newValue === '') {
  69. this.pageNum = 1
  70. this.getPolicyList()
  71. }
  72. }
  73. },
  74. methods: {
  75. paginationChange (currentPage, pageSize) {
  76. this.pageNum = currentPage
  77. this.pageSize = pageSize
  78. this.getPolicyList()
  79. },
  80. async getPolicyList () {
  81. const params = {
  82. pageNum: this.pageNum,
  83. pageSize: this.pageSize,
  84. searchTitle: this.searchValue,
  85. qry_archive_type: '',
  86. partyId: '5001560001'
  87. }
  88. const { data } = await this.$http.get('/api/archive/policy/getPolicyList.do', { params })
  89. this.policyList = data.listData
  90. this.total = data.total
  91. }
  92. }
  93. }
  94. </script>
  95. <style scoped lang="less">
  96. .policy-query {
  97. width: 100%;
  98. height: 870px;
  99. background-color: #fff;
  100. &__title {
  101. width: 100%;
  102. height: 56px;
  103. line-height: 56px;
  104. padding-left: 28px;
  105. font-size: 24px;
  106. color: #333;
  107. border-bottom: 1px solid #F2F2F2;
  108. }
  109. &__search {
  110. width: 1043px;
  111. height: 56px;
  112. margin: 0 auto;
  113. border: 1px solid #D7D7D7;
  114. border-radius: 28px;
  115. margin-top: 36px;
  116. display: flex;
  117. justify-content: space-between;
  118. padding-left: 28px;
  119. input{
  120. flex: 1;
  121. outline: none;
  122. border: 0;
  123. border-radius: 29px;
  124. font-size: 18px;
  125. }
  126. .search-btn{
  127. cursor: pointer;
  128. width: 137px;
  129. height: 56px;
  130. background-color: #347BD5;
  131. outline: none;
  132. border: 0;
  133. color: #fff;
  134. border-radius: 28px;
  135. display: flex;
  136. align-items: center;
  137. justify-content: center;
  138. }
  139. }
  140. &__list{
  141. width: 1473px;
  142. height: 622px;
  143. padding: 26px;
  144. border: 1px solid #D7D7D7;
  145. margin: 20px auto;
  146. display: flex;
  147. flex-direction: column;
  148. gap: 36px;
  149. //flex-wrap: wrap;
  150. //justify-content: space-between;
  151. .list-item{
  152. cursor: pointer;
  153. display: flex;
  154. gap: 15px;
  155. align-items: center;
  156. .tag{
  157. //width: 72px;
  158. //height: 24px;
  159. padding: 2px 8px;
  160. font-size: 14px;
  161. text-align: center;
  162. line-height: 24px;
  163. border-radius: 3px;
  164. }
  165. .tag1{
  166. background-color: #C4DEFF;
  167. color: #347BD5;
  168. }
  169. .tag2{
  170. background-color: #FFDDC4;
  171. color: #FF5205;
  172. }
  173. .text{
  174. width: 798px;
  175. //flex: 1;
  176. }
  177. .type{
  178. color: #347BD5;
  179. border: 1px solid #347BD5;
  180. width: 78px;
  181. height: 24px;
  182. line-height: 24px;
  183. text-align: center;
  184. border-radius: 4px;
  185. }
  186. .date{
  187. margin-left: auto;
  188. }
  189. }
  190. }
  191. &__pagination{
  192. display: flex;
  193. justify-content: center;
  194. }
  195. }
  196. .btn{
  197. text-align: center;
  198. margin-top: 20px;
  199. img{
  200. cursor: pointer;
  201. width: 172px;
  202. height: 75px;
  203. }
  204. }
  205. </style>