Skip to content

通用 Schema-Driven 配置面板框架建设及全平台接入 #731

@hotlong

Description

@hotlong

背景

目前已实现的 ViewConfigPanel 体量大、难以维护,即将进入 Dashboard、Page、Form 等多种配置面板的密集需求期,面向未来,需统一抽象、声明式驱动的新一代配置面板体系,提升开发效率与一致性。

目标

  • 建设一套通用 Schema-Driven 配置面板框架,让所有「View/Dashboard/Form/Page/Report」等配置面板都能以声明式 schema 生成
  • 支持复杂交互通过 escape hatch 可扩展机制自定义渲染
  • 渐进迁移现有 ViewConfigPanel、支持未来所有协议级配置面板场景

主要任务

1. 通用配置原语与渲染器开发

  • 抽取现有 ConfigRow、SectionHeader 到 @object-ui/components(已完成,仅确认依赖版本)
  • 实现 useConfigDraft 通用 hook,封装草稿态、脏检测、保存/丢弃逻辑
  • 定义 ConfigPanelSchema/ConfigSection/ConfigField 类型支持 schema 驱动
  • 实现 ConfigPanelRenderer,负责:
    • 渲染头部、breadcrumb、footer
    • 各 section 支持 collapsible/collapsed
    • 各字段按 type: input/switch/select/filter/sort/custom 渲染
    • 配置变更时透传 onFieldChange
  • 实现 ConfigFieldRenderer 覆盖多种控件,包括但不限于:
    • Input/Switch/Select/Checkbox
    • FieldPicker(字段选择器)
    • Inline FilterBuilder/SortBuilder
    • IconGroup/Slider/ColorPicker/CodeEditor(根据需要拓展)
    • type='custom' 支持传入 render 回调,应对无法自动渲染的复杂场景
  • 官方测试、Storybook 展示

2. DashboardConfigPanel 实现(demo + 实战验证)

  • 设计 DashboardConfigPanelSchema,涵盖 dashboard 配置典型元素(columns/gap/widgets/globalFilter/appearance…)
  • 迁移实现到新版通用框架
  • 交互覆盖:保存/丢弃,section 折叠,子编辑器集成
  • 新增 Storybook 用例
  • 用 Vitest & Playwright 覆盖 E2E/UI 测试

3. ViewConfigPanel 渐进迁移

  • 按 section/功能单元分阶段迁移至通用方案(Page/Data/Appearance/UserActions/Sharing/Accessibility…)
  • 保持复杂交互用 type='custom' (如字段多选、拖拽排序、row height 快捷按钮)
  • 完成 migration 后移除遗留 ViewConfigPanel 大量冗余代码,提高可维护性

4. 其他平台配置面板快速跟进

  • FormConfigPanel(表单/分组/布局/schema 动态)
  • ReportConfigPanel(报表字段/分组/聚合)
  • PageConfigPanel(页面类型/区域/组件树/变量等)
  • 可复用面板基础单元(如字段选择、分组、颜色/图标等选择器)

5. 规范和文档

  • 撰写开发标准(如何写新的 ConfigPanelSchema/Field/Section,何时使用 type: 'custom')
  • 维护/更新设计文档,指导后续团队成员规范化开发
  • 用例与最佳实践集成到 Storybook

技术细节

  • 草稿态、脏检测统一由 useConfigDraft hook 提供
  • 每个字段渲染与编辑都由唯一的 ConfigField 配置定义,抽离所有表单和状态管理细节
  • Panel 渲染器支持单一/多级 section、折叠、子编辑器、footer 等,全局一致的 UX
  • 支持按需传入 objectDef 实现字段动态渲染
  • 复杂交互采用 type='custom' + render prop 定点突破
  • 后续支持自动根据 zod schema 生成 ConfigPanelSchema

验收标准

  • DashboardConfigPanel/新老 ViewConfigPanel 可用性 >= 现有体验,支持全部主流自定义场景
  • 各种类型的配置面板可根据 schema 快速生成,二次开发成本大幅降低
  • 代码层级明显收敛,组件内无重复/低效/难以测试的结构
  • 所有配置项均覆盖测试与文档

附加说明

  • 强调迁移工作的渐进式,不建议 Big Bang 重写
  • 推荐 Storybook + 单元测试体系完善后再推广至报表、页面、AppShell 等更大粒度平台

相关链接:

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions