vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
29 lines (28 loc) • 821 B
JavaScript
import { computed as n, ref as m, watch as g } from "vue";
const d = (a, o) => {
const c = n(() => a.morePageCount), t = m(a.pageNum || 1), u = n(() => Math.ceil(a.total / a.pageSize)), r = n(() => a.hide ? !(u.value <= 1 || a.total === 0) : !0), i = n(() => {
const e = [], v = Math.max(2, t.value - 2), h = Math.min(u.value - 1, t.value + 2);
e.push(1);
for (let l = v; l <= h; l++)
e.push(l);
return u.value > 1 && e.push(u.value), e;
}), s = (e) => {
e !== t.value && e > 0 && e <= u.value && (t.value = e, o("change", t.value));
};
return g(
() => a.pageNum,
(e) => {
e !== t.value && (t.value = e);
}
), {
currentMorePageCount: c,
currentNum: t,
totalPages: u,
isHide: r,
pages: i,
handlePage: s
};
};
export {
d as usePagination
};