status: phase_5r_g_page_preview_feedback_done current_phase: phase_5r_g_page_preview_feedback last_updated: 2026-05-21 execution_rule: 每次只实现一个阶段;阶段开始前把该阶段状态改为
in_progress,阶段完成后改为done并补充实际改动文件与验证结果。
/ai/crud-page/{configKey} 与 /ai/crud/{configKey} 保持不变。modelSchema 兼容、历史未归属应用、领域停用对新建/迁移入口的影响。relations/children 协议,不改变动态 CRUD 的单表查询能力;领域字段模板第一版只做新建模型初始化,不批量同步历史应用。pageNum/pageSize;业务内置数据和权限资源 tenant_id 使用 1。| 阶段 | 状态 | 目标 | 阶段完成口径 |
|---|---|---|---|
| 0. 规划与门禁 | done | 完成 spec 阅读、风险识别和阶段拆分 | tasks.md 已创建,未写实现代码 |
| Gate. 人工确认 | done | 补齐 spec HARD-GATE 与待澄清项 | spec.md 第 14 节已填写确认记录 |
| 1. 数据库与领域后端核心 | done | 新增领域表、领域 CRUD/树/默认规则/工作台接口 | 后端编译通过,接口路径完整 |
| 2. 应用领域绑定与模型协议兼容 | done | 低代码应用绑定领域,支持通用业务域和迁移,modelSchema 升级 v2 |
旧应用可读,新草稿必须绑定领域 |
| 3. 发布菜单与版本快照领域化 | done | 发布菜单按领域父级挂载,版本保留领域快照 | 发布/回滚不丢领域信息 |
| 4. 领域工作台与应用列表前端 | done | 低代码首页改成领域优先,提供领域工作台和迁移入口 | 前端构建通过,应用列表可按领域过滤 |
| 5. 搭建器领域优先改造 | done | 新建流程先选领域和业务对象,默认值按领域规则生成 | 草稿保存带领域和对象信息 |
| 5R. 数据模型/应用页面拆分纠偏 | done | 数据模型独立设计,应用页面选择多个模型并绑定字段 | 应用设计器不再维护模型本体,多模型字段引用可保存 |
| 5R-F. 交互反馈纠偏 | done | 修正领域树、模型关系选择、应用入口和菜单重复 | 前端交互顺序符合“领域 -> 模型 -> 应用页面” |
| 5R-G. 页面设计与预览纠偏 | done | 修正发布菜单父级、表单详情合并、字段配置弹窗和真实运行态预览入口 | 父级菜单树选择;表单/详情共用;查询/列表字段弹窗编辑;已发布应用可运行态预览 |
| 6. AI 生成领域上下文注入 | pending | AI CRUD 生成支持 domainId 并注入领域上下文 |
流式生成请求与提示词包含领域信息 |
| 7. 测试、文档与收口 | pending | 补充 test-spec、核心测试和执行日志 | 编译/构建/测试结果记录完整 |
状态:done
进入实现前先补齐 code-copilot/changes/lowcode-business-domain-redesign/spec.md 第 14 节确认记录。确认内容必须覆盖:
relations 第一版按自动生成 ER 图方向处理,不改变动态 CRUD 查询。状态:done
目标
建立业务领域主表和后端基础接口,先不改前端入口,也不强制低代码应用绑定领域。
计划改动文件
forge/db/migration/V1.0.7__add_lowcode_business_domain.sqlforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/domain/entity/AiLowcodeDomain.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeDomainDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeDomainStatusDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeDomainSchema.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/vo/lowcode/LowcodeDomainVO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/vo/lowcode/LowcodeDomainTreeVO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/vo/lowcode/LowcodeDomainWorkspaceVO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/mapper/AiLowcodeDomainMapper.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/resources/mapper/AiLowcodeDomainMapper.xmlforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeDomainService.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/controller/LowcodeDomainController.java任务清单
ai_lowcode_domain,并为 ai_crud_config、ai_crud_config_version 增加 domain_id/domain_code/object_code/object_name 字段和必要索引。sys_resource 插入必须使用 tenant_id=1 和 NOT EXISTS。domain_schema JSON DTO,字段覆盖 spec 中 AI 上下文、命名规则、默认规则、字段模板、字典推荐、安全策略。AiLowcodeDomainMapper.xml:分页、树、详情、同租户编码唯一校验、同父级名称唯一校验、工作台统计查询。LowcodeDomainService:编码格式校验、默认值补齐、启停规则、存在应用时禁止物理删除。/ai/lowcode/domain/page、/tree、/{id}、POST /、PUT /、/{id}/status、/{id}/workspace、/{id}/defaults。验证
cd forge && mvn -pl forge-admin-server -am compile -DskipTestspageNum/pageSize;新增查询 SQL 全在 XML;迁移脚本防重复。状态:done
目标
让低代码应用具备领域归属和业务对象标识,同时兼容旧版无领域 modelSchema。历史应用按澄清意见归入“通用业务域”。
计划改动文件
forge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/domain/entity/AiCrudConfig.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/domain/entity/AiCrudConfigVersion.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/resources/mapper/AiCrudConfigMapper.xmlforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/resources/mapper/AiCrudConfigVersionMapper.xmlforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/mapper/AiCrudConfigMapper.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeAppDraftDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeModelSchema.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeDomainRef.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeObjectSchema.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeRelationSchema.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodePolicySchema.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/vo/lowcode/LowcodeAppDetailVO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeMoveDomainDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeAppService.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeSchemaValidator.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/controller/LowcodeAppController.javaforge/db/migration/V1.0.8__fix_lowcode_domain_workspace_route.sql任务清单
/ai/lowcode/app/page 增加 domainId/domainCode/generalDomain 过滤,SQL 继续写在 AiCrudConfigMapper.xml。LowcodeAppDraftDTO 增加 domainId/objectCode/objectName;新增草稿绑定启用领域,旧前端未传领域时自动归入通用业务域。LowcodeModelSchema 增加 schemaVersion/domain/object/relations/policies,读取旧版 schema 时用配置表字段补齐运行时对象,仍无领域时补齐为通用业务域。/ai/lowcode/app/{id}/move-domain,历史和草稿可迁移到启用领域,停用领域禁止迁入。LowcodeAppDetailVO 回显领域和业务对象信息,前端后续可直接展示。V1.0.8 将阶段 1 的领域工作台菜单修正到现有 /ai/lowcode-apps,避免 404。验证
cd forge && mvn -pl forge-admin-server -am compile -DskipTestsmodelSchema 仍能打开详情和预览;通用业务域过滤可查到历史应用。状态:done
目标
发布时优先使用领域菜单父级,版本记录保留领域归属快照,回滚后不丢领域信息。
计划改动文件
forge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodePublishDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodePublishService.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/MenuRegisterAdapter.javaforge/forge-admin-server/src/main/java/com/mdframe/forge/admin/bridge/MenuRegisterAdapterImpl.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/vo/lowcode/LowcodeVersionVO.java任务清单
menuParentId > 领域默认/自动创建领域菜单父级 > 现有低代码默认父级。MenuRegisterAdapter 支持更新已有菜单的父级;实现类更新 SysResource.parentId/resourceName/sort。domain_id/domain_code/object_code/object_name,publishSnapshot 同步包含领域、对象和菜单父级信息。验证
cd forge && mvn -pl forge-admin-server -am compile -DskipTests状态:done
目标
把低代码首页从单纯应用卡片列表改为领域优先的信息架构,并提供领域管理、工作台和应用迁移入口。
计划改动文件
forge-admin-ui/src/api/lowcode-crud.jsforge-admin-ui/src/components/lowcode-builder/domain/DomainTreePanel.vueforge-admin-ui/src/components/lowcode-builder/domain/DomainWorkspacePane.vueforge-admin-ui/src/components/lowcode-builder/domain/DomainEditorDrawer.vueforge-admin-ui/src/components/lowcode-builder/domain/MoveDomainModal.vueforge-admin-ui/src/views/ai/lowcode-apps.vue任务清单
domainId。验证
source ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm build状态:done
目标
新建低代码应用时先选择业务领域和业务对象,configKey/tableName/menuName 默认从领域规则推导。
计划改动文件
forge-admin-ui/src/views/ai/lowcode-builder.vueforge-admin-ui/src/components/lowcode-builder/model/model-schema.jsforge-admin-ui/src/components/lowcode-builder/model/LowcodeModelDesigner.vueforge-admin-ui/src/components/lowcode-builder/model/ModelFieldTable.vueforge-admin-ui/src/components/lowcode-builder/model/ModelFieldPropertyPanel.vueforge-admin-ui/src/components/lowcode-builder/publish/PublishPanel.vueforge-admin-ui/src/views/ai/lowcode-apps.vueforge-admin-ui/src/components/lowcode-builder/domain/DomainWorkspacePane.vueforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeAppDraftDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodePublishDTO.java任务清单
configKey/tableName/menuParentId。objectCode、tableName、configKey 和 menuName;已有应用加载时不重新覆盖人工值。id/tenant_id/create_by/create_time/create_dept/update_by/update_time。dictType/sensitiveType/encryptAlgorithm,字典选项仍来自系统字典。domainId/domainCode/domainName/objectCode/objectName。验证
source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm exec eslint --fix src/views/ai/lowcode-builder.vue src/views/ai/lowcode-apps.vue src/components/lowcode-builder/domain/DomainWorkspacePane.vue src/components/lowcode-builder/model/LowcodeModelDesigner.vue src/components/lowcode-builder/model/ModelFieldTable.vue src/components/lowcode-builder/model/ModelFieldPropertyPanel.vue src/components/lowcode-builder/model/model-schema.js src/components/lowcode-builder/publish/PublishPanel.vuesource ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm buildcd forge && mvn -pl forge-admin-server -am compile -DskipTestsconfigKey/tableName;字段模板过滤审计字段;图片字段未改变 fileId 存储和运行时渲染方案。状态:done
目标
按澄清后的关系重构交互:业务领域下沉淀多个独立数据模型,应用页面创建时选择一个或多个已有数据模型,页面元素再绑定到不同模型的字段。应用设计器不再维护模型名称、模型编码、字段、关联关系和校验规则等模型本体信息。
计划改动文件
forge-admin-ui/src/views/ai/lowcode-builder.vueforge-admin-ui/src/views/ai/lowcode-models.vueforge-admin-ui/src/components/lowcode-builder/model/LowcodeModelDesigner.vueforge-admin-ui/src/components/lowcode-builder/model/ModelFieldTable.vueforge-admin-ui/src/components/lowcode-builder/model/ModelFieldPropertyPanel.vueforge-admin-ui/src/components/lowcode-builder/model/model-schema.jsforge-admin-ui/src/components/lowcode-builder/page/ComponentPalette.vueforge-admin-ui/src/components/lowcode-builder/page/StructuredListPageDesigner.vueforge-admin-ui/src/components/lowcode-builder/page/FormCreateDesignerAdapter.vueforge-admin-ui/src/components/lowcode-builder/page/page-schema.jsforge-admin-ui/src/components/lowcode-builder/page/LowcodePageBuilder.vueforge-admin-ui/src/components/lowcode-builder/preview/LowcodePreviewPane.vueforge-admin-ui/src/components/lowcode-builder/publish/PublishPanel.vueforge/db/migration/V1.0.9__add_lowcode_data_model.sqlforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/domain/entity/AiLowcodeModel.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeDataModelDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodeDataModelStatusDTO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/vo/lowcode/LowcodeDataModelVO.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/mapper/AiLowcodeModelMapper.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/resources/mapper/AiLowcodeModelMapper.xmlforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/controller/LowcodeModelController.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeDataModelService.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodePageSchema.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/lowcode/LowcodePageModelRef.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeSchemaValidator.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeRuntimeConfigBuilder.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeAppService.java任务清单
lowcode-models 页面。pageSchema 增加应用引用模型快照,页面校验允许多模型字段引用;运行时转换只使用主模型字段,避免破坏现有动态 CRUD。验证
source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm exec eslint --fix src/views/ai/lowcode-models.vue src/components/lowcode-builder/model/LowcodeModelDesigner.vue src/components/lowcode-builder/model/ModelFieldTable.vue src/components/lowcode-builder/model/ModelFieldPropertyPanel.vue src/components/lowcode-builder/model/model-schema.js src/components/lowcode-builder/page/ComponentPalette.vue src/components/lowcode-builder/page/StructuredListPageDesigner.vue src/components/lowcode-builder/page/FormCreateDesignerAdapter.vue src/components/lowcode-builder/page/page-schema.js src/components/lowcode-builder/preview/LowcodePreviewPane.vuesource ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm buildcd forge && mvn -pl forge-admin-server -am compile -DskipTestsStructuredListPageDesigner.vue 既有单文件多组件 warning;前端生产构建通过,存在项目既有 UnoCSS 图标、CSS 注释和 chunk 体积 warning;后端 admin 编译通过。状态:done
目标
按最新反馈继续纠偏交互和菜单:关系配置不再手输目标对象编码;领域树可展开/收起;低代码应用页不再展示占空间的领域工作台概览;应用页面设计器不再出现左侧业务领域/应用页面侧栏;菜单只保留统一的“低代码应用”入口。
计划改动文件
forge-admin-ui/src/views/ai/lowcode-apps.vueforge-admin-ui/src/views/ai/lowcode-builder.vueforge-admin-ui/src/views/ai/lowcode-models.vueforge-admin-ui/src/components/lowcode-builder/domain/DomainTreePanel.vueforge-admin-ui/src/components/lowcode-builder/model/LowcodeModelDesigner.vueforge-admin-ui/src/components/lowcode-builder/shared/DictTypeSelect.vueforge/db/migration/V1.0.10__dedupe_lowcode_app_menu.sql任务清单
V1.0.10 菜单迁移:把 ai:lowcode:domain:list 资源改名为“低代码应用”,删除旧 ai:lowcode:list 与临时 ai:lowcode:domain:workspace 资源,并迁移旧角色授权和发布按钮权限。验证
source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm exec eslint --fix src/views/ai/lowcode-apps.vue src/components/lowcode-builder/domain/DomainTreePanel.vue src/views/ai/lowcode-models.vue src/components/lowcode-builder/model/LowcodeModelDesigner.vue src/components/lowcode-builder/shared/DictTypeSelect.vue src/views/ai/lowcode-builder.vuesource ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm buildcd forge && mvn -pl forge-admin-server -am compile -DskipTestscurl -I http://127.0.0.1:5173/ai/lowcode-apps127.0.0.1:5173 返回 200 OK。状态:done
目标
按最新反馈修正应用发布、页面设计和预览交互:发布菜单父级从菜单树选择;查询详情页与表单页合并;查询字段、列表字段在弹窗中配置;表单配置按钮有明确反馈;已发布应用支持真实运行态预览入口。
计划改动文件
forge-admin-ui/src/components/lowcode-builder/shared/MenuParentSelect.vueforge-admin-ui/src/components/lowcode-builder/publish/PublishPanel.vueforge-admin-ui/src/views/ai/lowcode-builder.vueforge-admin-ui/src/components/lowcode-builder/domain/DomainEditorDrawer.vueforge-admin-ui/src/components/lowcode-builder/page/StructuredListPageDesigner.vueforge-admin-ui/src/components/lowcode-builder/page/LowcodePageBuilder.vueforge-admin-ui/src/components/lowcode-builder/page/FormCreateDesignerAdapter.vueforge-admin-ui/src/components/lowcode-builder/page/page-schema.jsforge-admin-ui/src/components/lowcode-builder/preview/LowcodePreviewPane.vue任务清单
MenuParentSelect,从 /system/resource/tree 加载目录/菜单树,不再手输父级 ID。crudConfigRender 并内嵌 AiCrudPage 访问真实运行接口,也可打开 /ai/crud-page/{configKey}。验证
source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm exec eslint --fix src/components/lowcode-builder/shared/MenuParentSelect.vue src/components/lowcode-builder/publish/PublishPanel.vue src/views/ai/lowcode-builder.vue src/components/lowcode-builder/domain/DomainEditorDrawer.vue src/components/lowcode-builder/page/StructuredListPageDesigner.vue src/components/lowcode-builder/page/LowcodePageBuilder.vue src/components/lowcode-builder/page/FormCreateDesignerAdapter.vue src/components/lowcode-builder/page/page-schema.js src/components/lowcode-builder/preview/LowcodePreviewPane.vuesource ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm buildcurl -I http://127.0.0.1:5173/ai/lowcode-builderStructuredListPageDesigner.vue 既有单文件多组件 warning;前端构建通过,存在项目既有 UnoCSS 图标、CSS 注释和 chunk 体积告警;本地前端服务 127.0.0.1:5173/ai/lowcode-builder 返回 200 OK。状态:done
目标
按最新反馈调整菜单信息架构:低代码应用不再作为“AI智能平台”下的散落入口;复用原“AI代码生成”顶层目录并重命名为“AI低代码”,其下提供“模型设计”和“应用开发”两个低代码入口。
计划改动文件
forge/db/migration/V1.0.11__reparent_lowcode_menus.sqlcode-copilot/changes/lowcode-business-domain-redesign/tasks.md任务清单
V1.0.11 菜单迁移:将原“AI代码生成”目录重命名为“AI低代码”。ai:lowcode:model:list 菜单移到“AI低代码”下,显示名改为“模型设计”。ai:lowcode:domain:list 菜单移到“AI低代码”下,显示名改为“应用开发”。ai:lowcode:edit 搭建器菜单隐藏到“应用开发”下,避免继续在“AI智能平台”下显示重复入口。验证
rg -n "[ \t]$" forge/db/migration/V1.0.11__reparent_lowcode_menus.sql code-copilot/changes/lowcode-business-domain-redesign/tasks.mdcd forge && mvn -pl forge-admin-server -am compile -DskipTests状态:pending
目标
AI CRUD 生成支持选择业务领域,提示词注入领域上下文,生成结果落入领域化 schema。
计划改动文件
forge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/StreamGenerateRequest.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/CrudGeneratorStreamService.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/dto/AiCrudGenerateRequest.javaforge-admin-ui/src/api/crud-generator.jsforge-admin-ui/src/composables/useCrudGenerator.jsforge-admin-ui/src/views/ai/crud-generator.vue任务清单
StreamGenerateRequest 增加 domainId/objectCode/objectName。configKey/tableName 建议。schemaVersion=2 的 modelSchema,不改变现有 searchSchema/columnsSchema/editSchema/apiConfig 输出。验证
cd forge && mvn -pl forge-admin-server -am compile -DskipTestssource ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm builddomainId 的旧生成流程仍可用;传 domainId 时提示词含领域上下文。状态:pending
目标
补齐测试说明、自动化测试和执行日志,确保实现与 spec 对齐。
计划改动文件
code-copilot/changes/lowcode-business-domain-redesign/test-spec.mdcode-copilot/changes/lowcode-business-domain-redesign/spec.mdcode-copilot/changes/lowcode-business-domain-redesign/tasks.mdforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/test/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeDomainServiceTest.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/test/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeModelSchemaCompatibilityTest.javaforge/forge-framework/forge-plugin-parent/forge-plugin-generator/src/test/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodePublishDomainMenuTest.java任务清单
test-spec.md 覆盖领域 CRUD、领域树、工作台统计、默认规则、应用按领域分页、草稿绑定领域、发布菜单父级、旧 schema 兼容、AI 生成上下文。tasks.md 每个阶段实际改动文件和验证结果。{id} 占位符、是否有 tenant_id=0、是否硬编码字典选项。验证
cd forge && mvn -pl forge-admin-server -am compile -DskipTestscd forge && mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator testsource ~/.nvm/nvm.sh && nvm use v20.19.0 && cd forge-admin-ui && pnpm build| 时间 | 阶段 | 状态 | 实际改动文件 | 验证 |
|---|---|---|---|---|
| 2026-05-20 | 0. 规划与门禁 | done | code-copilot/changes/lowcode-business-domain-redesign/tasks.md |
未执行构建;本阶段仅任务规划 |
| 2026-05-20 | 1. 数据库与领域后端核心 | done | forge/db/migration/V1.0.7__add_lowcode_business_domain.sql;AiLowcodeDomain.java;LowcodeDomainDTO.java;LowcodeDomainStatusDTO.java;LowcodeDomainSchema.java;LowcodeDomainVO.java;LowcodeDomainTreeVO.java;LowcodeDomainWorkspaceVO.java;AiLowcodeDomainMapper.java;AiLowcodeDomainMapper.xml;LowcodeDomainService.java;LowcodeDomainController.java |
cd forge && mvn -pl forge-admin-server -am compile -DskipTests 通过 |
| 2026-05-20 | 2. 应用领域绑定与模型协议兼容 | done | AiCrudConfig.java;AiCrudConfigVersion.java;LowcodeAppDraftDTO.java;LowcodeMoveDomainDTO.java;LowcodeModelSchema.java;LowcodeDomainRef.java;LowcodeObjectSchema.java;LowcodeRelationSchema.java;LowcodePolicySchema.java;LowcodeAppDetailVO.java;AiCrudConfigMapper.java;AiCrudConfigMapper.xml;AiCrudConfigVersionMapper.xml;LowcodeAppService.java;LowcodeAppController.java;V1.0.8__fix_lowcode_domain_workspace_route.sql |
cd forge && mvn -pl forge-admin-server -am compile -DskipTests 通过;前端手动路由未保留 |
| 2026-05-20 | 3. 发布菜单与版本快照领域化 | done | LowcodePublishService.java;MenuRegisterAdapter.java;MenuRegisterAdapterImpl.java;LowcodeVersionVO.java;SysResourceMapper.java;SysResourceMapper.xml |
cd forge && mvn -pl forge-admin-server -am compile -DskipTests 通过 |
| 2026-05-20 | 4. 领域工作台与应用列表前端 | done | lowcode-crud.js;lowcode-apps.vue;DomainTreePanel.vue;DomainWorkspacePane.vue;DomainEditorDrawer.vue;MoveDomainModal.vue |
pnpm exec eslint --fix ... 通过;NODE_OPTIONS=--max-old-space-size=4096 pnpm build 通过 |
| 2026-05-21 | 5R-F. 交互反馈纠偏 | done | lowcode-apps.vue;lowcode-builder.vue;lowcode-models.vue;DomainTreePanel.vue;LowcodeModelDesigner.vue;DictTypeSelect.vue;V1.0.10__dedupe_lowcode_app_menu.sql |
pnpm exec eslint --fix ... 通过;NODE_OPTIONS=--max-old-space-size=8192 pnpm build 通过;mvn -pl forge-admin-server -am compile -DskipTests 通过;curl -I http://127.0.0.1:5173/ai/lowcode-apps 返回 200 OK |
| 2026-05-21 | 5R-G. 页面设计与预览纠偏 | done | MenuParentSelect.vue;PublishPanel.vue;lowcode-builder.vue;DomainEditorDrawer.vue;StructuredListPageDesigner.vue;LowcodePageBuilder.vue;FormCreateDesignerAdapter.vue;page-schema.js;LowcodePreviewPane.vue |
pnpm exec eslint --fix ... 通过,仅保留既有单文件多组件 warning;NODE_OPTIONS=--max-old-space-size=8192 pnpm build 通过;curl -I http://127.0.0.1:5173/ai/lowcode-builder 返回 200 OK |
| 2026-05-21 | 5R-H. 低代码菜单归位 | done | V1.0.11__reparent_lowcode_menus.sql;tasks.md |
尾随空白检查无输出;mvn -pl forge-admin-server -am compile -DskipTests 通过 |