mine-h5-ui
Version:
一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍
41 lines (40 loc) • 986 B
JavaScript
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
};