/** * Shopex OMS * * Copyright (c) 2025 Shopex (http://www.shopex.cn) * Licensed under Apache-2.0 with additional terms (See LICENSE file) */ var Pager=new Class({Implements:[Options,Events],options:{onShow:$empty,onHide:$empty,format:function(a){return{tag_id:a.tagId||"",tag_name:a.tagName||"",type:a.type||""}},pageNum:10,current:1,curClass:"current",pageClass:"pagernum",nextBtn:"next",preBtn:"prev",pageMainClass:"pager"},initialize:function(a,b,c){if(a){this.data=b||[];this.setOptions(c);this.tpl=a;this.initFormat();this.total=this.getTotal();this.goPage(this.options.current);this.preCur=0}},initFormat:function(){this.data.each(function(a, b){this.options.format.call(this,this.data[b])},this)},getTotal:function(a){return Math.ceil(a||this.data.length/this.options.pageNum)},updateContent:function(a,b){var c=[],d=this.data,e=[];if(!b||!a)return $(this.options.updateMain).empty();var g=b+1;if(b<=d.length)for(var f=a;f'+d+""):c.push(''+d+"");return c.join(" ")},bindLink:function(){var a=[],b=this.total,c=this.options.current;if(b<11)a.push(this.pageLink(1,b));else if(b-c<8){a.push(this.pageLink(1,3));a.push(this.pageLink(b-8,b))}else{if(c<10)a.push(this.pageLink(1,Math.max(c+3,10)));else{a.push(this.pageLink(1,3)); a.push(this.pageLink(c-2,c+3))}a.push(this.pageLink(b-1,b))}return a.join("...")},updatePageList:function(){var a=$E("."+this.options.pageMainClass)||new Element("div",{"class":""+this.options.pageMainClass+""});if(this.total<=1)return a.destroy();var b=$(this.options.updateMain).tagName=="TBODY"?$(this.options.updateMain).getParent():$(this.options.updateMain);b.hasClass("gridlist")&&!a.getParent(".gridlist-footer")&&a.addClass("gridlist-footer");a.inject(b,"after");a.empty();a.innerHTML=this.prePage.call(this)+ this.bindLink.call(this)+this.nextPage.call(this);return this.attach.call(this)},attach:function(){var a=this;$ES("a."+this.options.pageClass,"."+this.options.pageMainClass).addEvent("click",function(){a.goPage(this.get("text").toInt())});$E("a."+this.options.nextBtn)&&$E("."+this.options.nextBtn).addEvent("click",function(){this.goPage(this.options.current+1)}.bind(this));$E("a."+this.options.preBtn)&&$E("."+this.options.preBtn).addEvent("click",function(){this.goPage(this.options.current-1)}.bind(this))}, goPage:function(a){var b=a*this.options.pageNum,c=b-this.options.pageNum+1;b=bthis.options.current?'