UNPKG

mine-h5-ui

Version:

一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍

41 lines (40 loc) 986 B
import { computed as i } from "vue"; const f = (o, t) => { const l = i(() => Math.ceil(o.total / o.pageSize)), c = i(() => { let a = t.value; const n = l.value - 5 / 2; t.value > n && (a = Math.ceil(n)); const e = Math.min(5, l.value); let s = Math.ceil(a - 2.5); return s < 1 && (s = 1), Array.from({ length: e }, (C, u) => { const r = u + s; return o.ellipsis && Math.abs(t.value - r) > 1 && (!u || u === e - 1) ? "···" : r; }); }); return { totalSize: l, filterItems: c, onClickItem: (a, n) => { let e = t.value; switch (a) { case "prev": e--; break; case "next": e++; break; case "···": e += n ? 2 : -2; break; default: if (a === t.value) return; e = a; break; } e <= 0 && (e = 1), e > l.value && (e = l.value), t.value = e; } }; }; export { f as usePagination };