Документация для разработчиков
Темная тема

Стек изображений с шагами

Расширение ui.image-stack-steps отображает и управляет стеками изображений с шагами. Каждый шаг включает заголовок, стек изображений и футер. Можно динамически добавлять, обновлять и удалять шаги.

Подключение

JS (ES6)

import { ImageStackSteps } from 'ui.image-stack-steps';

const options = {
    steps: [
        {
            id: 'step1',
            header: { type: 'text', data: { text: 'Заголовок шага 1' } },
            stack: {
                images: [
                    { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } }
                ],
                status: { type: 'ok' }
            },
            footer: { type: 'text', data: { text: 'Футер шага 1' } }
        }
    ]
};

const imageStack = new ImageStackSteps(options);
imageStack.renderTo(document.getElementById('container'));

JS (ES5)

var ImageStackSteps = require('ui.image-stack-steps').ImageStackSteps;

var options = {
    steps: [
        {
            id: 'step1',
            header: { type: 'text', data: { text: 'Заголовок шага 1' } },
            stack: {
                images: [
                    { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } }
                ],
                status: { type: 'ok' }
            },
            footer: { type: 'text', data: { text: 'Футер шага 1' } }
        }
    ]
};

var imageStack = new ImageStackSteps(options);
imageStack.renderTo(document.getElementById('container'));

PHP

<php
use Bitrix\Main\Loader;
use Bitrix\Main\UI\Extension;

Loader::includeModule('ui');

Extension::load('ui.image-stack-steps');

?>
<div id="container"><div>
<script>
    BX.ready(function() {
        var options = {
            steps: [
                {
                    id: 'step1',
                    header: { type: 'text', data: { text: 'Заголовок шага 1' } },
                    stack: {
                        images: [
                            { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } }
                        ],
                        status: { type: 'ok' }
                    },
                    footer: { type: 'text', data: { text: 'Футер шага 1' } }
                }
            ]
        };

        var imageStack = new BX.UI.ImageStackSteps(options);
        imageStack.renderTo(document.getElementById('container'));
    });
</script>

Параметры

Основные параметры

Параметр
тип
ОписаниеОбяз.
steps
Array<StepType>
Массив шагов, которые будут отображаться в компонентеДа

Параметр StepType

Параметр
тип
ОписаниеОбяз.
id
String
Уникальный идентификатор шагаДа
progressBox
Object
Объект, описывающий прогресс-бокс и содержащий заголовокНет
header
HeaderType
Заголовок шага, определяемый типом и даннымиДа
stack
StackType
Стек изображений, содержащий изображения и их статусДа
footer
FooterType
Футер шага, определяемый типом и даннымиДа
styles
Object
Стили для шага. Например, минимальная ширинаНет

Параметр HeaderType

Параметр
тип
ОписаниеОбяз.
type
String
Тип заголовкаДа
data
Object
Данные заголовкаДа
styles
Object
Стили заголовкаНет

Параметр StackType

Параметр
тип
ОписаниеОбяз.
images
Array<ImageType>
Массив изображенийДа
status
StackStatusType
Статус стекаНет

Параметр ImageType

Параметр
тип
ОписаниеОбяз.
type
String
Тип изображенияДа
data
Object
Данные изображенияДа

Параметр FooterType

Параметр
тип
ОписаниеОбяз.
type
String
Тип футераДа
data
Object
Данные футераДа
styles
Object
Стили футераНет

Класс ImageStackSteps

Класс ImageStackSteps предоставляет методы для управления стеками изображений и шагами. Методы позволяют динамически изменять шаги в компоненте.


Методы класса

МетодОписаниеПараметрыВозвращаемое значение
renderTo(node: HTMLElement)Рендерит компонент в указанный DOM-элементnode — DOM-элемент, в который будет отрисован компонент
getSteps(): Array<StepType>Возвращает массив текущих шагов. Каждый шаг возвращается как копия, чтобы избежать изменений исходных данныхМассив объектов StepType
addStep(stepData: StepType): booleanДобавляет новый шаг в стек. Если данные шага некорректны, шаг не будет добавленstepData — данные нового шагаtrue, если шаг успешно добавлен, иначе false
updateStep(stepData: StepType, stepId: string): booleanОбновляет данные шага с указанным stepId. Если данные некорректны, шаг не будет обновленstepData — новые данные шага.
stepId — идентификатор шага, который нужно обновить
true, если шаг успешно обновлен, иначе false
deleteStep(stepId: string): booleanУдаляет шаг с указанным stepIdstepId — идентификатор шага, который нужно удалитьtrue, если шаг успешно удален, иначе false
destroy()Уничтожает компонент, освобождая ресурсы и отключая его от DOM

Примеры использования

Простой стек с одним шагом

const options = {
    steps: [
        {
            id: 'step1',
            header: { type: 'text', data: { text: 'Заголовок шага 1' } },
            stack: {
                images: [
                    { type: 'image', data: { src: 'image1.jpg', title: 'Изображение 1' } }
                ],
                status: { type: 'ok' }
            },
            footer: { type: 'text', data: { text: 'Футер шага 1' } }
        }
    ]
};

const imageStack = new ImageStackSteps(options);
imageStack.renderTo(document.getElementById('container'));

Как добавить шаг динамически

const newStep = {
    id: 'step2',
    header: { type: 'text', data: { text: 'Заголовок шага 2' } },
    stack: {
        images: [
            { type: 'image', data: { src: 'image2.jpg', title: 'Изображение 2' } }
        ],
        status: { type: 'wait' }
    },
    footer: { type: 'text', data: { text: 'Футер шага 2' } }
};

imageStack.addStep(newStep);

Дополнительная информация

  • Расширение использует EventEmitter для уведомлений об изменениях. Например, можно подписаться на событие UI.ImageStackSteps.onUpdateSteps, чтобы отслеживать обновления шагов.
  • Для работы с расширением требуется подключение библиотек main.core, main.core.events и ui.vue3.
  • Расширение поддерживает различные типы изображений, включая пользовательские аватары, иконки и счетчики.
  • Для кастомизации внешнего вида можно использовать параметры styles в шагах, заголовках и футерах.

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2025, «1С-Битрикс», 2025
Наверх