// pages/search/search.js var app = getApp() var config = {}; var miucms = require('../../utils/miucms.js'); Page({ /** * 页面的初始数据 */ data: { isloding: true, showTOTOP: false, kw: '', log: [], hot: [], focus: false, list: [], search: false, loading: false, complete: false, status: 0, q: '', options: {}, tab: 'hongkongrental', otherrental: { page: { next_page: 1 }, list: [], loading: false }, hongkongrental: { page: { next_page: 1 }, list: [], loading: false }, studentapartment: { page: { next_page: 1 }, list: [], loading: false } }, onPageScroll(e) { if (e.scrollTop > 1000 && !this.data.showTOTOP) { this.setData({ showTOTOP: true }) } else if (e.scrollTop < 1000 && this.data.showTOTOP) { this.setData({ showTOTOP: false }) } }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var that = this; this.setData({ focus: options.kw ? false : true, kw: options.kw || '', tab: options.tab || 'hongkongrental' }) this.get_config() wx.getStorage({ key: 'searchHistoryList', success: function (res) { that.setData({ log: res.data || [] }) }, }) }, get_config() { var that = this; if (app.globalData.config.lists) { config = app.globalData.config; that.setData({ status: app.globalData.status }) that.get_content() if (that.data.kw.trim().length > 0) { that.submit() } } else { setTimeout(function () { that.get_config() }, 200) } }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { if (!app.globalData.config.lists) { return false } this.getDatas() }, cancle() { var pages = getCurrentPages(); if (pages.length == 1) { wx.reLaunch({ url: `/pages/index/index` }); } else { wx.navigateBack(); //返回上一页 } }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { const that = this; let url = `/pages/search/search?kw=${that.data.kw}&tab=${that.data.tab}`; return { path: url, title: '寄托香港租房', } }, input: function (e) { this.setData({ kw: e.detail.value }) }, // 提交 submit: function () { // this.data.kw = this.data.kw.trim(); if (this.data.kw == '') { wx.showToast({ title: '请输入内容~', icon: 'none' }) return false } if (this.data.log.indexOf(this.data.kw) == -1) { // 未存在历史记录列表中 this.data.log.unshift(this.data.kw) // 最多存10条内容 if (this.data.log.length > 10) { this.data.log.length = 10 } this.setData({ log: this.data.log }) wx.setStorage({ key: 'searchHistoryList', data: this.data.log, }) } this.clearAllData() this.clear_list() }, // 清空历史记录 clear_keywords: function () { let that = this; wx.showModal({ title: '提示', content: '确定删除全部记录?', confirmColor: '#bc322f', success: function (res) { if (res.confirm === true) { if (!app.globalData.config || !app.globalData.config.lists) { return false } miucms.request(app.globalData.config.lists.removesearchlog, {}).then(data => { if (data.extraparam.mode == 'right') { that.setData({ log: [] }) wx.setStorage({ key: 'searchHistoryList', data: [], }) } }) } } }) }, // 获取热词 get_content: function () { var that = this; var sendData = Object.assign({}, this.data.options, { session: wx.getStorageSync('session'), }) miucms.request(app.globalData.config.lists.search, {}).then(data => { that.setData({ hot: data.hot, isloding: false }) }).catch(res => {}) }, // 点击热词或者历史记录item select_kw: function (e) { wx.pageScrollTo({ scrollTop: 0, duration: 200, }) var kw = e.currentTarget.dataset.kw; this.setData({ kw: kw }) this.clearAllData() app.globalData.kw = kw; this.clear_list() }, clearAllData() { // 清空所有数据 this.setData({ otherrental: { page: { next_page: 1 }, list: [], loading: false }, hongkongrental: { page: { next_page: 1 }, list: [], loading: false }, studentapartment: { page: { next_page: 1 }, list: [], loading: false } }) }, // 清空list clear_list: function () { let tab = this.data.tab; this.data[tab] = { page: { next_page: 1 }, list: [], loading: false } this.setTabData() this.searchKW() }, // setData setTabData() { let tab = this.data.tab; switch (tab) { case 'otherrental': this.setData({ otherrental: this.data.otherrental }) break; case 'studentapartment': this.setData({ studentapartment: this.data.studentapartment }) break; case 'hongkongrental': this.setData({ hongkongrental: this.data.hongkongrental }) break; } }, searchdata: '', // 搜索关键词 searchKW: function () { var that = this; if (!app.globalData.config.search) { return false } this.setData({ loading: true }) console.log("this.data.kw", this.data.kw); miucms.request(app.globalData.config.search.global, { // miucms.request(`${app.globalData.baseURL}/tenement/housingresources/lists`, { 'keyword': this.data.kw }).then(data => { // console.log("data", data); if (data.code != 200) { wx.showToast({ title: data.message, icon: 'none' }) that.setData({ loading: false, otherrental: { page: { next_page: 0 }, list: [], loading: false }, hongkongrental: { page: { next_page: 0 }, list: [], loading: false }, studentapartment: { page: { next_page: 0 }, list: [], loading: false } }) return false } let count = data.data.count; this.searchdata = data.data.searchdata; for (let i in data.data.count) { if (data.data.count[i] == 0) { this.data[i].page.next_page = 0; } else { this.data[i].page.next_page = 1; } } this.setData({ search: true, otherrental: this.data.otherrental, studentapartment: this.data.studentapartment, hongkongrental: this.data.hongkongrental, loading: false, kw: data.data.keyword }) this.getDatas() }).catch(res => {}) }, // 清空 clearKW() { this.setData({ kw: '', focus: true }) }, // 更换tab changeTab(e) { this.setData({ tab: e.currentTarget.dataset.tab }) let tab = this.data.tab; if (!this.data[tab].page.next_page || this.data[tab].list.length > 0) { // 如果当前tab下数量为0 ,则不再加载 return false; } this.getKWdata() }, // 搜索相关tab关键词 getDatas() { let tab = this.data.tab; if (!this.data[tab].page.next_page) { // 如果当前tab下数量为0 ,则不再加载 return false; } this.getKWdata() }, getKWdata() { let urlObj = { otherrental: app.globalData.config.search.otherrental, // hongkongrental: app.globalData.config.search.hongkongrental, hongkongrental: `${app.globalData.baseURL}/tenement/housingresources/lists`, studentapartment: app.globalData.config.search.studentapartment, } let tab = this.data.tab; let url = urlObj[tab]; this.data[tab].loading = true; this.setTabData() miucms.request(url, { 'searchdata': this.searchdata, page: this.data[tab].page.next_page }).then(data => { // console.log(data); this.data[tab].list = this.data[tab].list.concat(data.data.data); this.data[tab].loading = false; if (data.data.data.length > 0) { this.data[tab].page.next_page += 1; } else { this.data[tab].page.next_page = 0; } this.setTabData() }).catch(res => {}) }, // 点击广告 clickAD(e) { miucms.clickAD(e.detail.id) }, // 关闭广告 closeAD(e) { let index = e.currentTarget.dataset.index; let tab = e.currentTarget.dataset.tab; this.data[tab].list.splice(index, 1) if (tab == 'hongkongrental') { this.setData({ hongkongrental: this.data.hongkongrental }) } else { this.setData({ otherrental: this.data.otherrental }) } miucms.closeAD(e.detail.id) } })