tmagic-editor/docs/api/editor/codeBlockServiceMethods.md
roymondchen de94a75803 refactor(editor): 移除 BaseService 废弃的 use/middleware 机制
- 删除已 @deprecated 的 BaseService.use 方法及其 middleware 通道

- 删除 utils/compose.ts 及对应测试(仅服务于 middleware,无其他引用)

- editor.ts 移除 safeOptions/safeParent 兜底,相关方法 options 改用形参默认值

- props.ts fillConfig 的 labelWidth 改为形参默认值,移除 typeof function 兜底

- 同步更新 5 份 service 方法文档,删除 ## use 章节
2026-05-27 18:55:38 +08:00

5.9 KiB
Raw Blame History

codeBlockService方法

setCodeDsl

  • 参数:

    • {CodeBlockDSL} codeDsl 代码块DSL

    ::: details 查看 CodeBlockDSL 及关联类型定义 <<< @/../packages/schema/src/index.ts#CodeBlockDSL{ts}

    <<< @/../packages/schema/src/index.ts#CodeBlockContent{ts}

    <<< @/../packages/schema/src/index.ts#CodeParam{ts} :::

  • 返回:

    • {Promise<void>}
  • 详情:

    设置活动的代码块dsl数据源并触发 code-dsl-change 事件

getCodeDsl

  • 返回:

    • {CodeBlockDSL | null}
  • 详情:

    获取活动的代码块dsl数据源默认从dsl中的codeBlocks字段读取

getCodeContentById

  • 参数:

    • {string | number} id 代码块id
  • 返回:

    • {CodeBlockContent | null}
  • 详情:

    根据代码块id获取代码块内容

setCodeDslById

  • 扩展支持

  • 参数:

    • {string | number} id 代码块id
    • {Partial<CodeBlockContent>} codeConfig 代码块内容配置信息
  • 返回:

    • {Promise<void>}
  • 详情:

    设置代码块ID和代码内容到源dsl强制写入底层调用 setCodeDslByIdSync

setCodeDslByIdSync

  • 参数:

    • {string | number} id 代码块id
    • {Partial<CodeBlockContent>} codeConfig 代码块内容配置信息
    • {boolean} force 是否强制写入,默认 true;为 false 时若同 id 已存在则跳过
  • 返回:

    • {void}
  • 详情:

    同步版本的 setCodeDslById,并会触发 addOrUpdate 事件

getCodeDslByIds

  • 参数:

    • {string[]} ids 代码块id数组
  • 返回:

    • {CodeBlockDSL} 命中的代码块dsl
  • 详情:

    根据代码块id数组获取代码dsl

getEditStatus

  • 返回:

    • {boolean} 是否可编辑
  • 详情:

    获取当前编辑状态

setEditStatus

  • 扩展支持

  • 参数:

    • {boolean} status 是否可编辑
  • 返回:

    • {Promise<void>}
  • 详情:

    设置代码块编辑状态

setCombineIds

  • 扩展支持

  • 参数:

    • {string[]} ids 代码块id数组
  • 返回:

    • {Promise<void>}
  • 详情:

    设置当前选中组件已关联绑定的代码块id数组

getCombineIds

  • 返回:

    • {string[]} 代码块id数组
  • 详情:

    获取当前选中组件已关联绑定的代码块id数组

getUndeletableList

  • 返回:

    • {(string | number)[]} 代码块id数组
  • 详情:

    获取不可删除列表

setUndeleteableList

  • 扩展支持

  • 参数:

    • {(string | number)[]} codeIds 代码块id数组
  • 返回:

    • {Promise<void>}
  • 详情:

    设置不可删除列表:为业务逻辑预留的不可删除的代码块列表,由业务逻辑维护(如代码块上线后不可删除)

setCodeDraft

  • 参数:

    • {string | number} codeId 代码块id
    • {string} content 代码草稿内容
  • 返回:

    • {void}
  • 详情:

    将代码草稿写入 localStorage

getCodeDraft

  • 参数:

    • {string | number} codeId 代码块id
  • 返回:

    • {string | null} 代码草稿内容
  • 详情:

    从 localStorage 读取代码草稿

removeCodeDraft

  • 参数:

    • {string | number} codeId 代码块id
  • 返回:

    • {void}
  • 详情:

    删除 localStorage 中的代码草稿

deleteCodeDslByIds

  • 扩展支持

  • 参数:

    • {(string | number)[]} codeIds 需要删除的代码块id数组
  • 返回:

    • {Promise<void>}
  • 详情:

    在dsl数据源中删除指定id的代码块每删除一个会触发一次 remove 事件

setParamsColConfig

  • 参数:

    • {TableColumnConfig} config 参数列配置
  • 返回:

    • {void}
  • 详情:

    设置代码块入参表格列配置

getParamsColConfig

  • 返回:

    • {TableColumnConfig | undefined} 参数列配置
  • 详情:

    获取代码块入参表格列配置

getUniqueId

  • 返回:

    • {Promise<string>} 代码块唯一id
  • 详情:

    生成代码块唯一id格式为 code_xxxx与已有id冲突时会递归重试

copyWithRelated

  • 参数:

    • {MNode | MNode[]} config 组件节点配置
    • {TargetOptions} collectorOptions 可选的依赖收集器配置

    ::: details 查看 MNode 及关联类型定义 <<< @/../packages/schema/src/index.ts#MNode{ts}

    <<< @/../packages/schema/src/index.ts#MComponent{ts}

    <<< @/../packages/schema/src/index.ts#MContainer{ts}

    <<< @/../packages/schema/src/index.ts#MIteratorContainer{ts}

    <<< @/../packages/schema/src/index.ts#MPage{ts}

    <<< @/../packages/schema/src/index.ts#MApp{ts}

    <<< @/../packages/schema/src/index.ts#MPageFragment{ts} :::

  • 返回:

    • {void}
  • 详情:

    复制组件时会带上组件关联的代码块将关联的代码块dsl存储到 localStorage

paste

  • 返回:

    • {void}
  • 详情:

    粘贴代码块。从 localStorage 读取已复制的代码块dsl并写入当前dsl已存在同id的代码块不会被覆盖

resetState

  • 返回:

    • {void}
  • 详情:

    重置 codeBlockService 状态

destroy

  • 返回:

    • {void}
  • 详情:

    销毁 codeBlockService重置状态并移除所有事件监听和插件

usePlugin

  • 详情:

    usePlugin支持灵活细致的扩展 上述方法中标记有扩展支持: 是的方法都支持使用usePlugin扩展

每个支持扩展的方法都支持定制before、after两个hook来干预原有方法的行为before可以用于修改传入参数after可以用于修改返回的值

removeAllPlugins

  • 详情:

删掉当前设置的所有扩展