• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
wenhome
博客园    首页    新随笔    联系   管理    订阅  订阅

在el-dialog中使用Loading

说明:这里使用的代码是 vue3 + TypeScript,下面是全部代码:

<template>
  <div>
    <el-dialog :title="title"
    v-model="open"

    width="500px"
    :close-on-click-modal="false"  // 鼠标点击弹窗外部不关闭弹窗
    :close-on-press-escape="false"  // 按下esc键不关闭弹窗
    ref="mv"
    >
      <template #footer>
       <div class="dialog-footer text-center">
          <el-button @click="handleClose">取 消</el-button>
          <el-button type="primary" @click="submitForm">确 定</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>

<script lang="ts" setup>
import { ElLoading } from 'element-plus'
const open = ref(false) // 控制 el-dialog 的弹出和关闭
const mv = ref() // 用于接收 el-dialog 对象
const dialogPanel = ref() // 接收 ElLoading.service对象,用于关闭 Loading

// el-dialog 触发 Loading 的函数
function initDialog () {
  dialogPanel.value = ElLoading.service({
  target: mv.value.dialogRef, // el-dialog 对象
  text: 'Loading...', // Loading 的提示信息
  background: 'rgba(0,0,0,0.7)', // 设置背景颜色和透明度
  })
}

/** 点击提交按钮, el-dialog 触发 Loading */
function submitForm() {
  initDialog()
  // Loading 延时两秒后关闭
  setTimeout(() => {
  dialogPanel.value.close()
  }, 2000)
}

function handleClose() {
  open.value = false;
}

const handleOpen = () => {
  open.value = true
}
</script>

posted @ 2024-01-11 15:42  Oortcloud  阅读(3076)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3