本文件记录当前变更的自动化验证基线。详细执行证据以
execution-log.md为准。
source ~/.nvm/nvm.sh && nvm use v20.19.0
cd forge-admin-ui
NODE_ENV=development pnpm vitest run src/components/flow-designer
pnpm build
NodeCard、FlowCanvas、添加节点按钮/菜单、分支标签、连线颜色、画布布局尺寸、自动居中,以及 vite.config.js 过期 optimizeDeps.include 清理。pnpm exec eslint 针对本轮触达文件。NODE_ENV=development pnpm vitest run src/components/flow-designer。pnpm build。execution-log.md。initiator,配置面板不再提供可编辑输入。formKey/formJson/formUrl,流程表单回到流程模型全局表单配置。pnpm exec eslint 针对本轮触达文件。NODE_ENV=development pnpm vitest run 针对转换器、设计器和节点卡片测试。NODE_ENV=development pnpm vitest run src/components/flow-designer。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。src/views/flow/design.vue,把顶部流程属性/表单配置/说明配置区收口到右侧固定面板。pnpm exec eslint src/views/flow/design.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。src/views/flow/design.vue,根据用户反馈把“流程设计 / 更多设置”从右侧面板移到页面顶部。pnpm exec eslint src/views/flow/design.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。127.0.0.1:5173,记录在 execution-log.md。src/components/flow-designer/panel/* 节点属性抽屉与审批人配置面板。pnpm exec eslint 针对本轮触达的 panel 文件。NODE_ENV=development pnpm vitest run src/components/flow-designer/__tests__/DingFlowDesigner.spec.js。NODE_ENV=development pnpm vitest run src/components/flow-designer。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。127.0.0.1:5173,记录在 execution-log.md。src/components/flow-designer/panel/ApproverAssigneeForm.vue、src/components/flow-designer/panel/ListenerConfig.vue。${user_xxx} 表达式输入。/system/role/page 角色列表选择,不再手输角色编码。/api/flow/spelTemplate/list 模板下拉选择,选择后自动维护内部表达式。pnpm exec eslint src/components/flow-designer/panel/ApproverAssigneeForm.vue src/components/flow-designer/panel/ListenerConfig.vue。NODE_ENV=development pnpm vitest run src/components/flow-designer/__tests__/DingFlowDesigner.spec.js。NODE_ENV=development pnpm vitest run src/components/flow-designer。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。http://127.0.0.1:3000/,HTTP 冒烟 200;当前环境缺少 Python/Node Playwright 包且不安装新依赖,未执行截图级自动化验证。DingFlowViewer 运行态数据适配,以及待办、已办、我发起、流程监控、低代码流程详情页面的查看器引用。diagram-info 后端返回的 ProcessDiagramInfo.nodes 能被新查看器识别,不再只依赖旧的 nodeInstanceList。running/completed/terminated。DingFlowViewer,避免旧组件名误导。pnpm exec eslint 针对本轮触达的 viewer 和业务入口文件。NODE_ENV=development pnpm vitest run src/components/flow-designer/viewer/__tests__/DingFlowViewer.spec.js。NODE_ENV=development pnpm vitest run src/components/flow-designer。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。http://127.0.0.1:3000/ 并执行 HTTP 冒烟 200;当前环境未安装 Playwright/Puppeteer,未执行截图级自动化验证。FlowCanvas、DingFlowViewer、NodeCard、运行态布局引擎及对应测试。DingFlowViewer 加载流程后按画布边界自动适配可视区。pnpm exec eslint 针对本轮触达的 canvas、viewer、nodes 文件。NODE_ENV=development pnpm vitest run 针对 FlowCanvas、node-cards、DingFlowViewer。NODE_ENV=development pnpm vitest run src/components/flow-designer。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。http://127.0.0.1:3000/ 并执行 HTTP 冒烟 200;当前环境未安装 Playwright/Puppeteer,未执行截图级自动化验证。src/components/flow-designer/viewer/NodeDetailPopover.vue 及查看器相关测试。pnpm exec eslint 针对 NodeDetailPopover.vue、NodeDetailPopover.spec.js 和查看器文件。NODE_ENV=development pnpm vitest run 针对 NodeDetailPopover 和 DingFlowViewer。NODE_ENV=development pnpm vitest run src/components/flow-designer。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。http://127.0.0.1:3000/ 并执行 HTTP 冒烟 200;当前环境未安装 Playwright/Puppeteer,未执行截图级自动化验证。src/components/flow/FlowTaskDetailShell.vue、src/views/flow/todo.vue、src/views/flow/done.vue、src/views/flow/started.vue。pnpm exec eslint src/components/flow/FlowTaskDetailShell.vue src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。http://127.0.0.1:3000/ 并执行 HTTP 冒烟 200;当前环境未安装 Python Playwright,未执行截图级自动化验证。src/components/flow/FlowTaskDetailShell.vue 右侧审批记录区。pnpm exec eslint src/components/flow/FlowTaskDetailShell.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。git diff --check。src/components/flow/FlowStats.vue、src/components/flow/FlowTaskCardList.vue、src/views/flow/todo.vue、src/views/flow/done.vue、src/views/flow/started.vue、src/views/flow/cc.vue。FlowTaskCardList。git diff --check。pnpm exec eslint src/components/flow/FlowStats.vue src/components/flow/FlowTaskCardList.vue src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue src/views/flow/cc.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。http://127.0.0.1:3000/,首页和本轮动态模块 HTTP 冒烟均返回 200;当前环境未安装 Playwright,未执行截图级自动化验证。src/components/flow/FlowTaskCardList.vue、src/views/flow/todo.vue、src/views/flow/done.vue、src/views/flow/started.vue、src/views/flow/cc.vue。approveTask / rejectTask API,候选任务先签收;需要动态表单、外部表单或手写签名的任务提示进入详情处理。git diff --check。pnpm exec eslint src/components/flow/FlowTaskCardList.vue src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue src/views/flow/cc.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。http://127.0.0.1:3000/,首页以及 todo.vue、done.vue、started.vue、cc.vue 动态模块 HTTP 冒烟均返回 200;当前环境未安装 Playwright,未执行截图级自动化验证。src/components/flow/FlowTaskCardList.vue、src/views/flow/todo.vue、src/views/flow/done.vue、src/views/flow/started.vue、src/views/flow/cc.vue。FlowTaskCardList 设置 width: 100%,避免共享列表组件自身产生二次收缩。git diff --check。pnpm exec eslint src/components/flow/FlowTaskCardList.vue src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue src/views/flow/cc.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。src/utils/flow-task-layout.js、src/layouts/top-menu/index.vue、src/layouts/top-side-menu/index.vue、src/layouts/full/index.vue、src/layouts/simple/index.vue、src/layouts/bento/index.vue、src/layouts/immersive/index.vue、src/layouts/nexus/index.vue。top-menu 布局下,流程任务列表不再被外层 p-12 内容区压窄。top-side-menu、full、simple、bento、immersive、nexus 布局切换时,同一批流程任务列表路由也取消外层内容 padding。/flow/todo、/flow/done、/flow/started、/flow/cc 生效,不影响其它后台页面通用间距。git diff --check。pnpm exec eslint src/utils/flow-task-layout.js src/layouts/top-menu/index.vue src/layouts/top-side-menu/index.vue src/layouts/full/index.vue src/layouts/simple/index.vue src/layouts/bento/index.vue src/layouts/immersive/index.vue src/layouts/nexus/index.vue。pnpm exec eslint src/components/flow/FlowTaskCardList.vue src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue src/views/flow/cc.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。http://127.0.0.1:3000/,/flow/todo、top-menu 布局模块、新增工具模块和 todo.vue 动态模块 HTTP 冒烟均返回 200;当前环境未执行截图级自动化验证。src/components/flow/FlowTaskCardList.vue。width: 100%,只占当前内容区可用宽度。width: 100%,避免内部中间层收缩。git diff --check。pnpm exec eslint src/components/flow/FlowTaskCardList.vue src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue src/views/flow/cc.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。src/components/flow/FlowTaskCardList.vue、src/views/flow/done.vue、src/views/flow/started.vue。git diff --check。pnpm exec eslint src/components/flow/FlowTaskCardList.vue src/views/flow/done.vue src/views/flow/started.vue。src/components/flow/FlowTaskCardList.vue、src/views/flow/todo.vue。justify-content: flex-end,已办和发起列表单动作保持行尾对齐。info / danger / success / primary 颜色区分,保留业务操作辨识度。git diff --check。pnpm exec eslint src/components/flow/FlowTaskCardList.vue src/views/flow/todo.vue src/views/flow/done.vue src/views/flow/started.vue。src/components/flow/FlowTaskCardList.vue、src/views/flow/done.vue、src/views/flow/started.vue。git diff --check。pnpm exec eslint src/components/flow/FlowTaskCardList.vue src/views/flow/done.vue src/views/flow/started.vue。src/components/flow-designer/nodes/NodeCard.vue。readonly 节点卡片,不影响流程设计器编辑态节点删除、选中和 hover 行为。git diff --check。pnpm exec eslint src/components/flow-designer/nodes/NodeCard.vue src/components/flow-designer/viewer/DingFlowViewer.vue。src/components/flow-designer/nodes/NodeCard.vue、src/components/flow-designer/viewer/NodeDetailPopover.vue、相关单测。readonly 节点不再显示 subtitle、默认插槽和 title-extra,避免暴露 SPEL、表达式、会签等流程配置内容。git diff --check。pnpm exec eslint src/components/flow-designer/nodes/NodeCard.vue src/components/flow-designer/viewer/NodeDetailPopover.vue src/components/flow-designer/nodes/__tests__/node-cards.spec.js src/components/flow-designer/viewer/__tests__/NodeDetailPopover.spec.js src/components/flow-designer/viewer/DingFlowViewer.vue。pnpm vitest run src/components/flow-designer/nodes/__tests__/node-cards.spec.js src/components/flow-designer/viewer/__tests__/NodeDetailPopover.spec.js。src/views/flow/model.vue。git diff --check。pnpm exec eslint src/views/flow/model.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。//padding 注释 warning 和 src/store/index.js 动静态混合导入 warning,本轮未引入。未启动 dev server,未执行截图级自动化验证。src/views/flow/monitor.vue。git diff --check。pnpm exec eslint src/views/flow/monitor.vue。pnpm build,本轮未重复执行长构建,未启动 dev server 和截图验证。src/views/flow/monitor.vue。task-row-link-action 视觉:青绿色文字、透明底、浅青 hover、14px 加粗文字。git diff --check。pnpm exec eslint src/views/flow/monitor.vue。pnpm build,本轮未重复执行长构建,未启动 dev server 和截图验证。src/views/flow/monitor.vue。NDataTable 列 render 生成的按钮通过 :deep(.monitor-row-link-action) 匹配,避免 scoped 样式只编译为带 scope 属性的选择器后无法命中表格内部 DOM。#177c7d !important,文字和图标通过 currentColor 继承,覆盖默认灰色按钮文本。git diff --check。pnpm exec eslint src/views/flow/monitor.vue。src/views/flow/todo.vue。dist/assets/todo-B8Vb9fog.js 中残留的新版待办页面产物恢复源码结构。FlowTaskCardList,恢复任务条目式列表、搜索、分类/状态筛选、刷新、分页和选中态。FlowTaskDetailShell 全屏展开,保留动态表单、外部表单、签名、转办和流程图能力。pnpm exec eslint src/views/flow/todo.vue。git diff --check。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。//padding 注释 warning 和 src/store/index.js 动静态混合导入 warning,本轮未引入。未启动 dev server 和截图验证。src/views/home/index.vue。/home 待办任务从装饰化卡片行改为更像工作台的扁平任务列表。taskId 查询参数,匹配待办页当前详情打开逻辑。pnpm exec eslint src/views/home/index.vue。git diff --check。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。//padding 注释 warning 和 src/store/index.js 动静态混合导入 warning,本轮未引入。未启动 dev server 和截图验证。src/views/flow/todo.vue。default/info 灰蓝色。pnpm exec eslint src/views/flow/todo.vue。git diff --check。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。//padding 注释 warning 和 src/store/index.js 动静态混合导入 warning,本轮未引入。未启动 dev server 和截图验证。src/views/flow/todo.vue、FlowTask 实体、FlowTaskMapper、FlowTaskServiceImpl、FlowTaskMapper.xml。businessType / leave_multi 当作“流程分类”展示。sys_flow_model.model_name 返回 processName。processName,异常数据再回退到原有字段。selectByTaskId 从注解 SQL 迁移到 Mapper XML,符合项目复杂查询统一写 XML 的约定。pnpm exec eslint src/views/flow/todo.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-framework/forge-plugin-parent/forge-plugin-flow -am compile -DskipTests。NODE_OPTIONS=--max-old-space-size=8192 pnpm build。//padding 注释 warning 和 src/store/index.js 动静态混合导入 warning,本轮未引入。未启动 dev server 和截图验证。