429 lines
9.3 KiB
JavaScript
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)
|
|
}
|
|
}) |