【记录】vue 添加全局 dialog 弹框

页面展示

在这里插入图片描述

代码

@/components/GlobalDialog/index.vue

<template>
  <div class="global_dialog" v-if="isVisible">
    <div class="global_dialog_header">
      <div class="global_dialog_header_title">{{ title }}</div>
      <i class="el-icon-close" @click="closeDialog" />
    </div>

    <div class="global_dialog_slot">
      <slot></slot>
    </div>
  </div>
</template>

<script>
export default {
  name: 'GlobalDialog',
  props: {
    isVisible: {
      type: Boolean,
      default: false
    },
    title: {
      type: String,
      default: ''
    }
  },
  methods: {
    closeDialog() {
      this.$emit('close')
    }
  }
}
</script>

<style scoped lang="scss">
.global_dialog {
  max-width: 20vw;
  padding: 20px;
  position: fixed;
  right: 10px;
  bottom: 10px;
  z-index: 999;

  box-shadow: 0 0 3px 3px #ccc;
  border-radius: 5px;

  background-color: #fff;

  &_header {
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    font-size: 16px;
    &_title {
      margin-right: 20px;
      font-weight: bold;
    }
    .el-icon-close {
      cursor: pointer;
    }
  }
  &_slot {
    white-space: pre;
    line-height: 25px;
  }
}
</style>

@/plugins/global-dialog.js

import GlobalDialog from '@/components/GlobalDialog'

export default {
  install(Vue, options) {
    // 创建一个新的Vue实例作为全局弹框
    const ModalConstructor = Vue.extend(GlobalDialog)
    let modalInstance = new ModalConstructor({
      el: document.createElement('div'),
      propsData: {
        isVisible: false
      }
    })

    // 添加方法来显示弹框
    Vue.prototype.$showGlobalDialog = (content, props) => {
      modalInstance.isVisible = true
      Object.keys(props).forEach((key) => {
        modalInstance[key] = props[key]
      })
      modalInstance.$slots.default = [content] // 插入内容
      document.body.appendChild(modalInstance.$el)
    }

    Vue.prototype.$hideGlobalDialog = () => {
      modalInstance.isVisible = false
    }

    // 监听关闭事件来隐藏弹框
    modalInstance.$on('close', () => {
      modalInstance.isVisible = false
    })
  }
}

main/js

import Vue from 'vue'
import App from './App.vue'
import router from './router/index'
import store from './store/index'

// ...

import GlobalDialog from './plugins/global-dialog.js' // 【主要代码】
Vue.use(GlobalDialog); // 【主要代码】


router.beforeEach((to, from, next) => {
  /** ** 作为子系统处理 start ****/
  if (to.path === '/login') {
    // 进入登陆页关闭全局弹框
    Vue.prototype.$hideGlobalDialog() // 【主要代码】
  }
})

new Vue({
  router,
  store,
  render: (h) => h(App)
}).$mount('#app')

使用全局组件

this.$showGlobalDialog(
  `待办预警:${res.data.superviseTaskCount || 0} 条\n待办巡查:${res.data.patrolTaskCount || 0}`,
  {title: '待办提醒'}
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945789.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT------模型/视图

一、模型/视图结构概述 基本原理&#xff1a; Qt 的模型/视图&#xff08;Model/View&#xff09;架构将数据的存储和显示分离&#xff0c;提高了代码的可维护性和复用性。模型&#xff08;Model&#xff09;&#xff1a;负责存储和管理数据&#xff0c;提供数据的访问接口&am…

【YOLO 项目实战】(12)红外/可见光多模态目标检测

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO 项目实战】&#xff08;10&#xff09;YOLO8 环境配置与推理检测 【YOLO 项目实战】&#xff08;11&#xff09;YOLO8 数据集与模型训练 【YOLO 项目实战】&#xff08;12&#xff09;红外/可…

HTML——38.Span标签和字符实体

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>span标签和字符实体</title><style type"text/css">h1{text-align: center;}p{text-indent: 2em;}span{color: red;}</style></head><…

太速科技-688-基于 VM1302的双路100G光纤PCIe4.0X16加速计算卡

基于 VM1302的双路100G光纤PCIe4.0X16加速计算卡 一、产品概述 基于Xilinx芯片方案基础上研发的一款双口100 G FPGA光纤以太网PCI-Express v4.0 x16智能加速计算卡&#xff0c;该智能卡拥有高吞吐量、低延时的网络处理能力以及辅助CPU进行网络功能卸载的能力&#xff0c…

KMP 2024 年总结,Kotlin 崛起的一年

2024 Google I/O 上正式官宣了 KMP&#xff08;Kotlin Multiplatform&#xff09;项目&#xff0c;它是 Google Workspace 团队的一项长期「投资」项目&#xff0c;由 JetBrains 开发维护和开源的项目&#xff0c;简单来说&#xff0c;JetBrains 主导&#xff0c;Google Worksp…

企业数字化转型的构念及实现路径

引言 随着信息技术的飞速发展&#xff0c;数字化转型已成为企业持续竞争力的关键。企业数字化转型不仅仅是技术的更新换代&#xff0c;更是一场涉及组织结构、业务流程、企业文化等多方面的深刻变革。本文将探讨企业数字化转型的构念&#xff0c;并提出实现路径。 企业数字化转…

精密制造动力箱行业需要哪种多功能电表

一、在精密制造动力箱行业&#xff0c;多功能电表的选择需要考虑以下几个方面&#xff1a; 电力参数测量 多功能电表应能够测量单相或三相的电流、电压、有功功率、无功功率、视在功率、频率、功率因数等电力参数。这些参数对于监控和管理动力箱的运行状态至关重要。 电能计量…

《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍

1.3 架构介绍 HarmonyOS整体遵从分层架构设计&#xff0c;从下向上依次为&#xff1a;内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 組件”逐级展开&#xff0c;在多设备部署场景下&#xff0c;支持根据实际需求裁剪某些非必要的组件。HarmonyOS…

电脑有杂音滋滋滋响怎么处理?电脑有杂音解决指南

在日常使用电脑的过程中&#xff0c;您是否曾遭遇过这样令人困扰的问题&#xff1a;无论是播放音乐、观看视频还是进行语音通话时&#xff0c;电脑总会时不时地发出“滋滋滋”的电脑有杂音&#xff0c;严重影响了听觉体验和工作效率。这种现象并非无解&#xff0c;本文将为您提…

html+css+js网页设计 美食 家美食1个页面

htmlcssjs网页设计 美食 家美食1个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>

题目&#xff1a; 解析&#xff1a; 决策树&#xff1a; 代码设计&#xff1a; 代码&#xff1a; 写法一&#xff1a;path为全局变量 private int ret,path,aim;public int findTargetSumWays(int[] nums, int target) {aim target;dfs(nums,0);return ret;}private void…

VisualStudio 2019 升级遇到的问题及解决

事件起因 今天计划想研究下.net core&#xff08;后面版本直接称为 .net &#xff09;,发现 .net sdk 5.0 最新版本安装不成功。解决之后&#xff0c;真是手欠&#xff0c;看着Visual Studio 2019 有更新了&#xff0c;就直接点击了&#xff0c;这时才发现问题大了。。。 安装…

Quartus In-System Sources and Probes Editor 的使用说明

文章目录 前言使用说明参考资料 前言 Quartus 提供了 In-System Sources and Probes Editor 调试工具&#xff0c;通过 JTAG 接口使用该工具可以驱动和采样内部节点的逻辑值。即通过 Sources 功能来驱动 FPGA 内部信号&#xff0c;通过 Probes 功能来探测内部节点的逻辑值。在…

mybatis 和 mybatisPlus 兼容性问题

项目采用的是 mybatis&#xff0c; 后续引入了 mybatisPlus&#xff0c;用 mybatisX 创建的四个类一直报错&#xff0c;提示找不到符号&#xff0c;意识到 mybatis 和 mybatisPlus 的兼容性问题&#xff0c;通过修改配置 两者的配置如下 #配置mybatis配置 mybatis:type-aliase…

「Mac畅玩鸿蒙与硬件50」UI互动应用篇27 - 水果掉落小游戏

本篇教程将带你实现一个水果掉落小游戏&#xff0c;掌握基本的动态交互逻辑和鸿蒙组件的使用&#xff0c;进一步了解事件处理与状态管理。 关键词 UI互动应用水果掉落状态管理动态交互游戏开发 一、功能说明 水果掉落小游戏包含以下交互功能&#xff1a; 随机生成水果&#…

C# OpenCV机器视觉:凸包检测

在一个看似平常却又暗藏玄机的午后&#xff0c;阿强正悠闲地坐在实验室里&#xff0c;翘着二郎腿&#xff0c;哼着小曲儿&#xff0c;美滋滋地品尝着手中那杯热气腾腾的咖啡&#xff0c;仿佛整个世界都与他无关。突然&#xff0c;实验室的门 “砰” 的一声被撞开&#xff0c;小…

UGUI 优化DrawCall操作记录(基于Unity2021.3.18)

UGUI中相同材质相同Shader相同贴图的UI元素可以合并DrawCall。 1.使用图集 Unity性能优化---使用SpriteAtlas创建图集进行批次优化_unity2021.3.33 spriteatlas优化-CSDN博客 2.Canvas的子物体在场景树中的索引位置和不同图集不影响UI合批且UI网格没有重叠&#xff0c;如下图…

3---杭州工作三年半

2021-07-06来杭——2025-01-01元旦 1滨江2021-07-06——2022-11-25&#xff08;一年零四个月&#xff09; 2下沙2023-01-01——2023-04-27&#xff08;五个月&#xff09; 3苏州2023-06-07——2023-06-27&#xff08;一个月&#xff09;厦门2023-06-29——2023-07-06&#xff…

【项目开发】C#环境配置及VScode运行C#教程(学生管理系统)

原创文章,禁止转载。 文章目录 下载.NETVScode配置运行程序下载.NET 官网链接: https://dotnet.microsoft.com/en-us/download选择任意版本下载: 下载完成后,双击运行exe文件,等待安装完成。 在控制台输入: dotnet --version若出现版本信息,说明安装成功: VScode配…

Excel文件恢复教程:快速找回丢失数据!

Excel文件恢复位置在哪里&#xff1f; Excel是微软开发的电子表格软件&#xff0c;它为处理数据和组织工作提供了便捷。虽然数据丢失的问题在数字时代已经司空见惯&#xff0c;但对于某些用户来说&#xff0c;恢复未保存/删除/丢失的Excel文件可能会很困难&#xff0c;更不用说…