Skip to content

Dashboard-level filters follow-ups: showcase, more examples, docs, spec pairing (#2576 / framework#2501) #2578

Description

@os-zhuang

#2576(dashboard 级过滤器,framework#2501 的 objectui 侧)已合并。本 issue 汇总合并时明确留下的后续任务,可按条目拆分认领。

1. 完善 showcase / 增加示例

  • schema-catalog 目前只有一个 plugin-dashboard/filtered-dashboard 示例;补充更多形态:
    • optionsFrom 动态选项(从对象记录取 distinct 值)的示例;
    • text / number / lookup 过滤器示例;
    • dataset 部件(dataset + runtimeFilter)与 inline 部件混排的示例;
    • targetWidgets 白名单兼容语义的示例;
    • 自定义日期区间(allowCustomRange)+ 各日期预设的演示。
  • 在 console/app-shell 的演示环境(有真实 dataSource)里加一个可交互的 filtered dashboard showcase,验证跨对象图表联动的真实取数路径。
  • 示例数据:为 showcase 准备两个不同对象(如 invoices / accounts)的种子数据,让"各图表绑定各自字段"肉眼可见。

2. 更新文档

  • content/docs 的 dashboard 指南页(guide 侧)补一节完整教程:从零配置 dateRange + globalFilters + filterBindings,含截图;
  • 补充 page.<name> 表达式在 widget 内引用过滤值的用法示例;
  • 文档化已知限制并给出规避方式:
    • 嵌入带自有 variables 的 Page 时,dashboard 内层 PageVariablesProvider 会遮蔽外层(合并上下文为候选方案);
    • 静态数据部件(inline data)不受过滤;
    • 缺省绑定命中对象上不存在的字段时部件会空/报错 → 用 filterBindings: false 退出。
  • i18n:DashboardFilterBar 文案目前走 useSafeTranslate 英文兜底,补 dashboard.filters.* 的 en / zh-CN 词条。

3. Spec 配对(framework 仓)

  • @objectstack/spec 落地 GlobalFilterSchema.nameDashboardWidgetSchema.filterBindings(objectui 本地类型已按 dataset/categoryGranularity 先例以 "Pending alignment" JSDoc 标注);落地后移除标注。
  • spec 落地后确认 metadata-admin 检查器(dashboard-schema.ts,直接从 spec 派生)自动出现新属性。

4. Studio / 设计器

  • Studio 部件检查器增加 filterBindings 可视化编辑(每个 dashboard 过滤器 → 本部件字段的下拉映射 + 退出开关);当前仅可通过 JSON 元数据配置。

5. 增强项(低优先)

  • optionsFrom 目前客户端取 top 200 去重;改为服务端 distinct 查询;
  • 缺省绑定做 metadata 感知:字段在对象上不存在时自动跳过并告警,而不是发出无效查询;
  • 嵌套 Page variables 的上下文合并(解除遮蔽限制)。

Refs: #2576, objectstack-ai/objectstack#2501

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions