362 Commits

Author SHA1 Message Date
roymondchen
1b66ab1b88 refactor(editor): 抽取 serializeConfig 工具统一序列化配置
将分散在 CodeLink、CodeEditor 及 playground 中重复的 serialize-javascript
序列化逻辑收敛为 @editor/utils/editor 的 serializeConfig 并对外导出复用。
2026-06-02 16:34:23 +08:00
roymondchen
8612311db1 feat(editor): 历史记录面板支持自定义扩展 tab 并开放 Bucket/goto 配置
新增 historyListExtraTabs 配置,可在内置页面/数据源/代码块 tab 后追加业务自定义历史 tab。
导出 HistoryListBucket 供复用,GroupRow 支持配置是否允许跳转,Bucket 支持配置是否展示初始项。
2026-06-01 19:21:36 +08:00
roymondchen
a3333e2b4e feat(editor): 新增 hideSidebar 配置支持隐藏左侧面板
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 16:49:10 +08:00
roymondchen
cbc4b25072 feat(editor): 字段对比模式逐项展示差异并补充历史记录面板文档
- CodeSelect/CodeSelectCol/EventSelect/DataSource 等复合字段在对比模式下
  按索引对齐前后值,逐项展示新增/删除/修改高亮,并隐藏写操作按钮
- form 容器/列表/表格支持对比模式只读展示
- 新增「历史记录面板」指南文档,完善表单对比文档及 menu props 说明
- 补充相关单元测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 15:51:47 +08:00
roymondchen
b02aa75ddc feat(editor): 历史记录面板支持单步回滚(类 git revert)
将目标历史步骤的修改作为一次新操作反向应用,不破坏原有栈结构,
page/dataSource/codeBlock 三类 service 均提供 revert 能力;
面板新增关闭按钮、步骤编号展示与合并组卡片样式优化。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 14:19:44 +08:00
roymondchen
c854dfa8bf feat(editor): vs-code 字段对比模式改用 monaco diff 编辑器
- Container.vue 新增「自接管对比」字段类型白名单(当前含 vs-code),命中时只渲染一次组件并透传 model/lastValues/isCompare,由字段内部展示差异
- Code.vue 在 isCompare 模式下切换到 type='diff',使用 monaco 内置 diff 视图替代两个独立编辑器实例
- CodeEditor.vue 补充对 modifiedValues 的 watch,避免 diff 模式下右侧值停留在初始快照
2026-05-28 20:12:46 +08:00
roymondchen
59f4e0edac feat(editor): 历史记录面板支持差异对比
- 新增 HistoryDiffDialog 历史差异对比弹窗
- 新增 CompareForm 表单对比组件
- 抽取 code-block 工具函数到 utils/code-block.ts
- 历史列表面板支持选择两个版本进行对比
2026-05-28 19:49:03 +08:00
roymondchen
62a2ee6693 feat(editor): 历史记录面板支持点击跳转与回到初始状态
- 单步组头部点击跳转到该步骤;合并组头部点击展开/收起,子步行点击跳转到具体步骤
- 列表底部新增「初始」记录项,可一键回到所有修改之前的状态
- editorService/dataSourceService/codeBlockService 新增 goto API;historyService 暴露 cursor 读取器
2026-05-28 18:52:11 +08:00
roymondchen
0446202ba6 feat(editor): 新增历史记录列表面板
- 新增 history-list 模块(面板、Tab、Bucket、GroupRow 与 composables)
- NavMenu 接入历史记录面板入口
- history/editor/codeBlock/dataSource service 配合面板能力调整
- utils/undo-redo 适配新面板
- 扩展 type.ts 相关类型定义
- 新增 history-list-panel.scss 并在 theme.scss 引入
- 补充 history-list 模块完整单元测试
- playground 同步小幅调整
2026-05-28 17:51:52 +08:00
roymondchen
4c855ba50b feat(editor): 写操作支持 doNotPushHistory 选项以跳过历史记录
- editor/codeBlock/dataSource 的 add/update/delete 等接口新增 doNotPushHistory 选项
- 移除不再使用的 editor-history 工具及其单测
- 修复 layer 节点状态在重建时丢失已有 status 的问题
- 同步更新 service 方法文档,新增 dragto 复现用例
2026-05-28 16:03:29 +08:00
roymondchen
b9a6dd5b84 fix(editor): 修复 root 整体替换时图层面板节点状态残留与组件树闪烁问题 2026-05-26 17:06:45 +08:00
roymondchen
eb1c5a3ec1 fix(editor): 属性面板 padding 仅作用于最外层表单
为 PropsPanel 顶层 MForm 增加 .m-editor-props-form-panel-form 专属类名,
将原本挂在通用 .tmagic-design-form 上的 padding 与 tab 样式迁移到该类,
避免子组件中嵌套的 .tmagic-design-form 被错误命中。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 15:57:13 +08:00
roymondchen
f1aedc4ce7 fix(editor): 修复 CodeEditor setValue 时滚动位置与折叠等视图状态丢失
使用 saveViewState/restoreViewState 替代 getPosition/setPosition,并放到
nextTick 中执行,避免被 setAutoHeight 的 setScrollTop(0) 覆盖,导致光标
位置变化时编辑器滚动跳回顶部。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-18 12:09:45 +08:00
roymondchen
df8790042f feat(editor): 导航菜单支持菜单项溢出收纳,新增 NavMenuColumn 组件
- 抽离每列渲染逻辑为 NavMenuColumn 组件,监听容器宽度
- 容器空间不足时自动隐藏溢出项,并通过更多按钮 Popover 展开
- ToolButton 暴露根元素引用,便于父级测量宽度
- design ButtonProps 新增 bg 属性,用于更多按钮的激活态样式
- 补充 NavMenuColumn / NavMenu / ToolButton 的单元测试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 19:33:53 +08:00
roymondchen
aab73249d1 feat(editor): 新增 alwaysMultiSelect 配置开启常驻多选模式
新增编辑器配置项 alwaysMultiSelect(默认 false),开启后无需按住 Ctrl/Meta
键,组件树与画布点击即多选;当 disabledMultiSelect=true 时本配置失效。同步
在 stage 层 ActionManager 暴露 setAlwaysMultiSelect 方法用于运行时切换,并
补充组件树/服务/画布的状态联动、文档与单元测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-11 16:50:40 +08:00
roymondchen
2475a4f901 feat(editor): 新增"已选组件"面板节点双击事件 layer-node-dblclick 与 beforeLayerNodeDblclick 钩子
- TreeNode/Tree 增加 node-dblclick 事件透传
- LayerPanel 默认双击切换可展开节点的展开/收起状态,并向上抛出 node-dblclick
- Sidebar/Editor 暴露 layer-node-dblclick 事件与 beforeLayerNodeDblclick 拦截钩子
- 补充 props/events 文档

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 16:52:15 +08:00
roymondchen
5af9f6e27a feat(editor): 新增 canDropIn 配置统一控制 layer/stage 拖拽放入行为
支持通过 scene 区分图层树、画布拖动、组件库新增三种场景;
返回 false 阻止放入,返回 Id 可重定向放入目标节点。
layer 场景下若禁用某节点的 inner,其子节点的 before/after 也会被同步禁用以避免被绕过。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 16:38:10 +08:00
roymondchen
7ce640627d feat(editor): 新增 stage-top 插槽用于在画布上方插入自定义元素
ScrollViewer 增加 before 具名插槽,Stage 据此暴露 stage-top 插槽,
经 Workspace、Editor 逐层透传,并补充对应类型定义与文档说明。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-07 20:31:25 +08:00
roymondchen
7b870e5908 feat(editor): 面包屑超出父容器 80% 时折叠中间项并对单项打点
- 路径过长时仅保留首项 + ... + 末两项,避免横向溢出工作区
- 单项设置 max-width 并通过内部 span 显示省略号,悬浮 tooltip 展示完整名称
- 通过 ResizeObserver 监听父容器宽度变化实时重测

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-07 19:20:46 +08:00
roymondchen
a520626ef6 feat(editor): getPropsConfig 支持传入 node 参数并修正 CondOpSelectConfig 类型
- props service 的 getPropsConfig 增加可选 data 参数以传递当前节点信息
- 修正 CondOpSelectConfig 的 type 字段为 'cond-op-select'

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-07 16:24:17 +08:00
roymondchen
3cde69f6f9 feat(editor): 支持自定义组件树节点是否可展开的判断函数
新增 layerNodeIsExpandable 配置项,业务方可自定义"已选组件"面板中
节点是否显示为可展开形态。同时导出默认实现 defaultIsExpandable 与
类型 IsExpandableFunction 供第三方复用。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-07 13:53:51 +08:00
roymondchen
b46b571214 feat(editor): 没有参考线时不显示参考线切换按钮
Made-with: Cursor
2026-04-23 15:42:10 +08:00
roymondchen
334569e2d7 feat(editor): 添加 stage beforeDblclick 钩子,支持拦截默认双击行为
在 StageOptions 和 EditorProps 中新增 beforeDblclick 配置项,
该函数返回 false 或 Promise<false> 时将阻止 stage 默认的双击处理逻辑。

