UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

34 lines (33 loc) 1.12 kB
import { computed as a, ref as P, watch as d } from "vue"; const q = (u, r) => { const c = a(() => u.morePageCount), e = P(u.pageNum || 1), n = a(() => Math.ceil(u.total / u.pageSize)), i = a(() => u.hide ? !(n.value <= 1 || u.total === 0) : !0), l = a(() => u.queryField), s = a(() => { const t = [], o = Math.max(2, e.value - 2), x = Math.min(n.value - 1, e.value + 2); t.push(1); for (let v = o; v <= x; v++) t.push(v); return n.value > 1 && t.push(n.value), t; }), m = a(() => l.value + Math.max(1, e.value - 1)), g = a(() => l.value + Math.min(n.value, e.value + 1)), h = a(() => l.value + (e.value - c.value)), M = a(() => l.value + (e.value + c.value)), f = (t) => { const o = Math.min(Math.max(1, t), n.value); o !== e.value && (e.value = o, r("update:pageNum", o)); }; return d( () => u.pageNum, (t) => { t !== e.value && (e.value = t); } ), { currentNum: e, totalPages: n, isHide: i, queryTxet: l, pages: s, toPrev: m, toNext: g, leftMore: h, rightMore: M, setPage: f }; }; export { q as useNuxtPagination };