153 lines
4.4 KiB
JavaScript
Executable File
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);
|
|
}
|
|
}) |