Element ui dialog弹窗最大化最小化关闭组件封装

简介: 封装一个最大化最小化关闭的dialog弹窗组件
学习过程中将笔记整理跟大家分享,希望对大家也有所帮助,共同成长进步💪~\
如果大家喜欢,可以点赞或留言💕 ~~,谢谢大家⭐️⭐️⭐️~

注:往往项目上有些弹窗就会被要求可最大化最小化操作,所以今天封装了一个弹窗最大化最小化关闭的一个组件封装,废话不多说,下面直接上代码了:

首先封装一个最大化最小化关闭的dialogHeader子组件

<!--最大化最小化组件封装-->
<template>
  <div class="header-title">
      <span class="title-name">{{ dialogTittle }}</span>
      <span 
          style="float: right; color: #909399; cursor: pointer;" 
          class="el-icon-close" 
          @click="() => closed"></span>
      <span 
          style="float: right; margin-right: 10px; color:#909399; cursor: pointer;" 
          :class="flodIconClass"
          @click="() => isFullscreen"></span>
  </div>
</template>

<script>
export default {
  props: {
    dialogTittle: {
        type: String,
        default: () => ''
    },
    fullscreen: {
        type: Boolean,
        default: () => false
    }
  },
  data () {
    return {
      header_box: {
          'display': 'flex',
          'align-items': 'center'
      }
    }
  },
  computed: {
      flodIconClass() {
          return this.fullscreen ? 'el-icon-full-screen' : 'el-icon-copy-document';
      },
      isFullscreen() {
          this.$emit('is-fullscreen', !this.fullscreen);
      },
      closed() {
          this.$emit('handle-closed', 2)
      }
  },
  created() {
  
  },
  methods: {
      
  },
  mounted() {
    
  },
}
</script>

dialogHeaderpage主页面引用dialogHeader子组件使用

<template>
  <div class="hello">
    <el-button type="primary" size="small" @click="addProject">新增项目</el-button>
    <el-dialog title="新增" :class="isFullscreen ? '' : 'dialogClass_his'"
        custom-class="handleDialogClass" width="73.4%" :fullscreen="isFullscreen" v-if="dialogVisible_add"
        :visible.sync="dialogVisible_add" :show-close="false" :close-on-click-modal="false"
        :close-on-press-escape="false">
        <dialog-header slot="title" dialog-tittle="新增" :fullscreen="isFullscreen" @handle-closed="dialogClose"
            @is-fullscreen="onFullscreen"></dialog-header>
        <div>弹窗内容</div>
    </el-dialog>
  </div>
</template>

<script>
import dialogHeader from '@/components/dialogHeader'
export default {
  components:{
      'dialog-header':dialogHeader,
  },
  data () {
    return {
      dialogVisible_add: false,
      isFullscreen: false,
    }
  },
  methods: {
    //弹出弹窗显示
    addProject(){
      this.dialogVisible_add = true;
    },
    //是否为全屏函数
    onFullscreen(fullscreen) {
        this.isFullscreen = fullscreen;
    },
    //关闭事件
    dialogClose() {
        this.dialogVisible_add = false;
    },
  },
  mounted() {

  },
}
</script>

注:

custom-class: Dialog 的自定义类名(string)

fullscreen:是否为全屏 Dialog(boolean)

show-close:是否显示关闭按钮(boolean)

close-on-click-modal: 是否可以通过点击 modal 关闭 Dialog(boolean)

close-on-press-escape: 是否可以通过按下 ESC 关闭 Dialog(boolean)

效果图如下:

image.png

image.png

文章首发掘金,未经允许禁止转载~~\
具体效果可以直接复制代码到本地看哦~ 欢迎阅读点赞给个支持⭐️⭐️⭐️
目录
相关文章
|
5天前
|
缓存 搜索推荐 索引
「Mac畅玩鸿蒙与硬件12」鸿蒙UI组件篇2 - Image组件的使用
在鸿蒙应用开发中,Image 组件用于加载和显示图片资源,并提供多种属性来控制图片的显示效果和适配方式。本篇将带你学习如何在鸿蒙应用中加载本地和远程图片、设置图片样式以及实现简单的图片轮播功能。
40 7
「Mac畅玩鸿蒙与硬件12」鸿蒙UI组件篇2 - Image组件的使用
|
8天前
|
自然语言处理 开发者
「Mac畅玩鸿蒙与硬件11」鸿蒙 UI 组件篇1 - Text 和 Button 组件详解
本篇将详细介绍鸿蒙应用开发中的 Text 和 Button 组件。通过本篇内容,你将学习如何使用 Text 组件显示文本、格式化文本样式,以及如何使用 Button 组件处理点击事件并自定义样式。掌握这些基本组件的用法将为后续的 UI 开发奠定基础。
32 4
「Mac畅玩鸿蒙与硬件11」鸿蒙 UI 组件篇1 - Text 和 Button 组件详解
|
24天前
|
API UED 容器
深入探索 Element UI:自定义滚动条与弹出层管理的技巧
在这篇博客中,我们将深入探讨 Element UI 中的自定义滚动条及弹出层管理技巧。文章详细介绍了 el-scrollbar 组件的使用和参数设置,以及 PopupManager 如何有效管理弹出层的 z-index。我们还将探讨如何实现灵活的全屏组件,利用 vue-popper 创建自定义弹出层,最后介绍 ClickOutside 指令的用法。这些高级技巧将帮助你提升 Element UI 应用程序的用户体验与交互灵活性。
165 1
深入探索 Element UI:自定义滚动条与弹出层管理的技巧
|
24天前
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
88 0
|
1月前
Element-UI组件的使用
【10月更文挑战第1天】
32 0
|
2月前
|
JavaScript
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
其实这个从零有点歧义,因为本质上是要基于`tdesign-vue-next`来进行二次封装为一套广告UI组件库,现在让我们在一起快乐的搭建自己的广告UI库之前,先对以下内容做出共识:
71 0
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
|
3月前
|
开发者 C# Android开发
明白吗?Xamarin与Native的终极对决:究竟哪种开发方式更适合您的项目需求,让我们一探究竟!
【8月更文挑战第31天】随着移动应用开发的普及,开发者面临多种技术选择。本文对比了跨平台解决方案Xamarin与原生开发方式的优势与劣势。Xamarin使用C#进行跨平台开发,代码复用率高,可大幅降低开发成本;但因基于抽象层,可能影响性能。原生开发则充分利用平台特性,提供最佳用户体验,但需维护多套代码库,增加工作量。开发者应根据项目需求、团队技能和预算综合考量,选择最适合的开发方式。
103 0
|
30天前
|
开发框架 JavaScript 前端开发
鸿蒙NEXT开发声明式UI是咋回事?
【10月更文挑战第15天】鸿蒙NEXT的声明式UI基于ArkTS,提供高效简洁的开发体验。ArkTS扩展了TypeScript,支持声明式UI描述、自定义组件及状态管理。ArkUI框架则提供了丰富的组件、布局计算和动画能力。开发者仅需关注数据变化,UI将自动更新,简化了开发流程。此外,其前后端分层设计与编译时优化确保了高性能运行,利于生态发展。通过组件创建、状态管理和渲染控制等方式,开发者能快速构建高质量的鸿蒙应用。
103 3
|
14天前
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
59 8
|
17天前
|
JavaScript API 开发者
掌握ArkTS,打造HarmonyOS应用新视界:从“Hello World”到状态管理,揭秘鸿蒙UI开发的高效秘诀
【10月更文挑战第19天】ArkTS(ArkUI TypeScript)是华为鸿蒙系统中用于开发用户界面的声明式编程语言,结合了TypeScript和HarmonyOS的UI框架。本文介绍ArkTS的基本语法,包括组件结构、模板和脚本部分,并通过“Hello World”和计数器示例展示其使用方法。
38 1

热门文章

最新文章

下一篇
无影云桌面