1
0
mirror of synced 2026-03-24 11:48:35 +08:00

fix(core,data-source): 事件参数中关联数据源字段无法自动更新

This commit is contained in:
roymondchen
2024-05-09 17:01:34 +08:00
parent 708d3db4bb
commit c665bf3ccc
5 changed files with 58 additions and 13 deletions

View File

@@ -15,6 +15,12 @@ import {
import type { AsyncDataSourceResolveResult, DataSourceManagerData } from './types';
/**
* 编译数据源条件组
* @param node dsl节点
* @param data 数据源数据
* @returns boolean
*/
export const compliedConditions = (node: MNode, data: DataSourceManagerData) => {
if (!node.displayConds || !Array.isArray(node.displayConds) || !node.displayConds.length) return true;
@@ -56,6 +62,13 @@ export const updateNode = (node: MNode, dsl: MApp) => {
}
};
/**
* 创建迭代器容器编译的数据上下文
* @param itemData 迭代数据
* @param dsId 数据源id
* @param fields dsl节点字段如a.b.c
* @returns 数据上下文
*/
export const createIteratorContentData = (itemData: any, dsId: string, fields: string[] = []) => {
const data = {
[dsId]: {},
@@ -70,6 +83,15 @@ export const createIteratorContentData = (itemData: any, dsId: string, fields: s
return data;
};
/**
* 编译通过tmagic-editor的数据源源选择器配(data-source-field-select)
* 格式为 [`${DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX}${id}`, 'field']
* DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX常量可通过@tmagic/utils获取
*
* @param value dsl节点中的数据源配置
* @param data 数据源数据
* @returns 编译好的配置
*/
export const compliedDataSourceField = (value: any, data: DataSourceManagerData) => {
const [prefixId, ...fields] = value;
const prefixIndex = prefixId.indexOf(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX);
@@ -87,6 +109,12 @@ export const compliedDataSourceField = (value: any, data: DataSourceManagerData)
return value;
};
/**
* 编译通过tmagic-editor的数据源源选择器data-source-inputdata-source-selectdata-source-field-select配置出来的数据或者其他符合规范的配置
* @param value dsl节点中的数据源配置
* @param data 数据源数据
* @returns 编译好的配置
*/
export const compiledNodeField = (value: any, data: DataSourceManagerData) => {
// 使用data-source-input等表单控件配置的字符串模板`xxx${id.field}xxx`
if (typeof value === 'string') {