我看到问题了。documentTypes 状态在初始化时加载一次,但 documentTypeStorage.getAll() 需要在客户端渲染后才能获取到数据。让我添加调试日志来确认问题:
我看到问题了。日志显示 selectedDocType 存在并且包含 fields 数组,但 selectedForm 是 undefined。这是因为单据类型(DocumentType)的字段不在 formConfig 属性中,而是直接在 fields 属性中。
让我修复这个问题:
问题是 DocumentType 的字段直接存储在 fields 属性中,而不是在 formConfig.fields 中。我修改了 selectedForm 的获取逻辑,现在它会正确地从单据类型的 fields 属性中读取字段列表,这样字段选择对话框就能正确显示可用字段了。
现在我理解了问题。我需要:
首先,让我查看 PageAction 类型定义:
现在我需要更新页面配置初始化组件,添加工具栏操作(新建、搜索等),并修改运行时列表页面根据配置显示:
现在更新运行时列表页面,让它根据页面配置的 actions 显示工具栏和行操作:
现在更新工具栏部分,根据配置显示按钮:
现在更新行操作的显示逻辑:
现在还需要在页面配置器中添加工具栏操作的配置。让我读取页面配置组件:
我看到 page-configurator 组件中已经有了 defaultActions,但格式与 init-page-configs.tsx 不一致。让我统一一下:
现在需要强制更新已有的页面配置,因为之前的配置格式不正确。我修改 init-page-configs.tsx 让它强制更新 actions:
现在我需要检查一下现有页面配置器中操作配置的 UI 部分,确保工具栏和行操作可以正确配置:
页面配置器中已经有操作配置的 UI,支持工具栏、行操作和批量操作的配置。现在让我查看预览区域是否显示了工具栏操作:
预览区域已经显示了工具栏和行操作,看起来配置器本身是正确的。现在主要问题是页面配置初始化时没有将工具栏操作正确配置。让我清理一下本地存储中的旧配置并重新加载来测试:
由于现有页面配置可能有旧格式的 actions,我需要强制更新。让我修改初始化逻辑确保 actions 被正确更新:
我已完成以下修改:
页面配置初始化组件 (init-page-configs.tsx):
position: 'toolbar')和行操作(position: 'row')运行时列表页面 (app/runtime/documents/type/[typeId]/page.tsx):
页面配置组件 (page-configurator/index.tsx):
现在 PAC、LAC 等单据列表的工具栏和操作按钮会根据页面配置来显示,并且页面配置中可以自定义配置这些操作。