<script setup lang="ts">
import { IContext, IParam } from "@core";

interface IProps {
    //  应用上下文
    context?: IContext;
    //  视图参数
    viewParams?: IParam;
    //  菜单项
    menu: any;
}

//  输入参数
const props = defineProps<IProps>();
</script>
<template>
    <template v-if="menu.items && menu.items.length">
        <a-sub-menu v-if="menu.visible" :key="menu.name" :disabled="menu.disabled">
            <template #icon v-if="menu.cssClass">
                <i :class="menu.cssClass"/>
            </template>
            <template #title v-if="menu.showCaption">
                <span>{{menu.caption}}</span>
            </template>
            <AppTreeContextMenuItem
                v-for="(item, index) in menu.items"
                :key="index"
                :context="context"
                :viewParams="viewParams"
                :menu="item"
            />
        </a-sub-menu>
    </template>
    <template v-else>
        <a-menu-item v-if="menu.visible" :key="menu.name" :disabled="menu.disabled">
            <i v-if="menu.cssClass" :class="['context-menu-item__icon', menu.cssClass]"/>
            <span v-if="menu.showCaption" class="context-menu-item__text">{{menu.caption}}</span>
        </a-menu-item>
    </template>
</template>