updated: 2026-05-31
/app-center:收敛为套件导航、业务对象、应用入口三层结构,卡片高度、操作区和移动端布局已稳定。/app-center/suite/CRM:交付验收改为侧栏摘要,阻断项、关键计数、下一步动作更清晰。fcDesigner 在 1024px 下被空栅格列压缩的问题,设计器画布保持稳定最小宽度,窄屏由画布内部横向滚动承载完整设计器。表单设计。AiFormItem 真实运行态组件;后端主子配置生成在编辑区缺少子表 fieldRef 时兜底输出可编辑子表字段。gridColumns、组件 span、labelPlacement、labelWidth 进入 form-create 设计态和 AiCrudPage 运行态同一套编译链路。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint \
src/components/ai-form/AiFormItem.vue \
src/components/ai-form/AiForm.vue \
src/views/app-center/components/designer/BusinessFormDesigner.vue
结果:通过。仍存在 AiForm.vue 既有 vue/no-required-prop-with-default 警告。
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 // 注释、动态/静态 import chunk 和大 chunk 警告。
修复摘要:
AiFormItem 对组织/用户选择组件增加历史别名兼容,避免动态页面退化为普通输入框。AiFormItem 用户选择回填从单一目标字段扩展为候选名称字段集合,并在选择、清空、编辑回填时保持展示文本一致。AiFormItem 组织树选择接入真实组织树选项,并为当前值补齐名称兜底选项。BusinessFormDesigner 保存表单设计时同步生成运行态 fieldSettings,覆盖顺序、span、labelWidth、align、组件类型和 label。LowcodeRuntimeConfigBuilder 运行态编辑字段优先使用设计器覆盖 label/defaultValue,并为组织/用户字段补齐默认回显字段。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint \
src/views/app-center/components/designer/BusinessFormCreateDesigner.vue \
src/views/app-center/components/designer/BusinessListDesigner.vue \
src/views/app-center/components/designer/BusinessRelationDesigner.vue \
src/views/app-center/components/designer/BusinessObjectDesignerShell.vue \
'src/views/app-center/object-designer.[objectCode].vue'
结果:通过。
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 // 注释、动态/静态 import chunk 和大 chunk 警告。
修复摘要:
BusinessFormCreateDesigner 增加销毁态和加载序号保护,避免左侧菜单切换后异步 hydrate 继续调用空 fcDesigner 实例。BusinessListDesigner 移除查询条件、表格列、工具栏、行操作汇总侧栏。BusinessObjectDesignerShell 降低全屏层级,避免 form-create 预览弹层被遮挡。BusinessRelationDesigner 停止在 prop watcher 中反向 emit linkageSchema,保存级联时不再携带未加载或未修改的空关系数组。object-designer.[objectCode].vue 的通用草稿保存不再携带 relations,避免非关系面板保存误覆盖关系。BusinessObjectDesignerDTO 将 fields、relations、designerOptions 改为可空,避免部分保存请求被误判为“清空关系”。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/designer/BusinessFormDesigner.vue src/views/app-center/components/designer/BusinessFormCreateDesigner.vue
结果:通过。
source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint \
src/views/app-center/index.vue \
'src/views/app-center/suite.[suiteCode].vue' \
src/views/app-center/components/BusinessObjectWizardDrawer.vue \
'src/views/app-center/object.[objectCode].vue' \
'src/views/app-center/object-designer.[objectCode].vue' \
src/views/app-center/components/designer/BusinessObjectDesignerShell.vue \
src/components/page-templates/ChildTableEditor.vue \
src/views/app-center/components/designer/BusinessFormCreateDesigner.vue \
src/views/app-center/components/designer/form-first/forgeBusinessComponents.js \
src/views/app-center/components/designer/form-first/forgeToFormCreate.js \
src/views/app-center/components/designer/form-first/formCreateToForge.js \
src/views/ai/crud-page.vue
结果:通过。
source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build
结果:通过。仍存在既有 UnoCSS 图标加载、CSS // 注释、动态/静态 import chunk 和大 chunk 警告。
备注:未加 NODE_OPTIONS 的首次构建在打包阶段因 Node 默认堆内存不足 OOM 退出;加大堆内存后构建成功。
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
结果:通过。
python3 /private/tmp/forge_app_center_visual.py
结果:通过。mock 数据截图覆盖应用中心、CRM 套件页和对象设计器表单页。
本地后端健康检查通过:GET /actuator/health。
使用已登录令牌验证 CRM 客户对象读取型接口均返回 HTTP 200:
GET /ai/business/object/1910000000000000101/designerGET /ai/business/object/1910000000000000101/layout/formGET /ai/business/object/1910000000000000101/fieldsGET /ai/business/object/1910000000000000101/publish-check未直接执行写入型接口:
PUT /ai/business/object/{objectId}/designerPOST /ai/business/object/{objectId}/publish原因:当前本地后端连接共享数据库,直接保存或发布会改写真实草稿和版本。
/private/tmp/forge_app_center_visual/app-center_desktop.png/private/tmp/forge_app_center_visual/app-center_tablet.png/private/tmp/forge_app_center_visual/app-center_mobile.png/private/tmp/forge_app_center_visual/app-center_suite_CRM_desktop.png/private/tmp/forge_app_center_visual/app-center_suite_CRM_tablet.png/private/tmp/forge_app_center_visual/app-center_suite_CRM_mobile.png/private/tmp/forge_app_center_visual/app-center_object_CRM_CUSTOMER_designer?suiteCode=CRM&panel=form_desktop.png/private/tmp/forge_app_center_visual/app-center_object_CRM_CUSTOMER_designer?suiteCode=CRM&panel=form_tablet.png/private/tmp/forge_app_center_visual/app-center_object_CRM_CUSTOMER_designer?suiteCode=CRM&panel=form_mobile.pngeslint . 仍有项目既有问题,已用本变更触达文件的 targeted lint 和全量 build 控制风险。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint src/components/ai-form/AiForm.vue src/components/ai-form/AiFormItem.vue src/components/ai-form/AiCrudPage.vue src/components/ai-form/AiCrudPageProps.js src/views/ai/crud-page.vue src/views/app-center/components/designer/BusinessFormDesigner.vue src/views/app-center/components/designer/form-first/formDesignerSchema.js src/views/app-center/components/designer/form-first/forgeToFormCreate.js src/views/app-center/components/designer/form-first/formCreateToForge.js
结果:通过。仍有既有 AiForm.vue vue/no-required-prop-with-default warning。
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 // 注释、动态/静态 import chunk 和大 chunk 警告。
修复摘要:
AiFormItem 对组织/树选择的远程数据源做有效性判断;空 optionSource 不再挡住默认组织树接口。AiFormItem 远程选项解包支持 RespInfo.data、分页 records/list/rows/items 和嵌套 data,并增强 value/label 字段兜底。labelAlign、editXGap、editYGap,表单设计器和后端运行配置同步保存/输出 rowGap、columnGap,2 列表单默认弹窗宽度提升到 1040px。syncDdl/confirmSyncDdl,后端通过 LowcodeDdlService 预览并执行缺失列同步,继续走 ai:lowcode:deploy-ddl 权限。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint src/components/ai-form/AiForm.vue src/components/ai-form/AiFormLayoutNodes.vue src/views/ai/crud-page.vue src/views/app-center/components/designer/BusinessFormDesigner.vue src/views/app-center/components/designer/BusinessFormCreateDesigner.vue src/views/app-center/components/designer/form-first/formDesignerSchema.js src/views/app-center/components/designer/form-first/forgeToFormCreate.js src/views/app-center/components/designer/form-first/formCreateToForge.js
结果:通过。仍有既有 AiForm.vue vue/no-required-prop-with-default warning。
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 // 注释、动态/静态 import chunk 和大 chunk 警告。
修复摘要:
FormDesignerSchema 中作为虚拟节点保存,保留 form-create 原始类型和布局元数据,避免 fcRow/col/elTabs 等回显成普通输入框。formLayout 树和继承后的字段 span,后端发布运行态下发 options.editFormLayout。AiForm 改为支持递归布局节点,编辑页可以渲染 row/col/card/tabs/collapse/divider,并保留原字段组件、校验和回填逻辑。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint src/router/index.js src/router/guards/tab-guard.js src/store/modules/tab.js src/layouts/components/tab/index.vue src/components/ai-form/AiForm.vue src/views/app-center/index.vue 'src/views/app-center/suite.[suiteCode].vue' 'src/views/app-center/object.[objectCode].vue' 'src/views/app-center/object-designer.[objectCode].vue' src/views/app-center/components/designer/BusinessFormDesigner.vue
结果:通过。仍有既有 AiForm.vue vue/no-required-prop-with-default warning。
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 // 注释、动态/静态 import chunk 和大 chunk 警告。
修复摘要:
skipTab,tab guard 跳过登记并清理遗留桥接 tab。1180px。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/designer/BusinessFormDesigner.vue src/views/app-center/components/designer/BusinessFormCreateDesigner.vue src/views/app-center/components/designer/form-first/formDesignerSchema.js src/views/app-center/components/designer/form-first/forgeToFormCreate.js src/views/app-center/components/designer/form-first/formCreateToForge.js
结果:通过。
source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build
结果:通过。仍存在既有 UnoCSS 图标加载、CSS // 注释、动态/静态 import chunk 和大 chunk 警告。
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
结果:通过。
修复摘要:
BusinessFormDesigner 的单列/两列/三列切换不再只写 layout.gridColumns,会同步重算每个组件的 form-create col.span。BusinessFormCreateDesigner 引入 fcDesigner 官方中文 locale,字段重置和字段追加保留当前画布列数。FormDesignerSchema 增加布局组件中文默认名和英文/原始名称归一化,row/col/card/tabs/collapse/divider 等布局节点回显为中文。formCreateToForge 读回设计器规则时按当前业务列数重新归一化,避免把 form-create 24 栅格的 col.props.span=12 误当成 Forge 两列跨度。BusinessObjectDesignerService 修复空栅格布局保存时 inheritedSpan 被 Java 三元表达式自动拆箱导致的 NPE。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/designer/BusinessFormDesigner.vue
结果:通过。
git diff --check
结果:通过。
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 // 注释、动态/静态 import chunk 和大 chunk 警告。
修复摘要:
BusinessFormDesigner 保存前不再只看字段是否在字段资产里,而是按当前画布组件映射归一化字段;删除字典/引用组件后,未配置的残留字段会自动降为普通文本字段。dictType/referenceObjectCode/referenceDisplayField。BusinessObjectDesignerService.saveDesigner 在后端重建模型字段前做同样兜底,防止旧前端缓存或其它入口绕过前端处理后仍触发“字典字段必须配置字典类型”。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/designer/form-first/formDesignerSchema.js src/views/app-center/components/designer/form-first/forgeToFormCreate.js src/views/app-center/components/designer/form-first/formCreateToForge.js
结果:通过。
git diff --check
结果:通过。
source ~/.nvm/nvm.sh && nvm use v20.19.0 && NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build
结果:通过。仍存在既有 UnoCSS 图标加载、CSS // 注释、动态/静态 import chunk 和大 chunk 警告。
修复摘要:
FormDesignerSchema 增加 ref_... 临时引用识别,布局标题归一化会剥离 fcDesigner 生成的临时 ref。cmp_<componentKey>_<index>。formCreateToForge 不再把 ref_... 当作布局标题、组件 id 或字段编码来源。forgeToFormCreate 回写布局 rule 时不再给非字段组件写 name,避免 fcDesigner 把布局 id 当展示前缀。