КРЕАТИВНЫЕ САЙТЫ И ПРИЛОЖЕНИЯ,
КАЧЕСТВЕННЫЕ WEB-УСЛУГИ
phone

SwAlert

Функция / Компонент `SwAlert`
система всплываюших сообщений

SwAlert

Функция Alert() — система всплывающих сообщений. Несколько сообщений групируются; позиция и порядок задаются параметрами placement / align. The Alert() function shows toast messages. Multiple alerts stack; position and order are controlled by placement / align.

Свойства / Properties

ИмяТиппо умолчаниюЗначения/Описание
classString``Добавляет пользовательский CSS-класс к компоненту.
sizeString``Размер сообщения: 'large', 'small'.
typeStringinfo'primary', 'success', 'info', 'warning', 'danger' (алиас 'error' → danger).
messageStringDefault messageТекст сообщения.
durationNumber6000Время отображения в миллисекундах.
placementStringtopВертикаль: 'top' — старые сверху в верху экрана; 'bottom' — новые сверху у низа экрана.
alignStringcenterГоризонталь: 'left', 'center', 'right'.
beforeString``Иконка в начале: имя из SVG-спрайта или URL. См. SwIcon.
afterString``Иконка в конце (закрыть): имя из спрайта или URL. См. SwIcon.
onCloseFunction—Колбэк после закрытия.

Слоты / Slots

Default - Текст описания или модуль / модули #prefix - Вставка перед текстом (если не передан before) #suffix - Вставка после текста (если не передан after) #footer - Нижний блок (рендерится только если слот передан)

Пример использования / Example Usage

<script setup>
import { Alert } from '@studio-west/component-sw'

const TABLER = 'https://cdn.jsdelivr.net/npm/@tabler/icons@3.19.0/icons/outline'
const icons = {
  star: `${TABLER}/star.svg`,
  close: `${TABLER}/x.svg`
}

let alertSeq = 0

function showAlert(type, placement = 'top', align = 'center') {
  alertSeq += 1
  Alert({
    message: `#${alertSeq} ${type} (${placement}/${align})`,
    type,
    placement,
    align,
    duration: 8000,
    before: icons.star,
    after: icons.close
  })
}
</script>

<sw-button type="info" label="info" @click="showAlert('info')" />
<sw-button type="success" label="success" @click="showAlert('success')" />
<sw-button type="warning" label="warning" @click="showAlert('warning')" />
<sw-button type="danger" label="error" @click="showAlert('error')" />

<!-- позиция: повторный клик — стек -->
<sw-button
  v-for="pos in [
    { placement: 'top', align: 'left' },
    { placement: 'top', align: 'center' },
    { placement: 'bottom', align: 'right' }
  ]"
  :key="`${pos.placement}-${pos.align}`"
  type="primary"
  :label="`${pos.placement}/${pos.align}`"
  @click="showAlert('info', pos.placement, pos.align)"
/>