@fmdevui/fm-dev
Version:
Page level components developed based on Element Plus.
111 lines (108 loc) • 3.9 kB
JavaScript
import { defineComponent, computed, resolveComponent, createElementBlock, openBlock, Fragment, renderList, createBlock, withCtx, createVNode, createElementVNode, toDisplayString, withModifiers, createTextVNode } from 'vue';
import other from '../../utils/other/index.mjs';
const _hoisted_1 = ["onClick"];
var _sfc_main = /* @__PURE__ */ defineComponent({
__name: "subItem",
props: {
// 菜单列表
chil: {
type: Array,
default: () => []
}
},
setup(__props) {
const props = __props;
const chils = computed(() => {
return props.chil;
});
const onALinkClick = (val) => {
other.handleOpenLink(val);
};
return (_ctx, _cache) => {
const _component_SvgIcon = resolveComponent("SvgIcon");
const _component_sub_item = resolveComponent("sub-item", true);
const _component_el_sub_menu = resolveComponent("el-sub-menu");
const _component_el_menu_item = resolveComponent("el-menu-item");
return openBlock(true), createElementBlock(
Fragment,
null,
renderList(chils.value, (val) => {
return openBlock(), createElementBlock(
Fragment,
null,
[
val.children && val.children.length > 0 ? (openBlock(), createBlock(_component_el_sub_menu, {
index: val.path,
key: val.path
}, {
title: withCtx(() => [
createVNode(_component_SvgIcon, {
name: val.meta.icon
}, null, 8, ["name"]),
createElementVNode(
"span",
null,
toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
1
/* TEXT */
)
]),
default: withCtx(() => [
createVNode(_component_sub_item, {
chil: val.children
}, null, 8, ["chil"])
]),
_: 2
/* DYNAMIC */
}, 1032, ["index"])) : (openBlock(), createBlock(_component_el_menu_item, {
index: val.path,
key: val.path
}, {
default: withCtx(() => [
!val.meta.isLink || val.meta.isLink && val.meta.isIframe ? (openBlock(), createElementBlock(
Fragment,
{ key: 0 },
[
createVNode(_component_SvgIcon, {
name: val.meta.icon
}, null, 8, ["name"]),
createElementVNode(
"span",
null,
toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
1
/* TEXT */
)
],
64
/* STABLE_FRAGMENT */
)) : (openBlock(), createElementBlock("a", {
key: 1,
class: "w100",
onClick: withModifiers(($event) => onALinkClick(val), ["prevent"])
}, [
createVNode(_component_SvgIcon, {
name: val.meta.icon
}, null, 8, ["name"]),
createTextVNode(
" " + toDisplayString(_ctx.$t(`message.menu.${val.meta.title}`)),
1
/* TEXT */
)
], 8, _hoisted_1))
]),
_: 2
/* DYNAMIC */
}, 1032, ["index"]))
],
64
/* STABLE_FRAGMENT */
);
}),
256
/* UNKEYED_FRAGMENT */
);
};
}
});
export { _sfc_main as default };