yk-element-components
Version:
101 lines (100 loc) • 2.48 kB
JavaScript
import { defineComponent as m, computed as l, resolveComponent as y, openBlock as f, createElementBlock as b, normalizeClass as z, createElementVNode as C, toDisplayString as S, createVNode as N, mergeProps as h, unref as p, isRef as g } from "vue";
const v = { class: "pagination_left" }, k = /* @__PURE__ */ m({
__name: "index",
props: {
total: {
required: !0,
type: [Number, String]
},
page: {
type: [Number, String],
default: 1
},
limit: {
type: Number,
default: 20
},
pageSizes: {
type: Array,
default() {
return [10, 20, 30, 50];
}
},
pagerCount: {
type: Number,
default: document.body.clientWidth < 992 ? 5 : 7
},
layout: {
type: String,
default: "sizes, prev, pager, next"
},
background: {
type: Boolean,
default: !0
},
autoScroll: {
type: Boolean,
default: !0
},
hidden: {
type: Boolean,
default: !1
}
},
emits: [
"update:page",
"update:limit",
"pagination"
],
setup(e, { emit: n }) {
const r = e, a = l({
get() {
return Number(r.page);
},
set(t) {
n("update:page", t);
}
}), o = l({
get() {
return r.limit;
},
set(t) {
n("update:limit", t);
}
}), d = (t) => {
n("pagination", { page: t, limit: o });
}, s = (t) => {
n("pagination", { page: a, limit: t });
};
return (t, u) => {
const c = y("el-pagination");
return f(), b("div", {
class: z([{ hidden: e.hidden }, "pagination-container"])
}, [
C("div", v, "\u5171 " + S(Number(e.total)) + " \u9879\u6570\u636E", 1),
N(c, h({
background: e.background,
"current-page": p(a),
"onUpdate:current-page": u[0] || (u[0] = (i) => g(a) ? a.value = i : null),
"page-size": p(o),
"onUpdate:page-size": u[1] || (u[1] = (i) => g(o) ? o.value = i : null),
layout: e.layout,
"page-sizes": e.pageSizes,
"pager-count": e.pagerCount,
total: Number(e.total)
}, t.$attrs, {
onSizeChange: d,
onCurrentChange: s
}), null, 16, ["background", "current-page", "page-size", "layout", "page-sizes", "pager-count", "total"])
], 2);
};
}
});
const B = {
install(e) {
e.component("yk-pagination", k);
}
};
export {
B as default
};