- editor/codeBlock/dataSource 的 add/update/delete 等接口新增 doNotPushHistory 选项 - 移除不再使用的 editor-history 工具及其单测 - 修复 layer 节点状态在重建时丢失已有 status 的问题 - 同步更新 service 方法文档,新增 dragto 复现用例
6.9 KiB
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 代码块内容配置信息 {Object}options 可选配置{boolean}doNotPushHistory 是否不写入历史记录(默认 false)
-
返回:
{Promise<void>}
-
详情:
设置代码块ID和代码内容到源dsl,强制写入;底层调用 setCodeDslByIdSync
setCodeDslByIdSync
-
参数:
{string | number}id 代码块id- {Partial<
CodeBlockContent>} codeConfig 代码块内容配置信息 {boolean}force 是否强制写入,默认true;为false时若同 id 已存在则跳过{Object}options 可选配置{boolean}doNotPushHistory 是否不写入历史记录(默认 false)
-
返回:
{void}
-
详情:
同步版本的 setCodeDslById,并会触发
addOrUpdate事件::: tip 写入成功时(
force=false且同 id 已存在的跳过场景除外)会自动调用historyService.pushCodeBlock把本次变更入历史栈,参见 historyService.pushCodeBlock。 传入doNotPushHistory: true可跳过写入历史栈,常用于批量导入、外部同步等非用户操作场景。 :::
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数组{Object}options 可选配置{boolean}doNotPushHistory 是否不写入历史记录(默认 false)
-
返回:
{Promise<void>}
-
详情:
在dsl数据源中删除指定id的代码块,每删除一个会触发一次
remove事件::: tip 对每个实际存在并被删除的代码块,会自动调用
historyService.pushCodeBlock入栈一条newContent=null的删除记录;不存在的 id 不会入历史。传入doNotPushHistory: true也可显式跳过写入历史栈。 :::
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
- 详情:
删掉当前设置的所有扩展