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

Интерфейс UEBulkCloneRecord

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

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

const {Mobx} = Universe.Vendor;

export const BULK_CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY = 'bulk_clone_record_additional_fragment_v1' as const;

export class BulkCloneRecordAdditionalFragmentStore implements Universe.MDM.EE.EeData.BulkCloneInnerStore {
@Mobx.observable
cleanUnique: boolean = false;

@Mobx.action
setCleanUnique (cleanUnique: boolean) {
this.cleanUnique = cleanUnique;
}

get payloadContent () {
return {
key: BULK_CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY,
content: {
cleanUnique: this.cleanUnique
}
};
}

get hasErrors () {
return false;
}

public init () {
return Promise.resolve();
}
}
import {Universe} from '@universe-ee/sdk';
import {BulkCloneRecordAdditionalFragmentStore} from './BulkCloneRecordAdditionalFragmentStore';

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

@MobxReact.observer
export class BulkCloneRecordUserExit extends React.Component<Universe.MDM.EE.EeData.BulkCloneParametersProps> {
get store () {
return this.props.store as BulkCloneRecordAdditionalFragmentStore;
}

setCleanUnique = (_name: string, value: boolean) => {
this.store.setCleanUnique(value);
};

override render () {
return (
<Uikit.CardPanel
internal={true}
title={'Дополнительные параметры пакетного клонирования'}
isWide={true}
>
<div>
<Uikit.Field.Checkbox
labelWidth={50}
name={'recordCleanUnique'}
label={'Очистить уникальные'}
defaultChecked={this.store.cleanUnique}
onChange={this.setCleanUnique}
/>

<Uikit.Button
intent={Uikit.INTENT.DANGER}
onClick={() => Universe.Platform.Toast.Dialog.showMessage('Точка расширения пакетного клонирования исправна')}
>
Проверить
</Uikit.Button>
</div>
</Uikit.CardPanel>
);
}
}

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

import {Universe} from '@universe-ee/sdk';
import {BulkCloneRecordUserExit} from './BulkCloneRecordUserExit';
import {
BULK_CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY,
BulkCloneRecordAdditionalFragmentStore
} from './BulkCloneRecordAdditionalFragmentStore';

export default {
type: 'BulkCloneRecord',
moduleId: 'BulkCloneRecordCustomID',
active: true,
system: false,
component: BulkCloneRecordUserExit,
meta: {
key: BULK_CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY,
order: 10,
createStore: (_metaRecord: Universe.Platform.Meta.IMetaModel) => {
return Promise.resolve(new BulkCloneRecordAdditionalFragmentStore());
}
},
resolver: (_metaRecord: Universe.Platform.Meta.IMetaModel) => {
return true;
}
} satisfies Universe.Platform.UserExit.UserExitDeclaration;
interface UEBulkCloneRecord {
    active: boolean;
    component: ComponentType<BulkCloneParametersProps>;
    meta: UEBulkCloneRecordMeta;
    moduleId: string;
    resolver: UEBulkCloneRecordResolver;
    system: boolean;
}

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

Индекс

Свойства

active: boolean

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

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

moduleId: string

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

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

system: boolean

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