当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
68 Star 276 Fork 51

TerryZ / SelectPage
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
selectpage.min.js 35.04 KB
一键复制 编辑 原始数据 按行查看 历史
(function(g){var e={data:undefined,lang:"cn",multiple:false,pagination:true,dropButton:true,listSize:10,multipleControlbar:true,maxSelectLimit:0,selectToCloseList:false,initRecord:undefined,dbTable:"tbl",keyField:"id",showField:"name",searchField:undefined,andOr:"AND",orderBy:false,pageSize:10,params:undefined,formatItem:undefined,autoFillResult:false,autoSelectFirst:false,noResultClean:true,selectOnly:false,inputDelay:0.5,eSelect:undefined,eOpen:undefined,eAjaxSuccess:undefined,eTagRemove:undefined,eClear:undefined};var h=function(l,m){this.setOption(m);this.setLanguage();this.setCssClass();this.setProp();this.setElem(l);this.setButtonAttrDefault();this.setInitRecord();this.eDropdownButton();this.eInput();this.eWhole()};h.version="2.19";h.dataKey="selectPageObject";h.prototype.setOption=function(n){n.searchField=n.searchField||n.showField;n.andOr=n.andOr.toUpperCase();if(n.andOr!=="AND"&&n.andOr!=="OR"){n.andOr="AND"}var l=["searchField"];for(var m=0;m<l.length;m++){n[l[m]]=this.strToArray(n[l[m]])}if(n.orderBy!==false){n.orderBy=this.setOrderbyOption(n.orderBy,n.showField)}if(n.multiple&&!n.selectToCloseList){n.autoFillResult=false;n.autoSelectFirst=false}if(!n.pagination){n.pageSize=200}if(g.type(n.listSize)!=="number"||n.listSize<0){n.listSize=10}this.option=n};h.prototype.strToArray=function(l){return l?l.replace(/[\s ]+/g,"").split(","):""};h.prototype.setOrderbyOption=function(m,p){var l=[],o=[];if(typeof m==="object"){for(var n=0;n<m.length;n++){o=g.trim(m[n]).split(" ");if(o.length){l.push((o.length===2)?o.concat():[o[0],"ASC"])}}}else{o=g.trim(m).split(" ");l[0]=(o.length===2)?o.concat():(o[0].toUpperCase().match(/^(ASC|DESC)$/i))?[p,o[0].toUpperCase()]:[o[0],"ASC"]}return l};h.prototype.setLanguage=function(){var l,m=this.option;switch(m.lang){case"de":l={add_btn:"Hinzufügen-Button",add_title:"Box hinzufügen",del_btn:"Löschen-Button",del_title:"Box löschen",next:"Nächsten",next_title:"Nächsten"+m.pageSize+" (Pfeil-rechts)",prev:"Vorherigen",prev_title:"Vorherigen"+m.pageSize+" (Pfeil-links)",first_title:"Ersten (Umschalt + Pfeil-links)",last_title:"Letzten (Umschalt + Pfeil-rechts)",get_all_btn:"alle (Pfeil-runter)",get_all_alt:"(Button)",close_btn:"Schließen (Tab)",close_alt:"(Button)",loading:"lade...",loading_alt:"(lade)",page_info:"page_num von page_count",select_ng:"Achtung: Bitte wählen Sie aus der Liste aus.",select_ok:"OK : Richtig ausgewählt.",not_found:"nicht gefunden",ajax_error:"Bei der Verbindung zum Server ist ein Fehler aufgetreten.",clear:"Löschen Sie den Inhalt",select_all:"Wähle diese Seite",unselect_all:"Diese Seite entfernen",clear_all:"Alles löschen",max_selected:"Sie können nur bis zu max_selected_limit Elemente auswählen"};break;case"en":l={add_btn:"Add button",add_title:"add a box",del_btn:"Del button",del_title:"delete a box",next:"Next",next_title:"Next"+m.pageSize+" (Right key)",prev:"Prev",prev_title:"Prev"+m.pageSize+" (Left key)",first_title:"First (Shift + Left key)",last_title:"Last (Shift + Right key)",get_all_btn:"Get All (Down key)",get_all_alt:"(button)",close_btn:"Close (Tab key)",close_alt:"(button)",loading:"loading...",loading_alt:"(loading)",page_info:"Page page_num of page_count",select_ng:"Attention : Please choose from among the list.",select_ok:"OK : Correctly selected.",not_found:"not found",ajax_error:"An error occurred while connecting to server.",clear:"Clear content",select_all:"Select current page",unselect_all:"Clear current page",clear_all:"Clear all selected",max_selected:"You can only select up to max_selected_limit items"};break;case"es":l={add_btn:"Agregar boton",add_title:"Agregar una opcion",del_btn:"Borrar boton",del_title:"Borrar una opcion",next:"Siguiente",next_title:"Proximas "+m.pageSize+" (tecla derecha)",prev:"Anterior",prev_title:"Anteriores "+m.pageSize+" (tecla izquierda)",first_title:"Primera (Shift + Left)",last_title:"Ultima (Shift + Right)",get_all_btn:"Ver todos (tecla abajo)",get_all_alt:"(boton)",close_btn:"Cerrar (tecla TAB)",close_alt:"(boton)",loading:"Cargando...",loading_alt:"(Cargando)",page_info:"page_num de page_count",select_ng:"Atencion: Elija una opcion de la lista.",select_ok:"OK: Correctamente seleccionado.",not_found:"no encuentre",ajax_error:"Un error ocurrió mientras conectando al servidor.",clear:"Borrar el contenido",select_all:"Elija esta página",unselect_all:"Borrar esta página",clear_all:"Borrar todo marcado",max_selected:"Solo puedes seleccionar hasta max_selected_limit elementos"};break;case"pt-br":l={add_btn:"Adicionar botão",add_title:"Adicionar uma caixa",del_btn:"Apagar botão",del_title:"Apagar uma caixa",next:"Próxima",next_title:"Próxima "+m.pageSize+" (tecla direita)",prev:"Anterior",prev_title:"Anterior "+m.pageSize+" (tecla esquerda)",first_title:"Primeira (Shift + Left)",last_title:"Última (Shift + Right)",get_all_btn:"Ver todos (Seta para baixo)",get_all_alt:"(botão)",close_btn:"Fechar (tecla TAB)",close_alt:"(botão)",loading:"Carregando...",loading_alt:"(Carregando)",page_info:"page_num de page_count",select_ng:"Atenção: Escolha uma opção da lista.",select_ok:"OK: Selecionado Corretamente.",not_found:"não encontrado",ajax_error:"Um erro aconteceu enquanto conectando a servidor.",clear:"Limpe o conteúdo",select_all:"Selecione a página atual",unselect_all:"Remova a página atual",clear_all:"Limpar tudo",max_selected:"Você só pode selecionar até max_selected_limit itens"};break;case"ja":l={add_btn:"追加ボタン",add_title:"入力ボックスを追加します",del_btn:"削除ボタン",del_title:"入力ボックスを削除します",next:"次へ",next_title:"次の"+m.pageSize+"件 (右キー)",prev:"前へ",prev_title:"前の"+m.pageSize+"件 (左キー)",first_title:"最初のページへ (Shift + 左キー)",last_title:"最後のページへ (Shift + 右キー)",get_all_btn:"全件取得 (下キー)",get_all_alt:"画像:ボタン",close_btn:"閉じる (Tabキー)",close_alt:"画像:ボタン",loading:"読み込み中...",loading_alt:"画像:読み込み中...",page_info:"page_num 件 (全 page_count 件)",select_ng:"注意 : リストの中から選択してください",select_ok:"OK : 正しく選択されました。",not_found:"(0 件)",ajax_error:"サーバとの通信でエラーが発生しました。",clear:"コンテンツをクリアする",select_all:"当ページを選びます",unselect_all:"移して当ページを割ります",clear_all:"選択した項目をクリアする",max_selected:"最多で max_selected_limit のプロジェクトを選ぶことしかできません"};break;case"cn":default:l={add_btn:"添加按钮",add_title:"添加区域",del_btn:"删除按钮",del_title:"删除区域",next:"下一页",next_title:""+m.pageSize+" (→)",prev:"上一页",prev_title:""+m.pageSize+" (←)",first_title:"首页 (Shift + ←)",last_title:"尾页 (Shift + →)",get_all_btn:"获得全部 (↓)",get_all_alt:"(按钮)",close_btn:"关闭 (Tab键)",close_alt:"(按钮)",loading:"读取中...",loading_alt:"(读取中)",page_info:"第 page_num 页(共page_count页)",select_ng:"请注意:请从列表中选择.",select_ok:"OK : 已经选择.",not_found:"无查询结果",ajax_error:"连接到服务器时发生错误!",clear:"清除内容",select_all:"选择当前页项目",unselect_all:"取消选择当前页项目",clear_all:"清除全部已选择项目",max_selected:"最多只能选择 max_selected_limit 个项目"};break}this.message=l};h.prototype.setCssClass=function(){var l={container:"sp_container",container_open:"sp_container_open",re_area:"sp_result_area",result_open:"sp_result_area_open",control_box:"sp_control_box",element_box:"sp_element_box",navi:"sp_navi",results:"sp_results",re_off:"sp_results_off",select:"sp_over",select_ok:"sp_select_ok",select_ng:"sp_select_ng",selected:"sp_selected",input_off:"sp_input_off",message_box:"sp_message_box",disabled:"sp_disabled",button:"sp_button",caret_open:"sp_caret_open",btn_on:"sp_btn_on",btn_out:"sp_btn_out",input:"sp_input",clear_btn:"sp_clear_btn",align_right:"sp_align_right"};this.css_class=l};h.prototype.setProp=function(){this.prop={disabled:false,current_page:1,max_page:1,is_loading:false,xhr:false,key_paging:false,key_select:false,prev_value:"",selected_text:"",last_input_time:undefined,init_set:false};this.template={tag:{content:'<li class="selected_tag" itemvalue="#item_value#">#item_text#<span class="tag_close"><i class="sp-iconfont if-close"></i></span></li>',textKey:"#item_text#",valueKey:"#item_value#"},page:{current:"page_num",total:"page_count"},msg:{maxSelectLimit:"max_selected_limit"}}};h.prototype.elementRealSize=function(q,l){var p={absolute:false,clone:false,includeMargin:false,display:"block"};var t=p,o=q.eq(0),s,u,r=[],n="",m;s=function(){m=o.parents().addBack().filter(":hidden");n+="visibility: hidden !important; display: "+t.display+" !important; ";if(t.absolute===true){n+="position: absolute !important;"}m.each(function(){var w=g(this),x=w.attr("style");r.push(x);w.attr("style",x?x+";"+n:n)})};u=function(){m.each(function(w){var y=g(this),x=r[w];if(x===undefined){y.removeAttr("style")}else{y.attr("style",x)}})};s();var v=/(outer)/.test(l)?o[l](t.includeMargin):o[l]();u();return v};h.prototype.setElem=function(q){var o={},m=this.option,u=this.css_class,n=this.message,x=g(q);var s=x.outerWidth();if(s<=0){s=this.elementRealSize(x,"outerWidth")}if(s<150){s=150}o.combo_input=x.attr({"autocomplete":"off"}).addClass(u.input).wrap("<div>");if(m.selectOnly){o.combo_input.prop("readonly",true)}o.container=o.combo_input.parent().addClass(u.container);if(o.combo_input.prop("disabled")){if(m.multiple){o.container.addClass(u.disabled)}else{o.combo_input.addClass(u.input_off)}}o.container.width(s);o.button=g("<div>").addClass(u.button);o.dropdown=g('<span class="sp_caret"></span>');o.clear_btn=g("<div>").html(g("<i>").addClass("sp-iconfont if-close")).addClass(u.clear_btn).attr("title",n.clear);if(!m.dropButton){o.clear_btn.addClass(u.align_right)}o.element_box=g("<ul>").addClass(u.element_box);if(m.multiple&&m.multipleControlbar){o.control=g("<div>").addClass(u.control_box)}o.result_area=g("<div>").addClass(u.re_area);if(m.pagination){o.navi=g("<div>").addClass("sp_pagination").append("<ul>")}o.results=g("<ul>").addClass(u.results);var l="_text",w=o.combo_input.attr("id")||o.combo_input.attr("name"),t=o.combo_input.attr("name")||"selectPage",v=t,r=w;o.hidden=g('<input type="hidden" class="sp_hidden" />').attr({name:v,id:r}).val("");o.combo_input.attr({name:t+l,id:w+l});o.container.append(o.hidden);if(m.dropButton){o.container.append(o.button);o.button.append(o.dropdown)}g(document.body).append(o.result_area);o.result_area.append(o.results);if(m.pagination){o.result_area.append(o.navi)}if(m.multiple){if(m.multipleControlbar){o.control.append('<button type="button" class="btn btn-default sp_clear_all" ><i class="sp-iconfont if-clear"></i></button>');o.control.append('<button type="button" class="btn btn-default sp_unselect_all" ><i class="sp-iconfont if-unselect-all"></i></button>');o.control.append('<button type="button" class="btn btn-default sp_select_all" ><i class="sp-iconfont if-select-all"></i></button>');o.control_text=g("<p>");o.control.append(o.control_text);o.result_area.prepend(o.control)}o.container.addClass("sp_container_combo");o.combo_input.addClass("sp_combo_input").before(o.element_box);var y=g("<li>").addClass("input_box");y.append(o.combo_input);o.element_box.append(y);if(o.combo_input.attr("placeholder")){o.combo_input.attr("placeholder_bak",o.combo_input.attr("placeholder"))}}this.elem=o};h.prototype.setButtonAttrDefault=function(){if(this.option.dropButton){this.elem.button.attr("title",this.message.close_btn)}};h.prototype.setInitRecord=function(o){var l=this,s=l.option,n=l.elem,m="";if(g.type(n.combo_input.data("init"))!="undefined"){s.initRecord=String(n.combo_input.data("init"))}if(!o&&!s.initRecord&&n.combo_input.val()){s.initRecord=n.combo_input.val()}n.combo_input.val("");if(!o){n.hidden.val(s.initRecord)}m=o&&n.hidden.val()?n.hidden.val():s.initRecord;if(m){if(typeof s.data==="object"){var r=new Array();var q=m.split(",");g.each(q,function(p,u){for(var t=0;t<s.data.length;t++){if(s.data[t][s.keyField]==u){r.push(s.data[t]);break}}});if(!s.multiple&&r.length>1){r=[r[0]]}l.afterInit(l,r)}else{g.ajax({dataType:"json",type:"POST",url:s.data,data:{searchTable:s.dbTable,searchKey:s.keyField,searchValue:m},success:function(p){var t=null;if(s.eAjaxSuccess&&g.isFunction(s.eAjaxSuccess)){t=s.eAjaxSuccess(p)}l.afterInit(l,t.list)},error:function(p,u,t){l.ajaxErrorNotify(l,t)}})}}};h.prototype.afterInit=function(m,o){if(!o||(g.isArray(o)&&o.length===0)){return}if(!g.isArray(o)){o=[o]}var q=m.option,n=m.css_class;var l=function(t){var s=t[q.showField];if(q.formatItem&&g.isFunction(q.formatItem)){try{s=q.formatItem(t)}catch(p){}}return s};if(q.multiple){m.prop.init_set=true;m.clearAll(m);g.each(o,function(p,t){var s={text:l(t),value:t[q.keyField]};if(!m.isAlreadySelected(m,s)){m.addNewTag(m,t,s)}});m.tagValuesSet(m);m.inputResize(m);m.prop.init_set=false}else{var r=o[0];m.elem.combo_input.val(l(r));m.elem.hidden.val(r[q.keyField]);m.prop.prev_value=l(r);m.prop.selected_text=l(r);if(q.selectOnly){m.elem.combo_input.attr("title",m.message.select_ok).removeClass(n.select_ng).addClass(n.select_ok)}m.putClearButton()}};h.prototype.eDropdownButton=function(){var l=this;if(l.option.dropButton){l.elem.button.mouseup(function(m){m.stopPropagation();if(l.elem.result_area.is(":hidden")&&!l.elem.combo_input.prop("disabled")){l.elem.combo_input.focus()}else{l.hideResults(l)}})}};h.prototype.eInput=function(){var m=this,o=m.option,n=m.elem,q=m.message;var l=function(){m.prop.page_move=false;m.suggest(m);m.setCssFocusedInput(m)};n.combo_input.keyup(function(p){m.processKey(m,p)}).keydown(function(p){m.processControl(m,p)}).focus(function(p){if(n.result_area.is(":hidden")){p.stopPropagation();m.prop.first_show=true;l()}});n.container.on("click.SelectPage","div."+m.css_class.clear_btn,function(p){p.stopPropagation();if(!m.disabled(m)){m.clearAll(m,true);if(o.eClear&&g.isFunction(o.eClear)){o.eClear(m)}}});n.result_area.on("mousedown.SelectPage",function(p){p.stopPropagation()});if(o.multiple){if(o.multipleControlbar){n.control.find(".sp_select_all").on("click.SelectPage",function(p){m.selectAllLine(m)}).hover(function(){n.control_text.html(q.select_all)},function(){n.control_text.html("")});n.control.find(".sp_unselect_all").on("click.SelectPage",function(p){m.unSelectAllLine(m)}).hover(function(){n.control_text.html(q.unselect_all)},function(){n.control_text.html("")});n.control.find(".sp_clear_all").on("click.SelectPage",function(p){m.clearAll(m,true)}).hover(function(){n.control_text.html(q.clear_all)},function(){n.control_text.html("")})}n.element_box.on("click.SelectPage",function(r){var p=r.target||r.srcElement;if(g(p).is("ul")){n.combo_input.focus()}});n.element_box.on("click.SelectPage","span.tag_close",function(){var p=g(this).closest("li"),r=p.data("dataObj");m.removeTag(m,p);l();if(o.eTagRemove&&g.isFunction(o.eTagRemove)){o.eTagRemove([r])}});m.inputResize(m)}};h.prototype.eWhole=function(){var l=this,m=l.css_class;var n=function(o){o.elem.combo_input.val("");if(!o.option.multiple){o.elem.hidden.val("")}o.prop.selected_text=""};g(document.body).off("mousedown.selectPage").on("mousedown.selectPage",function(q){var p=q.target||q.srcElement;var o=g(p).closest("div."+m.container);g("div."+m.container+"."+m.container_open).each(function(){if(this==o[0]){return}var r=g(this),s=r.find("input."+m.input).data(h.dataKey);if(!s.elem.combo_input.val()&&s.elem.hidden.val()&&!s.option.multiple){s.prop.current_page=1;n(s);s.hideResults(s);return true}if(s.elem.results.find("li").not("."+m.message_box).length){if(s.option.autoFillResult){if(s.elem.hidden.val()){s.hideResults(s)}else{if(s.elem.results.find("li.sp_over").length){s.selectCurrentLine(s,true)}else{if(s.option.autoSelectFirst){s.nextLine(s);s.selectCurrentLine(s,true)}else{s.hideResults(s)}}}}else{s.hideResults(s)}}else{if(s.option.noResultClean){n(s)}else{if(!s.option.multiple){s.elem.hidden.val("")}}s.hideResults(s)}})})};h.prototype.eResultList=function(){var l=this,m=this.css_class;l.elem.results.children("li").hover(function(){if(l.prop.key_select){l.prop.key_select=false;return}if(!g(this).hasClass(m.selected)&&!g(this).hasClass(m.message_box)){g(this).addClass(m.select);l.setCssFocusedResults(l)}},function(){g(this).removeClass(m.select)}).click(function(n){if(l.prop.key_select){l.prop.key_select=false;return}n.preventDefault();n.stopPropagation();if(!g(this).hasClass(m.selected)){l.selectCurrentLine(l,false)}})};h.prototype.eScroll=function(){var l=this,m=this.css_class;g(window).on("scroll.SelectPage",function(n){g("div."+m.container+"."+m.container_open).each(function(){var v=g(this),u=v.find("input."+m.input).data(h.dataKey),t=u.elem.result_area.offset(),s=g(window).scrollTop(),x=g(document).height(),q=g(window).height(),p=u.elem.result_area.outerHeight(),o=t.top+p,r=x>q,w=u.elem.result_area.hasClass("shadowDown");if(r){if(w){if(o>(q+s)){u.calcResultsSize(u)}}else{if(t.top<s){u.calcResultsSize(u)}}}})})};h.prototype.ePaging=function(){var l=this;if(!l.option.pagination){return}l.elem.navi.find("li.csFirstPage").off("click").on("click",function(m){m.preventDefault();l.firstPage(l)});l.elem.navi.find("li.csPreviousPage").off("click").on("click",function(m){m.preventDefault();l.prevPage(l)});l.elem.navi.find("li.csNextPage").off("click").on("click",function(m){m.preventDefault();l.nextPage(l)});l.elem.navi.find("li.csLastPage").off("click").on("click",function(m){m.preventDefault();l.lastPage(l)})};h.prototype.ajaxErrorNotify=function(l,m){l.showMessage(l.message.ajax_error)};h.prototype.showMessage=function(l,n){if(!n){return}var m='<li class="'+l.css_class.message_box+'"><i class="sp-iconfont if-warning"></i> '+n+"</li>";l.elem.results.empty().append(m).show();l.calcResultsSize(l);l.setOpenStatus(l,true);l.elem.control.hide();if(l.option.pagination){l.elem.navi.hide()}};h.prototype.scrollWindow=function(t,q){var l=t.getCurrentLine(t),s=(l&&!q)?l.offset().top:t.elem.container.offset().top,n;t.prop.size_li=t.elem.results.children("li:first").outerHeight();n=t.prop.size_li;var r,p=g(window).height(),o=g(window).scrollTop(),m=o+p-n;if(l.length){if(s<o||n>p){r=s-o}else{if(s>m){r=s-m}else{return}}}else{if(s<o){r=s-o}}window.scrollBy(0,r)};h.prototype.setOpenStatus=function(m,l){var o=m.elem,n=m.css_class;if(l){o.container.addClass(n.container_open);o.result_area.addClass(n.result_open)}else{o.container.removeClass(n.container_open);o.result_area.removeClass(n.result_open)}};h.prototype.setCssFocusedInput=function(l){};h.prototype.setCssFocusedResults=function(l){};h.prototype.checkValue=function(m){var l=m.elem.combo_input.val();if(l!=m.prop.prev_value){m.prop.prev_value=l;m.prop.first_show=false;if(m.option.selectOnly){m.setButtonAttrDefault()}if(!m.option.multiple&&!l){m.elem.combo_input.val("");m.elem.hidden.val("");m.elem.clear_btn.remove()}m.suggest(m)}};h.prototype.processKey=function(l,m){if(g.inArray(m.keyCode,[37,38,39,40,27,9,13])===-1){if(m.keyCode!=16){l.setCssFocusedInput(l)}l.inputResize(l);if(g.type(l.option.data)==="string"){l.prop.last_input_time=m.timeStamp;setTimeout(function(){if((m.timeStamp-l.prop.last_input_time)===0){l.checkValue(l)}},l.option.inputDelay*1000)}else{l.checkValue(l)}}};h.prototype.processControl=function(l,m){if((g.inArray(m.keyCode,[37,38,39,40,27,9])>-1&&l.elem.result_area.is(":visible"))||(g.inArray(m.keyCode,[13,9])>-1&&l.getCurrentLine(l))){m.preventDefault();m.stopPropagation();m.cancelBubble=true;m.returnValue=false;switch(m.keyCode){case 37:if(m.shiftKey){l.firstPage(l)}else{l.prevPage(l)}break;case 38:l.prop.key_select=true;l.prevLine(l);break;case 39:if(m.shiftKey){l.lastPage(l)}else{l.nextPage(l)}break;case 40:if(l.elem.results.children("li").length){l.prop.key_select=true;l.nextLine(l)}else{l.suggest(l)}break;case 9:l.prop.key_paging=true;l.selectCurrentLine(l,true);break;case 13:l.selectCurrentLine(l,true);break;case 27:l.prop.key_paging=true;l.hideResults(l);break}}};h.prototype.abortAjax=function(l){if(l.prop.xhr){l.prop.xhr.abort();l.prop.xhr=false}};h.prototype.suggest=function(m){var n,o=g.trim(m.elem.combo_input.val());if(m.option.multiple){n=o}else{if(o&&o===m.prop.selected_text){n=""}else{n=o}}n=n.split(/[\s ]+/);if(m.option.eOpen&&g.isFunction(m.option.eOpen)){m.option.eOpen.call(m)}m.abortAjax(m);var l=m.prop.current_page||1;if(typeof m.option.data=="object"){m.searchForJson(m,n,l)}else{m.searchForDb(m,n,l)}};h.prototype.setLoading=function(l){if(l.elem.results.html()===""){l.setOpenStatus(l,true)}};h.prototype.searchForDb=function(t,q,s){var m=t.option;if(!m.eAjaxSuccess||!g.isFunction(m.eAjaxSuccess)){t.hideResults(t)}var n=m.params,r={},o=m.searchField;if(q.length&&q[0]&&q[0]!==t.prop.prev_value){s=1}var l={q_word:q,pageNumber:s,pageSize:m.pageSize,andOr:m.andOr,searchTable:m.dbTable};if(m.orderBy!==false){l.orderBy=m.orderBy}l[o]=q[0];if(n&&g.isFunction(n)){var u=n.call(t);if(u&&g.isPlainObject(u)){r=g.extend({},l,u)}else{r=l}}else{r=l}t.prop.xhr=g.ajax({dataType:"json",url:m.data,type:"POST",data:r,success:function(x){if(!x||!g.isPlainObject(x)){t.hideResults(t);t.ajaxErrorNotify(t,errorThrown);return}var y={},w={};try{y=m.eAjaxSuccess(x);w.originalResult=y.list;w.cnt_whole=y.totalRow}catch(z){t.showMessage(t,t.message.ajax_error);return}w.candidate=[];w.keyField=[];if(typeof w.originalResult!="object"){t.prop.xhr=null;t.notFoundSearch(t);return}w.cnt_page=w.originalResult.length;for(var v=0;v<w.cnt_page;v++){for(var p in w.originalResult[v]){if(p==m.keyField){w.keyField.push(w.originalResult[v][p])}if(p==m.showField){w.candidate.push(w.originalResult[v][p])}}}t.prepareResults(t,w,q,s)},error:function(p,w,v){if(w!="abort"){t.hideResults(t);t.ajaxErrorNotify(t,v)}},complete:function(){t.prop.xhr=null}})};h.prototype.searchForJson=function(z,r,B){var A=z.option,v=[],n=[],l=[],H={},E=0,y=[];do{n[E]=r[E].replace(/\W/g,"\\$&").toString();y[E]=new RegExp(n[E],"gi");E++}while(E<r.length);for(var E=0;E<A.data.length;E++){var D=false,t=A.data[E],u;for(var C=0;C<y.length;C++){u=t[A.searchField];if(A.formatItem&&g.isFunction(A.formatItem)){u=A.formatItem(t)}if(u.match(y[C])){D=true;if(A.andOr=="OR"){break}}else{D=false;if(A.andOr=="AND"){break}}}if(D){v.push(t)}}if(A.orderBy===false){l=v.concat()}else{var K=new RegExp("^"+n[0]+"$","gi"),I=new RegExp("^"+n[0],"gi"),J=[],G=[],F=[];for(var E=0;E<v.length;E++){var x=A.orderBy[0][0];var m=String(v[E][x]);if(m.match(K)){J.push(v[E])}else{if(m.match(I)){G.push(v[E])}else{F.push(v[E])}}}if(A.orderBy[0][1].match(/^asc$/i)){J=z.sortAsc(z,J);G=z.sortAsc(z,G);F=z.sortAsc(z,F)}else{J=z.sortDesc(z,J);G=z.sortDesc(z,G);F=z.sortDesc(z,F)}l=l.concat(J).concat(G).concat(F)}H.cnt_whole=l.length;if(!z.prop.page_move){if(!A.multiple){var w=z.elem.hidden.val();if(g.type(w)!=="undefined"&&g.trim(w)!==""){var s=0;g.each(l,function(p,M){if(M[A.keyField]==w){s=p+1;return false}});B=Math.ceil(s/A.pageSize);if(B<1){B=1}z.prop.current_page=B}}}else{if(l.length<=((B-1)*A.pageSize)){B=1;z.prop.current_page=1}}var q=(B-1)*A.pageSize,o=q+A.pageSize;H.originalResult=[];for(var E=q;E<o;E++){if(l[E]===undefined){break}H.originalResult.push(l[E]);for(var L in l[E]){if(L==A.keyField){if(H.keyField===undefined){H.keyField=[]}H.keyField.push(l[E][L])}if(L==A.showField){if(H.candidate===undefined){H.candidate=[]}H.candidate.push(l[E][L])}}}if(H.candidate===undefined){H.candidate=[]}H.cnt_page=H.candidate.length;z.prepareResults(z,H,r,B)};h.prototype.sortAsc=function(m,l){l.sort(function(p,n){var q=p[m.option.orderBy[0][0]],o=n[m.option.orderBy[0][0]];return g.type(q)==="number"?q-o:String(q).localeCompare(String(o))});return l};h.prototype.sortDesc=function(m,l){l.sort(function(p,n){var q=p[m.option.orderBy[0][0]],o=n[m.option.orderBy[0][0]];return g.type(q)==="number"?o-q:String(o).localeCompare(String(q))});return l};h.prototype.notFoundSearch=function(l){l.elem.results.empty();l.calcResultsSize(l);l.setOpenStatus(l,true);l.setCssFocusedInput(l)};h.prototype.prepareResults=function(n,o,p,l){if(n.option.pagination){n.setNavi(n,o.cnt_whole,o.cnt_page,l)}if(!o.keyField){o.keyField=false}if(n.option.selectOnly&&o.candidate.length===1&&o.candidate[0]==p[0]){n.elem.hidden.val(o.keyField[0]);this.setButtonAttrDefault()}var m=false;if(p&&p.length&&p[0]){m=true}n.displayResults(n,o,m)};h.prototype.setNavi=function(x,v,w,l){var n=x.message;var m=function(E,C,y,B){var G=function(){var H=n.page_info;return H.replace(E.template.page.current,y).replace(E.template.page.total,B)};if(C.find("li").length===0){C.hide().empty();var D="sp-iconfont if-first",F="sp-iconfont if-previous",z="sp-iconfont if-next",A="sp-iconfont if-last";C.append('<li class="csFirstPage" title="'+n.first_title+'" ><a href="javascript:void(0);"> <i class="'+D+'"></i> </a></li>');C.append('<li class="csPreviousPage" title="'+n.prev_title+'" ><a href="javascript:void(0);"><i class="'+F+'"></i></a></li>');C.append('<li class="pageInfoBox"><a href="javascript:void(0);"> '+G()+" </a></li>");C.append('<li class="csNextPage" title="'+n.next_title+'" ><a href="javascript:void(0);"><i class="'+z+'"></i></a></li>');C.append('<li class="csLastPage" title="'+n.last_title+'" ><a href="javascript:void(0);"> <i class="'+A+'"></i> </a></li>');C.show()}else{C.find("li.pageInfoBox a").html(G())}};var t=x.elem.navi.find("ul"),r=Math.ceil(v/x.option.pageSize);if(r===0){l=0}else{if(r<l){l=r}else{if(l===0){l=1}}}x.prop.current_page=l;x.prop.max_page=r;m(x,t,l,r);var s="disabled",p=t.find("li.csFirstPage"),q=t.find("li.csPreviousPage"),o=t.find("li.csNextPage"),u=t.find("li.csLastPage");if(l===1||l===0){if(!p.hasClass(s)){p.addClass(s)}if(!q.hasClass(s)){q.addClass(s)}}else{if(p.hasClass(s)){p.removeClass(s)}if(q.hasClass(s)){q.removeClass(s)}}if(l===r||r===0){if(!o.hasClass(s)){o.addClass(s)}if(!u.hasClass(s)){u.addClass(s)}}else{if(o.hasClass(s)){o.removeClass(s)}if(u.hasClass(s)){u.removeClass(s)}}if(r>1){x.ePaging()}};h.prototype.displayResults=function(A,z,s){var l=A.option,n=A.elem;n.results.hide().empty();if(l.multiple&&g.type(l.maxSelectLimit)==="number"&&l.maxSelectLimit>0){var q=n.element_box.find("li.selected_tag").length;if(q>0&&q>=l.maxSelectLimit){var o=A.message.max_selected;A.showMessage(A,o.replace(A.template.msg.maxSelectLimit,l.maxSelectLimit));return}}if(z.candidate.length){var y=z.candidate,w=z.keyField,m=n.hidden.val(),B=m?m.split(","):new Array(),v="";for(var r=0;r<y.length;r++){if(l.formatItem&&g.isFunction(l.formatItem)){try{v=l.formatItem(z.originalResult[r])}catch(u){console.error("formatItem内容格式化函数内容设置不正确!");v=y[r]}}else{v=y[r]}var t=g("<li>").html(v).attr({pkey:w[r]});if(!l.formatItem){t.attr("title",v)}if(g.inArray(w[r].toString(),B)!==-1){t.addClass(A.css_class.selected)}t.data("dataObj",z.originalResult[r]);n.results.append(t)}}else{var x='<li class="'+A.css_class.message_box+'"><i class="sp-iconfont if-warning"></i> '+A.message.not_found+"</li>";n.results.append(x)}n.results.show();if(l.multiple&&l.multipleControlbar){n.control.show()}if(l.pagination){n.navi.show()}A.calcResultsSize(A);A.setOpenStatus(A,true);A.eResultList();A.eScroll();if(s&&z.candidate.length&&l.autoSelectFirst){A.nextLine(A)}};h.prototype.calcResultsSize=function(m){var q=m.option,n=m.elem;var l=function(){if(n.container.css("position")==="static"){var A=n.combo_input.offset();n.result_area.css({top:A.top+n.combo_input.outerHeight()+"px",left:A.left+"px"})}else{if(!q.pagination){var x=n.results.find("li:first").outerHeight(true),v=x*q.listSize;n.results.css({"max-height":v,"overflow-y":"auto"})}var B=g(document).width(),F=g(document).height(),w=g(window).height(),A=n.container.offset(),z=g(window).scrollTop(),E=n.result_area.outerWidth(),v=n.result_area.outerHeight(),r=A.left,p=n.container.outerHeight(),u=(A.left+E)>B?r-(E-n.container.outerWidth()):r,t=A.top,D=0,C=5,s=t+p+v+C,y=F>w;if((t-z-C>v)&&(y&&s>(w+z))||(!y&&s>w)){D=A.top-v-C;n.result_area.removeClass("shadowUp shadowDown").addClass("shadowUp")}else{D=A.top+(q.multiple?n.container.outerHeight():p);n.result_area.removeClass("shadowUp shadowDown").addClass("shadowDown");D+=C}return{top:D+"px",left:u+"px"}}};if(n.result_area.is(":visible")){n.result_area.css(l())}else{var o=l();n.result_area.css(o).show(1,function(){var p=l();if(o.top!==p.top||o.left!==p.left){n.result_area.css(p)}})}};h.prototype.hideResults=function(l){if(l.prop.key_paging){l.scrollWindow(l,true);l.prop.key_paging=false}l.setCssFocusedInput(l);if(l.option.autoFillResult){}l.elem.results.empty();l.elem.result_area.hide();l.setOpenStatus(l,false);g(window).off("scroll.SelectPage");l.abortAjax(l);l.setButtonAttrDefault()};h.prototype.disabled=function(l,n){var o=l.option,m=l.elem;if(g.type(n)==="undefined"){return m.combo_input.prop("disabled")}if(g.type(n)==="boolean"){m.combo_input.prop("disabled",n);if(n){m.container.addClass(l.css_class.disabled)}else{m.container.removeClass(l.css_class.disabled)}}};h.prototype.firstPage=function(l){if(l.prop.current_page>1){l.prop.current_page=1;l.prop.page_move=true;l.suggest(l)}};h.prototype.prevPage=function(l){if(l.prop.current_page>1){l.prop.current_page--;l.prop.page_move=true;l.suggest(l)}};h.prototype.nextPage=function(l){if(l.prop.current_page<l.prop.max_page){l.prop.current_page++;l.prop.page_move=true;l.suggest(l)}};h.prototype.lastPage=function(l){if(l.prop.current_page<l.prop.max_page){l.prop.current_page=l.prop.max_page;l.prop.page_move=true;l.suggest(l)}};h.prototype.afterAction=function(l,m){l.inputResize(l);l.elem.combo_input.change();l.setCssFocusedInput(l);if(l.prop.init_set){return}if(l.option.multiple){if(l.option.selectToCloseList){l.hideResults(l);l.elem.combo_input.blur()}if(!l.option.selectToCloseList&&m){l.suggest(l);l.elem.combo_input.focus()}}else{l.hideResults(l);l.elem.combo_input.blur()}};h.prototype.selectCurrentLine=function(l,m){l.scrollWindow(l,true);var r=l.option,q=l.getCurrentLine(l);if(q){var o=q.data("dataObj");if(!r.multiple){l.elem.combo_input.val(q.text());l.elem.hidden.val(q.attr("pkey"))}else{l.elem.combo_input.val("");var n={text:q.text(),value:q.attr("pkey")};if(!l.isAlreadySelected(l,n)){l.addNewTag(l,o,n);l.tagValuesSet(l)}}if(r.selectOnly){l.setButtonAttrDefault()}if(r.eSelect&&g.isFunction(r.eSelect)){r.eSelect(o,l)}l.prop.prev_value=l.elem.combo_input.val();l.prop.selected_text=l.elem.combo_input.val();l.putClearButton()}l.afterAction(l,true)};h.prototype.putClearButton=function(){if(!this.option.multiple&&!this.elem.combo_input.prop("disabled")){this.elem.container.append(this.elem.clear_btn)}};h.prototype.selectAllLine=function(l){var n=l.option,m=new Array();l.elem.results.find("li").each(function(p,s){var o=g(s),r=o.data("dataObj");var q={text:o.text(),value:o.attr("pkey")};if(!l.isAlreadySelected(l,q)){l.addNewTag(l,r,q);l.tagValuesSet(l)}m.push(r);if(g.type(n.maxSelectLimit)==="number"&&n.maxSelectLimit>0&&n.maxSelectLimit===l.elem.element_box.find("li.selected_tag").length){return false}});if(n.eSelect&&g.isFunction(n.eSelect)){n.eSelect(m,l)}l.afterAction(l,true)};h.prototype.unSelectAllLine=function(l){var o=l.option,m=l.elem.results.find("li").length,n=[];l.elem.results.find("li").each(function(r,s){var q=g(s).attr("pkey");var p=l.elem.element_box.find('li.selected_tag[itemvalue="'+q+'"]');if(p.length){n.push(p.data("dataObj"))}l.removeTag(l,p)});l.afterAction(l,true);if(o.eTagRemove&&g.isFunction(o.eTagRemove)){o.eTagRemove(n)}};h.prototype.clearAll=function(l,m){var o=l.option,n=[];if(o.multiple){l.elem.element_box.find("li.selected_tag").each(function(p,q){n.push(g(q).data("dataObj"));q.remove()});l.elem.element_box.find("li.selected_tag").remove()}l.reset(l);l.afterAction(l,m);if(o.multiple){if(o.eTagRemove&&g.isFunction(o.eTagRemove)){o.eTagRemove(n)}}else{l.elem.clear_btn.remove()}};h.prototype.reset=function(l){l.elem.combo_input.val("");l.elem.hidden.val("");l.prop.prev_value="";l.prop.selected_text="";l.prop.current_page=1};h.prototype.getCurrentLine=function(l){if(l.elem.result_area.is(":hidden")){return false}var m=l.elem.results.find("li."+l.css_class.select);if(m.length){return m}else{return false}};h.prototype.isAlreadySelected=function(l,n){var o=false;if(n.value){var m=l.elem.hidden.val();if(m){var p=m.split(",");if(p&&p.length&&g.inArray(n.value,p)!=-1){o=true}}}return o};h.prototype.addNewTag=function(m,p,o){if(!m.option.multiple||!p||!o){return}var n=m.template.tag.content,l;n=n.replace(m.template.tag.textKey,o.text);n=n.replace(m.template.tag.valueKey,o.value);l=g(n);l.data("dataObj",p);if(m.elem.combo_input.prop("disabled")){l.find("span.tag_close").hide()}m.elem.combo_input.closest("li").before(l)};h.prototype.removeTag=function(l,q){var n=g(q).attr("itemvalue");var p=l.elem.hidden.val();if(g.type(n)!="undefined"&&p){var o=p.split(","),m=g.inArray(n.toString(),o);if(m!=-1){o.splice(m,1);l.elem.hidden.val(o.toString())}}g(q).remove();l.inputResize(l)};h.prototype.tagValuesSet=function(m){if(!m.option.multiple){return}var n=m.elem.element_box.find("li.selected_tag");if(n&&n.length){var l=new Array();g.each(n,function(q,o){var p=g(o).attr("itemvalue");if(g.type(p)!=="undefined"){l.push(p)}});if(l.length){m.elem.hidden.val(l.join(","))}}};h.prototype.inputResize=function(l){if(!l.option.multiple){return}var o="",m=l.elem.combo_input.closest("li");var n=function(p,q){q.removeClass("full_width");var s=p.elem.combo_input.val().length+1,r=(s*0.75)+"em";p.elem.combo_input.css("width",r).removeAttr("placeholder")};if(l.elem.element_box.find("li.selected_tag").length===0){if(l.elem.combo_input.attr("placeholder_bak")){if(!m.hasClass("full_width")){m.addClass("full_width")}l.elem.combo_input.attr("placeholder",l.elem.combo_input.attr("placeholder_bak")).removeAttr("style")}else{n(l,m)}}else{n(l,m)}};h.prototype.nextLine=function(m){var o=m.getCurrentLine(m),l;if(!o){l=-1}else{l=m.elem.results.children("li").index(o);o.removeClass(m.css_class.select)}l++;if(l<m.elem.results.children("li").length){var n=m.elem.results.children("li").eq(l);n.addClass(m.css_class.select);m.setCssFocusedResults(m)}else{m.setCssFocusedInput(m)}m.scrollWindow(m,false)};h.prototype.prevLine=function(m){var o=m.getCurrentLine(m),l;if(!o){l=m.elem.results.children("li").length}else{l=m.elem.results.children("li").index(o);o.removeClass(m.css_class.select)}l--;if(l>-1){var n=m.elem.results.children("li").eq(l);n.addClass(m.css_class.select);m.setCssFocusedResults(m)}else{m.setCssFocusedInput(m)}m.scrollWindow(m,false)};function j(l){return this.each(function(){var n=g(this),m=n.data(h.dataKey),o=g.extend({},e,n.data(),m&&m.option,typeof l==="object"&&l);if(!m){n.data(h.dataKey,(m=new h(this,o)))}})}function a(l){return g(l).closest("div.sp_container").find("input.sp_input")}function b(){return this.each(function(){var m=a(this),l=m.data(h.dataKey);if(l){l.prop.init_set=true;l.clearAll(l);l.prop.init_set=false}})}function f(){return this.each(function(){var m=a(this),l=m.data(h.dataKey);if(l&&l.elem.hidden.val()){l.setInitRecord(true)}})}function c(l){return this.each(function(){if(l&&g.isArray(l)){var n=a(this),m=n.data(h.dataKey);if(m){m.clearAll(m);m.option.data=l}}})}function k(m){var l=false;this.each(function(){var o=a(this),n=o.data(h.dataKey);if(n){if(g.type(m)!=="undefined"){n.disabled(n,m)}else{l=n.disabled(n)}}});return l}function i(){var l="";this.each(function(){var o=a(this),n=o.data(h.dataKey);if(n){if(n.option.multiple){var m=[];n.elem.element_box.find("li.selected_tag").each(function(q,p){m.push(g(p).text())});l+=m.toString()}else{l+=n.elem.combo_input.val()}}});return l}var d=g.fn.selectPage;g.fn.selectPage=j;g.fn.selectPage.Constructor=h;g.fn.selectPageClear=b;g.fn.selectPageRefresh=f;g.fn.selectPageData=c;g.fn.selectPageDisabled=k;g.fn.selectPageText=i;g.fn.selectPage.noConflict=function(){g.fn.selectPage=d;return this}})(window.jQuery);
JavaScript
1
https://gitee.com/TerryZ/selectpage.git
git@gitee.com:TerryZ/selectpage.git
TerryZ
selectpage
SelectPage
master

搜索帮助