当前位置: 首页 > news >正文

vue3封装el-dialog

封装

<template><div><el-dialog v-model="dialogVisible" :title="title" :width="width" :fullscreen="fullscreen" :top="top":close-on-click-modal="closeOnClickModal" :draggable="draggable" :overflow="overflow":destroy-on-close="destroyOnClose" :center="center"><div><slot></slot></div><template #footer><div class="dialog-footer"><el-button @click="close">取消</el-button><el-button type="primary" @click="ConfirmBtn" :loading="loading">{{ confirmText }}</el-button></div></template></el-dialog></div>
</template><script setup lang="ts">
import { ref } from 'vue'
const props = defineProps({title: {type: String,default: '标题'},width: {type: String,default: '45%'},fullscreen: {type: Boolean,defult: false},top: {type: String,default: '15vh'},closeOnClickModal: {type: Boolean,defult: false},destroyOnClose: {type: Boolean,defult: false},draggable: {type: Boolean,defult: false},overflow: {type: Boolean,defult: false},center: {type: Boolean,defult: false},confirmText: {type: String,default: '确认'},})
const dialogVisible = ref(false)
const loading = ref(false)//打开loading
const openLoading = () => {loading.value = true
}
//关闭loading
const closeLoading = () => {loading.value = false
}
const emit = defineEmits(['submit'])// 打开
const open = () => {dialogVisible.value = true
}//关闭
const close = () => {dialogVisible.value = false
}//确认操作
const ConfirmBtn = () => {emit('submit')
}defineExpose({open,close,openLoading,closeLoading,
})</script><style lang="scss" scoped></style>

使用

<template><div>首页<el-button @click="open">打开</el-button><DialogVue ref="DialogVueRef" title="打开弹框" @submit="submitBtn">1111111</DialogVue></div>
</template><script setup lang="ts">
import { ref } from 'vue'
import DialogVue from '@/components/Dialog/index.vue'
const DialogVueRef = ref(null)
const open=()=>{DialogVueRef.value?.open()
}
const submitBtn = ()=>{// 开启loadingDialogVueRef.value?.openLoading()// 执行确认的操作// 关闭loadingDialogVueRef.value?.closeLoading()}
</script><style lang="scss" scoped></style>

http://www.dtcms.com/a/577370.html

相关文章:

  • 河南郑州网站顾问大连建设工程信息网官网入口
  • 记录一次K8S跨命名空间访问 xxx.xxx.svc.cluster.local 类似内部服务不通的问题
  • Go Slice 实现原理深度解析:从底层机制到工程实践
  • 网站开发需要什么基础只是怎么下载文件
  • Centos 7安装Apache Drill
  • AI与电力的深度绑定:算力与能源分配的趋势分析
  • 【轨物洞见】 新型能源体系建设:十五五规划建议推进能源转型
  • 第四代核反应堆:未来能源的“安全高效革命”
  • HarmonyOS实战项目:打造沉浸式AR导航应用(空间计算与虚实融合)
  • 建行信用卡网站官网入口2022好用值得推荐的搜索引擎
  • 多模态化学信息重建系统CIRS-图像处理单元复现源码:从化学结构图像到图形化基元的转化
  • 评估工程正成为下一轮 Agent 演进的重点
  • 易营宝智能建站做网站类型
  • CTFHub Web进阶-PHP:Bypass_disable_function通关5之GC UAF
  • Jmeter+Maven+jenkins+eclipse 搭建自动化测试平台
  • Cursor 2.0:让 AI 编码更快、更协同的全新平台
  • 兰州网站建设推荐q479185700顶你本地视频做成链接网址
  • Flutter for HarmonyOS 开发指南(一):环境搭建与项目创建
  • Flutter 如何使用fvm进行多项目sdk管理
  • 【Git】-- Rebase 减少 Commit 次数指南
  • 北京网站设计培训学校cn 域名网站
  • 广州广州网站建设公司阿里云网站模板
  • SpringBoot教程(三十二)| SpringBoot集成Sentinel
  • RAGFlow与Dify知识库:对比选型与技术落地解析
  • 广告拦截双选指南:uBlock Origin 与「广告拦截器」
  • 神经网络组植物分类学习 - 阶段学习规划14
  • 张家界市住房和城乡建设局网站WordPress加速优化方案
  • 晶晨S905X芯片_通刷固件包_ATV 安卓9.0_IPV6_中文线刷固件包
  • 战神引擎传奇手游【1.76盛战传奇免授权版[摸摸登陆器]】最新整理Win系复古服务端+安卓苹果双端+GM授权物品后台+详细搭建教程
  • npm因为在此系统上禁止运行脚本