跳转正文

Standard CRUD ​

适用范围:Legacy Admin Kit / Schema 与旧 admin-vue。新 admin-nuxtui 的开发入口见管理端 Nuxt UI 指南。

Standard CRUD 适合 generated resource catalog 已证明 compatible 的目录型页面。CLI 负责可由事实确定的结构;作者负责页面为什么存在、信息层级、查询意图和业务文案。

1. 诊断并发现实时能力 ​

从仓库根目录进入固定了 pnpm 版本的前端 workspace 后执行。不要从无 package.json 的仓库根目录跨目录调用 pnpm,否则 Corepack 可能先选择错误版本:

powershell
Set-Location .\packages\yoyo-admin
pnpm run cli -- admin doctor --json
pnpm run cli -- admin capabilities --json
pnpm run cli -- admin contracts status --json

只使用 capabilities.data.create.recipes[] 当前列出的 recipe 和 options。不要从旧文档猜命令。

2. 查询 generated facts ​

powershell
pnpm run cli -- admin inspect resources --json
pnpm run cli -- admin inspect resource measuringUnit --json
pnpm run cli -- admin inspect permissions --prefix Pages.Administration.BasicData.MeasuringUnits --json

继续生成的条件是 standardCrud.eligible: true,且所需 Query/Create/Edit/Delete 权限确实存在。资源存在但不兼容时是 capability gap,不应硬套 recipe。

3. 先 dry-run ​

powershell
pnpm run cli -- admin create frontend-module `
  --kind standard-crud `
  --module widgets `
  --resource measuringUnit `
  --route /widgets/list `
  --title "控件管理" `
  --description "维护控件目录。" `
  --group "业务模块" `
  --permission-prefix Pages.Administration.BasicData.MeasuringUnits `
  --dry-run --json

计划必须只有:

  • src/app/<module>/manifest.ts;
  • src/app/<module>/<resource>/schema.ts;
  • src/app/manifests.ts 的受控 wiring 更新。

不应出现 index.vue、通用 service.ts、binding.ts、validation.ts 或 page-contract.ts。确认计划后,用相同命令移除 --dry-run 执行。

4. 补齐 product content ​

生成结果只达到 structural-ready:operations、字段 lifecycle、权限兼容性、page/datasource id 来自 generated facts;初始表格只保留稳定 row key,字段 label/kind 也是待复核的中性 skeleton。

作者必须在 canonical schema.ts 中决定:

  • identity/headline/key/status/meta 的信息层级;
  • query fields、quick/advanced filter 与 default sort;
  • column title、renderer、role、priority、mobile placement;
  • label/help/confirmation subject 与 create/edit default;
  • 是否确实需要升级到 typed extension。

正式参考:

  • apps/yoyo-admin/admin-vue/src/app/administration/basic-data/measuring-units/schema.ts
  • apps/yoyo-admin/admin-vue/src/app/administration/basic-data/manifest.ts

其中 createMeasuringUnitPageSchema 展示了生成 skeleton 与最终产品语义的差异。Reference 不是模板 owner,不能复制后改名。

5. 验证 ​

powershell
Push-Location ..\..\apps\yoyo-admin\admin-vue
pnpm run typecheck
pnpm run check:schema-project
pnpm run test:conformance -- --page <page-key>
Pop-Location

完整验证选择见 诊断与验证。Standard CRUD 最终由 Standard Management Runtime 投影到 LegacyYDataTable;不要再包一层自建 Page/CRUD runtime。

YoyoBoot · 从真实项目走向可复用能力