2-使用方法1
页面中引入在进行调用
(1)importMydialogfrom'../carrer/mydialog.vue';
(2)引入组件
components:{ Mydialog }
(3 在html中插入组件
data中的参数
showDialog:false, dialogOption:{ text:'欢迎', cancelButtonText:'否', confirmButtonText:'是', isShowCancelButton:'' },
methods中在需要出现弹框时候让其显示就好啦
showDialog() this.dialogOption.text=`确认拒绝?
`; this.dialogOption.isShowCancelButton=true this.showDialog=true; this.$refs.mydialog.confirm().then(()=>{ this.showDialog=false; this.refuse(id) }).catch(()=>{ this.showDialog=false; }) },
3.使用方法2
因为在项目中经常要使用到,而且每次使用的时候都要带上相同的参数,所以就封装了一个js,(模态框的工具类),使用的时候调用就好了
1)-新建一个js文件dialogUtil,复制下面的代码就好了
classnormalDialog{ constructor(args){ //console.log("args",args); this.parent=args.parent; this.isShowDialog=args.isShowDialog; this.dialogOption=this.parent[args.dialogOption]; this.mydialog=this.parent.$refs[args.mydialog]; //console.log("dialogOption=",this.dialogOption); } showDialog(text,showCancelButton,success,error){ console.log("showDialog=="+text); this.dialogOption.text=text||"请输入弹框标题"; letsuc=typeofshowCancelButton=="function"?showCancelButton:success; leterr=typeofshowCancelButton=="function"?success:error; if(typeofshowCancelButton!="function"){ this.dialogOption.isShowCancelButton=!!showCancelButton; }else{ this.dialogOption.isShowCancelButton=true; } this.parent[this.isShowDialog]=true; this.confirm(suc,err); } //弹框回调 confirm(success,error){ letself=this; this.mydialog.confirm().then(()=>{ typeofsuccess=="function"&&success(); self.parent[this.isShowDialog]=false; }).catch(()=>{ typeoferror=="function"&&error(); self.parent[this.isShowDialog]=false; }) } toString(){ //console.log(this.name+":"+this.age); } } exportdefault{ //args:参数,类型 creatByType(args,type){ type=!!type?type:1; switch(type){ case1: returnnewnormalDialog(args) break; case2: break default: break; } } }
2)因为很多页面都用到,所以让他成为全局的(在main中引入就好了),那么别的页面使用就不需要引入了
importdbDiaLogUtilfrom'./assets/js/dialogUtil' Vue.prototype.$dbDiaLogUtil=dbDiaLogUtil;
3)在使用的时候
页面中引入组件在进行调用
(1)importMydialogfrom'../carrer/mydialog.vue';
(2)引入组件
components:{ Mydialog }
(3)在html中插入组件
在data()中用对象的形式
isShowDialog:false, dialogOption:{text:'',cancelButtonText:'否',confirmButtonText:'确认',isShowCancelButton:false}, dialogNormal:null,
在mounted中进行初始化
this.dialogNormal=this.$dbDiaLogUtil.creatByType({parent:this,isShowDialog:'isShowDialog',dialogOption:'dialogOption',mydialog:'mydialog'});
最后在需要弹框的地方调用,一句代码搞定啦
this.dialogNormal.showDialog('dialog要显示的内容',function(){console.log('成功执行的')},function(){console.log('失败执行的')})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。