Made-with: Cursor
2026-04-07 19:19:00 +08:00
roymondchen
172a7a1c92 feat(editor,stage): 支持双击穿透选中鼠标下方的下一个可选中元素
将 dblclick 处理统一到 Stage.vue,新增 ActionManager.getNextElementFromPoint
方法跳过最上层元素返回下方第二个可选中元素,双击时若无特殊处理则穿透选中下方组件。

Made-with: Cursor
2026-04-07 18:25:35 +08:00
roymondchen
df2d635682 fix(editor): 优化 StageOverlay 双击行为,仅在元素被滚动容器裁剪时打开 overlay
双击页面片容器时直接选中对应页面片;新增 isClippedByScrollContainer
判断元素是否被非页面级滚动容器裁剪,避免不必要的 overlay 弹出。

Made-with: Cursor
2026-04-07 18:25:35 +08:00
roymondchen
71d6dd9e38 feat(editor): monaco-editor改成异步加载 2026-03-12 17:27:07 +08:00
roymondchen
67d93ec35f fix(editor): 显示源码后再显示回编辑器画布空了 2026-03-12 16:35:33 +08:00
roymondchen
cfaaaad66e feat(editor): customCreateMonacoEditor options中新增editorCustomType,可以用于创建不同的editor 2026-01-07 17:38:37 +08:00
roymondchen
70d730ca82 refactor(editor): 新增数据源按钮封装成组件 2025-12-04 17:31:38 +08:00
roymondchen
a2a9556ab8 style(editor): 调整已选组件节点右侧按钮样式 2025-12-04 16:36:34 +08:00
roymondchen
8d55d0cd8d feat(editor): 代码编辑器支持配置自动高度 2025-12-03 17:50:48 +08:00
roymondchen
82df2a8f5c chore: update deps 2025-11-21 16:50:46 +08:00
roymondchen
08b476e04f feat(design,editor,element-plus-adapter,form,table,tdesign-vue-next-adapter): 重构table组件,适配tdesign 2025-11-12 19:52:30 +08:00
roymondchen
f5cb19dfa4 style(editor): 页面列表长度超过可视窗口时出现滚动条 2025-09-12 15:32:03 +08:00
qyaniwu
07b8f5fe83 fix(editor): 修复代码块编辑器的更新内容后按下ctrl+s光标会偏移的问题 2025-07-24 04:13:02 +00:00
roymondchen
727af1058d fix(editor): 页面列表滚动条 2025-07-02 18:00:21 +08:00
roymondchen
ee06c26ca5 refactor(editor): dsl更新后通知runtime更新代码优化 2025-07-02 16:21:03 +08:00
roymondchen
9e590c5cf7 feat(editor): 新增props-panel-unmounted事件 2025-06-26 21:06:21 +08:00
roymondchen
b6a260471d fix(editor,react-runtime-help,vue-runtime-help): 修复拖动页面顺序失效问题 2025-06-20 20:10:24 +08:00
roymondchen
32681964b3 feat(editor): stage overlay 支持放大缩小 2025-06-20 19:47:51 +08:00
roymondchen
6152a78467 feat(editor): 支持禁用数据源与代码块 2025-06-09 16:35:08 +08:00
roymondchen
0bd8496fac refactor(editor,stage): 完善页面变化后画布大小更新 2025-06-06 19:29:20 +08:00
roymondchen
3097e8eddb feat(editor): 支持配置自定义创建Monaco editor函数 2025-06-06 16:03:56 +08:00
roymondchen
de52ff4fe1 fix(editor): 编辑数据源/代码块时,列表高亮 2025-04-24 14:02:34 +08:00
roymondchen
e7e9197ae3 style: 更新eslint版本,更新eslint配置 2025-04-21 20:35:54 +08:00
roymondchen
54e00f2852 feat(editor): 编辑代码块/数据源时高亮列表中对应的项 2025-04-10 20:36:38 +08:00
roymondchen
775fcf5693 fix(editor): 样式配置宽度不能为负 2025-03-04 14:09:28 +08:00
roymondchen
413134b21d feat(editor): 优化依赖收集状态显示,新增剩余任务数量显示 2025-02-11 19:25:28 +08:00
roymondchen
6d82c0f730 fix(editor): 组件配置列大小缓存不生效 2025-02-11 17:25:58 +08:00
roymondchen
900b701c80 refactor(editor): 新增useServices hook,减少使用可选链 2025-02-11 16:24:24 +08:00