Skip to content

AbpConfirmHost ​

AbpConfirmHost 渲染 ConfirmationService 的当前问题,也用于模态框丢弃更改确认。

等待结果 ​

vue
<template>
  <div class="d-flex gap-2">
    <AbpButton @click="notify">Show notification</AbpButton>
    <AbpButton variant="danger" outline @click="confirm">Ask for confirmation</AbpButton>
  </div>
  <AbpToastHost container-key="example" />
  <AbpConfirmHost />
  <output aria-live="polite">{{ result }}</output>
</template>

<script setup lang="ts">
import { ref } from 'vue';
import {
  AbpButton,
  AbpConfirmHost,
  AbpToastHost,
  ConfirmationStatus,
  useConfirmation,
  useToaster,
} from '@lsw-abpvue/theme-shared';
const toaster = useToaster();
const confirmation = useConfirmation();
const result = ref('No answer yet');
function notify(): void {
  toaster.success({ key: 'Demo::Saved', defaultValue: 'Changes saved' }, undefined, {
    containerKey: 'example',
    life: 3000,
  });
}
async function confirm(): Promise<void> {
  const answer = await confirmation.warn(
    { key: 'Demo::Delete', defaultValue: 'Delete this book?' },
    { key: 'Demo::Title', defaultValue: 'Confirm deletion' },
  );
  result.value =
    answer === ConfirmationStatus.confirm
      ? 'Confirmed; the application would now call its delete API.'
      : `No deletion: ${answer}`;
}
</script>

只有 ConfirmationStatus.confirm 才允许继续修改。取消返回 reject;允许关闭时,Esc 或背景关闭返回 dismiss。二者都应停止操作,不能按返回字符串的真假值判断。

宿主位置 ​

应用布局已经提供确认宿主。自定义布局或独立视图没有宿主时才增加,不要在每个嵌套组件都挂载。宿主与服务必须使用同一注入器,才能共享问题与结果状态。

配置问题 ​

根据含义使用 warn、info、success、error 或 show。选项可设置本地化按钮文字、隐藏按钮、指定图标,或禁止背景和 Esc 关闭。提供清晰的问题与标题,记录名称通过本地化参数传入。

服务一次只保留一个问题,新问题会 dismiss 前一个,注入器销毁也会结束未回答问题。等待确认后才调用删除 API,避免在处理中打开无关的第二个确认。参见模态框关闭和通知。

属性、事件与插槽 ​

源码

类型来自公开契约,默认表达式来自当前实现。短横线表示没有显式默认值;省略的可选布尔属性通常为 false。

Props ​

没有组件专有参数。

Events ​

没有声明组件专有事件。

Slots ​

没有命名插槽。

非官方社区项目,采用 MIT 许可证,与 Volosoft 无关。