菜单与导航接口

想了解平台主/子菜单结构(/myapp/menu)与右上/左侧/底部导航返回体(含 menu_type 各取值含义)时

06-二次开发 / API参考
menu菜单navbarnavbar_rightnavbar_leftnavbar_bottom导航主菜单子菜单menu_typeapiinnerRouteout_linkiframe右菜单home.py

菜单与导航接口

代码文件:myapp/views/home.pyroute_base = '/myapp')。菜单结构会根据用户角色、多租户权限动态过滤。

主/子菜单信息接口

请求地址:GET /myapp/menu

返回多级菜单树。每个叶子菜单节点用 menu_type 区分前端如何打开:

menu_type 含义
api 标准 API 协议页面(对应某个 modelview 的 /api/ 列表页,下方 url 为后端接口)
innerRoute 前端内置路由自行处理(name 匹配前端 innerDynamicRouterConfigMap 的 key,url 为前端路由)
out_link 跳转到其他平台的外链
iframe 以 iframe 形式嵌入其他页面

⚠️ 已按代码改正:原文档示例中使用了 menu_type: "link",当前代码 home.py 中实际取值为 api / innerRoute / out_link / iframe(无 link,外链用 out_link)。

响应体结构:

[
    {
        "name": "$name",
        "title": "导航中文名",
        "icon": "$svg",          // svg图标源码
        "isMenu": true,          // 是否是父菜单
        "isExpand": true,        // 是否自动展开此层菜单
        "children": [
            {
                "name": "$name",
                "title": "导航中文名",
                "isMenu": true,
                "isExpand": true,
                "disable": true,  // 可选:是否禁用此菜单
                "children": [
                    {
                        "name": "$name",
                        "title": "导航中文名",
                        "icon": "$svg",
                        "menu_type": "api",   // api/innerRoute/out_link/iframe
                        "url": "/xx_modelview/api/"
                    },
                    {
                        "name": "$name",
                        "title": "导航中文名",
                        "icon": "$svg",
                        "menu_type": "innerRoute",
                        "url": "/computeLeasing"
                    }
                ]
            }
        ]
    },
    {
        "name": "$name",
        "title": "导航中文名",
        "icon": "$svg",
        "children": [
            {
                "name": "$name",
                "title": "导航中文名",
                "icon": "$svg",
                "menu_type": "out_link",
                "url": "http://xx.xx/xx/"
            }
        ]
    }
]

部分 api 类型节点还带 model_namerelated(关联子视图,hidden:1 表示不直接出现在菜单里)等字段,见 home.pymenu() 实现。

右上角导航 /myapp/navbar_right

请求地址:GET /myapp/navbar_right

返回右上角导航按钮列表。默认根据配置 DOCUMENTATION_URLBUG_REPORT_URL 生成文档/反馈按钮;若配置了 NAVBAR_RIGHT,直接返回该配置。

响应体结构:

[
    {
        "text": "中文名",
        "icon": "<svg t=\"1680839424970\" class=\"icon\" viewBox=\"0 0 1024 1024\" ...></svg>",
        "link": "/frontend/ai_hub/model_market/model_visual"
    }
]

说明:每项为 {icon, link}text 可选(代码内置的文档/反馈按钮只返回 iconlinkNAVBAR_RIGHT 配置项可自带 text)。

左侧平台导航栏 /myapp/navbar_left

请求地址:GET /myapp/navbar_left

返回平台切换列表(取自配置 NAVBAR_LEFT,为空数组时前端不渲染)。

响应体结构:

[
    {"icon": "🚀", "text": "小模型训推", "link": "/frontend/"},
    {"icon": "📊", "text": "平台二", "link": "/platform2/"}
]

底部智能助手按钮 /myapp/navbar_bottom

请求地址:GET /myapp/navbar_bottom

需配置 AI_ASSISTANT_URL(默认 /claude/)才返回入口。

响应体结构:

[
    {"title": "AI智能客服", "icon": "<svg ...></svg>", "url": "/claude/"}
]
最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki