菜单与导航接口
代码文件:myapp/views/home.py(route_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_name、related(关联子视图,hidden:1表示不直接出现在菜单里)等字段,见home.py内menu()实现。
右上角导航 /myapp/navbar_right
请求地址:GET /myapp/navbar_right
返回右上角导航按钮列表。默认根据配置 DOCUMENTATION_URL、BUG_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可选(代码内置的文档/反馈按钮只返回icon与link,NAVBAR_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/"}
]