#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.name` 与 `DashboardWidgetSchema.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/framework#2501
#2576(dashboard 级过滤器,framework#2501 的 objectui 侧)已合并。本 issue 汇总合并时明确留下的后续任务,可按条目拆分认领。
1. 完善 showcase / 增加示例
plugin-dashboard/filtered-dashboard示例;补充更多形态:optionsFrom动态选项(从对象记录取 distinct 值)的示例;text/number/lookup过滤器示例;dataset+runtimeFilter)与 inline 部件混排的示例;targetWidgets白名单兼容语义的示例;allowCustomRange)+ 各日期预设的演示。invoices/accounts)的种子数据,让"各图表绑定各自字段"肉眼可见。2. 更新文档
content/docs的 dashboard 指南页(guide 侧)补一节完整教程:从零配置dateRange+globalFilters+filterBindings,含截图;page.<name>表达式在 widget 内引用过滤值的用法示例;PageVariablesProvider会遮蔽外层(合并上下文为候选方案);data)不受过滤;filterBindings: false退出。DashboardFilterBar文案目前走useSafeTranslate英文兜底,补dashboard.filters.*的 en / zh-CN 词条。3. Spec 配对(framework 仓)
@objectstack/spec落地GlobalFilterSchema.name与DashboardWidgetSchema.filterBindings(objectui 本地类型已按dataset/categoryGranularity先例以 "Pending alignment" JSDoc 标注);落地后移除标注。dashboard-schema.ts,直接从 spec 派生)自动出现新属性。4. Studio / 设计器
filterBindings可视化编辑(每个 dashboard 过滤器 → 本部件字段的下拉映射 + 退出开关);当前仅可通过 JSON 元数据配置。5. 增强项(低优先)
optionsFrom目前客户端取 top 200 去重;改为服务端 distinct 查询;Refs: #2576, objectstack-ai/framework#2501