构建设计器或专用编辑器页面
适用场景
- 页面主体不是普通 CRUD,而是流程设计器、图编辑器、专用可视化页面。
- 需要
page.yaml中混合少量生成能力和大量手写 schema。
AI 决策提示
- 这类页面优先以
page.yaml为主,而不是强行塞进普通view.xml CRUD。 - 可以保留
x:gen-extends,但主体通常是手写专用组件 schema。 - 优先把 toolbar、initApi、主体组件分开看。
最小闭环
type: page
x:gen-extends: >
<dingflow-gen:GenFlowEditorPage modelPath="dingflow.graph-designer.xml" xpl:lib="/nop/wf/xlib/dingflow-gen.xlib" />
toolbar:
- type: button
label: 保存
body:
- type: nop-flow-editor
initApi:
url: /r/PageProvider__getPage?path=/nop/wf/designer/demo-data.page.json
默认结构拆法
x:gen-extends用于接入已有生成基线或默认壳层。toolbar放页面级动作。body放专用组件。initApi/ 专用 schema 放初始化数据和大块编辑器配置。
最值得抄的真实例子
nop-wf/nop-wf-web/src/main/resources/_vfs/nop/wf/designer/designer.page.yaml
这个例子同时包含:
x:gen-extends- 手写 toolbar actions
nop-flow-editor主体initApi- 大块
flowEditorSchema
常见坑
- 这类专用页面还试图完全套普通 CRUD 模板。
- 把大块 schema 内联到
view.xml的 grid/form 里,导致结构失控。 - 不区分页面壳层配置和专用组件配置。
相关文档
../02-core-guides/page-dsl-pattern-catalog.md../02-core-guides/xlang-and-xpl-basics.md../02-core-guides/view-and-page-customization.md