mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2026-01-27 04:18:18 +00:00
3.8 KiB
3.8 KiB
工具函数
@tmagic/data-source 导出的工具函数。
createDataSourceManager
-
参数:
{TMagicApp} app应用实例{boolean} useMock是否使用 Mock 数据(可选){DataSourceManagerData} initialData初始数据(可选)
-
返回:
{DataSourceManager}数据源管理器实例
-
详情:
创建数据源管理器的工厂函数,会自动设置数据变化监听。
-
示例:
import { createDataSourceManager } from '@tmagic/data-source';
const dsManager = createDataSourceManager(app, false, initialData);
compiledCondition
-
参数:
{CondItem} cond条件项{object} data数据上下文
-
返回:
{boolean}条件是否满足
-
详情:
编译单个显示条件。
-
示例:
import { compiledCondition } from '@tmagic/data-source';
const result = compiledCondition(
{ field: 'user.age', op: '>', value: 18 },
{ user: { age: 20 } }
);
console.log(result); // true
compliedConditions
-
参数:
{MNode} node节点配置{object} data数据上下文(可选)
-
返回:
{boolean}节点是否应该显示
-
详情:
编译条件组,支持 AND/OR 逻辑。
compiledNodeField
-
参数:
{any} value字段值{object} data数据上下文
-
返回:
{any}编译后的值
-
详情:
编译节点字段中的数据源配置。
-
示例:
import { compiledNodeField } from '@tmagic/data-source';
const compiled = compiledNodeField(
{ isBindDataSource: true, dataSourceId: 'ds_1', template: '${name}' },
{ ds_1: { name: 'test' } }
);
compliedDataSourceField
-
参数:
{any} value字段值{object} data数据上下文
-
返回:
{any}编译后的值
-
详情:
编译数据源字段选择器的值。
template
-
参数:
{string} value模板字符串{object} data数据上下文
-
返回:
{string}替换后的字符串
-
详情:
模板字符串替换,支持
${id.field}格式。 -
示例:
import { template } from '@tmagic/data-source';
const result = template(
'用户名:${ds_1.user.name},年龄:${ds_1.user.age}',
{ ds_1: { user: { name: '张三', age: 20 } } }
);
console.log(result); // '用户名:张三,年龄:20'
createIteratorContentData
-
参数:
{object} itemData迭代项数据{string} dsId数据源 ID{DataSchema[]} fields字段配置{object} dsData数据源数据
-
返回:
{object}迭代器数据上下文
-
详情:
创建迭代器的数据上下文。
compliedIteratorItem
-
参数:
{object} options编译选项
-
返回:
{MNode}编译后的节点
-
详情:
编译迭代器项。
updateNode
-
参数:
{MNode} node节点配置{MApp} dslDSL 配置
-
返回:
{MApp}更新后的 DSL
-
详情:
更新 DSL 中的指定节点。
-
示例:
import { updateNode } from '@tmagic/data-source';
const newDsl = updateNode(
{ id: 'button_1', type: 'button', text: '新文本' },
dsl
);
registerDataSourceOnDemand
-
参数:
{MApp} dslDSL 配置{Record<string, () => Promise<any>>} modules数据源模块映射
-
返回:
{Promise<void>}
-
详情:
按需加载数据源模块。根据 DSL 中使用的数据源类型动态加载对应模块。
-
示例:
import { registerDataSourceOnDemand } from '@tmagic/data-source';
await registerDataSourceOnDemand(dsl, {
custom: () => import('./CustomDataSource'),
socket: () => import('./SocketDataSource')
});