返回顶部
n

nocobase-page-buildingNocoBase页面构建

Guide AI to build NocoBase pages — menus, tables, forms, popups, KPIs, JS blocks, outlines, event flows

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
172
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

nocobase-page-building

NocoBase 页面构建

核心理念:智能体优先开发

本工具包专为AI智能体构建和维护页面而设计。每个工具都通过合理的默认值优先考虑智能体的便利性:

  • - nbcrudpage:一次调用即可构建完整页面——智能体无需编排8个以上的独立工具。
  • 详情弹窗自动生成:当省略detailjson时,详情弹窗会根据编辑表单的字段布局自动生成(相同字段、相同分隔线,仅去除必填标记)。智能体仅需在需要子表格标签页或主详情字段之外的自定义区块时指定detailjson。
  • nbinspectpage:专为智能体理解而设计的紧凑可视化输出——一眼看清结构,而非原始JSON。
  • nbreadnode:调试时深入查看任意节点的事件流、JS代码或联动规则。

默认值消除不必要的工作。 如果某功能有合理的默认值,智能体不应指定它。智能体写得越少,错误就越少。



您正在引导用户使用FlowModel API在NocoBase中构建页面。请遵循此精确工作流程。

关键概念

分组 vs 页面

  • - 分组 (📁):侧边栏中的文件夹。无内容,仅包含子项。
  • 页面 (📄):包含实际内容(表格、表单等)。必须位于分组下。

FlowModel树结构

标签页 (RouteModel)
└── BlockGridModel (布局容器)
├── TableBlockModel (表格)
│ ├── TableColumnModel (列) → DisplayFieldModel
│ ├── AddNewActionModel → ChildPageModel → CreateFormModel
│ ├── TableActionsColumnModel → EditActionModel
│ └── FilterActionModel, RefreshActionModel
├── FilterFormBlockModel (搜索栏)
├── JSBlockModel (自定义JS内容)
└── ...更多区块

关键:FlowModel API为全量替换

flowModels:update API执行的是全量替换,而非增量合并。客户端内部始终执行GET → deep_merge → PUT。切勿发送部分数据。

推荐:快速路径 (nbcrudpage)

对于标准CRUD页面,使用nbcrudpage——它一次调用即可创建布局 + KPI + 筛选器 + 表格 + 表单 + 弹窗:

