hios-miniprogram/pages/search/search.js

153 lines
4.4 KiB
JavaScript
Executable File

var util = require('../../utils/util.js');
var api = require('../../config/api.js');
var app = getApp()
Page({
data: {
keywrod: '',
searchStatus: false,
goodsList: [],
helpKeyword: [],
historyKeyword: [],
categoryFilter: false,
currentSortType: 'default',
filterCategory: [],
defaultKeyword: {},
hotKeyword: [],
currentSortOrder: 'desc',
salesSortOrder:'desc',
categoryId: 0,
},
//事件处理函数
closeSearch: function () {
wx.navigateBack()
},
clearKeyword: function () {
this.setData({
keyword: '',
searchStatus: false
});
},
onLoad: function () {
this.getSearchKeyword();
},
getSearchKeyword() {
let that = this;
util.request(api.SearchIndex).then(function (res) {
if (res.code === 0) {
that.setData({
historyKeyword: res.data.historyKeywordList,
defaultKeyword: res.data.defaultKeyword,
hotKeyword: res.data.hotKeywordList
});
}
});
},
inputChange: function (e) {
this.setData({
keyword: e.detail.value,
searchStatus: false
});
this.getHelpKeyword();
},
getHelpKeyword: function () {
let that = this;
util.request(api.SearchHelper, { keyword: that.data.keyword }).then(function (res) {
if (res.code === 0) {
that.setData({
helpKeyword: res.data
});
}
});
},
inputFocus: function () {
this.setData({
searchStatus: false,
goodsList: []
});
if (this.data.keyword) {
this.getHelpKeyword();
}
},
clearHistory: function () {
this.setData({
historyKeyword: []
})
util.request(api.SearchClearHistory, {}, 'POST')
.then(function (res) {
});
},
getGoodsList: function () {
let that = this;
util.request(api.GoodsList, { keyword: that.data.keyword,sort: that.data.currentSortType, order: that.data.currentSortOrder, sales: that.data.salesSortOrder}).then(function (res) {
if (res.code === 0) {
that.setData({
searchStatus: true,
// categoryFilter: false,
goodsList: res.data,
// filterCategory: res.data.filterCategory,
// page: res.data.currentPage,
// size: res.data.numsPerPage
});
}
//重新获取关键词
that.getSearchKeyword();
});
},
onKeywordTap: function (event) {
this.getSearchResult(event.target.dataset.keyword);
},
getSearchResult(keyword) {
this.setData({
keyword: keyword,
page: 1,
categoryId: 0,
goodsList: []
});
this.getGoodsList();
},
openSortFilter: function (event) {
let currentId = event.currentTarget.id;
switch (currentId) {
case 'salesSort':
let _SortOrder = 'asc';
if (this.data.salesSortOrder == 'asc') {
_SortOrder = 'desc';
}
this.setData({
'currentSortType': 'sales',
'currentSortOrder': 'asc',
'salesSortOrder': _SortOrder
});
this.getGoodsList();
break;
case 'priceSort':
let tmpSortOrder = 'asc';
if (this.data.currentSortOrder == 'asc') {
tmpSortOrder = 'desc';
}
this.setData({
'currentSortType': 'price',
'currentSortOrder': tmpSortOrder,
'salesSortOrder': 'asc'
});
this.getGoodsList();
break;
default:
//综合排序
this.setData({
'currentSortType': 'default',
'currentSortOrder': 'desc',
'salesSortOrder': 'desc'
});
this.getGoodsList();
}
},
onKeywordConfirm(event) {
this.getSearchResult(event.detail.value);
}
})