Skip to content

规范修复:所有 table widget columns 必须为对象数组格式,确保和 ObjectUI 渲染器兼容 #303

@hotlong

Description

@hotlong

全量排查结果

对 objectstack-ai/hotcrm 所有 dashboard 元数据进行全面合规性检查,发现所有 table widget 的 options.columns 使用了字符串数组(['name', ...]),而 ObjectUI 渲染器期望的是 { header, accessorKey } 对象数组格式,导致运行时 TypeError: Cannot read properties of undefined (reading 'columns')。

主要问题

  1. 所有 table widget 都用了错误格式的 columns:
    • 错误:options.columns: ['name', 'amount', ...]
    • 正确:options.columns: [ { header: 'Name', accessorKey: 'name' }, ... ]
  2. 缺少 options.data.provider 声明(建议补齐,和 ObjectUI 官方 example 看齐)。

涉及文件与 widget

已在所有 packages 下 .dashboard.ts 文件发现如下 table widget 相关问题:

  • packages/crm/src/sales.dashboard.ts → top_10_opportunities, team_performance_this_quarter
  • packages/crm/src/crm.dashboard.ts → deals_closing_this_month
  • packages/crm/src/executive.dashboard.ts → top_deals
  • packages/finance/src/finance.dashboard.ts → upcoming_renewals
  • packages/products/src/cpq.dashboard.ts → recent_quotes
  • packages/support/src/support.dashboard.ts → recent_escalated_cases
  • packages/marketing/src/marketing.dashboard.ts → recent_campaigns
  • packages/analytics/src/analytics.dashboard.ts → recent_report_activity
  • packages/community/src/community.dashboard.ts → recent_topics

修复建议

  • columns 必须为对象数组,示例:
    options: {
      columns: [
        { header: 'Name', accessorKey: 'name' },
        { header: 'Amount', accessorKey: 'amount' }
      ],
      data: { provider: 'object', object: 'opportunity' }
    }
  • 参考 objectui/examples/crm/dashboard, 以及 ObjectUI 渲染 contract
  • 补全所有表格 widget 的 columns/data,并回归全量 dashboard 展示
  • 更新 CHANGELOG.md,强相关联动各业务包 dashboard

参考

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions