命令:
pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/AppEditorDrawer.vue 'src/views/app-center/object-designer.[objectCode].vue' src/views/app-center/components/designer/BusinessFormDesigner.vue src/views/app-center/components/designer/BusinessListDesigner.vue src/views/app-center/components/designer/BusinessActionDesigner.vue src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue src/views/app-center/components/designer/form-first/formDesignerSchema.js src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/views/ai/crud-page.vue src/components/ai-form/AiCrudPage.vue
结果:通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home PATH="/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home/bin:${PATH}" mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests
执行目录:forge-server
结果:通过。
备注:首次使用未引用的 PATH 内联赋值时,本机 IntelliJ Maven 路径包含空格导致 shell 拆分失败;已用带引号的 PATH 重跑并通过。
命令:
git diff --check
结果:通过。
AiFormLayoutNodes 使用 24 栅格 span/gutter。命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/components/ai-form/AiFormLayoutNodes.vue src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvasNode.vue src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过,最终复跑输出 ✓ built in 1m 5s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/components/lowcode-builder/page/ListPageGridDesigner.vue forge-admin-ui/src/components/lowcode-builder/page/GridBlockRenderer.vue forge-admin-ui/src/components/ai-form/AiFormLayoutNodes.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvasNode.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
结果:通过。
ListPageGridDesigner.vue 向 GridBlockRenderer.vue 透传 nestedMovingBlockId,使栅格内部能准确识别正在拖动的子组件。GridBlockRenderer.vue 在栅格拖动状态下隐藏普通 cell 边框、子组件 hover/selected 边框和拖动源操作层,避免多层边框叠加。命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过,✓ built in 2m 43s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/components/lowcode-builder/page/ListPageGridDesigner.vue forge-admin-ui/src/components/lowcode-builder/page/GridBlockRenderer.vue
结果:通过。
GridBlockRenderer.vue 新增栅格 cell 显示判断,已有 children 的 cell 不再渲染整块空状态/落点覆盖层。拖入组件 仅在 cell 真实为空且不是当前 active drop cell 时显示。命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/GridBlockRenderer.vue
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过,✓ built in 1m 6s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/components/lowcode-builder/page/GridBlockRenderer.vue
结果:通过。
elementFromPoint 解析当前 cell/画布落点,松手后一次性移动。命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvasNode.vue src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过,✓ built in 1m 1s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/components/lowcode-builder/page/ListPageGridDesigner.vue forge-admin-ui/src/components/lowcode-builder/page/GridBlockRenderer.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvasNode.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue code-copilot/changes/app-entry-page-form-unification/test-spec.md code-copilot/changes/app-entry-page-form-unification/execution-log.md
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvas.vue src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvasNode.vue src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue src/views/app-center/components/designer/forge-form-designer/designerLayoutFactory.js src/views/app-center/components/designer/form-first/formDesignerSchema.js
结果:通过。
备注:首次执行发现 handleDropToTarget 重构后仍引用旧 index 变量、模板缩进和 CSS 换行格式问题;已修复后重跑通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过,✓ built in 58.76s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/components/lowcode-builder/page/ListPageGridDesigner.vue forge-admin-ui/src/components/lowcode-builder/page/GridBlockRenderer.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvas.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvasNode.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/designerLayoutFactory.js forge-admin-ui/src/views/app-center/components/designer/form-first/formDesignerSchema.js
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/components/lowcode-builder/page/page-schema.js src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check
结果:通过。
width: 100%。命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/components/lowcode-builder/page/page-schema.js src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check
结果:通过。
GridBlockRenderer.vue:修正低代码画布中 AiCrudPage 预览容器样式,外层块保持 width: 100%,不再通过 width: max-content 按表格内容撑开,避免出现 n-scrollbar-current-width: 500000px 和搜索输入框异常拉长。AiCrudPage.vue:表格默认 scroll-x 计算同时统计列 width 和 minWidth,让表格在自身内部横向滚动,不把整个 CRUD 页面撑宽。AiCrudPage.vue:publicParams/publicQuery 监听改为稳定内容签名,避免设计器拖拽宽高时仅对象引用变化导致重复 loadList()。命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/GridBlockRenderer.vue src/components/ai-form/AiCrudPage.vue
结果:通过。
备注:用户偏好中的 v20.19.0 本机未安装,本轮使用同为 Node 20 的 v20.19.5;COREPACK_HOME 指向 /private/tmp/corepack,避免 pnpm 尝试写入用户目录时报 EPERM。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过,✓ built in 1m 5s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check
结果:通过。
ListPageGridDesigner.vue:树面板折叠状态从只读态扩展到设计态,外层 grid-item 按 TREE_PANEL_COLLAPSED_WIDTH 收窄,并继续联动右侧主区块视觉宽度。page-schema.js:新增 grid-layout 页面组件,默认 4 列 1 行;保存/同步时清洗栅格 cell children。GridBlockRenderer.vue:新增栅格布局渲染,每个 cell 可作为拖拽落点,cell 内子组件按 100% 宽度渲染。ListPageGridDesigner.vue:属性面板新增栅格布局配置,支持列数、行数、间距、最小高、水平/垂直对齐、边框、背景、格子增删和格子内子组件管理。命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/components/lowcode-builder/page/page-schema.js
结果:通过。
命令:
source ~/.nvm/nvm.sh && nvm use v20.19.5 && COREPACK_HOME=/private/tmp/corepack pnpm --dir forge-admin-ui build
结果:通过,✓ built in 1m 17s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check
结果:通过。
GET /ai/crud-config/render/in_out_crm_follow_record 并附带 X-Inner-Call: true 验证,后端 options.formDesignerSchema 已返回当前设计器 schema,包含 分组标题333 和按钮组件。crud-page.vue 从 formDesignerSchema 生成 editFormLayout 时,只保留绑定字段或有子节点的组件,导致无字段绑定的标题、按钮等独立组件被丢弃。命令:
pnpm --dir forge-admin-ui exec eslint src/views/ai/crud-page.vue
结果:通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。AiCrudPage、AiTable、data-table、查询区和工具栏等 100% 主区块会自动贴到左树右侧,并按画布剩余宽度填充。100% 宽度区块的外层绝对定位改为 left + right: 0,不再输出固定 width: xxxpx,确保画布宽度变化时真实自适应。命令:
pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/page-schema.js
结果:通过。
备注:首次失败,原因是 page-schema.js 中宽度对齐函数误用了外层 source.designWidth,已改为向 normalizeGridItemsForLayout 显式传入 designWidth 后重跑通过。
补充命令:
pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue
结果:通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check
结果:通过。
ForgeFormDesigner.flushDesigner() 改为使用 normalizeFormDesignerSchemaForSave() 输出,保留 defaultFormKey 和 settings.formAssets,避免保存/发布后运行态新增、编辑弹窗与设计器当前表单不一致。命令:
pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/designer/forge-form-designer/ForgeFormDesigner.vue
结果:通过。
命令:
JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home PATH=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests
执行目录:forge-server
结果:通过,BUILD SUCCESS。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormDesigner.vue forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessObjectPublishService.java
结果:通过。
crud-page.vue 中存在 formDesignerSchema 时仍把 baseEditSchema 未使用字段追加回 editSchema 的问题。editSchema。命令:
pnpm --dir forge-admin-ui exec eslint src/views/ai/crud-page.vue
结果:通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/views/ai/crud-page.vue
结果:通过。
{ encrypt: true }。encryptRequest() 对显式加密接口不再吞掉缺密钥或加密异常,避免失败后继续发送明文。hexToBase64/base64ToHex 改为分块转换,修复大 JSON 加密时 Maximum call stack size exceeded。@ApiDecrypt 接口的 @RequestBody 解密对象记录为 [DECRYPTED_REQUEST_BODY_OMITTED],保留路径参数,避免 sys_operation_log.request_params 写入完整明文发布 DTO。命令:
node -e "const { sm4 } = require('./forge-admin-ui/node_modules/sm-crypto'); const CHUNK=0x8000; function hexToBase64(hexString){const chunks=[];let binary='';for(let i=0;i<hexString.length;i+=2){binary+=String.fromCharCode(Number.parseInt(hexString.slice(i,i+2),16));if(binary.length>=CHUNK){chunks.push(binary);binary='';}}if(binary)chunks.push(binary);return btoa(chunks.join(''));} function base64ToHex(base64String){const raw=atob(base64String);const chunks=[];let result='';for(let i=0;i<raw.length;i++){const hex=raw.charCodeAt(i).toString(16);result+=(hex.length===2?hex:'0'+hex);if(result.length>=CHUNK){chunks.push(result);result='';}}if(result)chunks.push(result);return chunks.join('');} const key='0123456789abcdeffedcba9876543210'; const text=JSON.stringify({x:'a'.repeat(300000)}); const enc=hexToBase64(sm4.encrypt(text,key)); const dec=sm4.decrypt(base64ToHex(enc),key); console.log(JSON.stringify({plain:text.length, encrypted:enc.length, roundTrip:dec===text}));"
结果:通过,输出 {"plain":300008,"encrypted":400024,"roundTrip":true}。
命令:
pnpm --dir forge-admin-ui exec eslint src/utils/crypto/sm4.js src/utils/crypto/crypto-interceptor.js src/utils/http/interceptors.js src/api/business-app.js
结果:通过。
命令:
JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home PATH=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-starter-parent/forge-starter-log -am compile -DskipTests
执行目录:forge-server
结果:通过,BUILD SUCCESS。
命令:
pnpm --dir forge-admin-ui build
结果:通过,built in 1m 32s 和复跑 built in 1m 46s。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/utils/crypto/sm4.js forge-admin-ui/src/utils/crypto/crypto-interceptor.js forge-admin-ui/src/utils/http/interceptors.js forge-admin-ui/src/api/business-app.js forge-server/forge-framework/forge-starter-parent/forge-starter-log/src/main/java/com/mdframe/forge/starter/log/aspect/OperationLogAspect.java
结果:通过。
sys_operation_log.request_params,本轮以切面编译和代码路径验证为准。/publish 业务失败原因是发布检查阻断项,不是加解密失败;需在发布检查页修复阻断项后才能发布成功。命令:
pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/designer/forge-form-designer/ForgeFormDesigner.vue src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue src/views/app-center/components/designer/BusinessListDesigner.vue src/components/lowcode-builder/page/ListPageGridDesigner.vue
结果:通过。
命令:
git diff --check -- forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormDesigner.vue forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue forge-admin-ui/src/views/app-center/components/designer/BusinessListDesigner.vue forge-admin-ui/src/components/lowcode-builder/page/ListPageGridDesigner.vue
结果:通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。/ai/business/object/{objectId}/designer 所在 Controller 类有 @ApiDecrypt,保存设计器时后端会解密请求体。crypto_session_key 和 crypto_exchanged=true 后,可能在后端重启、Redis 清空或会话密钥过期后继续用旧密钥加密请求。null,随后 decryptedData.getBytes(...) 触发 NullPointerException。key-exchange.js:页面加载时不再恢复本地旧会话密钥,发现旧 crypto_session_key/crypto_exchanged 后清理,等待路由守卫重新协商。DecryptRequestBodyAdvice:解密结果为空时抛出明确的 IOException,避免 NPE,并提示密钥协商或加密格式问题。BusinessListDesigner.vue:列表预览弹窗内容区改为 align-items: flex-start,只读设计器改为不收缩的 max-content 宽度,横向滚动由弹窗内容区接管。命令:
pnpm --dir forge-admin-ui exec eslint src/utils/crypto/key-exchange.js src/views/app-center/components/designer/BusinessListDesigner.vue
结果:通过。
备注:首次扫描发现 key-exchange.js 既有 console.log 和 JSDoc 警告,已一并修正后重跑通过。
命令:
JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home PATH=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home/bin:$PATH mvn -pl forge-framework/forge-starter-parent/forge-starter-crypto -am compile -DskipTests
执行目录:forge-server
结果:通过,BUILD SUCCESS。
备注:未指定 Java 17 时首次编译失败,错误为当前 shell Java 版本不匹配;使用项目 Java 17 路径后通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check -- forge-admin-ui/src/utils/crypto/key-exchange.js forge-admin-ui/src/views/app-center/components/designer/BusinessListDesigner.vue forge-server/forge-framework/forge-starter-parent/forge-starter-crypto/src/main/java/com/mdframe/forge/starter/crypto/advice/DecryptRequestBodyAdvice.java
结果:通过。
formDefaultValues / submitDefaultParams 进入表单默认值和提交固定参数。命令:
pnpm --dir forge-admin-ui exec eslint src/views/app-center/components/AppEditorDrawer.vue src/components/lowcode-builder/page/CrudDefaultParamsEditor.vue src/components/lowcode-builder/page/ListPageGridDesigner.vue src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
结果:通过。
命令:
pnpm --dir forge-admin-ui exec eslint src/views/ai/crud-page.vue src/components/ai-form/AiCrudPage.vue src/components/ai-form/AiCrudPageProps.js
结果:通过。
备注:按用户偏好尝试执行 source ~/.nvm/nvm.sh && nvm use v20.19.0 ... 时,本机 nvm 返回 N/A: version "N/A" is not yet installed,未进入 eslint;当前 shell 的 node -v 为 v20.20.0,用当前 Node + pnpm 重跑通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home PATH="/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home/bin:${PATH}" mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests
执行目录:forge-server
结果:通过,BUILD SUCCESS。
命令:
git diff --check
结果:通过。
name/value 扩展为 sourceType/sourceField/value:
AiCrudPage 自定义动作运行态解析新参数映射协议,并兼容旧 value 占位符。LowcodeRuntimeConfigBuilder 保留动作参数的 sourceType/sourceField,保留 permissionCode/successBehavior。命令:
pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/components/ai-form/AiCrudPage.vue src/views/ai/crud-page.vue
结果:首次失败,原因是 ${route.xxx} 和 ${system.xxx} 字符串字面量触发 no-template-curly-in-string,改为通过 resolveTemplatePlaceholder() 生成占位符后重跑通过。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home PATH="/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home/bin:${PATH}" mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests
执行目录:forge-server
结果:通过,BUILD SUCCESS。
命令:
git diff --check
结果:通过。
refreshBlock/filterBlock 跨区块调度还未实现;当前支持跳转、请求、确认和成功后返回/刷新页。publishedVersion 对应的 ai_crud_config_version 快照,避免草稿保存覆盖线上入口。permissionCode。test-spec.md,记录本变更增量验证范围和跳过项。命令:
pnpm --dir forge-admin-ui exec eslint src/components/lowcode-builder/page/ListPageGridDesigner.vue src/components/lowcode-builder/page/GridBlockRenderer.vue src/components/lowcode-builder/page/page-schema.js src/components/ai-form/AiCrudPage.vue src/views/ai/crud-page.vue src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
结果:通过。
备注:首次失败,原因是显示条件解析使用正则触发 regexp/no-super-linear-backtracking 和 regexp/no-dupe-characters-character-class,以及事件结果映射链式调用格式触发 antfu/consistent-chaining;已改为手写解析并重跑通过。
命令:
JAVA_HOME=/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home PATH="/Users/yaominliang/Library/Java/JavaVirtualMachines/ms-17.0.15-1/Contents/Home/bin:${PATH}" mvn -pl forge-framework/forge-plugin-parent/forge-plugin-generator -am compile -DskipTests
执行目录:forge-server
结果:通过,BUILD SUCCESS。
命令:
pnpm --dir forge-admin-ui build
结果:通过。
警告:
// 注释,Vite/esbuild 提示 CSS 注释应使用 /* ... */。src/store/index.js 同时被动态和静态导入,Vite 提示不会拆到独立 chunk。命令:
git diff --check
结果:通过。