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.
1 lines
33 KiB
1 lines
33 KiB
(function(g){var e={data:undefined,lang:"cn",multiple:false,pagination:true,listSize:10,multipleControlbar:true,maxSelectLimit:0,selectToCloseList:true,initRecord:undefined,dbTable:"tbl",keyField:"id",showField:"name",searchField:undefined,andOr:"AND",orderBy:undefined,pageSize:10,params:undefined,formatItem:undefined,focusDropList:true,autoSelectFirst:true,autoFillResult:true,noResultClean:true,selectOnly:false,inputDelay:0.5,eSelect:undefined,eAjaxSuccess:undefined,eTagRemove:undefined,eClear:undefined};var h=function(k,l){this.setOption(l);this.setLanguage();this.setCssClass();this.setProp();this.setElem(k,l);this.setButtonAttrDefault();this.setInitRecord();this.eDropdownButton();this.eInput();this.eWhole()};h.version="2.7";h.dataKey="selectPageObject";h.objStatusKey="selectPage-self-mark";h.objStatusIndex="selectPage-self-index";h.prototype.setOption=function(m){m.searchField=(m.searchField===undefined)?m.showField:m.searchField;m.andOr=m.andOr.toUpperCase();if(m.andOr!=="AND"&&m.andOr!=="OR"){m.andOr="AND"}var k=["searchField"];for(var l=0;l<k.length;l++){m[k[l]]=this.strToArray(m[k[l]])}m.orderBy=(m.orderBy===undefined)?m.searchField:m.orderBy;m.orderBy=this.setOrderbyOption(m.orderBy,m.showField);if(m.multiple&&!m.selectToCloseList){m.autoFillResult=false;m.autoSelectFirst=false}if(g.type(m.data)==="string"){m.autoSelectFirst=false}if(!m.pagination){m.pageSize=200}if(g.type(m.listSize)!=="number"||m.listSize<0){m.listSize=10}this.option=m};h.prototype.strToArray=function(k){if(!k){return""}return k.replace(/[\s ]+/g,"").split(",")};h.prototype.setOrderbyOption=function(l,o){var k=[],n=[];if(typeof l=="object"){for(var m=0;m<l.length;m++){n=g.trim(l[m]).split(" ");k[m]=(n.length==2)?n:[n[0],"ASC"]}}else{n=g.trim(l).split(" ");k[0]=(n.length==2)?n:(n[0].match(/^(ASC|DESC)$/i))?[o,n[0]]:[n[0],"ASC"]}return k};h.prototype.setLanguage=function(){var k;switch(this.option.lang){case"de":k={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"+this.option.pageSize+" (Pfeil-rechts)",prev:"Vorherigen",prev_title:"Vorherigen"+this.option.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:"num_page_top - num_page_end von cnt_whole",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."};break;case"en":k={add_btn:"Add button",add_title:"add a box",del_btn:"Del button",del_title:"delete a box",next:"Next",next_title:"Next"+this.option.pageSize+" (Right key)",prev:"Prev",prev_title:"Prev"+this.option.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:"num_page_top - num_page_end of cnt_whole",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."};break;case"cn":k={add_btn:"添加按钮",add_title:"添加区域",del_btn:"删除按钮",del_title:"删除区域",next:"下一页",next_title:"下"+this.option.pageSize+" (→)",prev:"上一页",prev_title:"上"+this.option.pageSize+" (←)",first_title:"首页 (Shift + ←)",last_title:"尾页 (Shift + →)",get_all_btn:"获得全部 (↓)",get_all_alt:"(按钮)",close_btn:"关闭 (Tab键)",close_alt:"(按钮)",loading:"读取中...",loading_alt:"(读取中)",page_info:"num_page_top - num_page_end (共 cnt_whole)",select_ng:"请注意:请从列表中选择.",select_ok:"OK : 已经选择.",not_found:"无查询结果",ajax_error:"连接到服务器时发生错误!"};break;case"es":k={add_btn:"Agregar boton",add_title:"Agregar una opcion",del_btn:"Borrar boton",del_title:"Borrar una opcion",next:"Siguiente",next_title:"Proximas "+this.option.pageSize+" (tecla derecha)",prev:"Anterior",prev_title:"Anteriores "+this.option.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:"num_page_top - num_page_end de cnt_whole",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."};break;case"pt-br":k={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 "+this.option.pageSize+" (tecla direita)",prev:"Anterior",prev_title:"Anterior "+this.option.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:"num_page_top - num_page_end de cnt_whole",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."};break;case"ja":k={add_btn:"追加ボタン",add_title:"入力ボックスを追加します",del_btn:"削除ボタン",del_title:"入力ボックスを削除します",next:"次へ",next_title:"次の"+this.option.pageSize+"件 (右キー)",prev:"前へ",prev_title:"前の"+this.option.pageSize+"件 (左キー)",first_title:"最初のページへ (Shift + 左キー)",last_title:"最後のページへ (Shift + 右キー)",get_all_btn:"全件取得 (下キー)",get_all_alt:"画像:ボタン",close_btn:"閉じる (Tabキー)",close_alt:"画像:ボタン",loading:"読み込み中...",loading_alt:"画像:読み込み中...",page_info:"num_page_top - num_page_end 件 (全 cnt_whole 件)",select_ng:"注意 : リストの中から選択してください",select_ok:"OK : 正しく選択されました。",not_found:"(0 件)",ajax_error:"サーバとの通信でエラーが発生しました。"};break}this.message=k};h.prototype.setCssClass=function(){var k={container:"sp_container",container_open:"sp_container_open",re_area:"sp_result_area",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",btn_on:"sp_btn_on",btn_out:"sp_btn_out",input:"sp_input",clear_btn:"sp_clear_btn"};this.css_class=k};h.prototype.setProp=function(){this.prop={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};this.template={tag:{content:'<li class="selected_tag" itemvalue="#item_value#">#item_text#<span class="tag_close">×</span></li>',textKey:"#item_text#",valueKey:"#item_value#"}}};h.prototype.setElem=function(m,q){var l={};var o=g(m).outerWidth();l.combo_input=g(m).attr({"autocomplete":"off"}).addClass(this.css_class.input).wrap("<div>");if(q.selectOnly){g(l.combo_input).prop("readonly",true)}l.container=g(l.combo_input).parent().addClass(this.css_class.container);if(g(l.combo_input).prop("disabled")){if(q.multiple){g(l.container).addClass(this.css_class.disabled)}else{g(l.combo_input).addClass(this.css_class.input_off)}}g(l.container).width(o);l.button=g("<div>").addClass(this.css_class.button);l.dropdown=g('<span class="bs-caret"><span class="caret"></span></span>');l.clear_btn=g("<div>").append("×").addClass(this.css_class.clear_btn).attr("title","清除内容");l.element_box=g("<ul>").addClass(this.css_class.element_box);if(q.multiple&&q.multipleControlbar){l.control=g("<div>").addClass(this.css_class.control_box)}l.result_area=g("<div>").addClass(this.css_class.re_area);if(q.pagination){l.navi=g("<div>").addClass("pagination").append("<ul>")}l.results=g("<ul>").addClass(this.css_class.results);var k="_text";var s=(g(l.combo_input).attr("id")!==undefined)?g(l.combo_input).attr("id"):g(l.combo_input).attr("name");var p=(g(l.combo_input).attr("name")!==undefined)?g(l.combo_input).attr("name"):"selectPage";var r=p,n=s;if(p.match(/\]$/)){p=p.replace(/\]?$/,k)}else{p+=k}if(s.match(/\]$/)){s=s.replace(/\]?$/,k)}else{s+=k}l.hidden=g('<input type="hidden" class="sp_hidden" />').attr({name:r,id:n}).val("");g(l.combo_input).attr({name:p,id:s});g(l.container).append(l.button).append(l.result_area).append(l.hidden);g(l.button).append(l.dropdown);g(l.result_area).append(l.results);if(q.pagination){g(l.result_area).append(l.navi)}if(q.multiple){if(q.multipleControlbar){g(l.control).append('<button type="button" class="btn btn-default sp_select_all" ><i class="fa fa-check-square-o"></i> 全选本页</button>');g(l.control).append('<button type="button" class="btn btn-default sp_unselect_all" ><i class="fa fa-square-o"></i> 取消本页</button>');g(l.control).append('<button type="button" class="btn btn-default sp_clear_all" ><i class="fa fa-ban"></i> 清除全部</button>');g(l.result_area).prepend(l.control)}g(l.container).addClass("sp_container_combo");g(l.combo_input).addClass("sp_combo_input").before(g(l.element_box));var t=g("<li>").addClass("input_box");g(t).append(g(l.combo_input));g(l.element_box).append(g(t));if(g(l.combo_input).attr("placeholder")){g(l.combo_input).attr("placeholder_bak",g(l.combo_input).attr("placeholder"))}}this.elem=l};h.prototype.setButtonAttrDefault=function(){g(this.elem.button).attr("title",this.message.get_all_btn);g(this.elem.button).attr("title",this.message.close_btn)};h.prototype.setInitRecord=function(l){var k=this;if(g.type(g(k.elem.combo_input).data("init"))!="undefined"){k.option.initRecord=String(g(k.elem.combo_input).data("init"))}if(!k.option.initRecord){if(g(k.elem.combo_input).val()){k.option.initRecord=g(k.elem.combo_input).val()}}g(k.elem.combo_input).val("");if((l&&g(k.elem.hidden).val())||g.type(k.option.initRecord)==="string"){if(!l){g(k.elem.hidden).val(k.option.initRecord)}if(typeof k.option.data==="object"){var n=new Array();var m=l?g(k.elem.hidden).val().split(","):k.option.initRecord.split(",");g.each(m,function(o,q){for(var p=0;p<k.option.data.length;p++){if(k.option.data[p][k.option.keyField]==q){n.push(k.option.data[p]);break}}});if(!k.option.multiple&&n.length>1){n=null}k.afterInit(k,n)}else{g.ajax({dataType:"json",type:"POST",url:k.option.data,data:{searchTable:k.option.dbTable,searchKey:k.option.keyField,searchValue:l?g(k.elem.hidden).val():k.option.initRecord},success:function(o){var p=null;if(k.option.eAjaxSuccess&&g.isFunction(k.option.eAjaxSuccess)){p=k.option.eAjaxSuccess(o)}k.afterInit(k,p.list)},error:function(o,q,p){k.ajaxErrorNotify(k,p)}})}}};h.prototype.afterInit=function(l,m){if(!m){return}if(!g.isArray(m)){m=[m]}var k=function(q){var p=q[l.option.showField];if(l.option.formatItem&&g.isFunction(l.option.formatItem)){try{p=l.option.formatItem(q)}catch(o){}}return p};if(l.option.multiple){l.clearAll(l);g.each(m,function(o,q){var p={text:k(q),value:q[l.option.keyField]};if(!l.isAlreadySelected(l,p)){l.addNewTag(l,p)}});l.tagValuesSet(l);l.inputResize(l)}else{var n=m[0];g(l.elem.combo_input).val(k(n));g(l.elem.hidden).val(n[l.option.keyField]);l.prop.prev_value=k(n);l.prop.selected_text=k(n);if(l.option.selectOnly){g(l.elem.combo_input).attr("title",l.message.select_ok).removeClass(l.css_class.select_ng).addClass(l.css_class.select_ok)}l.putClearButton()}};h.prototype.eDropdownButton=function(){var k=this;g(k.elem.button).mouseup(function(l){l.stopPropagation();if(g(k.elem.result_area).is(":hidden")&&!g(k.elem.combo_input).prop("disabled")){g(k.elem.combo_input).focus()}else{k.hideResults(k)}}).mouseout()};h.prototype.eInput=function(){var l=this;var k=function(){l.prop.page_move=false;l.suggest(l);l.setCssFocusedInput(l)};g(l.elem.combo_input).keyup(function(m){l.processKey(l,m)}).keydown(function(m){l.processControl(l,m)}).focus(function(m){if(g(l.elem.result_area).is(":hidden")){m.stopPropagation();l.prop.first_show=true;k()}});g(l.elem.container).on("click.SelectPage","div."+l.css_class.clear_btn,function(m){m.stopPropagation();l.clearAll(l);g(l.elem.clear_btn).remove();if(l.option.eClear&&g.isFunction(l.option.eClear)){l.option.eClear()}});if(l.option.multiple){if(l.option.multipleControlbar){g(".sp_select_all",l.elem.control).on("click.SelectPage",function(m){l.selectAllLine(l)});g(".sp_unselect_all",l.elem.control).on("click.SelectPage",function(m){l.unselectAllLine(l)});g(".sp_clear_all",l.elem.control).on("click.SelectPage",function(m){l.clearAll(l)})}g(l.elem.element_box).on("click.SelectPage",function(n){var m=n.target||n.srcElement;if(g(m).is("ul")){g(l.elem.combo_input).focus()}});g(l.elem.element_box).on("click.SelectPage","span.tag_close",function(){var m=g(this).closest("li");l.removeTag(l,m);k();if(l.option.eTagRemove&&g.isFunction(l.option.eTagRemove)){l.option.eTagRemove(1)}});l.inputResize(l)}};h.prototype.eWhole=function(){var k=this;g(document).off("mousedown.selectPage").on("mousedown.selectPage",function(m){var l=m.target||m.srcElement;var o=g(l).closest("div."+k.css_class.container);var n=function(p){g(p.elem.combo_input).val("");if(!p.option.multiple){g(p.elem.hidden).val("")}p.prop.selected_text=""};g("div."+k.css_class.container+"."+k.css_class.container_open).each(function(){if(this==o[0]){return}var p=g("input."+k.css_class.input,this).data(h.dataKey);if(!g(p.elem.combo_input).val()&&g(p.elem.hidden).val()&&!p.option.multiple){p.prop.current_page=1;n(p);p.hideResults(p);return true}if(g("li",g(p.elem.results)).size()>0){if(p.option.autoFillResult){if(g("li.sp_selected",g(p.elem.results)).size()>0){p.hideResults(p)}else{if(g("li.sp_over",g(p.elem.results)).size()>0){if(g(p.elem.hidden).val()){p.hideResults(p)}else{p.selectCurrentLine(p,true)}}else{if(p.option.autoSelectFirst){if(g(p.elem.hidden).val()){p.hideResults(p)}else{p.nextLine(p);p.selectCurrentLine(p,true)}}else{p.hideResults(p)}}}}else{p.hideResults(p)}}else{if(p.option.noResultClean){n(p)}else{if(!p.option.multiple){g(p.elem.hidden).val("")}}p.hideResults(p)}})})};h.prototype.eResultList=function(){var k=this;g(k.elem.results).children("li").mouseenter(function(){if(k.prop.key_select){k.prop.key_select=false;return}if(!g(this).hasClass(k.css_class.selected)&&!g(this).hasClass("sp_message_box")){g(this).addClass(k.css_class.select);k.setCssFocusedResults(k)}}).mouseleave(function(){g(this).removeClass(k.css_class.select)}).click(function(l){if(k.prop.key_select){k.prop.key_select=false;return}l.preventDefault();l.stopPropagation();if(!g(this).hasClass(k.css_class.selected)){k.selectCurrentLine(k,false)}})};h.prototype.ehNaviPaging=function(){var k=this;if(!k.option.pagination){return}g("li.csFirstPage",g(k.elem.navi)).off("click").on("click",function(l){l.preventDefault();k.firstPage(k)});g("li.csPreviousPage",g(k.elem.navi)).off("click").on("click",function(l){l.preventDefault();k.prevPage(k)});g("li.csNextPage",g(k.elem.navi)).off("click").on("click",function(l){l.preventDefault();k.nextPage(k)});g("li.csLastPage",g(k.elem.navi)).off("click").on("click",function(l){l.preventDefault();k.lastPage(k)})};h.prototype.ajaxErrorNotify=function(k,l){k.showMessage(k.message.ajax_error)};h.prototype.showMessage=function(k,m){if(!m){return}var l='<li class="sp_message_box"><i class="fa fa-exclamation-triangle"></i> '+m+"</li>";g(k.elem.results).empty().append(l);k.calcResultsSize(k);g(k.elem.container).addClass(k.css_class.container_open);g(k.elem.control).hide();if(k.option.pagination){g(k.elem.navi).hide()}};h.prototype.scrollWindow=function(s,p){var k=s.getCurrentLine(s);var r=(k&&!p)?k.offset().top:g(s.elem.container).offset().top;var m;s.prop.size_li=g(s.elem.results).children("li:first").outerHeight();m=s.prop.size_li;var o=g(window).height();var n=g(window).scrollTop();var l=n+o-m;var q;if(g(k).length){if(r<n||m>o){q=r-n}else{if(r>l){q=r-l}else{return}}}else{if(r<n){q=r-n}}window.scrollBy(0,q)};h.prototype.setCssFocusedInput=function(k){};h.prototype.setCssFocusedResults=function(k){};h.prototype.checkValue=function(l){var k=g(l.elem.combo_input).val();if(k!=l.prop.prev_value){l.prop.prev_value=k;l.prop.first_show=false;if(l.option.selectOnly){l.setButtonAttrDefault()}if(!l.option.multiple&&!k){l.clearAll(l);g(l.elem.clear_btn).remove()}l.suggest(l)}};h.prototype.processKey=function(k,l){if(g.inArray(l.keyCode,[37,38,39,40,27,9,13])===-1){if(l.keyCode!=16){k.setCssFocusedInput(k)}k.inputResize(k);if(g.type(k.option.data)==="string"){k.prop.last_input_time=l.timeStamp;setTimeout(function(){if((l.timeStamp-k.prop.last_input_time)===0){k.checkValue(k)}},k.option.inputDelay*1000)}else{k.checkValue(k)}}};h.prototype.processControl=function(k,l){if((g.inArray(l.keyCode,[37,38,39,40,27,9])>-1&&g(k.elem.result_area).is(":visible"))||(g.inArray(l.keyCode,[13,9])>-1&&k.getCurrentLine(k))){l.preventDefault();l.stopPropagation();l.cancelBubble=true;l.returnValue=false;switch(l.keyCode){case 37:if(l.shiftKey){k.firstPage(k)}else{k.prevPage(k)}break;case 38:k.prop.key_select=true;k.prevLine(k);break;case 39:if(l.shiftKey){k.lastPage(k)}else{k.nextPage(k)}break;case 40:if(g(k.elem.results).children("li").length){k.prop.key_select=true;k.nextLine(k)}else{k.suggest(k)}break;case 9:k.prop.key_paging=true;k.selectCurrentLine(k,true);break;case 13:k.selectCurrentLine(k,true);break;case 27:k.prop.key_paging=true;k.hideResults(k);break}}};h.prototype.abortAjax=function(k){if(k.prop.xhr){k.prop.xhr.abort();k.prop.xhr=false}};h.prototype.suggest=function(l){var m;var n=g.trim(g(l.elem.combo_input).val());if(l.option.multiple){m=n}else{if(n&&n===l.prop.selected_text){m=""}else{m=n}}m=m.split(/[\s ]+/);l.abortAjax(l);l.setLoading(l);var k=l.prop.current_page>0?l.prop.current_page:1;if(typeof l.option.data=="object"){l.searchForJson(l,m,k)}else{l.searchForDb(l,m,k)}};h.prototype.setLoading=function(k){if(g(k.elem.results).html()===""){g(k.elem.container).addClass(k.css_class.container_open)}};h.prototype.searchForDb=function(n,q,l){if(!n.option.eAjaxSuccess||!g.isFunction(n.option.eAjaxSuccess)){n.hideResults(n)}var o=n.option.params;var m={};var r=n.option.searchField;if(q.length>0&&q[0]&&q[0]!==n.prop.prev_value){l=1}var p={q_word:q,pageNumber:l,pageSize:n.option.pageSize,andOr:n.option.andOr,orderBy:n.option.orderBy,searchTable:n.option.dbTable};p[r]=q[0];if(o&&g.isFunction(o)){var k=o();if(k&&g.isPlainObject(k)){m=g.extend({},p,k)}else{m=p}}else{m=p}n.prop.xhr=g.ajax({dataType:"json",url:n.option.data,type:"POST",data:m,success:function(v){if(!v||!g.isPlainObject(v)){n.hideResults(n);n.ajaxErrorNotify(n,errorThrown);return}var w=n.option.eAjaxSuccess(v);var u={};u.originalResult=w.list;u.cnt_whole=w.totalRow;u.candidate=[];u.keyField=[];if(typeof u.originalResult!="object"){n.prop.xhr=null;n.notFoundSearch(n);return}u.cnt_page=u.originalResult.length;for(var t=0;t<u.cnt_page;t++){for(var s in u.originalResult[t]){if(s==n.option.keyField){u.keyField.push(u.originalResult[t][s])}if(s==n.option.showField){u.candidate.push(u.originalResult[t][s])}}}n.prepareResults(n,u,q,l)},error:function(s,u,t){if(u!="abort"){n.hideResults(n);n.ajaxErrorNotify(n,t)}},complete:function(){n.prop.xhr=null}})};h.prototype.searchForJson=function(x,p,y){var t=[];var m=[];var k=[];var E={};var B=0;var w=[];do{m[B]=p[B].replace(/\W/g,"\\$&").toString();w[B]=new RegExp(m[B],"gi");B++}while(B<p.length);for(B=0;B<x.option.data.length;B++){var A=false;var r=x.option.data[B];for(var z=0;z<w.length;z++){var s=r[x.option.showField];if(x.option.formatItem&&g.isFunction(x.option.formatItem)){s=x.option.formatItem(r)}if(s.match(w[z])){A=true;if(x.option.andOr=="OR"){break}}else{A=false;if(x.option.andOr=="AND"){break}}}if(A){t.push(r)}}var H=new RegExp("^"+m[0]+"$","gi");var F=new RegExp("^"+m[0],"gi");var G=[];var D=[];var C=[];for(B=0;B<t.length;B++){var v=x.option.orderBy[0][0];var l=String(t[B][v]);if(l.match(H)){G.push(t[B])}else{if(l.match(F)){D.push(t[B])}else{C.push(t[B])}}}if(x.option.orderBy[0][1].match(/^asc$/i)){G=x.sortAsc(x,G);D=x.sortAsc(x,D);C=x.sortAsc(x,C)}else{G=x.sortDesc(x,G);D=x.sortDesc(x,D);C=x.sortDesc(x,C)}k=k.concat(G).concat(D).concat(C);E.cnt_whole=k.length;if(!x.prop.page_move){if(!x.option.multiple){var u=g(x.elem.hidden).val();if(g.type(u)!=="undefined"&&g.trim(u)!==""){var q=0;g.each(k,function(J,K){if(K[x.option.keyField]==u){q=J+1;return false}});y=Math.ceil(q/x.option.pageSize);if(y<1){y=1}x.prop.current_page=y}}}else{if(k.length<=((y-1)*x.option.pageSize)){y=1;x.prop.current_page=1}}var o=(y-1)*x.option.pageSize;var n=o+x.option.pageSize;E.originalResult=[];for(B=o;B<n;B++){if(k[B]===undefined){break}E.originalResult.push(k[B]);for(var I in k[B]){if(I==x.option.keyField){if(E.keyField===undefined){E.keyField=[]}E.keyField.push(k[B][I])}if(I==x.option.showField){if(E.candidate===undefined){E.candidate=[]}E.candidate.push(k[B][I])}}}if(E.candidate===undefined){E.candidate=[]}E.cnt_page=E.candidate.length;x.prepareResults(x,E,p,y)};h.prototype.sortAsc=function(l,k){k.sort(function(o,m){var p=o[l.option.orderBy[0][0]];var n=m[l.option.orderBy[0][0]];return g.type(p)==="number"?p-n:String(p).localeCompare(String(n))});return k};h.prototype.sortDesc=function(l,k){k.sort(function(o,m){var p=o[l.option.orderBy[0][0]];var n=m[l.option.orderBy[0][0]];return g.type(p)==="number"?n-p:String(n).localeCompare(String(p))});return k};h.prototype.notFoundSearch=function(k){g(k.elem.results).empty();k.calcResultsSize(k);g(k.elem.container).addClass(k.css_class.container_open);k.setCssFocusedInput(k)};h.prototype.prepareResults=function(m,n,o,k){if(m.option.pagination){m.setNavi(m,n.cnt_whole,n.cnt_page,k)}if(!n.keyField){n.keyField=false}if(m.option.selectOnly&&n.candidate.length===1&&n.candidate[0]==o[0]){g(m.elem.hidden).val(n.keyField[0]);this.setButtonAttrDefault()}var l=false;if(o&&o.length>0&&o[0]){l=true}m.displayResults(m,n,l)};h.prototype.setNavi=function(x,v,w,l){var m=function(H,E,y,D){if(g("li",g(E)).size()==0){g(E).hide().empty();var A="",C=true;g.each(document.styleSheets,function(J,K){if(K&&K.href&&K.href.indexOf("font-awesome-3.2.1")!=-1){C=false;return false}});var F="fa fa-angle-double-left",I="fa fa-angle-left",z="fa fa-angle-right",B="fa fa-angle-double-right";if(!C){F="icon-step-backward";I="icon-backward";z="icon-forward";B="icon-step-forward"}if(y==1){A=" disabled "}g(E).append('<li class="csFirstPage'+A+'" title="'+H.message.first_title+'" ><a href="javascript:void(0);"> <i class="'+F+'"></i> </a></li>');g(E).append('<li class="csPreviousPage'+A+'" title="'+H.message.prev_title+'" ><a href="javascript:void(0);"><i class="'+I+'"></i></a></li>');var G="第 "+y+" 页(共"+D+"页)";g(E).append('<li class="pageInfoBox"><a href="javascript:void(0);"> '+G+" </a></li>");if(y==D){A=" disabled "}else{A=""}g(E).append('<li class="csNextPage'+A+'" title="'+H.message.next_title+'" ><a href="javascript:void(0);"><i class="'+z+'"></i></a></li>');g(E).append('<li class="csLastPage'+A+'" title="'+H.message.last_title+'" ><a href="javascript:void(0);"> <i class="'+B+'"></i> </a></li>');g(E).show()}};var s=g("ul",g(x.elem.navi));var q=Math.ceil(v/x.option.pageSize);if(q==0){l=0}else{if(q<l){l=q}else{if(l==0){l=1}}}x.prop.current_page=l;x.prop.max_page=q;m(x,s,l,q);var k=g("li.pageInfoBox",g(s));var u="第 "+l+" 页(共"+q+"页)";g(k).html('<a href="javascript:void(0);"> '+u+" </a>");var r="disabled";var o=g("li.csFirstPage",g(s));var p=g("li.csPreviousPage",g(s));var n=g("li.csNextPage",g(s));var t=g("li.csLastPage",g(s));if(l===1||l===0){if(!g(o).hasClass(r)){g(o).addClass(r)}if(!g(p).hasClass(r)){g(p).addClass(r)}}else{if(g(o).hasClass(r)){g(o).removeClass(r)}if(g(p).hasClass(r)){g(p).removeClass(r)}}if(l==q||q==0){if(!g(n).hasClass(r)){g(n).addClass(r)}if(!g(t).hasClass(r)){g(t).addClass(r)}}else{if(g(n).hasClass(r)){g(n).removeClass(r)}if(g(t).hasClass(r)){g(t).removeClass(r)}}if(q>1){x.ehNaviPaging()}};h.prototype.displayResults=function(v,u,n){g(v.elem.results).hide().empty();if(v.option.multiple&&g.type(v.option.maxSelectLimit)==="number"&&v.option.maxSelectLimit>0){var l=g("li.selected_tag",v.elem.element_box).size();if(l>0&&l>=v.option.maxSelectLimit){v.showMessage(v,"最多只能选择 "+v.option.maxSelectLimit+" 个项目");return}}if(u.candidate.length>0){var t=u.candidate;var r=u.keyField;var k=g(v.elem.hidden).val();var w=k?k.split(","):new Array();for(var m=0;m<t.length;m++){var q="";if(v.option.formatItem&&g.isFunction(v.option.formatItem)){try{q=v.option.formatItem(u.originalResult[m])}catch(p){console.error("formatItem内容格式化函数内容设置不正确!");q=t[m]}}else{q=t[m]}var o=g("<li>").html(q).attr({pkey:r[m],title:q});if(g.inArray(r[m].toString(),w)!==-1){g(o).addClass(v.css_class.selected)}g(o).data("dataObj",u.originalResult[m]);g(v.elem.results).append(o)}}else{var s='<li class="sp_message_box"><i class="fa fa-exclamation-triangle"></i> '+v.message.not_found+"</li>";g(v.elem.results).append(s)}g(v.elem.results).show();if(v.option.multiple&&v.option.multipleControlbar){g(v.elem.control).show()}if(v.option.pagination){g(v.elem.navi).show()}v.calcResultsSize(v);g(v.elem.container).addClass(v.css_class.container_open);v.eResultList();if(n&&u.candidate.length>0&&v.option.autoSelectFirst){v.nextLine(v)}};h.prototype.calcResultsSize=function(l){var k=function(){if(g(l.elem.container).css("position")==="static"){var w=g(l.elem.combo_input).offset();g(l.elem.result_area).css({top:w.top+g(l.elem.combo_input).outerHeight()+"px",left:w.left+"px"})}else{if(!l.option.pagination){var t=g("li:first",l.elem.results).outerHeight(true);var r=t*l.option.listSize;g(l.elem.results).css({"max-height":r,"overflow-y":"auto"})}var x=g(document).width();var B=g(document).height();var s=g(window).height();var w=g(l.elem.container).offset();var v=g(window).scrollTop();var A=g(l.elem.result_area).outerWidth();var r=g(l.elem.result_area).outerHeight();var n=l.option.multiple?-1:0;var m=g(l.elem.container).outerHeight();var q=(w.left+A)>x?-(A-g(l.elem.container).outerWidth()):n;var p=w.top;var z=0,y=5;var o=p+m+r+y;var u=B>s;if((p-v-y>r)&&(u&&o>(s+v))||(!u&&o>s)){z=-(r+1)-y;g(l.elem.result_area).removeClass("shadowUp shadowDown").addClass("shadowUp")}else{z=l.option.multiple?g(l.elem.container).innerHeight()+1:g(l.elem.container).outerHeight();g(l.elem.result_area).removeClass("shadowUp shadowDown").addClass("shadowDown");z+=y}return{top:z+"px",left:q+"px"}}};if(g(l.elem.result_area).is(":visible")){g(l.elem.result_area).css(k())}else{g(l.elem.result_area).show(1,function(){g(this).css(k())})}};h.prototype.hideResults=function(k){if(k.prop.key_paging){k.scrollWindow(k,true);k.prop.key_paging=false}k.setCssFocusedInput(k);if(k.option.autoFillResult){}g(k.elem.results).empty();g(k.elem.result_area).hide();g(k.elem.container).removeClass(k.css_class.container_open);k.abortAjax(k);k.setButtonAttrDefault()};h.prototype.firstPage=function(k){if(k.prop.current_page>1){k.prop.current_page=1;k.prop.page_move=true;k.suggest(k)}};h.prototype.prevPage=function(k){if(k.prop.current_page>1){k.prop.current_page--;k.prop.page_move=true;k.suggest(k)}};h.prototype.nextPage=function(k){if(k.prop.current_page<k.prop.max_page){k.prop.current_page++;k.prop.page_move=true;k.suggest(k)}};h.prototype.lastPage=function(k){console.log(k);if(k.prop.current_page<k.prop.max_page){k.prop.current_page=k.prop.max_page;k.prop.page_move=true;k.suggest(k)}};h.prototype.goPage=function(k,l){if(typeof(l)==="undefined"){l=1}if(k.prop.current_page<k.prop.max_page){k.prop.current_page=l;k.prop.page_move=true;k.suggest(k)}};h.prototype.afterAction=function(k){k.inputResize(k);g(k.elem.combo_input).change();k.setCssFocusedInput(k);if(k.option.multiple){if(k.option.selectToCloseList){k.hideResults(k);g(k.elem.combo_input).blur()}else{k.suggest(k);g(k.elem.combo_input).focus()}}else{k.hideResults(k);g(k.elem.combo_input).blur()}};h.prototype.selectCurrentLine=function(k,l){k.scrollWindow(k,true);var n=k.getCurrentLine(k);if(n){if(!k.option.multiple){g(k.elem.combo_input).val(g(n).text());g(k.elem.hidden).val(g(n).attr("pkey"))}else{g(k.elem.combo_input).val("");var m={text:g(n).text(),value:g(n).attr("pkey")};if(!k.isAlreadySelected(k,m)){k.addNewTag(k,m);k.tagValuesSet(k)}}if(k.option.selectOnly){k.setButtonAttrDefault()}if(k.option.eSelect&&g.isFunction(k.option.eSelect)){k.option.eSelect(g(n).data("dataObj"))}k.prop.prev_value=g(k.elem.combo_input).val();k.prop.selected_text=g(k.elem.combo_input).val();k.putClearButton()}k.afterAction(k)};h.prototype.putClearButton=function(){if(!this.option.multiple&&!g(this.elem.combo_input).prop("disabled")){g(this.elem.container).append(this.elem.clear_btn)}};h.prototype.selectAllLine=function(k){var l=new Array();g("li",k.elem.results).each(function(m,o){var n={text:g(o).text(),value:g(o).attr("pkey")};if(!k.isAlreadySelected(k,n)){k.addNewTag(k,n);k.tagValuesSet(k)}l.push(g(o).data("dataObj"));if(g.type(k.option.maxSelectLimit)==="number"&&k.option.maxSelectLimit>0&&k.option.maxSelectLimit===g("li.selected_tag",k.elem.element_box).size()){return false}});if(k.option.eSelect&&g.isFunction(k.option.eSelect)){k.option.eSelect(l)}k.afterAction(k)};h.prototype.unselectAllLine=function(k){var l=g("li",k.elem.results).size();g("li",k.elem.results).each(function(o,p){var n=g(p).attr("pkey");var m=g('li.selected_tag[itemvalue="'+n+'"]',k.elem.element_box);k.removeTag(k,m)});k.afterAction(k);if(k.option.eTagRemove&&g.isFunction(k.option.eTagRemove)){k.option.eTagRemove(l)}};h.prototype.clearAll=function(k){var l=0;if(k.option.multiple){l=g("li.selected_tag",k.elem.element_box).size();g("li.selected_tag",k.elem.element_box).remove()}g(k.elem.combo_input).val("");g(k.elem.hidden).val("");k.afterAction(k);if(k.option.multiple){if(k.option.eTagRemove&&g.isFunction(k.option.eTagRemove)){k.option.eTagRemove(l)}}};h.prototype.getCurrentLine=function(k){if(g(k.elem.result_area).is(":hidden")){return false}var l=g("li."+k.css_class.select,k.elem.results);if(g(l).size()){return l}else{return false}};h.prototype.isAlreadySelected=function(k,m){var n=false;if(m.value){var l=g(k.elem.hidden).val();if(l){var o=l.split(",");if(o&&o.length>0&&g.inArray(m.value,o)!=-1){n=true}}}return n};h.prototype.addNewTag=function(l,n){if(!l.option.multiple||!n){return}var m=l.template.tag.content,k;m=m.replace(l.template.tag.textKey,n.text);m=m.replace(l.template.tag.valueKey,n.value);k=g(m);if(g(l.elem.combo_input).prop("disabled")){g("span.tag_close",k).hide()}g(l.elem.combo_input).closest("li").before(k)};h.prototype.removeTag=function(k,p){var m=g(p).attr("itemvalue");var o=g(k.elem.hidden).val();if(g.type(m)!="undefined"&&o){var n=o.split(",");var l=g.inArray(m.toString(),n);if(l!=-1){n.splice(l,1);g(k.elem.hidden).val(n.toString())}}g(p).remove();k.inputResize(k)};h.prototype.tagValuesSet=function(l){if(!l.option.multiple){return}var m=g("li.selected_tag",g(l.elem.element_box));if(m&&g(m).size()>0){var k=new Array();g.each(m,function(p,n){var o=g(n).attr("itemvalue");if(g.type(o)!=="undefined"){k.push(o)}});if(k.length>0){g(l.elem.hidden).val(k.join(","))}}};h.prototype.inputResize=function(k){if(!k.option.multiple){return}var n="";var l=k.elem.combo_input.closest("li");var m=function(o,p){p.removeClass("full_width");var r=o.elem.combo_input.val().length+1;var q=(r*0.75)+"em";o.elem.combo_input.css("width",q);o.elem.combo_input.removeAttr("placeholder")};if(g("li.selected_tag",g(k.elem.element_box)).size()===0){if(k.elem.combo_input.attr("placeholder_bak")){if(!l.hasClass("full_width")){l.addClass("full_width")}k.elem.combo_input.attr("placeholder",k.elem.combo_input.attr("placeholder_bak"));k.elem.combo_input.removeAttr("style")}else{m(k,l)}}else{m(k,l)}};h.prototype.nextLine=function(l){var n=l.getCurrentLine(l);var k;if(!n){k=-1}else{k=g(l.elem.results).children("li").index(n);g(n).removeClass(l.css_class.select)}k++;if(k<g(l.elem.results).children("li").length){var m=g(l.elem.results).children("li").eq(k);g(m).addClass(l.css_class.select);l.setCssFocusedResults(l)}else{l.setCssFocusedInput(l)}l.scrollWindow(l,false)};h.prototype.prevLine=function(l){var n=l.getCurrentLine(l);var k;if(!n){k=g(l.elem.results).children("li").length}else{k=g(l.elem.results).children("li").index(n);g(n).removeClass(l.css_class.select)}k--;if(k>-1){var m=g(l.elem.results).children("li").eq(k);g(m).addClass(l.css_class.select);l.setCssFocusedResults(l)}else{l.setCssFocusedInput(l)}l.scrollWindow(l,false)};function j(k){return this.each(function(){var m=g(this),l=m.data(h.dataKey),n=g.extend({},e,m.data(),l&&l.option,typeof k==="object"&&k);if(!l){m.data(h.dataKey,(l=new h(this,n)))}})}function a(l){var k=g(l).closest("div.sp_container");return g("input.sp_input",k)}function b(){return this.each(function(){var l=a(this),k=l.data(h.dataKey);if(k){k.clearAll(k)}})}function f(){return this.each(function(){var l=a(this),k=l.data(h.dataKey);if(k&&k.elem.hidden.val()){k.setInitRecord(true)}})}function c(k){return this.each(function(){if(k&&g.isArray(k)&&k.length>0){var m=a(this),l=m.data(h.dataKey);if(l){l.clearAll(l);l.option.data=k}}})}function i(){var k="";this.each(function(){var m=a(this),l=m.data(h.dataKey);if(l){k+=l.elem.combo_input.val()}});return k}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.selectPageText=i;g.fn.selectPage.noConflict=function(){g.fn.selectPage=d;return this}})(window.jQuery);
|