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

Интерфейс UEParameterItem

Точка расширения позволяет реализовывать кастомные представления параметров

Используется в различных экранах настроек, но не используется в карточке записи.

Пример отображения настройки в виде поля с подсветкой SQL-синтаксиса:

interface Props {
parameterValue: Universe.Platform.Parameters.IValuedParameter;
parameterDescriptor: Universe.Platform.Parameters.IParameterDescriptor;
isReadOnly: boolean;
}

class SqlField extends Universe.Vendor.React.Component<Props> {
override render () {
const SqlParameter = React.lazy(() => import('./SqlParameter'));

return (
<React.Suspense fallback={''}>
<SqlParameter {...this.props}/>
</React.Suspense>
);
}
}

export default {
userExits: [
{
moduleId: 'sqlParameterItem',
type: 'ParameterItem',
active: true,
system: false,
resolver: (parameterDescriptor) => {
return parameterDescriptor.viewType.getValue() === Universe.Platform.Parameters.ParameterViewType.SQL;
},
meta: {},
component: SqlField
}
]
} satisfies Universe.Platform.UserExit.ExternalModuleDefault;
import {Universe} from '@universe-ee/sdk';

const {React, MobxReact} = Universe.Vendor;
const {Uikit} = Universe.Platform;

interface Props {
isReadOnly: boolean;
labelWidth?: number;
parameterDescriptor: Universe.Platform.ParametersMeta.IParameterDescriptor;
parameterValue: Universe.Platform.ParametersMeta.IValuedParameter;
showValidationError?: boolean;
}

@MobxReact.observer
export class CustomParameterItem extends React.Component<Props> {
onClick = () => {
console.log('UE_BTN_WORK!!!')
};

override render () {
return (
<span>
<Uikit.Button intent={Uikit.INTENT.DANGER} onClick={this.onClick}>
Go to enumerations!
</Uikit.Button>
</span>
);
}
}

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

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

export default {
type: 'ParameterItem',
moduleId: 'parameterItemCustomUE',
active: true,
system: false,
resolver: (parameterDescriptor: Universe.Platform.ParametersMeta.IParameterDescriptor) => true,
meta: {},
component: CustomParameterItem
} satisfies Universe.Platform.UserExit.UserExitDeclaration;
interface UEParameterItem {
    active: boolean;
    component: ComponentType<
        {
            isReadOnly: boolean;
            labelWidth?: number;
            parameterDescriptor: IParameterDescriptor;
            parameterValue: IValuedParameter;
            showValidationError?: boolean;
        },
    >;
    meta: {};
    moduleId: string;
    resolver: UEParameterItemResolver;
    system: boolean;
}

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

Индекс

Свойства

active: boolean

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

component: ComponentType<
    {
        isReadOnly: boolean;
        labelWidth?: number;
        parameterDescriptor: IParameterDescriptor;
        parameterValue: IValuedParameter;
        showValidationError?: boolean;
    },
>
meta: {}

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

moduleId: string

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

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

system: boolean

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