You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

208 lines
4.8 KiB

2 years ago
// 定义数据格式
var __keysColor = [];
var __mindKeys = [];
function initColors(colors) {
__keysColor = colors;
}
function initMindKeys(keys) {
__mindKeys = keys;
}
function init(that, barHeight, keys, isShowKey, isShowHis, callBack) {
var temData = {};
var view = {
barHeight: barHeight,
isShow: false
}
if (typeof (isShowKey) == 'undefined') {
view.isShowSearchKey = true;
} else {
view.isShowSearchKey = isShowKey;
}
if (typeof (isShowHis) == 'undefined') {
view.isShowSearchHistory = true;
} else {
view.isShowSearchHistory = isShowHis;
}
temData.keys = keys;
wx.getSystemInfo({
success: function (res) {
var wHeight = res.windowHeight;
view.seachHeight = wHeight - barHeight;
temData.view = view;
that.setData({
wxSearchData: temData
});
}
})
if (typeof (callBack) == "function") {
callBack();
}
getHisKeys(that);
}
function wxSearchInput(e, that, callBack) {
var temData = that.data.wxSearchData;
var text = e.detail.value;
var mindKeys = [];
if (typeof (text) == "undefined" || text.length == 0) {
} else {
for (var i = 0; i < __mindKeys.length; i++) {
var mindKey = __mindKeys[i];
if (mindKey.indexOf(text) > -1) {
mindKeys.push(mindKey);
}
}
}
temData.value = text;
temData.mindKeys = mindKeys;
that.setData({
wxSearchData: temData
});
}
function wxSearchFocus(that, callBack) {
var temData = that.data.wxSearchData;
if (temData.his) {
var his = [];
if (temData.his.length > 6) {
for (var i = 0; i < 6; i++) {
his[i] = temData.his[i];
}
temData.his = his;
}
}
temData.view.isShow = true;
that.setData({
wxSearchData: temData
});
}
function wxSearchBlur(e, that, callBack) {
var temData = that.data.wxSearchData;
temData.value = e.detail.value;
that.setData({
wxSearchData: temData
});
if (typeof (callBack) == "function") {
callBack();
}
}
function wxSearchHiddenPancel(that) {
var temData = that.data.wxSearchData;
temData.view.isShow = false;
that.setData({
wxSearchData: temData
});
}
function wxSearchKeyTap(e, that, callBack) {
//回调
var temData = that.data.wxSearchData;
temData.value = e.target.dataset.key;
that.setData({
wxSearchData: temData,
isFocus: false
});
if (typeof (callBack) == "function") {
callBack();
}
}
function getHisKeys(that) {
var value = [];
try {
value = wx.getStorageSync('wxSearchHisKeys')
if (value) {
// Do something with return value
var temData = that.data.wxSearchData;
temData.his = value;
that.setData({
wxSearchData: temData
});
}
} catch (e) {
// Do something when catch error
}
}
function wxSearchAddHisKey(that) {
wxSearchHiddenPancel(that);
var text = that.data.wxSearchData.value;
if (typeof (text) == "undefined" || text.length == 0) { return; }
var value = wx.getStorageSync('wxSearchHisKeys');
if (value) {
if (value.indexOf(text) < 0) {
value.unshift(text);
}
wx.setStorage({
key: "wxSearchHisKeys",
data: value,
success: function () {
getHisKeys(that);
}
})
} else {
value = [];
value.push(text);
wx.setStorage({
key: "wxSearchHisKeys",
data: value,
success: function () {
getHisKeys(that);
}
})
}
}
function wxSearchDeleteKey(e, that) {
var text = e.target.dataset.key;
var value = wx.getStorageSync('wxSearchHisKeys');
value.splice(value.indexOf(text), 1);
wx.setStorage({
key: "wxSearchHisKeys",
data: value,
success: function () {
getHisKeys(that);
}
})
}
function wxSearchDeleteAll(that) {
wx.removeStorage({
key: 'wxSearchHisKeys',
success: function (res) {
var value = [];
var temData = that.data.wxSearchData;
temData.his = value;
that.setData({
wxSearchData: temData
});
}
})
}
module.exports = {
init: init,
initColor: initColors,
initMindKeys: initMindKeys,
wxSearchInput: wxSearchInput,
wxSearchFocus: wxSearchFocus,
wxSearchBlur: wxSearchBlur,
wxSearchKeyTap: wxSearchKeyTap,
wxSearchAddHisKey: wxSearchAddHisKey,
wxSearchDeleteKey: wxSearchDeleteKey,
wxSearchDeleteAll: wxSearchDeleteAll,
wxSearchHiddenPancel: wxSearchHiddenPancel
}