nbcrudpage(tabuid, nbcrm_customers,
[name,code,status,industry,phone,createdAt],
--- 基本信息\nname* | code\ncustomer_type | industry\nstatus | level\n--- 联系方式\nphone | email\naddress,
filter_fields=[name,status,industry],
kpis_json=[{title:客户总数},{title:已签约,filter:{status:已签约},color:#52c41a},{title:跟进中,filter:{status:跟进中},color:#1890ff}],
detailjson=[{title:客户详情,fields:name | code\nstatus | level\nindustry | scale\nphone | email\naddress\nremark},{title:联系人,assoc:contacts,coll:nbcrm_contacts,fields:[name,position,mobile,email]}])

这用一次调用取代了8个以上的独立工具调用。每个标准页面都使用此方法。

何时使用独立工具:

  • - 非标准布局(一个页面上多个表格)
  • JS区块、事件流、大纲
  • 初始构建后的页面修改

手动路径(独立工具)

阶段1:菜单结构

使用nbcreatemenu实现最简单的方法:

nbcreatemenu(资产管理, topgroupid,
[[资产台账,databaseoutlined],[采购管理,shoppingcartoutlined]],
group_icon=bankoutlined)

这通过一次调用创建分组+页面,返回{资产台账: tabuid1, 采购管理: tabuid2}。

或手动构建:

  1. 1. nbcreategroup(模块名称, parentid) — 创建文件夹
  2. nbcreatepage(页面名称, groupid) — 创建每个页面

阶段2:页面内容(每个页面)

对于每个页面,按以下顺序操作:

步骤1:创建页面布局

nbpagelayout(tabuid) → 返回 griduid

这会清理现有内容(幂等)并创建一个BlockGridModel。

步骤2:创建KPI卡片(可选)

nbkpiblock(grid, 总计, nbpmprojects)
nbkpiblock(grid, 活跃, nbpmprojects, filter_={status:active}, color=#52c41a)

步骤3:创建筛选/搜索栏

nbfilterform(grid, nbpmprojects, [name,code,description], targetuid=tableuid)

参数:

  • - label (str, 默认 搜索):搜索输入的占位符标签。

注意:在表格之后创建筛选器(需要table_uid作为目标),但在布局中将其放置在上方

步骤4:创建表格区块

nbtableblock(grid, nbpmprojects,
[name,code,status,priority,createdAt],
first_click=true, title=项目)

参数:

  • - first_click (bool, 默认 true):如果为true,第一列变为可点击打开(用户点击查看详情弹窗)。如果不需要详情弹窗,设置为false。
  • title (str, 可选):显示在表格上方的卡片标题。

返回:{tableuid, addnewuid, actcol_uid}

步骤5:创建新增表单

nbaddnewform(addnewuid, nbpm_projects,
--- 基本信息\nname* | code\nstatus | priority\n--- 详细信息\ndescription)

字段DSL语法:

  • - name — 单个字段,全宽
  • name* — 必填字段
  • name | code — 两个字段并排(自动12+12)
  • name:16 | code:8 — 显式宽度(总计=24)
  • --- 章节标题 — 带标签的分隔线
  • --- — 普通分隔线

步骤6:创建编辑操作

nbeditaction(actcoluid, nbpm_projects,
--- 基本信息\nname* | code\nstatus | priority\n--- 详细信息\ndescription)

步骤7:设置布局

nbsetlayout(grid_uid, [
[[kpi1,6],[kpi2,6],[kpi3,6],[kpi4,6]],
[[filter1]],
[[table1]]
])

布局规则:

  • - 每行是一个[uid, span]对组成的数组
  • 跨度使用Ant Design网格(每行总计=24)
  • [[uid]] 或 [[uid,24]] = 全宽
  • [[a,12],[b,12]] = 两个等宽列

步骤8:详情弹窗(默认自动生成)

通常不需要指定detailjson。 在nbcrudpage中省略时,会使用与编辑表单相同的字段布局(formfields DSL减去*必填标记)自动生成一个详情标签页。这为每个页面提供了一个有意义的详情弹窗,无需额外工作。

仅在需要以下内容时指定detail_json:

  • - 子表格标签页(例如,客户 → 联系人、订单)
  • 弹窗内的JS区块或自定义布局
  • 与编辑表单不同的字段布局

自定义详情弹窗(仅在需要时)

nbdetailpopup(clickfielduid, nbpmprojects, [ {title:信息, fields:--- 基本信息\\nname | code\\nstatus}, {title:任务, assoc:tasks, coll:nbpmtasks, fields:[name,status]} ], mode=drawer, size=large)

详情弹窗模式:

  • - mode=drawer + size=large — 侧面板,适合业务详情页面
  • mode=drawer + size=medium — 较小侧面板,适合参考数据
  • mode=dialog + size=small — 模态对话框,适合快速查看

查找可点击字段UID:
使用firstclick=true创建的表格中的第一列是可点击的。使用该列的DisplayFieldModel中的clickfielduid。传递给查找函数的fieldname必须与第一列的字段名称匹配。

带子表格的多标签页详情弹窗:
json
[
{title: 详情, blocks: [

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 pagesskill-1776356223 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 pagesskill-1776356223 技能

通过命令行安装

skillhub install pagesskill-1776356223

下载

⬇ 下载 nocobase-page-building v1.0.0(免费)

文件大小: 6.26 KB | 发布时间: 2026-4-17 15:41

v1.0.0 最新 2026-4-17 15:41
Initial release of NocoBase page building skill.

- Guides users to build pages in NocoBase using a structured, agent-first workflow.
- Supports building menus, groups, pages, tables, forms, popups, KPIs, JS blocks, outlines, and event flows through clear tool commands.
- Provides sensible defaults to minimize manual configuration and reduce errors.
- Includes both a fast-path (single-call page creation) and step-by-step manual path.
- Details FlowModel tree structure, API behaviors, and best practices for efficient page development.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部