
Some checks are pending
Actions / Litemall-all (11) (push) Waiting to run
Actions / Litemall-all (11.0.3) (push) Waiting to run
Actions / Litemall-all (8) (push) Waiting to run
Actions / Litemall-all (8.0.192) (push) Waiting to run
Actions / Litemall-admin (10.x) (push) Waiting to run
Actions / Litemall-admin (12.x) (push) Waiting to run
Actions / Litemall-admin (14.x) (push) Waiting to run
Actions / Litemall-vue (10.x) (push) Waiting to run
Actions / Litemall-vue (12.x) (push) Waiting to run
Actions / Litemall-vue (14.x) (push) Waiting to run
199 lines
4.4 KiB
JavaScript
199 lines
4.4 KiB
JavaScript
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,
|
|
currentSort: 'name',
|
|
currentSortType: 'default',
|
|
currentSortOrder: 'desc',
|
|
filterCategory: [],
|
|
defaultKeyword: {},
|
|
hotKeyword: [],
|
|
page: 1,
|
|
limit: 10,
|
|
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.errno === 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
|
|
});
|
|
|
|
if (e.detail.value) {
|
|
this.getHelpKeyword();
|
|
}
|
|
},
|
|
|
|
getHelpKeyword: function() {
|
|
let that = this;
|
|
util.request(api.SearchHelper, {
|
|
keyword: that.data.keyword
|
|
}).then(function(res) {
|
|
if (res.errno === 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) {
|
|
console.log('清除成功');
|
|
});
|
|
},
|
|
|
|
getGoodsList: function() {
|
|
let that = this;
|
|
util.request(api.GoodsList, {
|
|
keyword: that.data.keyword,
|
|
page: that.data.page,
|
|
limit: that.data.limit,
|
|
sort: that.data.currentSort,
|
|
order: that.data.currentSortOrder,
|
|
categoryId: that.data.categoryId
|
|
}).then(function(res) {
|
|
if (res.errno === 0) {
|
|
that.setData({
|
|
searchStatus: true,
|
|
categoryFilter: false,
|
|
goodsList: res.data.list,
|
|
filterCategory: res.data.filterCategoryList
|
|
});
|
|
}
|
|
|
|
//重新获取关键词
|
|
that.getSearchKeyword();
|
|
});
|
|
},
|
|
onKeywordTap: function(event) {
|
|
|
|
this.getSearchResult(event.target.dataset.keyword);
|
|
|
|
},
|
|
getSearchResult(keyword) {
|
|
if (keyword === '') {
|
|
keyword = this.data.defaultKeyword.keyword;
|
|
}
|
|
this.setData({
|
|
keyword: keyword,
|
|
page: 1,
|
|
categoryId: 0,
|
|
goodsList: []
|
|
});
|
|
|
|
this.getGoodsList();
|
|
},
|
|
openSortFilter: function(event) {
|
|
let currentId = event.currentTarget.id;
|
|
switch (currentId) {
|
|
case 'categoryFilter':
|
|
this.setData({
|
|
categoryFilter: !this.data.categoryFilter,
|
|
currentSortType: 'category',
|
|
currentSort: 'add_time',
|
|
currentSortOrder: 'desc'
|
|
});
|
|
break;
|
|
case 'priceSort':
|
|
let tmpSortOrder = 'asc';
|
|
if (this.data.currentSortOrder == 'asc') {
|
|
tmpSortOrder = 'desc';
|
|
}
|
|
this.setData({
|
|
currentSortType: 'price',
|
|
currentSort: 'retail_price',
|
|
currentSortOrder: tmpSortOrder,
|
|
categoryFilter: false
|
|
});
|
|
|
|
this.getGoodsList();
|
|
break;
|
|
default:
|
|
//综合排序
|
|
this.setData({
|
|
currentSortType: 'default',
|
|
currentSort: 'name',
|
|
currentSortOrder: 'desc',
|
|
categoryFilter: false,
|
|
categoryId: 0,
|
|
});
|
|
this.getGoodsList();
|
|
}
|
|
},
|
|
selectCategory: function(event) {
|
|
let currentIndex = event.target.dataset.categoryIndex;
|
|
let filterCategory = this.data.filterCategory;
|
|
let currentCategory = null;
|
|
for (let key in filterCategory) {
|
|
if (key == currentIndex) {
|
|
filterCategory[key].selected = true;
|
|
currentCategory = filterCategory[key];
|
|
} else {
|
|
filterCategory[key].selected = false;
|
|
}
|
|
}
|
|
this.setData({
|
|
filterCategory: filterCategory,
|
|
categoryFilter: false,
|
|
categoryId: currentCategory.id,
|
|
page: 1,
|
|
goodsList: []
|
|
});
|
|
this.getGoodsList();
|
|
},
|
|
onKeywordConfirm(event) {
|
|
this.getSearchResult(event.detail.value);
|
|
}
|
|
}); |