2023-04-17 16:14:18 +08:00

429 lines
9.3 KiB
JavaScript

// 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)
}
})