Юниверс MDM SDK UI
v6.15.0

Интерфейс UEPromiseCriterion

Точка расширения предназначена для добавления критерия на страницу поиска, для формирования которого нужна предварительно асинхронная операция

import {Universe} from '@universe-ee/sdk';

const {Tree} = Universe.Platform;

interface Props {
metaRecord: Universe.Platform.Meta.AbstractEntity;
searchPanelStore: Universe.Platform.Search.AbstractSearchPanelStore;
searchTerms: Universe.Platform.Search.AbstractSearchTerm[]; // list of already selected SearchTerms
routerStore: Universe.Platform.Router.RouterStoreType;
}

class TestSearchTerm extends Universe.Platform.Search.AbstractSearchTerm {
constructor(data: Universe.Platform.Search.IAbstractSearchTerm) {
super(data);
}
}

export function getCriteriaNodesPromise (props: Props): Promise<
Array<
Universe.Platform.Tree.DropDownTreeNode<Universe.Platform.Search.AbstractSearchTerm>
>
> {
return new Promise((resolve, reject) => {
resolve([
{
key: '$__UEtest_criteria',
displayName: 'UEtest',
view: Tree.DROPDOWN_NODE_VIEW.PLAIN,
children: [
{
key: '$__UEchild_criteria',
displayName: 'UE_child',
view: Tree.DROPDOWN_NODE_VIEW.SIMPLE,
value: new TestSearchTerm({
key: '$__UEchild_criteria_abstract_Term',
termGroup: 'system'
}),
onSelect: (item: Universe.Platform.Search.AbstractSearchTerm) => {
console.log(props, 'props')
props.searchPanelStore.addTerm(item, 'org.unidata.mdm.rest.v2.data');
},
children: []
}
]
}
])
})
}

Подключение точки расширения:

import {Universe} from '@universe-ee/sdk';
import {getCriteriaNodesPromise} from './CustomGetCriteriaNode';

export default {
type: 'PromiseCriterion',
moduleId: 'PromiseCriterion.testUE',
active: true,
system: false,
resolver: () => true,
meta: {
searchGroupType: 'classify'
},
fn: getCriteriaNodesPromise
} satisfies Universe.Platform.UserExit.UserExitDeclaration;
interface UEPromiseCriterion {
    active: boolean;
    fn: (
        props: PromiseCriterionProps,
    ) => Promise<DropDownTreeNode<AbstractSearchTerm>[]>;
    meta: PromiseCriterionMeta;
    moduleId: string;
    resolver: AbstractUserExitResolver;
    system: boolean;
}

Иерархия (Просмотр сводки)

Индекс

Свойства

active: boolean

Является ли экземпляр точки расширения активным

fn: (
    props: PromiseCriterionProps,
) => Promise<DropDownTreeNode<AbstractSearchTerm>[]>

Мета-информация точки расширения

moduleId: string

Уникальный идентификатор экземпляра точки расширения

Функция указывает, следует ли применять данный экземпляр точки расширения

system: boolean

Является ли системным экземпляром