/*
* 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
* Copyright (c) 2013-2018 北京泉江科技有限公司
* 创建人:陈彬彬
* 日 期:2017.03.22
* 描 述:learunISearch 输入搜索框,支持input输入框,数据异步加载,本地查询
*/
(function ($, learun) {
"use strict";
$.lrisearch = {
init: function ($self) {
var dfop = $self[0]._lrisearch.dfop;
$self.parent().append('
');
},
bind: function ($self) {
$self.on('input propertychange', function () {
var $this = $(this);
$.lrisearch.triggerSearch($self);
});
},
triggerSearch: function ($self) {
var dfop = $self[0]._lrisearch.dfop;
var $showPanel = $('#lrisearch_' + dfop.id);
$showPanel.parent().hide();
var _value = $self.val();
if (_value) {
if (!dfop._isload) {
dfop._isSearchneed = true;
}
else {
dfop._first = true;
dfop._value = _value;
dfop._begin = 0;
dfop._end = 100 > dfop.data.length ? dfop.data.length : 100;
if (dfop._isSearched) {
dfop._isSearched = false;
setTimeout(function () {
$.lrisearch.search($self);
});
}
}
}
else {
dfop._isSearchneed = false;
$showPanel.html("");
}
},
search: function ($self) {// 每次搜索100条
var dfop = $self[0]._lrisearch.dfop;
var value = dfop._value;
var begin = dfop._begin;
var end = dfop._end;
var data = dfop.data;
for (var i = begin; i < end; i++) {
var _item = data[i];
if (item[dfop.text].indexOf(value) != -1) {
$.lrisearch.renderNone($self, item[dfop.text]);
}
}
if (end < data.length) {
dfop._begin = end;
dfop._end = end + 100;
if (dfop._end > data.length) {
dfop._end = data.length;
}
setTimeout(function () {
$.lrisearch.search($self);
});
}
else {
dfop._isSearched = true;
}
},
renderNone: function ($self, text) {// 刷新一条数据
var dfop = $self[0]._lrisearch.dfop;
var $showPanel = $('#lrisearch_' + dfop.id);
if (dfop._first) {
dfop._first = false;
$showPanel.html("");
$showPanel.parent().show();
}
$showPanel.append('' + text + '');
}
};
$.fn.lrisearch = function (op) {
var dfop = {
// 展开最大高度
maxHeight: 200,
// 字段
text: "text",
method: "GET",
url: '',
data: [],
// 访问数据接口参数
param: null,
_isload: false,
_isSearched: false,
_first: false,
_isSearchneed: false
};
$.extend(dfop, op || {});
var $self = $(this);
dfop.id = $self.attr('id');
if (!dfop.id) {
return false;
}
$self[0]._lrisearch = {dfop:dfop};
$.lrisearch.init($self);
//加载数据
if (!!dfop.url) {
learun.httpAsync(dfop.method, dfop.url, dfop.param, function (data) {
$self[0]._lrisearch.dfop.data = data || [];
dfop.isload = true;
if (dfop._isSearchneed) {
$.lrisearch.triggerSearch($self);// 触发查询函数
}
});
}
else {
dfop.isload = true;
}
return $self;
}
})(jQuery, top.learun);