sci-pro
Version:
2 lines (1 loc) • 4.01 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("./style/index.css");const B={class:"sci-pagination"},j={class:"sci-total"},w={class:"sci-content"},D={class:"sci-page-container"},M=["onClick"],P={key:0,class:"sci-page-text"},T={key:1},U={class:"jumper-wrap"},$={class:"jumper-txt"},I={class:"jumper-txt"},L=e.defineComponent({name:"sci-pagination"}),q=e.defineComponent({...L,props:{total:{type:[Number,String],default:"100"},pageNum:{type:[Number,String],default:1},pageSize:{type:[Number,String],default:()=>10},pageSizes:{type:Array,default:()=>[]},tmpString:{type:String,default:"Goto {jumper}"},pagerCount:{type:Number,default:7}},emits:["current-change","size-change"],setup(h,{emit:N}){const s=h,b=e.ref("/page"),y=e.computed(()=>[s.pageSize]),S=e.computed(()=>s.pageSizes.length?s.pageSizes.map(t=>({value:t,label:`${t}/page`})):[{value:10,label:"10/page"},{value:15,label:"15/page"},{value:20,label:"20/page"},{value:50,label:"50/page"},{value:100,label:"100/page"}]),k=e.computed(()=>Number(s.total)),u=e.ref(0),d=e.ref(Number(s.pageSize)),l=e.ref(Number(s.pageNum||1)),E="{jumper}",o=e.ref(0),m=e.reactive({prefix:"",suffix:""}),i=e.ref([]),f=N;e.watch(()=>[s.total,d.value],()=>{_()}),e.watch(()=>s.pageNum,(t,n)=>{l.value=t}),e.onMounted(()=>{_(!0)});const V=t=>{d.value=Number(t),l.value=1,f("size-change",d.value)},_=(t=!1)=>{u.value=Math.ceil(s.total/d.value),u.value&&!t&&p("page",l.value,!1)},z=t=>(t+"").replace(/\D/g,"")*1,x=t=>{let n=z(o.value);n<1&&(o.value=1),n>u.value&&(o.value=u.value),p("page",o.value)},C=t=>{o.value=t.target.value.replace(/\D/g,"")};e.watchEffect(()=>{const t=s.tmpString.split(E);t&&t.length>1&&(m.prefix=t[0],m.suffix=t[1]),o.value=s.pageNum}),e.watchEffect(()=>{u.value,l.value;const{pagerCount:t}=s;if(i.value=[],u.value<t+1){for(let c=1;c<u.value+1;c++)i.value.push({index:c,type:"number"});return}const n=Math.round(t/2+1),r=t-2,a=l.value>=n,g=l.value<=Number(u.value-n);i.value=[{index:1,type:"number"}],a&&i.value.push({index:l.value-r,type:"ellipsis"});let v=0;!a&&(v=2),a&&g&&(v=l.value-Math.round(r/2)+1),!g&&(v=u.value-r);for(let c=v;c<r+v;c++)i.value.push({index:c,type:"number"});g&&i.value.push({index:l.value+r,type:"ellipsis"}),i.value.push({index:u.value,type:"number"})});const p=(t,n=1,r=!0)=>{if(t==="prev"&&l.value===1||t==="next"&&l.value===u.value)return;let a=l.value;t==="prev"?a--:t==="next"?a++:a=Number(n),l.value=a<1?1:a>u.value?u.value:a,o.value=l.value,r&&f("current-change",l.value)};return(t,n)=>{const r=e.resolveComponent("sci-select");return e.openBlock(),e.createElementBlock("div",B,[e.createElementVNode("span",j,"Total "+e.toDisplayString(k.value),1),e.createElementVNode("div",w,[e.createVNode(r,{options:S.value,defaultValues:y.value,txtUnit:b.value,selectStyle:{width:"90px","margin-right":"10px"},onChange:V},null,8,["options","defaultValues","txtUnit"]),e.createElementVNode("span",{class:"sci-icon",onClick:n[0]||(n[0]=a=>p("prev"))}),e.createElementVNode("div",D,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,a=>(e.openBlock(),e.createElementBlock("div",{key:a.index+a.type},[e.createElementVNode("li",{class:e.normalizeClass(["sci-page-item",{"page-item-active":a.index===l.value}]),onClick:g=>p("page",a.index)},[a.type==="number"?(e.openBlock(),e.createElementBlock("span",P,e.toDisplayString(a.index),1)):(e.openBlock(),e.createElementBlock("span",T," ... "))],10,M)]))),128))]),e.createElementVNode("span",{class:"sci-icon sci-icon-next",onClick:n[1]||(n[1]=a=>p("next"))}),e.createElementVNode("div",U,[e.createElementVNode("span",$,e.toDisplayString(m.prefix),1),e.withDirectives(e.createElementVNode("input",{class:"jumper-val",type:"text","onUpdate:modelValue":n[2]||(n[2]=a=>o.value=a),onBlur:x,onInput:C,onKeyup:e.withKeys(x,["enter"])},null,544),[[e.vModelText,o.value,void 0,{number:!0}]]),e.createElementVNode("span",I,e.toDisplayString(m.suffix),1)])])])}}});exports.default=q;