UNPKG

@fmdevui/fm-dev

Version:

Page level components developed based on Element Plus.

111 lines (108 loc) 3.9 kB
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 };