el‐dialog - daniel-qa/Vue GitHub Wiki

el-dialog

#

有多個彈窗的話,需處理時序問題(一般用 promise)

  • 在視窗中間彈跳一個對話框
<template>
    <div>
        <!-- 触发弹出框显示的按钮 -->
        <el-button type="primary" @click="dialogFormVisible = true">打开表单</el-button>

        <!-- 弹出框 -->
        <el-dialog v-model="dialogFormVisible" title="表单标题" width="50%">
            <!-- 表单内容 -->
            <el-form :model="form" :rules="rules" ref="formRef" label-width="100px">
                <el-form-item label="姓名" prop="name">
                    <el-input v-model="form.name" placeholder="请输入姓名" />
                </el-form-item>
                <el-form-item label="邮箱" prop="email">
                    <el-input v-model="form.email" placeholder="请输入邮箱" />
                </el-form-item>
            </el-form>

            <!-- 弹出框的底部按钮 -->
            <template #footer>
                <el-button @click="dialogFormVisible = false">取消</el-button>
                <el-button type="primary" @click="saveForm">确定</el-button>
            </template>
        </el-dialog>
    </div>
</template>

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

    const dialogFormVisible = ref(false);  // 控制弹出框的显示和隐藏
    const form = ref({ name: '', email: '' });  // 表单数据
    const rules = {
        name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
        email: [{ required: true, message: '请输入邮箱', trigger: 'blur' }],
    };

    const saveForm = () => {
        console.log('保存表单数据:', form.value);
        dialogFormVisible.value = false;  // 关闭弹出框
    };
</script>

el-dialog 彈出位置

  • el-dialog 默认是居中弹出的,但可以通过不同方式调整它的弹出位置

1️⃣ 调整 top 让对话框更靠上

默认情况下,el-dialog 是垂直居中的。如果你希望它靠上,可以使用 top 属性:

<el-dialog v-model="dialogVisible" title="弹窗" top="10vh">
  <p>这里是弹窗内容</p>
</el-dialog>

關閉 Button

  • 什么时候需要 @closed="clearform"

需要清理表单数据:如果你希望每次关闭弹出框时清空表单数据或重置状态,应该加上这个监听器。

⚠️ **GitHub.com Fallback** ⚠️