Search
    Preparing search index...

    Interface UECloneRecordUser Exit

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

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

    const {Mobx} = Universe.Vendor;

    export const CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY = 'clone_record_additional_fragment_v1' as const;

    export interface ICloneRecordAdditionalPayload {
    cleanUnique: boolean;
    }

    declare global {
    namespace UniverseUE {
    export interface ICloneAtomicPayload {
    [CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY]: ICloneRecordAdditionalPayload;
    }
    }
    }

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

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

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

    get hasErrors () {
    return false;
    }

    }
    import {Universe} from '@universe-ee/sdk';
    import {
    CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY,
    CloneRecordAdditionalFragmentStore
    } from './CloneRecordAdditionalFragmentStore';

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

    @MobxReact.observer
    export class CloneRecordUserExit extends React.Component<Universe.MDM.EE.EeData.ICloneRecordParametersProps> {
    get store () {
    return this.props.store.getStore(CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY) as CloneRecordAdditionalFragmentStore;
    }

    override render () {
    return (
    <Uikit.CardPanel
    internal={true}
    title={'Дополнительные параметры клонирования'}
    >
    <span>
    <Uikit.Button
    intent={Uikit.INTENT.DANGER}
    onClick={() => Universe.Platform.Toast.Dialog.showError('HI HI UE', 'I am UE')}
    >
    Go to enumerations!
    </Uikit.Button>
    </span>
    </Uikit.CardPanel>
    );
    }
    }

    export class CloneInnerStore implements Universe.MDM.EE.EeData.ICloneInnerStore {
    private readonly cloneStore: Universe.MDM.EE.EeData.AbstractCloneStore<any, any> | null = null;

    public cleanUnique: boolean = false;

    public readonly dateFromField = new Universe.Platform.Model.DateField('');

    public readonly dateToField = new Universe.Platform.Model.DateField('');

    constructor (key?: string, cloneStore?: Universe.MDM.EE.EeData.AbstractCloneStore<any, any>) {
    }

    private get content (): Universe.MDM.EE.EeData.CloneRecordPayload {
    const {
    cloneStore,
    cleanUnique,
    validFrom,
    validTo
    } = this;

    return {
    ...cloneStore?.commonPayload,
    draftId: this.cloneStore?.parentDraftId,
    cleanUnique,
    validFrom,
    validTo
    };
    }

    private get validFrom () {
    return this.dateFromField.getISOString();
    }

    private get validTo () {
    return this.dateToField.getISOString();
    }

    public get hasErrors () {
    return false;
    }

    public get payloadContent () {
    return {
    key: Universe.MDM.EE.EeData.CLONE_RECORD_PAYLOAD_KEY,
    content: this.content
    };
    }
    }

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

    import {Universe} from '@universe-ee/sdk';
    import {CloneRecordUserExit, CloneInnerStore} from './CloneRecordUserExit';

    export default {
    type: 'CloneRecord',
    moduleId: 'CloneRecordCustomID',
    active: true,
    system: false,
    component: CloneRecordUserExit,
    meta: {
    key: 'CLONE_RECORD_ADDITIONAL_PAYLOAD_KEY',
    getStore: () => {
    return new CloneInnerStore();
    }
    },
    resolver: (cloneStore: Universe.MDM.EE.EeData.AbstractCloneStore<any, any>) => {
    return true
    }
    } satisfies Universe.Platform.UserExit.UserExitDeclaration;
    interface UECloneRecord {
        active: boolean;
        component: ComponentType<ICloneRecordParametersProps>;
        meta: UECloneRecordMeta;
        moduleId: string;
        resolver: UECloneRecordResolver;
        system: boolean;
    }

    Hierarchy (View Summary)

    Index

    Properties

    active: boolean

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

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

    moduleId: string

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

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

    system: boolean

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