弹框

在浮层中显示一个对话框。本组件基于 View Design Modalopen in new window 封装。

基础用法

需要设置 model-value / v-model 属性, 它接受 Boolean,当为 true 时显示 Modal。Modal 分为两个部分:bodyfooterfooter 需要具名为 footerslottitle 属性用于定义标题,它是可选的,默认值为空。

<template>
  <Button @click="show">显示弹框</Button>
  <ui-modal title="标题" v-model="visible" @onCancel="onCancel" @query="query"> 内容 </ui-modal>
</template>

<script setup>
  import { ref } from 'vue';

  const visible = ref(false);
  const show = () => {
    visible.value = true;
  };

  const onCancel = () => {
    console.log(`关闭弹框`);
  };

  const query = () => {
    console.log(`确认`);
  };
</script>

自定义头部,页脚

header 可用于自定义显示标题的区域。footer 可用于自定义显示页脚区域。

<template>
  <Button @click="show">显示弹框</Button>
  <ui-modal v-model="visible" @onCancel="onCancel" @query="query">
    <template #header> 自定义标题 </template>
    内容
    <template #footer> 页脚 </template>
  </ui-modal>
</template>

<script setup>
  import { ref } from 'vue';

  const visible = ref(false);
  const show = () => {
    visible.value = true;
  };

  const onCancel = () => {
    console.log(`关闭弹框`);
  };

  const query = () => {
    console.log(`确认`);
  };
</script>

可拖拽

设置 draggable 属性为 true 以做到拖拽

<template>
  <Button @click="show">显示弹框</Button>
  <ui-modal title="可拖拽" draggable v-model="visible" @onCancel="onCancel" @query="query">
    内容
  </ui-modal>
</template>

<script setup>
  import { ref } from 'vue';

  const visible = ref(false);
  const show = () => {
    visible.value = true;
  };

  const onCancel = () => {
    console.log(`关闭弹框`);
  };

  const query = () => {
    console.log(`确认`);
  };
</script>

属性

属性名说明类型可选值默认值
model-value / v-model是否显示boolean————
title弹框的标题 也可以通过具名 slot(见下表)传入string————
footer-hide隐藏底部booblean——false
loading点击确定按钮时,确定按钮是否显示 loading 状态boolean——false
class-custom自定义 classstring————
透传属性View Design Modalopen in new window——————

事件

事件名说明参数
onCancel点击取消的回调——
query点击确定的回调——
透传事件View Design Modalopen in new window——

插槽

名称说明
——弹框的内容
header弹框标题的内容; 会替换标题部分,但不会移除关闭按钮
footer自定义页脚内容
上次更新:
贡献者: zml