uv-ui
Version:
基于vue3的移动端组件库
2 lines (1 loc) • 2.48 kB
JavaScript
;const e=require("vue"),r=require("../icon/index.cjs");require("./pagination.vue_vue_type_style_index_0_lang.cjs");const m={class:"uv-pagination"},g={key:0},k={class:"uv-pagination-content"},f=["onClick"],V={key:0},p={name:"UvPagination"},x=Object.assign(p,{props:{pageSize:{type:Number,default:10},modelValue:{type:Number,default:1},total:{type:Number,default:0},prevText:{type:String},nextText:{type:String},disabledColor:{type:String,default:"#bbbec4"},defaultColor:{type:String,default:"#606266"}},emits:["update:modelValue","change"],setup(l,{emit:o}){const a=l,n=e.computed(()=>Math.ceil(a.total/a.pageSize)),c=t=>a.modelValue<=3&&t<=5?!0:a.modelValue>3&&a.modelValue+2<n.value?Math.abs(a.modelValue-t)<=2:a.modelValue+2>=n.value?t+4>=n.value:!1,i=t=>{o("update:modelValue",t),o("change",t)},d=()=>{let t=0;a.modelValue>=2&&(t=a.modelValue-1,o("update:modelValue",t),o("change",t))},s=()=>{let t=0;a.modelValue<n.value&&(t=Number(a.modelValue+1),o("update:modelValue",t),o("change",t))};return(t,v)=>(e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",{onClick:d,class:e.normalizeClass([l.prevText?"uv-pagination-prev-text":"uv-pagination-prev",l.modelValue===1?"uv-pagination-prev-disabled":""])},[l.prevText?(e.openBlock(),e.createElementBlock("div",g,[e.renderSlot(t.$slots,"prev",{},()=>[e.createTextVNode(e.toDisplayString(l.prevText),1)])])):(e.openBlock(),e.createBlock(e.unref(r),{key:1,color:l.modelValue===1?l.disabledColor:l.defaultColor,size:"14",name:"arrow-left"},null,8,["color"]))],2),e.createElementVNode("div",k,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n),u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[c(u)?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:y=>i(u),class:e.normalizeClass([l.modelValue===u?"uv-pagination-content-item-active":"","uv-pagination-content-item"])},e.toDisplayString(u),11,f)):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:s,class:e.normalizeClass([l.nextText?"uv-pagination-next-text":"uv-pagination-next",l.modelValue===e.unref(n)?"uv-pagination-next-disabled":""])},[l.nextText?(e.openBlock(),e.createElementBlock("div",V,[e.renderSlot(t.$slots,"next",{},()=>[e.createTextVNode(e.toDisplayString(l.nextText),1)])])):(e.openBlock(),e.createBlock(e.unref(r),{key:1,size:"14",color:l.modelValue===e.unref(n)?l.disabledColor:l.defaultColor,name:"arrow-right"},null,8,["color"]))],2)]))}});module.exports=x;