vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
78 lines (77 loc) • 2.88 kB
JavaScript
import { defineComponent as S, withDirectives as w, createElementBlock as r, openBlock as o, normalizeClass as v, Fragment as x, renderList as I, unref as e, createElementVNode as i, createBlock as s, createCommentVNode as a, toDisplayString as U, withCtx as h, Transition as _, vShow as b } from "vue";
import z from "../../CollapseTransition/src/index.vue.mjs";
import { Icon as k } from "@vuux/icons";
import { useItemMenu as B } from "./hook/useItemMenu.mjs";
const K = ["onMouseenter", "onMouseleave", "onClick"], $ = { class: "menu-title" }, D = { class: "name" }, p = /* @__PURE__ */ S({
name: "MenuItem",
__name: "item",
props: {
data: {},
itemUl: {},
level: { default: 0 }
},
emits: ["change", "select"],
setup(t, { emit: y }) {
const u = t, C = y, { menuContext: l, onMouseenter: f, onMouseleave: g, handleClick: M, onSelect: d, onChange: m } = B(u, C);
return (E, N) => w((o(), r("ul", {
class: v(["level-" + t.level, { "is-child": t.itemUl }])
}, [
(o(!0), r(x, null, I(u.data, (n) => (o(), r("li", {
key: n[e(l)?.props.skey],
class: v({ "is-disabled": n.disabled, "is-down": e(l)?.openKeys.value.includes(n[e(l)?.props.skey]), "is-selected": n[e(l)?.props.skey] === e(l)?.selectKeys.value }),
onMouseenter: (c) => e(f)(n),
onMouseleave: (c) => e(g)(n),
onClick: (c) => e(M)(n, c)
}, [
i("div", $, [
i("div", D, [
n.icon ? (o(), s(e(k), {
key: 0,
name: n.icon,
size: 15
}, null, 8, ["name"])) : a("", !0),
i("span", null, U(n[e(l)?.props.label]), 1)
]),
n.children ? (o(), s(e(k), {
key: 0,
name: "Icon1336922",
size: 14
})) : a("", !0)
]),
e(l)?.props.mode === "vertical" ? (o(), s(z, { key: 0 }, {
default: h(() => [
n.children ? (o(), s(p, {
key: 0,
data: n.children,
"item-ul": n,
level: t.level + 1,
onChange: e(m),
onSelect: e(d)
}, null, 8, ["data", "item-ul", "level", "onChange", "onSelect"])) : a("", !0)
]),
_: 2
}, 1024)) : (o(), s(_, {
key: 1,
name: "ease-drop"
}, {
default: h(() => [
n.children ? (o(), s(p, {
key: 0,
data: n.children,
"item-ul": n,
level: t.level + 1,
onChange: e(m),
onSelect: e(d)
}, null, 8, ["data", "item-ul", "level", "onChange", "onSelect"])) : a("", !0)
]),
_: 2
}, 1024))
], 42, K))), 128))
], 2)), [
[b, !t.itemUl || e(l)?.openKeys.value.includes(t.itemUl[e(l)?.props.skey])]
]);
}
});
export {
p as default
};