UNPKG

vue-admin-core

Version:
120 lines (115 loc) 2.52 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); require('../../../utils/index.js'); var elementPlus = require('element-plus'); var scrollTo = require('../../../utils/scrollTo.js'); var Pagination = vue.defineComponent({ name: "VacPagination", inheritAttrs: false, props: { total: { type: Number, default: 0 }, page: { type: Number, default: 1 }, limit: { type: Number, default: 10 }, pageSizes: { type: Array, default: () => [10, 20, 30, 50] }, // 移动端页码按钮的数量端默认值5 pagerCount: { type: Number, default: document.body.clientWidth < 992 ? 5 : 7 }, layout: { type: String, default: "total, sizes, prev, pager, next, jumper" }, background: { type: Boolean, default: true }, autoScroll: { type: Boolean, default: true }, hidden: { type: Boolean, default: false }, float: { type: String, default: "right" } }, emits: ["update:page", "update:limit", "pagination"], setup(props, { attrs, emit }) { const currentPage = vue.computed({ get() { return props.page; }, set(val) { emit("update:page", val); } }); const pageSize = vue.computed({ get() { return props.limit; }, set(val) { emit("update:limit", val); } }); function handleSizeChange(val) { if (currentPage.value * val > props.total) { currentPage.value = 1; } emit("pagination", { page: currentPage.value, limit: val }); if (props.autoScroll) { scrollTo.scrollTo(0, 800); } } function handleCurrentChange(val) { emit("pagination", { page: val, limit: pageSize.value }); if (props.autoScroll) { scrollTo.scrollTo(0, 800); } } return () => vue.h("div", { class: ["pagination-container", { hidden: props.hidden }] }, { default: () => [ // @ts-ignore vue.h(elementPlus.ElPagination, { ...attrs, ...props, currentPage: currentPage.value, pageSize: pageSize.value, onSizeChange: handleSizeChange, onCurrentChange: handleCurrentChange }) ] }); } }); exports.default = Pagination; //# sourceMappingURL=index.js.map