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

feat(dats-source,editor,form,schema,ui): 迭代器容器支持配置子项显示条件

This commit is contained in:
roymondchen
2024-06-28 17:44:04 +08:00
parent 0c5485b1d0
commit a164e2be62
18 changed files with 400 additions and 159 deletions

View File

@@ -20,13 +20,13 @@ import EventEmitter from 'events';
import { cloneDeep } from 'lodash-es';
import type { AppCore, DataSourceSchema, Id, MNode } from '@tmagic/schema';
import type { AppCore, DataSourceSchema, DisplayCond, Id, MNode } from '@tmagic/schema';
import { compiledNode } from '@tmagic/utils';
import { SimpleObservedData } from './observed-data/SimpleObservedData';
import { DataSource, HttpDataSource } from './data-sources';
import type { ChangeEvent, DataSourceManagerData, DataSourceManagerOptions, ObservedDataClass } from './types';
import { compiledNodeField, compliedConditions, compliedIteratorItems } from './utils';
import { compiledNodeField, compliedConditions, compliedIteratorItemConditions, compliedIteratorItems } from './utils';
class DataSourceManager extends EventEmitter {
private static dataSourceClassMap = new Map<string, typeof DataSource>();
@@ -214,6 +214,10 @@ class DataSourceManager extends EventEmitter {
return compliedConditions(node, this.data);
}
public compliedIteratorItemConds(itemData: any, displayConds: DisplayCond[] = []) {
return compliedIteratorItemConditions(displayConds, itemData);
}
public compliedIteratorItems(itemData: any, items: MNode[], dataSourceField: string[] = []) {
const [dsId, ...keys] = dataSourceField;
const ds = this.get(dsId);