# Popconfirm (всплывающее подтверждение)
Облегчённое всплывающее окно для подтверждения действия — альтернатива диалоговому подтверждению. Три тональности, настраиваемые кнопки.
Всплывающее подтверждение
<template>
<div class="demo-col" style="padding: 40px 0">
<div class="demo-row" style="gap: 24px; flex-wrap: wrap; justify-content: center">
<LhPopconfirm title="Удалить эту запись из каталога?" @confirm="onOk">
<LhButton type="danger">Удалить</LhButton>
</LhPopconfirm>
<LhPopconfirm title="Предупреждающая тональность" type="warning" placement="top" @confirm="onOk">
<LhButton type="warning">warning</LhButton>
</LhPopconfirm>
<LhPopconfirm title="Опасная тональность" type="danger" placement="right" @confirm="onOk">
<LhButton type="danger">danger справа</LhButton>
</LhPopconfirm>
<LhPopconfirm title="Срабатывание по hover" trigger="hover" placement="bottom" @confirm="onOk">
<LhButton>hover снизу</LhButton>
</LhPopconfirm>
</div>
<p class="demo-note">Свой текст и тип кнопок / без иконки / строгое позиционирование</p>
<div class="demo-row" style="gap: 24px; flex-wrap: wrap; justify-content: center">
<LhPopconfirm
title="Свои кнопки"
confirm-text="Да, конечно"
cancel-text="Подумать ещё"
confirm-button-type="primary"
placement="left"
@confirm="onOk"
>
<LhButton>Свои кнопки</LhButton>
</LhPopconfirm>
<LhPopconfirm title="Без иконки тональности" :show-icon="false" placement="top" @confirm="onOk">
<LhButton>showIcon=false</LhButton>
</LhPopconfirm>
<LhPopconfirm title="Строгое позиционирование по top" placement="top" :flip="false" @confirm="onOk">
<LhButton>flip=false</LhButton>
</LhPopconfirm>
<LhPopconfirm title="Отключено" disabled>
<LhButton disabled>disabled</LhButton>
</LhPopconfirm>
</div>
</div>
</template>
<script>
export default {
methods: {
onOk() {
LhMessage.success('Подтверждено')
},
},
}
</script>
# Props
| Проп | Описание | Тип | По умолчанию |
|---|---|---|---|
| type | Тональность подтверждения | 'info' \| 'warning' \| 'danger' | 'info' |
| placement | Позиция показа | 'top' \| 'top-start' \| 'top-end' \| 'bottom' \| 'bottom-start' \| 'bottom-end' \| 'left' \| 'left-start' \| 'left-end' \| 'right' \| 'right-start' \| 'right-end' | 'top' |
| flip | Разворот при нехватке пространства вдоль главной оси (включён по умолчанию); при false окно позиционируется строго по placement, даже с выходом за пределы viewport | boolean | true |
| trigger | Способ срабатывания | 'click' \| 'hover' \| 'focus' \| 'manual' | 'click' |
| title | Содержимое подтверждения (также можно использовать слот content) | string | — |
| confirmText | Текст кнопки подтверждения (если не передан, берётся popconfirm.confirm из языкового пакета) | string | — |
| cancelText | Текст кнопки отмены (если не передан, берётся popconfirm.cancel из языкового пакета) | string | — |
| confirmButtonType | Тип кнопки подтверждения | 'default' \| 'primary' | 'primary' |
| visible | Видимость под ручным управлением (:visible.sync) | boolean | — |
| disabled | Отключение | boolean | false |
| showIcon | Показывать ли иконку тональности | boolean | true |
| popperClass | Пользовательский класс всплывающего слоя | string | — |
| teleportTarget | Целевой элемент монтирования всплывающего слоя (селектор или элемент, по умолчанию body; в Vue 2.7 нет Teleport — реализован перенос хоста) | string \| HTMLElement | — |
| showAfter | Задержка показа (мс) | number | — |
| hideAfter | Задержка скрытия (мс) | number | — |
| themeVars | Переменные темы на уровне компонента, переопределяют конфигурацию ConfigProvider | Record<string, string> | — |
| bgPattern | Фоновый узор на уровне компонента, переопределяет конфигурацию ConfigProvider | string | — |
| sx | Проп sx для быстрого макета (применяется к корневому элементу триггера) | — | — |
# Events
| Событие | Описание | Параметры обратного вызова |
|---|---|---|
| confirm | Нажата кнопка подтверждения | — |
| cancel | Нажата кнопка отмены | — |
# Slots
| Слот | Описание |
|---|---|
| default | Триггер |
| content | Содержимое подтверждения (по умолчанию берётся проп title) |
Copyright © 2024-2026 FengMo WenXue