Стек изображений с шагами
Расширение 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>
Параметры
Основные параметры
Параметртип | Описание | Обяз. |
|---|---|---|
stepsArray<StepType> | Массив шагов, которые будут отображаться в компоненте | Да |
Параметр StepType
Параметртип | Описание | Обяз. |
|---|---|---|
idString | Уникальный идентификатор шага | Да |
progressBoxObject | Объект, описывающий прогресс-бокс и содержащий заголовок | Нет |
headerHeaderType | Заголовок шага, определяемый типом и данными | Да |
stackStackType | Стек изображений, содержащий изображения и их статус | Да |
footerFooterType | Футер шага, определяемый типом и данными | Да |
stylesObject | Стили для шага. Например, минимальная ширина | Нет |
Параметр HeaderType
Параметртип | Описание | Обяз. |
|---|---|---|
typeString | Тип заголовка | Да |
dataObject | Данные заголовка | Да |
stylesObject | Стили заголовка | Нет |
Параметр StackType
Параметртип | Описание | Обяз. |
|---|---|---|
imagesArray<ImageType> | Массив изображений | Да |
statusStackStatusType | Статус стека | Нет |
Параметр ImageType
Параметртип | Описание | Обяз. |
|---|---|---|
typeString | Тип изображения | Да |
dataObject | Данные изображения | Да |
Параметр FooterType
Параметртип | Описание | Обяз. |
|---|---|---|
typeString | Тип футера | Да |
dataObject | Данные футера | Да |
stylesObject | Стили футера | Нет |
Класс 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 | Удаляет шаг с указанным stepId | stepId — идентификатор шага, который нужно удалить | 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