Description 问题复现
在 CRM 应用(或类似场景)侧边栏点击 "Calendar" 菜单。
实际展示的是表格列表视图(grid),而不是 calendar。
代码根因
CRM app 的 navigation 配置项如下:
{
id : 'nav_events' ,
type : 'object' ,
objectName : 'event' ,
viewName : 'calendar' , // 已正确配置,期望打开 calendar 视图
label : { key : 'crm.navigation.calendar' , defaultValue : 'Calendar' } ,
icon : 'calendar'
}
Event 对象的 listViews 也已正确定义 calendar 类型:
listViews: {
calendar : { type : 'calendar' , ...calendarConfig } , ... }
}
但 platform 的 NavigationRenderer/resolveHref 函数忽略了 viewName,只生成为 /apps/crm_app/event,未带上 /view/calendar
case 'object' :
return { href : `${ basePath } /${ item . objectName ?? '' } ` , external : false } ;
导致 ObjectView fallback 到 grid 视图。
影响
不能通过导航直接打开 calendar/kanban 等特定视图,只会显示默认 grid 视图。
"Calendar"、"Pipeline"等菜单都会丢失视图参数,严重影响多视图体验。
修复建议
NavigationItem 类型添加 viewName 属性。
NavigationRenderer.resolveHref 中,如果 item.viewName 存在,URL 应拼接 /view/${item.viewName},如 /apps/crm_app/event/view/calendar。
参考案例
examples/crm/src/apps/crm.app.ts
examples/crm/src/views/event.view.ts
packages/layout/src/NavigationRenderer.tsx
截图
本问题属于平台 bug,请尽快修复。
Reactions are currently unavailable
You can’t perform that action at this time.
问题复现
代码根因
/apps/crm_app/event,未带上/view/calendar影响
修复建议
NavigationItem类型添加 viewName 属性。/view/${item.viewName},如/apps/crm_app/event/view/calendar。参考案例
截图
本问题属于平台 bug,请尽快修复。