// pages/ZCWDK/index/index.js import { imgUrl, request } from "../../api/request" Page({ /** * 页面的初始数据 */ data: { // 图片前缀 imgUrl: imgUrl, // 默认搜索类型 defaultSearch: '全部', // 搜索内容 searchContent: '', // 搜索分类 searchItems: [], // 搜索分类显示 showModal: false, // 热门问题列表 questionList: [], // 共计问答数 questionCount: 0 }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { // 是否为搜索跳转 if (options.content || options.dept) { this.setData({ defaultSearch: options.dept, searchContent: options.content, questionCount: options.count }) this.searchQuestion(); } else { // 获取热门问题 this.searchHot(); } // 获取所有分类 this.getSubDeptAll(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { return { title: '政策问答库' } }, // 输入搜索框 bindKeyInput: function (e) { this.setData({ searchContent: e.detail.value }) }, // 搜索热门问题 searchQuestion() { let dept; if (this.data.defaultSearch === '全部') { dept = '' } else { dept = this.data.defaultSearch; } request({ url: '/elk/search', data: { page: 1, limit: 5, content: this.data.searchContent, dept: dept } }).then(res => { let temp = []; let data = res.data.data; for (let i = 0; i < data.length; i++) { let text = data[i]._source.content.replace(/<[^>]+>/g, ""); temp.push({ sourceAsMap: { highlight: data[i]._source.title, title: res.data.highlightArr[i].title, contentText: text, content: data[i]._source.content, departmentname: data[i]._source.departmentname } }) } this.setData({ questionList: temp }) }) }, // 获取所有的分类 getSubDeptAll() { request({ url: '/elk/getSubDeptAll', method: 'GET' }).then(res => { res.data.unshift("全部"); this.setData({ searchItems: res.data }) }) }, // 获取热门问题 searchHot() { request({ url: '/elk/searchHot?page=1&limit=8' }).then(res => { for (let i = 0; i < res.data.array.length; i++) { res.data.array[i].sourceAsMap.contentText = res.data.array[i].sourceAsMap.content.replace(/<[^>]+>/g, ""); } this.setData({ questionList: res.data.array, questionCount: res.data.count }) }) }, // 选择类型 chooseType(data) { this.setData({ defaultSearch: data.currentTarget.dataset.name, showModal: false }) }, // 打开类型选择界面 selectType() { this.setData({ showModal: !this.data.showModal }) }, // 关闭类型选择界面 closedlg() { this.setData({ showModal: false }) }, // 前往详细界面 toinfo(data) { let content = JSON.stringify(data.currentTarget.dataset.content) wx.navigateTo({ url: "/pages/ZCWDK/info/info?questionContent=" + encodeURIComponent(content), }) }, // 返回 back() { wx.navigateBack({ delta: 1 }); }, // 我要提问 askQuestion() { wx.navigateTo({ url: '/pages/ZCWDK/add/add', }) } })