index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. // pages/ZCWDK/index/index.js
  2. import {
  3. imgUrl,
  4. request
  5. } from "../../api/request"
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. // 图片前缀
  12. imgUrl: imgUrl,
  13. // 默认搜索类型
  14. defaultSearch: '全部',
  15. // 搜索内容
  16. searchContent: '',
  17. // 搜索分类
  18. searchItems: [],
  19. // 搜索分类显示
  20. showModal: false,
  21. // 热门问题列表
  22. questionList: [],
  23. // 共计问答数
  24. questionCount: 0
  25. },
  26. /**
  27. * 生命周期函数--监听页面加载
  28. */
  29. onLoad(options) {
  30. // 是否为搜索跳转
  31. if (options.content || options.dept) {
  32. this.setData({
  33. defaultSearch: options.dept,
  34. searchContent: options.content,
  35. questionCount: options.count
  36. })
  37. this.searchQuestion();
  38. } else {
  39. // 获取热门问题
  40. this.searchHot();
  41. }
  42. // 获取所有分类
  43. this.getSubDeptAll();
  44. },
  45. /**
  46. * 生命周期函数--监听页面初次渲染完成
  47. */
  48. onReady() {
  49. },
  50. /**
  51. * 生命周期函数--监听页面显示
  52. */
  53. onShow() {
  54. },
  55. /**
  56. * 生命周期函数--监听页面隐藏
  57. */
  58. onHide() {
  59. },
  60. /**
  61. * 生命周期函数--监听页面卸载
  62. */
  63. onUnload() {
  64. },
  65. /**
  66. * 页面相关事件处理函数--监听用户下拉动作
  67. */
  68. onPullDownRefresh() {
  69. },
  70. /**
  71. * 页面上拉触底事件的处理函数
  72. */
  73. onReachBottom() {
  74. },
  75. /**
  76. * 用户点击右上角分享
  77. */
  78. onShareAppMessage() {
  79. return {
  80. title: '政策问答库'
  81. }
  82. },
  83. // 输入搜索框
  84. bindKeyInput: function (e) {
  85. this.setData({
  86. searchContent: e.detail.value
  87. })
  88. },
  89. // 搜索热门问题
  90. searchQuestion() {
  91. let dept;
  92. if (this.data.defaultSearch === '全部') {
  93. dept = ''
  94. } else {
  95. dept = this.data.defaultSearch;
  96. }
  97. request({
  98. url: '/elk/search',
  99. data: {
  100. page: 1,
  101. limit: 5,
  102. content: this.data.searchContent,
  103. dept: dept
  104. }
  105. }).then(res => {
  106. let temp = [];
  107. let data = res.data.data;
  108. for (let i = 0; i < data.length; i++) {
  109. let text = data[i]._source.content.replace(/<[^>]+>/g, "");
  110. temp.push({
  111. sourceAsMap: {
  112. highlight: data[i]._source.title,
  113. title: res.data.highlightArr[i].title,
  114. contentText: text,
  115. content: data[i]._source.content,
  116. departmentname: data[i]._source.departmentname
  117. }
  118. })
  119. }
  120. this.setData({
  121. questionList: temp
  122. })
  123. })
  124. },
  125. // 获取所有的分类
  126. getSubDeptAll() {
  127. request({
  128. url: '/elk/getSubDeptAll',
  129. method: 'GET'
  130. }).then(res => {
  131. res.data.unshift("全部");
  132. this.setData({
  133. searchItems: res.data
  134. })
  135. })
  136. },
  137. // 获取热门问题
  138. searchHot() {
  139. request({
  140. url: '/elk/searchHot?page=1&limit=8'
  141. }).then(res => {
  142. for (let i = 0; i < res.data.array.length; i++) {
  143. res.data.array[i].sourceAsMap.contentText = res.data.array[i].sourceAsMap.content.replace(/<[^>]+>/g, "");
  144. }
  145. this.setData({
  146. questionList: res.data.array,
  147. questionCount: res.data.count
  148. })
  149. })
  150. },
  151. // 选择类型
  152. chooseType(data) {
  153. this.setData({
  154. defaultSearch: data.currentTarget.dataset.name,
  155. showModal: false
  156. })
  157. },
  158. // 打开类型选择界面
  159. selectType() {
  160. this.setData({
  161. showModal: !this.data.showModal
  162. })
  163. },
  164. // 关闭类型选择界面
  165. closedlg() {
  166. this.setData({
  167. showModal: false
  168. })
  169. },
  170. // 前往详细界面
  171. toinfo(data) {
  172. let content = JSON.stringify(data.currentTarget.dataset.content)
  173. wx.navigateTo({
  174. url: "/pages/ZCWDK/info/info?questionContent=" + encodeURIComponent(content),
  175. })
  176. },
  177. // 返回
  178. back() {
  179. wx.navigateBack({
  180. delta: 1
  181. });
  182. },
  183. // 我要提问
  184. askQuestion() {
  185. wx.navigateTo({
  186. url: '/pages/ZCWDK/add/add',
  187. })
  188. }
  189. })