mine-h5-ui
Version:
一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍
57 lines (56 loc) • 2.25 kB
JavaScript
import { defineComponent as _, useModel as T, useSlots as b, openBlock as a, createElementBlock as i, normalizeClass as s, unref as e, renderSlot as v, Fragment as u, createTextVNode as x, toDisplayString as d, createCommentVNode as p, renderList as g, mergeModels as S } from "vue";
import { usePagination as V } from "./hooks.js";
import { name as t } from "./config.js";
const B = ["onClick"], D = /* @__PURE__ */ _({
name: t,
__name: "index",
props: /* @__PURE__ */ S({
total: { default: 0 },
pageSize: { default: 10 },
mode: { default: "default" },
ellipsis: { type: Boolean, default: !1 },
prevText: { default: "上一页" },
nextText: { default: "下一页" },
disabled: { type: Boolean, default: !1 }
}, {
modelValue: { default: 1 },
modelModifiers: {}
}),
emits: ["update:modelValue"],
setup(l) {
const y = l, o = T(l, "modelValue"), f = b(), { totalSize: c, filterItems: C, onClickItem: r } = V(y, o);
return (k, m) => (a(), i("ul", {
class: s({ [e(t)]: !0, [`${e(t)}--disabled`]: l.disabled })
}, [
l.prevText ? (a(), i("li", {
key: 0,
class: s(`${e(t)}__item ${e(t)}__item--prev ${o.value === 1 ? e(t) + "__item--disabled" : ""}`),
onClick: m[0] || (m[0] = (n) => e(r)("prev"))
}, [
f.prev ? v(k.$slots, "prev", { key: 0 }) : (a(), i(u, { key: 1 }, [
x(d(l.prevText), 1)
], 64))
], 2)) : p("", !0),
l.mode === "simple" ? (a(), i("li", {
key: 1,
class: s(`${e(t)}__item ${e(t)}__item--simple`)
}, d(o.value) + "/" + d(e(c)), 3)) : (a(!0), i(u, { key: 2 }, g(e(C), (n, $) => (a(), i("li", {
key: $,
class: s(`${e(t)}__item ${o.value === n ? e(t) + "__item--active" : ""}`),
onClick: (z) => e(r)(n, $)
}, d(n), 11, B))), 128)),
l.nextText ? (a(), i("li", {
key: 3,
class: s(`${e(t)}__item ${e(t)}__item--next ${o.value === e(c) ? e(t) + "__item--disabled" : ""}`),
onClick: m[1] || (m[1] = (n) => e(r)("next"))
}, [
f.next ? v(k.$slots, "next", { key: 0 }) : (a(), i(u, { key: 1 }, [
x(d(l.nextText), 1)
], 64))
], 2)) : p("", !0)
], 2));
}
});
export {
D as default
};