lc-vue-auto-pagination
Version:
3 lines (2 loc) • 3.34 kB
JavaScript
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(":root{--auto-pagination-footer-margin-top: 16px}.auto-pagination[data-v-e9dd1a97]{height:100%;display:flex;flex-direction:column;overflow:hidden}.auto-pagination .auto-pagination_data-container[data-v-e9dd1a97]{flex:1;overflow:auto}.auto-pagination .auto-pagination_main[data-v-e9dd1a97]{margin-top:var(--auto-pagination-footer-margin-top);flex:none}.auto-pagination .el-pagination{justify-content:flex-end}")),document.head.appendChild(a)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
(function(u,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(u=typeof globalThis<"u"?globalThis:u||self,e(u.VueAutoPagination={},u.Vue))})(this,function(u,e){"use strict";const B="",_={class:"auto-pagination"},P={class:"auto-pagination_data-container"},h={key:0,class:"auto-pagination_main"},y=e.defineComponent({__name:"auto-pagination",props:{fetchData:{type:Function,default:()=>({list:[],total:0})},pageSizes:{type:Array,default:()=>[10,20,50,100]},defaultPageSize:{type:Number,default:20},prePageChanged:{type:Function,default:()=>!0},noPagination:{type:Boolean,default:!1},autoInit:{type:Boolean,default:!1}},setup(c,{expose:f}){const n=c,l=e.ref(0),o=e.ref(n.defaultPageSize),a=e.ref(1),g=e.ref([]),r=e.ref(!1),d=e.ref(1);e.watch(()=>a.value,async(t,s)=>{if(d.value===t)return;await n.prePageChanged(t,s)===!0?(d.value=t,i()):a.value=s}),e.onMounted(()=>{n.autoInit===!0&&v()});const z=t=>(a.value-1)*o.value+t+1,x=t=>{o.value=t,i()},i=async()=>{if(r.value=!0,n.noPagination===!1){let{list:t,total:s}=await n.fetchData({pageNo:a.value,pageSize:o.value});if(t.length>0||a.value===1)g.value=[],await e.nextTick(),g.value=t,l.value=s,r.value=!1;else{if(a.value*o.value<=s)throw r.value=!1,new Error("接口返回数据异常");a.value=Math.ceil(s/o.value),i()}}else{let{list:t}=await n.fetchData();g.value=t,r.value=!1}},v=()=>{i()};return f({refresh:v,goFirstPage:()=>{a.value=1,i()},goLastPage:()=>{a.value=Math.ceil(l.value/o.value),i()},goNextPage:()=>{Math.ceil(l.value/o.value)===a.value||(a.value=a.value+1,i())},goPrevPage:()=>{a.value===1||(a.value=a.value-1,i())},go:t=>{t!==a.value&&(t>Math.ceil(l.value/o.value)?a.value=Math.ceil(l.value/o.value):a.value=t,i())}}),(t,s)=>{const p=e.resolveComponent("el-pagination"),S=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",_,[e.withDirectives((e.openBlock(),e.createElementBlock("div",P,[e.renderSlot(t.$slots,"default",{data:g.value,total:l.value,pageSize:o.value,currentPage:a.value,indexMethod:z},void 0,!0)])),[[S,r.value]]),c.noPagination===!1?(e.openBlock(),e.createElementBlock("div",h,[e.createVNode(p,{"current-page":a.value,"onUpdate:currentPage":s[0]||(s[0]=k=>a.value=k),background:"","page-sizes":c.pageSizes,"page-size":o.value,layout:"total, sizes, prev, pager, next",total:l.value,small:"","onUpdate:pageSize":x},null,8,["current-page","page-sizes","page-size","total"])])):e.createCommentVNode("",!0)])}}}),M="",D="",m=((c,f)=>{const n=c.__vccOpts||c;for(const[l,o]of f)n[l]=o;return n})(y,[["__scopeId","data-v-e9dd1a97"]]);u.AutoPagination=m,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});