首页 > 其他分享 >vue 自定义全局弹窗组件

vue 自定义全局弹窗组件

时间:2023-09-18 13:11:06浏览次数:35  
标签:vue const 自定义 confirm iHotelConfirm Vue 弹窗

问题描述: vue 自定义类似 elementUI 的 this.$confirm

解决方案: 通过vue 的extend 方法实现 然后全局注入 

代码实现:

  1.  展示的组件 (就是最基本的vue组件代码)
  1. <!-- * @Author: linchun linchun * @Date: 2023-09-18 10:14:24 * @LastEditors: linchun linchun * @LastEditTime: 2023-09-18 11:09:45 * @FilePath: \Alliance_Technical_Admin_1.4.0d:\WODE\cz_pms_admin\src\components\iHotelConfirm\iHotelConfirm.vue * @Description: iHotelConfirm 自定义弹窗 --> <template> <a-modal title="" :visible="dialogVisible" width="416px" @cancel="handleClose" :closable="false" > <div class="confirm-box"> <div class="confirm-title"> <img src="@/assets/img/ihotel.png" alt=""> <span>酒店接口服务V2.1.0.14</span> </div> <div class="confirm-context"> {{message}},请稍后重试,如持续未恢复正常,请联系我们:400-9696-978</div> </div> <div slot="footer" class="dialog-footer"> <a-button @click="handleClose" type="primary">关 闭</a-button> </div> </a-modal> </template> <script> export default { name: "iHotelConfirm", data() { return { }; }, methods:{ handleClose(){ this.dialogVisible = false } } }; </script> <style lang="less" scoped> .confirm-title{ color: #323233; font-weight: 500; font-size: 16px; line-height: 1.4; img{ width: 16px; height: 16px; margin-right: 5px; } } .confirm-context{ margin-top: 8px; color: #323233; font-size: 14px; padding-left: 21px; } </style>

2. 在同等文件夹下面创建index.js 

import Vue from 'vue'
import confirm from './confirm.vue' 
// const iHotelConfirm = Vue.extend(require('./confirm.vue'))
const iHotelConfirm = Vue.extend(confirm)
function showConfirm (detail){
    const _confirm = new iHotelConfirm({
        data(){
            return{
                message:detail.message,
                dialogVisible:true,

            }
        }
    })
    const element = _confirm.$mount().$el
    document.body.appendChild(element)
}
showConfirm.install = Vue => {
    Vue.prototype.$iHotelConfirm = showConfirm // 将Notice组件暴露出去,并挂载在Vue的prototype上
}
export default showConfirm

  3. 在main.js中引入

//自定义tost iHotelConfirm
import iHotelConfirm from './components/iHotelConfirm/index.js'
Vue.use(iHotelConfirm)

  在代码中使用  this.$iHotelConfirm({message:"我是extend测试成功"})

展示效果:

 

标签:vue,const,自定义,confirm,iHotelConfirm,Vue,弹窗
From: https://www.cnblogs.com/qinyuanchun/p/17711419.html

相关文章

  • vue打包后webview加载本地html显示空白页的解决历程
    vue打包后放进androidasserts中webview死活加载不出本地html,一直显示空白,AndroidStudioLogcat也没个啥提示,用浏览器打开却是正常,单独建了html文件放进去也能显示,上火,只好重载webview的事件来获取报错内容:webView.setWebViewClient(newWebViewClient(){@Override......
  • 从零开始使用vue2+element搭建后台管理系统(动态表单实现(含富文本框))[待完善]
    在后台项目的实际开发过程中,涉及到表单的部分通常会使用动态渲染的方案进行实现,由后端接口返回表单配置,前端进行遍历渲染。考虑到通用后台需要具备的功能,除了基础的表单项如输入、下拉、多选、开关、时间、日期等,还需要具备上传、富文本框等功能。首先导入一个百度来的富文本框插......
  • vue项目用electron打包成exe,并更新exe版本
    用electron-build打包1、下载electron、electron-buildernpminstallelectronelectron-builder-D2、配置package.json文件"start":"electron.","app:build":"electron-builder" "build":{"appId":&q......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-16-处理模态对话框弹窗
    1.简介我们在日常工作中,会经常遇到弹出警告框的问题,弹框无法绕过,必须处理才可以执行后续的测试,所以弹框处理也是我们必须掌握的一个知识。宏哥在java+selenium系列文章中介绍过这部分内容。那么,playwright对于弹框的处理是怎样的?是否比selenium更加简单呢?下面我们就来介绍一下pla......
  • vue+openlayers 绘制点
    绘制点使用point在绘制点的位置,使用Circle绘制点的样式疑问:将style放在Feature上就绘制不出来样式? <template><divclass="setting"><divclass="title">设置</div><ul><li><p>边框大小:&......
  • Springboot简单功能示例-4 自定义加密进行登录验证
    springboot-sample介绍springboot简单示例-自定义加密进行登录验证跳转到发行版软件架构(当前发行版)Springboot3.1.3hutoolbcprov-jdk18on安装教程gitclone--branch自定义加密进行登录验证[email protected]:simen_net/springboot-sample.git主要功能使用SM2库......
  • 自定义Feign的配置
        ......
  • vue3项目rem自适应大小如何实现
    ❝rem自适应方案只是页面自适应的解决方案之一,本文主要讲解一下实现过程!本文演示的是Vue3语法!❞rem自适应随着现在互联网设备的日益更新,各大尺寸的屏幕参差不穷导致我们的布局在某些小屏或者大屏上与UI的表现并不一致所以,很多人寻求各种解决方案,我们现在的很多移动端框架都是支持......
  • destoon添加自定义字段报错INSERT INTO [pre]fields
     今天做destoon开发时候在后台添加自定义字段时候出现:destoon7.0-8.0添加自定义字段报错MySQLQuery:INSERTINTO[pre]fields(tb,name,title,note,type,length,html,default_value,option_value,width,height,input_limit,addition,search,display,front)VALUES('article_21',......
  • 使用Python的requests库自定义请求
    importrequestsfromrequestsimportRequest,Sessionurl="http://challenge-d590d34746e26bc5.sandbox.ctfhub.com:10800/index.php"headers={"user-agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,lik......