/* * 版 本 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);