@open-data-v/ui
Version:
OpenDataV UI基础包
65 lines (64 loc) • 1.85 kB
JavaScript
import { defineComponent as f, provide as l, ref as r, onMounted as v, onBeforeUnmount as h, openBlock as g, createElementBlock as k, normalizeClass as y, createVNode as K } from "vue";
import M from "./MenuLi.vue.esm.js";
/* empty css */
const L = /* @__PURE__ */ f({
__name: "Menu",
props: {
mode: { default: "vertical" },
options: {},
trigger: { default: "hover" },
theme: { default: "light" },
liHeight: { default: 40 },
openKeys: { default: () => [] },
selectedKey: { default: "" },
router: { type: Boolean },
collapsed: { type: Boolean }
},
emits: ["click", "select"],
setup(a, { emit: u }) {
const t = a, i = u;
l("OMenuProps", t);
const o = r(t.openKeys);
l("OMenuVisibleList", o), l("OMenuVisibleListChange", (e, c) => {
if (c)
o.value.push(e);
else {
const p = o.value.indexOf(e);
o.value.splice(p, 1);
}
});
const n = r(t.selectedKey);
l("OMenuSelectKey", n), l("OMenuSelectKeyChange", (e) => {
n.value = e;
});
const s = () => {
o.value = [], n.value = "";
}, d = (e) => {
i("click", e);
}, m = (e) => {
i("select", e);
};
return v(() => {
t.trigger === "click" && t.mode === "horizontal" && document.addEventListener("click", s, !1);
}), h(() => {
t.trigger === "click" && t.mode === "horizontal" && document.removeEventListener("click", s, !1);
}), (e, c) => (g(), k("div", {
class: y({
"o-menu": !0,
[e.mode]: !0,
[e.theme]: !0,
"o-collapsed": e.collapsed && e.mode === "vertical"
})
}, [
K(M, {
items: e.options,
onClick: d,
onSelect: m
}, null, 8, ["items"])
], 2));
}
});
export {
L as default
};
//# sourceMappingURL=Menu.vue.esm.js.map