status: apply created: 2026-05-29 拆分顺序:产品基线 → 数据与协议 → 后端聚合服务 → 字段/布局/发布闭环 → 前端设计器 → 入口菜单 → 验证归档 原则:业务对象设计器是普通用户主入口;低代码模型管理保留为高级入口;查询 SQL 写 Mapper XML;分页参数使用
pageNum/pageSize;内置数据tenant_id=1;Flyway 脚本必须防重复;普通模式不展示表名、DDL、Schema、configKey。
ai_lowcode_model、ai_crud_config、DynamicCrudController、AiCrudPage、LowcodePublishService 继续作为底层能力复用。LowcodeModelSchema、LowcodePageSchema JSON,不新建字段事实表。/app-center/object/:objectCode/designer。CanvasFormDesigner 和现有低代码页面搭建能力。| 阶段 | 目标 | 包含任务 | 交付结果 |
|---|---|---|---|
| Phase 0 | 产品基线 | Task 0 | 冻结入口、权限、字段删除、设计器路由等关键决策 |
| Phase 1 | 数据与协议 | Task 1-4 | 数据脚本、DTO/VO、字段/布局/发布检查协议 |
| Phase 2 | 后端主链路 | Task 5-11 | 设计器聚合、字段管理、布局保存、关系同步、发布与版本 |
| Phase 3 | 前端设计器 | Task 12-20 | 设计器壳、字段、表单、列表、详情、关系、发布、高级配置 |
| Phase 4 | 入口与菜单 | Task 21-23 | 应用中心入口、创建向导跳转、开发者菜单收敛 |
| Phase 5 | 质量与验收 | Task 24-27 | 构建、接口、页面、业务闭环、文档回填 |
| Task | 阶段 | 名称 | 状态 | 优先级 |
|---|---|---|---|---|
| Task 0 | Phase 0 | 业务对象设计器产品基线确认 | completed | P0 |
| Task 1 | Phase 1 | 设计器数据迁移脚本 | completed | P0 |
| Task 2 | Phase 1 | 设计器 DTO/VO 和状态常量 | completed | P0 |
| Task 3 | Phase 1 | 字段类型、字段模板和默认 Schema 工具 | completed | P0 |
| Task 4 | Phase 1 | 发布检查协议与版本协议 | completed | P0 |
| Task 5 | Phase 2 | 业务对象设计器聚合接口 | completed | P0 |
| Task 6 | Phase 2 | 字段管理后端闭环 | completed | P0 |
| Task 7 | Phase 2 | 表单/列表/详情布局保存接口 | completed | P0 |
| Task 8 | Phase 2 | 关系配置与模型关系同步 | completed | P0 |
| Task 9 | Phase 2 | 自定义操作与权限流程摘要 | completed | P1 |
| Task 10 | Phase 2 | 发布检查与业务对象发布门面 | completed | P0 |
| Task 11 | Phase 2 | 业务对象设计版本和回滚 | completed | P1 |
| Task 12 | Phase 3 | 前端 API 与路由接入 | completed | P0 |
| Task 13 | Phase 3 | 业务对象设计器外壳 | completed | P0 |
| Task 14 | Phase 3 | 业务字段管理组件 | completed | P0 |
| Task 15 | Phase 3 | 表单设计组件业务化包装 | completed | P0 |
| Task 16 | Phase 3 | 列表设计组件业务化包装 | completed | P0 |
| Task 17 | Phase 3 | 详情设计组件 | completed | P1 |
| Task 18 | Phase 3 | 关系、操作、权限流程面板 | completed | P1 |
| Task 19 | Phase 3 | 发布检查、发布与版本面板 | completed | P0 |
| Task 20 | Phase 3 | 高级配置与开发者模式 | completed | P1 |
| Task 21 | Phase 4 | 应用中心对象详情入口重构 | completed | P0 |
| Task 22 | Phase 4 | 创建向导、模板、AI、数据库导入跳转收敛 | completed | P1 |
| Task 23 | Phase 4 | 菜单权限与普通用户信息隔离 | completed | P0 |
| Task 24 | Phase 5 | 后端编译与接口验证 | completed | P0 |
| Task 25 | Phase 5 | 前端构建与页面验证 | completed | P0 |
| Task 26 | Phase 5 | CRM 客户对象端到端验收 | completed | P0 |
| Task 27 | Phase 5 | Spec、任务和执行日志回填 | completed | P0 |
labelPosition/labelWidth/size/showMessage/inlineMessage/hideRequiredAsterisk/style/class 转换为运行态 editLabelPlacement/editLabelWidth/editSize/editShowFeedback/editFormStyle/editFormClass。style/class/wrap 元信息,并映射为运行态 componentStyle/componentClass/formItemClass/formItemStyle/showLabel。$required、validate、必填提示语,生成 required/requiredMessage/rules/trigger。AiCrudPage 透传编辑表单尺寸、反馈和样式;AiFormItem 增加统一控制容器承接组件样式。BusinessObjectDesignerService 和 LowcodeRuntimeConfigBuilder 都补齐同一套字段映射。mvn -pl forge-admin-server -am compile -DskipTests 通过;pnpm --dir forge-admin-ui build 通过(仅保留项目既有 UnoCSS 图标、CSS 注释和 chunk 警告)。目标: 在编码前冻结产品主链路,避免后续继续把“数据模型管理”当作普通用户主入口。
涉及文件:
code-copilot/changes/lowcode-business-object-designer/spec.md — 回填待澄清项和确认记录。code-copilot/changes/lowcode-business-object-designer/tasks.md — 根据确认结果调整任务优先级。确认事项:
/app-center/object/:objectCode/designer。CanvasFormDesigner,不引入第二套设计器。ai_business_object_design_version,并与 ai_crud_config_version 互相追溯。验收标准:
spec.md 第 16 章待澄清项均有明确结论。目标: 补齐业务对象设计状态、运行配置引用、设计版本和字段模板数据结构。
涉及文件:
forge/db/migration/V1.0.40__add_business_object_designer.sql — 新增 Flyway 脚本。forge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/domain/entity/AiBusinessObject.java — 增加设计器字段映射。AiBusinessObjectDesignVersion.java — 业务对象设计版本实体。AiBusinessFieldTemplate.java — 字段模板实体。脚本要求:
ai_business_object:design_status、config_key、last_publish_time、last_publish_version、designer_options。ai_business_object_design_version:保存对象、版本号、模型快照、页面快照、关系快照、发布状态。ai_business_field_template:保存字段模板编码、名称、字段 Schema、套件编码、状态。tenant_id + object_id + version_no、tenant_id + template_code、tenant_id + suite_code + status。tenant_id=1,脚本具备重复执行保护。验收标准:
CREATE TABLE IF NOT EXISTS 和新增列前 information_schema 检查。目标: 定义前后端统一的业务对象设计器协议。
涉及文件:
dto/businessapp/BusinessObjectDesignerDTO.java。dto/businessapp/BusinessFieldDTO.java。dto/businessapp/BusinessLayoutDTO.java。dto/businessapp/BusinessObjectPublishDTO.java。vo/businessapp/BusinessObjectDesignerVO.java。vo/businessapp/BusinessFieldVO.java。vo/businessapp/BusinessLayoutVO.java。vo/businessapp/BusinessPublishCheckVO.java。vo/businessapp/BusinessObjectDesignVersionVO.java。constant/BusinessObjectDesignStatus.java。constant/BusinessPublishCheckLevel.java。关键字段:
BusinessObjectDesignerVO:对象信息、套件信息、模型 Schema、页面 Schema、关系、字段、设计状态、发布状态、是否有未发布变更。BusinessFieldVO:字段名称、字段编码、字段类型、组件类型、普通属性、高级属性、系统字段标识、引用状态。BusinessPublishCheckVO:总体状态、阻断项、警告项、通过项、修复动作。验收标准:
目标: 提供字段类型定义、字段模板读取和业务字段到低代码字段 Schema 的转换工具。
涉及文件:
service/businessapp/BusinessFieldSchemaService.java。service/businessapp/BusinessFieldTemplateService.java。mapper/BusinessFieldTemplateMapper.java。mapper/BusinessFieldTemplateMapper.xml。dto/lowcode/LowcodeFieldSchema.java 使用现有字段属性承载业务字段扩展。关键能力:
dictType。验收标准:
目标: 定义发布前检查项、修复动作和业务对象设计版本快照协议。
涉及文件:
vo/businessapp/BusinessPublishCheckItemVO.java。dto/businessapp/BusinessObjectDesignVersionDTO.java。mapper/BusinessObjectDesignVersionMapper.java。mapper/BusinessObjectDesignVersionMapper.xml。service/businessapp/BusinessObjectDesignVersionService.java。检查项分类:
验收标准:
PASS、WARN、BLOCK。fixAction、fixActionLabel、fixTarget。目标: 后端提供对象设计器一次性加载和保存接口,聚合业务对象、模型、页面、关系和发布状态。
涉及文件:
controller/BusinessObjectDesignerController.java。service/businessapp/BusinessObjectDesignerService.java。service/businessapp/BusinessObjectService.java。mapper/BusinessObjectMapper.java。mapper/BusinessObjectMapper.xml。接口签名:
@GetMapping("/{objectId}/designer")
@SaCheckPermission("ai:businessObject:design")
public RespInfo<BusinessObjectDesignerVO> getDesigner(@PathVariable Long objectId) { }
@PutMapping("/{objectId}/designer")
@SaCheckPermission("ai:businessObject:design")
public RespInfo<Void> saveDesigner(@PathVariable Long objectId,
@RequestBody BusinessObjectDesignerDTO dto) { }
实现要点:
ai_business_object.id 获取对象。model_id/model_code 读取 ai_lowcode_model.model_schema。config_key 或已关联低代码配置读取 page_schema。验收标准:
目标: 实现字段新增、修改、删除/停用、排序和引用检查,字段变更自动同步模型和页面 Schema。
涉及文件:
service/businessapp/BusinessFieldDesignService.java。controller/BusinessObjectDesignerController.java。service/lowcode/LowcodeSchemaValidator.java。components 对应前端 API 时再联调。接口签名:
@GetMapping("/{objectId}/fields")
public RespInfo<List<BusinessFieldVO>> listFields(@PathVariable Long objectId) { }
@PostMapping("/{objectId}/fields")
public RespInfo<BusinessFieldVO> addField(@PathVariable Long objectId,
@RequestBody BusinessFieldDTO dto) { }
@PutMapping("/{objectId}/fields/{fieldCode}")
public RespInfo<BusinessFieldVO> updateField(@PathVariable Long objectId,
@PathVariable String fieldCode,
@RequestBody BusinessFieldDTO dto) { }
@DeleteMapping("/{objectId}/fields/{fieldCode}")
public RespInfo<Void> deleteField(@PathVariable Long objectId,
@PathVariable String fieldCode) { }
实现要点:
field、columnName、componentType、dataType。field。model_schema.fields 顺序,并刷新默认页面 Schema。验收标准:
undefined。目标: 实现业务化布局保存接口,分别保存表单、列表、详情配置并校验字段引用。
涉及文件:
service/businessapp/BusinessLayoutDesignService.java。controller/BusinessObjectDesignerController.java。service/lowcode/LowcodeSchemaValidator.java。dto/lowcode/LowcodePageSchema.java。接口签名:
@PutMapping("/{objectId}/layout/form")
public RespInfo<Void> saveFormLayout(@PathVariable Long objectId,
@RequestBody BusinessLayoutDTO dto) { }
@PutMapping("/{objectId}/layout/list")
public RespInfo<Void> saveListLayout(@PathVariable Long objectId,
@RequestBody BusinessLayoutDTO dto) { }
@PutMapping("/{objectId}/layout/detail")
public RespInfo<Void> saveDetailLayout(@PathVariable Long objectId,
@RequestBody BusinessLayoutDTO dto) { }
@PostMapping("/{objectId}/layout/preview")
public RespInfo<AiCrudConfigRenderVO> previewLayout(@PathVariable Long objectId,
@RequestBody BusinessLayoutDTO dto) { }
实现要点:
page_schema 的 edit zone。LowcodeRuntimeConfigBuilder 生成临时运行配置,不落库发布。验收标准:
目标: 统一业务对象关系配置、模型关系配置和应用中心关系运行入口。
涉及文件:
service/businessapp/BusinessObjectRelationService.java。controller/BusinessObjectRelationController.java。mapper/BusinessObjectRelationMapper.java。mapper/BusinessObjectRelationMapper.xml。vo/businessapp/BusinessObjectRelationVO.java。dto/businessapp/BusinessObjectRelationDTO.java。dto/lowcode/LowcodeRelationSchema.java 如需补字段。实现要点:
LowcodeModelSchema.relations。验收标准:
ai_business_object_relation 同步。目标: 把对象操作、权限摘要、流程摘要纳入设计器,但首期不新增复杂规则引擎。
涉及文件:
service/businessapp/BusinessObjectActionService.java。vo/businessapp/BusinessObjectActionVO.java。dto/businessapp/BusinessObjectActionDTO.java。BusinessObjectDesignerController.java。BusinessBindingService.java、BusinessApprovalRuntimeService.java、现有权限能力。接口签名:
@GetMapping("/{objectId}/actions")
public RespInfo<List<BusinessObjectActionVO>> listActions(@PathVariable Long objectId) { }
@GetMapping("/{objectId}/permission-summary")
public RespInfo<BusinessReadinessItemVO> permissionSummary(@PathVariable Long objectId) { }
实现要点:
designer_options 或页面 Schema actions 中,不新增复杂动作表。验收标准:
目标: 从业务对象设计器发起发布检查和发布,内部复用现有低代码发布链路。
涉及文件:
service/businessapp/BusinessObjectPublishService.java。controller/BusinessObjectDesignerController.java。service/lowcode/LowcodePublishService.java 如需增加对象来源参数。service/lowcode/LowcodeSchemaValidator.java。domain/entity/AiBusinessObject.java。接口签名:
@GetMapping("/{objectId}/publish-check")
@SaCheckPermission("ai:businessObject:publish")
public RespInfo<BusinessPublishCheckVO> publishCheck(@PathVariable Long objectId) { }
@PostMapping("/{objectId}/publish")
@SaCheckPermission("ai:businessObject:publish")
public RespInfo<Long> publish(@PathVariable Long objectId,
@RequestBody BusinessObjectPublishDTO dto) { }
检查规则:
验收标准:
PASS/WARN/BLOCK。ai_crud_config、ai_business_object.config_key、last_publish_version、last_publish_time。目标: 业务对象设计器保存发布版本快照,支持对象维度查看版本和回滚。
涉及文件:
BusinessObjectDesignVersionService.java。BusinessObjectDesignVersionMapper.java。BusinessObjectDesignVersionMapper.xml。BusinessObjectDesignerController.java。BusinessObjectDesignVersionVO.java。接口签名:
@GetMapping("/{objectId}/versions")
public RespInfo<List<BusinessObjectDesignVersionVO>> versions(@PathVariable Long objectId) { }
@PostMapping("/{objectId}/versions/{versionId}/rollback")
public RespInfo<Void> rollback(@PathVariable Long objectId,
@PathVariable Long versionId) { }
实现要点:
ai_crud_config_version.id。验收标准:
ai_crud_config_version。目标: 前端接入业务对象设计器相关接口和路由。
涉及文件:
forge-admin-ui/src/api/business-app.js — 增加设计器、字段、布局、发布检查、版本 API。forge-admin-ui/src/router/index.js — 增加 /app-center/object/:objectCode/designer 静态路由或确认动态路由配置。forge-admin-ui/src/views/app-center/object-designer.[objectCode].vue。API 方法:
businessObjectDesigner(objectId)。saveBusinessObjectDesigner(objectId, data)。businessObjectFields(objectId)。createBusinessObjectField(objectId, data)。updateBusinessObjectField(objectId, fieldCode, data)。deleteBusinessObjectField(objectId, fieldCode)。saveBusinessObjectFormLayout(objectId, data)。saveBusinessObjectListLayout(objectId, data)。saveBusinessObjectDetailLayout(objectId, data)。businessObjectPublishCheck(objectId)。publishBusinessObject(objectId, data).验收标准:
business-app.js 风格一致。目标: 实现左侧导航、顶部工具栏、主体切换和未保存提示。
涉及文件:
forge-admin-ui/src/views/app-center/components/designer/BusinessObjectDesignerShell.vue。object-designer.[objectCode].vue。forge-admin-ui/src/views/app-center/shared-center.css 样式。设计要求:
验收标准:
目标: 实现普通用户友好的字段管理,普通属性优先,高级属性折叠。
涉及文件:
BusinessFieldManager.vue。BusinessFieldList.vue。BusinessFieldPropertyPanel.vue。FieldTypeSelect.vue、DictTypeSelect.vue、RegionTreeSelect.vue。ModelFieldTable.vue 的可复用逻辑。交互要求:
验收标准:
目标: 实现类截图的表单设计体验,复用现有画布能力。
涉及文件:
BusinessFormDesigner.vue。CanvasFormDesigner.vue。ComponentPalette.vue。ComponentPropertyPanel.vue。交互要求:
验收标准:
undefined 字段。目标: 实现查询条件、表格列、工具栏和行操作配置。
涉及文件:
BusinessListDesigner.vue。StructuredListPageDesigner.vue。ListPageGridDesigner.vue。交互要求:
验收标准:
目标: 实现详情分组、详情页签和关联列表配置。
涉及文件:
BusinessDetailDesigner.vue。ObjectRelationPanel.vue 或抽取关系入口渲染能力。LowcodePageBuilder.vue 或 page-schema.js 支持 detail zone 时按需补齐。交互要求:
验收标准:
目标: 实现关系配置、自定义操作、权限摘要和流程摘要的前端面板。
涉及文件:
BusinessRelationDesigner.vue。BusinessActionDesigner.vue。BusinessPermissionFlowPanel.vue。ObjectRelationPanel.vue 如需抽取展示组件。交互要求:
验收标准:
目标: 前端提供发布检查、发布、打开应用、版本查看和回滚入口。
涉及文件:
BusinessPublishChecklist.vue。BusinessVersionTimeline.vue 或复用 VersionTimeline.vue。object-designer.[objectCode].vue。交互要求:
验收标准:
目标: 把表名、Schema、DDL、configKey、代码生成入口收进高级配置。
涉及文件:
BusinessAdvancedConfig.vue。lowcode-models.vue 文案或入口可见性。crud-config.vue 菜单入口或说明文案。交互要求:
ai:businessObject:advanced 权限。验收标准:
目标: 把对象详情页的“配置模型/配置布局/发布应用”收敛为“设计对象/发布对象/运行应用”。
涉及文件:
forge-admin-ui/src/views/app-center/object.[objectCode].vue。forge-admin-ui/src/views/app-center/components/ReadinessPanel.vue。forge-admin-ui/src/views/app-center/components/ObjectCard.vue。实现要点:
/ai/lowcode-models。验收标准:
目标: 所有创建方式最终进入业务对象设计器,而不是低代码模型管理。
涉及文件:
BusinessObjectWizardDrawer.vue。suite.[suiteCode].vue。index.vue。lowcode-models.vue。lowcode-builder.vue。实现要点:
验收标准:
目标: 调整菜单和权限,让普通业务用户看到业务对象搭建器,开发者看到高级低代码资产。
涉及文件:
forge/db/migration/V1.0.40__add_business_object_designer.sql 或新增后续菜单脚本。实现要点:
验收标准:
目标: 验证后端代码可编译,核心接口可调用。
验证命令:
mvn -pl forge-admin-server -am compile -DskipTests
接口验证:
GET /ai/business/object/{objectId}/designerPOST /ai/business/object/{objectId}/fieldsPUT /ai/business/object/{objectId}/layout/formGET /ai/business/object/{objectId}/publish-checkPOST /ai/business/object/{objectId}/publish验收标准:
RespInfo。验证结果:
mvn -pl forge-admin-server -am compile -DskipTests,结果 BUILD SUCCESS。GET /ai/business/object/{objectId}/designer、GET /publish-check、POST /publish 和运行入口信息接口,CRM 客户对象发布检查 PASS,发布成功。目标: 验证前端构建通过,设计器页面可打开和基础交互可用。
验证命令:
source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui build
页面验证:
/app-center/app-center/suite/CRM/app-center/object/CUSTOMER/app-center/object/CUSTOMER/designer/ai/lowcode-models 开发者入口验收标准:
验证结果:
NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build,结果构建成功。// 注释和大 chunk 警告。/app-center/object/CUSTOMER/designer?objectId=1910000000000000101&panel=fields,字段列表 18 条,属性面板正常渲染,无 fieldName/null、页面错误或控制台错误。目标: 按业务用户路径验证字段驱动业务对象搭建闭环。
验收步骤:
验收标准:
undefined、空 label、空字段名。验证结果:
customerLevel,普通模式主链路没有暴露表名、DDL、Schema、configKey。overallStatus=PASS、blockCount=0、warnCount=0。2060296120277417985。/ai/crud-page/crm_customer 成功,搜索区和表格列包含客户等级,页面文本未出现 undefined。目标: 回填文档,便于后续 /review 和归档。
涉及文件:
code-copilot/changes/lowcode-business-object-designer/spec.md。code-copilot/changes/lowcode-business-object-designer/tasks.md。test-spec.md。回填内容:
验收标准:
tasks.md 状态与实际完成情况一致。spec.md 执行日志完整。/review lowcode-business-object-designer。回填结果:
BusinessFieldPropertyPanel.vue 空字段防护、长 ID 字符串传递、CRM 样板关系字段方向修复和 Task 24-26 验证结果。/review lowcode-business-object-designer。目标: 用户输入中文字段名或对象名时,系统自动生成可维护的英文编码和数据库列/表模型编码,避免 field_xxx 这类随机字段污染表结构。
实现要点:
namingUtils.js,按常见业务中文词推理 lowerCamel 字段编码和 lower_snake 对象/模型编码。BusinessNamingService,保证手动字段创建、对象创建和后端兜底逻辑一致。suite_object 风格的 modelCode 用于运行态表名。状态: 已完成。
目标: 表单设计器中下拉、单选、多选、字典选择组件都能直接选择系统字典类型,并在保存时以表单设计配置覆盖字段资产。
实现要点:
select、radio、checkbox 和业务字典组件追加“系统字典”配置项,选项来自 /system/dict/type/list,支持直接输入新字典类型。props.dictType 拉取真实字典项,替换静态占位选项。select/radio/checkbox 组件类型,不再把带 dictType 的普通选择器强制改成 dictSelect。fieldType/dataType/componentType/queryType/dictType/reference* 以当前表单组件为准同步。状态: 已完成。
验证结果:
source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint ... 目标文件 lint 通过。JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home PATH=/opt/homebrew/Cellar/openjdk@17/17.0.13/libexec/openjdk.jdk/Contents/Home/bin:$PATH mvn -pl forge-admin-server -am compile -DskipTests 通过。source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build 通过;仍有项目既有 UnoCSS 图标缺失、CSS // 注释和大 chunk 警告。