拆分顺序:数据模型 → 接口协议 → 底层实现 → 上层编排 → 入口层 每个任务 = 可独立提交的原子变更(3-5 个文件) 每个任务必须精确到文件路径和函数签名
code-copilot/changes/lowcode-form-designer-smooth-dnd/spec.md。BusinessFormCreateDesigner,FormCreate 只作为回退。/test 或阶段验证前读取 code-copilot/rules/automated-testing-standard.md。本轮状态:已完成首批组件树查找、插入、移动、删除、复制、属性更新工具;后续补单元测试。
formDesignerSchema.components 的纯函数,避免组件里散落深拷贝和路径处理。forge-admin-ui/src/views/app-center/components/designer/form-first/formDesignerSchema.js — 增强组件树路径、插入、移动、删除、复制、容器判断工具。forge-admin-ui/src/views/app-center/components/designer/form-first/formDesignerSchema.spec.js — 新增或补充工具函数测试。js
export function findDesignerComponentPath(schema, componentId) {}
export function insertDesignerComponent(schema, target, component) {}
export function moveDesignerComponent(schema, sourceId, target) {}
export function removeDesignerComponent(schema, componentId) {}
export function duplicateDesignerComponent(schema, componentId) {}
export function canAcceptDesignerChild(parentComponent, childComponent) {}
fieldBinding、validation、props。本轮状态:左侧字段/布局拖入仍保留 native drag;画布内已有节点移动已改为 Pointer 拖拽,拖拽手柄
pointerdown开启自管会话,pointermove直接驱动跟手镜像和共享落点 active 状态,pointerup一次性调用moveDesignerComponent()。落点状态已抽到designerDragState.js共享,保证同一时间只出现一个单层灰色虚线落点块。FLIP 重排和更完整的独立 composable 仍待后续实现。
forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/useForgeDesignerDrag.js — 新增拖拽状态和指针事件逻辑。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/drag-animation.css — 新增拖拽动效 token 和 class。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/useForgeDesignerDrag.spec.js — 新增落点计算测试。js
export function useForgeDesignerDrag(options) {}
function startDrag(payload, pointerEvent) {}
function updateDrag(pointerEvent) {}
function endDrag(pointerEvent) {}
function cancelDrag() {}
function resolveDropTarget(pointer, registry) {}
transform: translate3d() 跟手。grab 到 grabbing 变化。prefers-reduced-motion: reduce 下禁用重排动画,仅保留落点高亮。本轮状态:已完成首版画布、真实表单控件预览、节点悬浮手柄、选中工具条、1-6 列根级 grid、行列间距、空容器投影和栅格列投放限制;CRUD 区块设计态已改为真实
AiCrudPagelazy 渲染并复用子字段生成 search/edit/columns,且支持通过字段用途配置决定查询条件、表格列和编辑弹窗字段;卡片、标签页、折叠面板已改为真实 Naive 组件包裹设计器节点;高级跟手镜像与 FLIP 动效待后续增强。
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/ForgeDropIndicator.vue — 新增落点和双胞胎阴影组件。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeDragOverlay.vue — 新增跟手镜像组件。vue
<ForgeFormCanvas
v-model:schema="localSchema"
:fields="fields"
:selected-id="selectedId"
@update:selected-id="selectedId = $event"
@dirty-change="emit('dirtyChange', true)"
/>
本轮状态:已完成字段/布局面板首版,支持搜索、字段分组、基础组件分组、布局分组、hover 手柄、点击添加和拖拽 payload;2026-06-16 补充输入/选择/业务组件分组,新增表格布局和 CRUD 区块模板入口,拖拽手柄统一为 6 点 DragOutlined SVG;本轮进一步把组件库改为更紧凑的工具箱样式,分组标题带数量,字段列表和组件按钮视觉统一,并对齐
AiFormItem已支持组件,新增颜色选择、滑块、评分、按钮单选、级联、树选择、远程选择、日期/时间范围、年月和文本展示模板;本轮新增按钮组件入口,拖入后按真实 NaiveNButton在画布预览,可在属性面板配置点击交互。
forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFieldShelf.vue — 新增字段资产面板。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeLayoutPalette.vue — 新增布局组件面板。forge-admin-ui/src/views/app-center/components/designer/BusinessFormDesigner.vue — 接入新字段库或移除旧重复字段库。vue
<ForgeFieldShelf
:fields="primaryDesignFields"
:used-field-set="usedFieldSet"
@append-field="appendField"
@start-drag="drag.startFromShelf"
/>
本轮状态:已完成属性面板首版,支持“基础 / 布局 / 状态”页签、常用字段属性、表单列数、row 栅格列数/间距、col 容器属性和回到表单属性;2026-06-16 调整为更紧凑的工具面板视觉,选中摘要和属性分区更清晰;本轮改为右侧栏默认收起,点击节点“更多 -> 配置”再打开,并新增 CRUD 区块的
AiCrudPage.apiConfig、行主键、查询分页、导入导出和弹窗配置;本轮进一步按飞书式线型 Tab 重做配置结构,补齐AiForm的尺寸、标签、间距、反馈和表单样式配置,以及AiCrudPage的搜索表单、表格、编辑表单、弹窗、分页、工具栏和导入导出配置;颜色相关配置已改为颜色选择器,表单列数改为 1-6 滑块 + 数字输入,样式配置新增 padding/margin 四边编辑,并修正窄面板数字输入被加减按钮挤压的问题;基础配置页签已改为折叠分组,CRUD 页签新增字段用途矩阵;本轮删除重复的selected-summary,按当前 Naive UI 类型定义补充 Card/Tabs/Collapse/日期时间常用 props,并把 CRUD API、弹窗分页、导入导出和开关类低频项收到“更多配置”抽屉;本轮新增组件级“更多属性”抽屉,覆盖输入、数字、选择、单选、多选、开关、滑块、评分、颜色、级联、树选、日期时间、Card、Tabs、Collapse 的可序列化 Naive props,多选选项支持 option props JSON;CRUD 字段选中后新增查询条件、表格列和编辑弹窗的字段级配置;本轮将更多属性标签改为中文说明 + prop 名,CRUD 面板改为“字段与列配置”卡片,列标题/列宽/对齐/固定/省略/排序直接可见,并移除 CRUD 画布中重复的顶部标题块和底部字段节点区域;本轮为 Tabs/Collapse 增加子页签/面板管理,可新增、重命名、设置 name、排序、删除和进入内容配置;新增“交互”页签,支持为组件声明 click/change/focus/blur/clear/mounted 事件和 setValue/clearValue/setOptions/openModal/apiRequest 等动作;新增“源码”页签,可查看并编辑当前组件 JSON 或整个表单 Schema JSON。
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/ForgeFieldPropertyEditor.vue — 新增字段属性编辑。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeLayoutPropertyEditor.vue — 新增布局属性编辑。forge-admin-ui/src/views/app-center/components/designer/form-first/formDesignerSchema.js — 增加属性更新工具。js
export function updateDesignerComponent(schema, componentId, patch) {}
export function updateDesignerLayout(schema, patch) {}
dictType 但不得硬编码选项。本轮状态:已完成主容器首版并接入
BusinessFormDesigner,默认新版画布,旧 FormCreate 画布可回退;新增左侧组件库收起/展开以扩大画布;本轮新增右侧属性栏默认收起和窄轨入口,属性栏打开后切换节点保持配置面板连续工作。
BusinessFormCreateDesigner 的主组件。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormDesigner.vue — 新增主设计器。forge-admin-ui/src/views/app-center/components/designer/BusinessFormDesigner.vue — 将主表单画布替换为 ForgeFormDesigner。forge-admin-ui/src/views/app-center/components/designer/BusinessFormCreateDesigner.vue — 保留回退,不再作为默认主链路。vue
<ForgeFormDesigner
ref="forgeFormDesignerRef"
v-model="localFormDesignerSchema"
:fields="primaryDesignFields"
:object-code="objectCode"
:object-name="objectName"
@dirty-change="emit('dirtyChange', $event)"
/>
BusinessFormDesigner 原有 appendField()、appendAllUnusedFields()、saveLayout()、syncDesignerDraft() 行为保持。syncFormDesignerSchemaToPageSchema() 继续生成 fieldSettings 和 formLayout。本轮状态:已新增
forge-form-designer/README.md,说明模块职责和 Schema 纯函数边界。
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/useForgeDesignerDrag.js — 为 FLIP、碰撞检测、落点计算增加意图注释。forge-admin-ui/src/views/app-center/components/designer/form-first/formDesignerSchema.js — 为组件树路径和移动操作增加必要注释。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/README.md — 如组件数量较多,新增模块职责说明。关键签名: ```md
验收点:
本轮状态:已让
AiFormLayoutNodes消费row.props.columns,设计态栅格列数可传递到运行态;更完整的浏览器验证待后续补充。
AiFormLayoutNodes 中渲染一致。forge-admin-ui/src/components/ai-form/AiFormLayoutNodes.vue — 补齐设计器输出节点所需的 class/style/span 支持。forge-admin-ui/src/views/ai/crud-page.vue — 检查 hydrateRuntimeLayoutNode() 对新增布局 meta 的水合。forge-admin-ui/src/views/app-center/components/designer/BusinessFormDesigner.vue — 检查 buildRuntimeFormLayoutNode() 输出。js
function hydrateRuntimeLayoutNode(node = {}, fieldMap, usedFields) {}
function buildRuntimeFormLayoutNode(component = {}, index = 0, fieldSet, gridColumns) {}
formCreateRule 不再影响新主链路结果。crm_follow_record 提供开箱即用的清晰布局模板,验证真实业务对象体验。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/formTemplates.js — 新增推荐模板定义。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeTemplatePicker.vue — 新增模板选择入口。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormDesigner.vue — 接入模板应用。js
export function buildFollowRecordFormTemplate(fields, options = {}) {}
export function applyDesignerTemplate(schema, template) {}
forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgeFormCanvasNode.vue — 补焦点、键盘和 aria。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue — 补表单 label 和 focus 管理。forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/drag-animation.css — 补 reduced-motion。js
function handleNodeKeydown(event, component) {}
function moveSelectedComponent(direction) {}
code-copilot/changes/lowcode-form-designer-smooth-dnd/test-spec.md — 新增测试方案。code-copilot/changes/lowcode-form-designer-smooth-dnd/execution-log.md — 追加执行日志。forge-docs/guide/conventions.md 或专题文档 — 如需,补充表单设计器协议说明。bash
cd forge-admin-ui && pnpm build
cd forge-admin-ui && pnpm lint:fix
crm_follow_record 可完成设计、保存、预览、发布、打开运行应用。execution-log.md 记录命令、结果、警告、跳过项和服务清理情况。