补全方法的参数类型、返回值类型与详情说明,规范字段编辑器/字段配置/运行时 API 等文档。 Co-authored-by: Cursor <cursoragent@cursor.com>
4.5 KiB
DevtoolApi
DevtoolApi 是 @tmagic/core 提供给开发工具使用的 API 接口类。
构造函数
new DevtoolApi(options: DevtoolApiOptions)
DevtoolApiOptions
| 参数 | 类型 | 说明 |
|---|---|---|
app |
App |
应用实例 |
实例方法
openPop
-
参数:
{Id} popId弹窗组件 ID
-
返回:
{void}
-
详情:
打开指定的弹窗组件。
-
示例:
devtoolApi.openPop('dialog_1');
setDataSourceData
-
参数:
{Id} dsId数据源 ID{any} data数据{string} path数据路径(可选)
-
返回:
{void}
-
详情:
设置数据源的数据。
-
示例:
// 设置整个数据源数据
devtoolApi.setDataSourceData('ds_1', { name: 'test' });
// 设置数据源的某个字段
devtoolApi.setDataSourceData('ds_1', 'newValue', 'user.name');
delDataSourceData
-
返回:
{void}
-
详情:
当前为空实现(预留接口),由具体的开发工具/平台覆盖以实现"删除数据源数据"的能力。
requestDataSource
-
参数:
{Id} dsId数据源 ID
-
返回:
{Promise<void> | void}
-
详情:
触发 HTTP 数据源的请求。优先调用
dataSource.refresh,否则调用dataSource.request,再否则将isInit置为false并通过dataSourceManager.init(ds)重新初始化。 -
示例:
await devtoolApi.requestDataSource('http_ds_1');
getDisplayCondRealValue
-
参数:
{Id} nodeId节点 ID{DisplayCondItem} condItem单个条件项
-
返回:
{any}
-
详情:
获取显示条件的实际计算值。内部会以
{ [NODE_CONDS_KEY]: [{ cond: [condItem] }] }的形式调用dataSourceManager.compliedConds。
callHook
-
参数:
{Id} nodeId节点 ID{string} hookName钩子名称{ { params: Record<string, any> }[] } hookData钩子数据列表,依次传给node.runHookCode
-
返回:
{Promise<void>}
-
详情:
调用节点的钩子函数。会按
hookData顺序执行,每项以item.params作为runHookCode的入参。 -
示例:
await devtoolApi.callHook('button_1', 'mounted', [
{ params: { data: 'test' } },
]);
trigger
-
参数:
{Id} nodeId节点 ID{EventConfig} eventConfig事件配置(单个,非数组)
-
返回:
{void}
-
详情:
按节点触发事件。内部通过
app.emit(eventConfig.name, node)触发对应事件。 -
示例:
devtoolApi.trigger('button_1', {
name: 'click',
actions: [{ actionType: 'code', codeId: 'code_1' }]
});
updateDsl
-
参数:
{Id} nodeId节点 ID{any} data数据{string} path路径
-
返回:
{void}
-
详情:
当前为空实现(预留接口),由具体的开发工具/平台覆盖以实现"按节点更新 DSL"的能力。
isValueIncludeDataSource
-
参数:
{any} value要检查的值
-
返回:
{boolean}
-
详情:
检查值是否包含数据源引用。
-
示例:
const hasDs = devtoolApi.isValueIncludeDataSource('${ds_1.field}');
console.log(hasDs); // true
compileDataSourceValue
-
参数:
{any} value包含数据源引用的值
-
返回:
{any}
-
详情:
编译数据源值,将数据源引用替换为实际值。
-
示例:
const compiled = devtoolApi.compileDataSourceValue('用户名:${ds_1.user.name}');
updateCode
-
参数:
{Id} codeId代码块 ID{any} value新值{string} path路径(必填)
-
返回:
{void}
-
详情:
按
path更新指定代码块的内容。当path === 'content'且value为字符串时,当前实现会通过eval拼接执行后将函数写回。::: warning 已知限制 当前
eval模板存在多余的右括号(详见packages/core/src/DevtoolApi.ts中updateCode),对大部分常规函数字面量会因语法错误抛出。直接传入纯函数体或可被裸赋值的合法表达式时也需自行验证;如需稳定使用建议在调用方先编译为函数再写回app.codeDsl[codeId].content,或等待该实现修复。 ::: -
示例:
devtoolApi.updateCode('code_1', 'return data.value * 2;', 'content');