zoukankan      html  css  js  c++  java
  • vue 弹框组件

    组件效果:

      

      HTML代码:

    <div :class="isHD">
    <div class="mask"></div>
    <div class="dialog-box">
    <div class="dialog-close-btn" @click="IKonw()"></div>
    <div :class="dialogIcon"></div>
    <p class="dialog-msg">{{msg}}</p>
    <div class="i-know" :class="notifyHidden" @click="confirm()">
    <a type="button">{{confirmName}}</a>
    </div>
    <div class="dialog-btn-box" :class="confirmHidden">
    <a type="button" class="dialog-cancel-btn" @click="IKonw()">{{cancelName}}</a>
    <a type="button" class="dialog-confirm-btn" @click="confirm()">{{confirmName}}</a>
    </div>
    </div>
    </div>


    CSS代码:
    .mask {
    position:fixed;
    100%;
    height:100%;
    font-weight:bold;">#000;
    opacity:0.3;
    z-index:10000;
    left: 0;
    top: 0;
    }
    .dialog-box {
    280px;
    height:200px;
    position:fixed;
    left:50%;
    top:50%;
    margin-left: -140px;
    margin-top:-100px;
    font-weight:bold;">#fff;
    z-index:10001;
    border-radius:4px;
    font-family: PingFangSC-Regular;
    font-size: 14px;
    }
    .dialog-msg {
    text-align:center;
    color: #4A6075;
    line-height: 26px;
    250px;
    margin: 0 auto;
    padding-left: 14px;
    height: 52px;
    display: inline-block;
    }
    .i-know {
    position: absolute;
    margin-top: 18px;
    margin-left: 70px;
    text-align:center;
    }
    .i-know a {
    display:inline-block;
    height:30px;
    140px;
    color:#fff;
    line-height:30px;
    font-weight:bold;">#3ABBCD;
    border-radius:100px;
    text-decoration: none;
    cursor: pointer;
    }
    .dialog-hidden ,.notify-hidden,.confirm-hidden{
    display:none;
    }
    .dialog-close-btn {
    background:url("/images/closebtn.svg") no-repeat center;
    10px;
    height:10px;
    overflow:hidden;
    position:absolute;
    right:10px;
    top:10px;
    cursor:pointer;
    }
    .dialog-confirm-icon {
    60px;
    height: 60px;
    background: url("/images/successBig.svg") no-repeat center;
    margin:-30px auto 45px auto;
    }
    .dialog-notify-icon {
    60px;
    height: 60px;
    background: url("/images/notifyBig.svg") no-repeat center;
    margin:-30px auto 45px auto;
    }
    .dialog-warning-icon {
    60px;
    height: 60px;
    background: url("/images/warningBig.svg") no-repeat center;
    margin:-30px auto 45px auto;
    }
    .dialog-btn-box {
    position: absolute;
    margin-top: 18px;
    margin-left: 28px;
    overflow:hidden;
    text-align:center;
    }
    .dialog-cancel-btn {
    display:inline-block;
    height:30px;
    100px;
    color:#888!important;
    line-height:30px;
    font-weight:bold;">#DEE4EA;
    border-radius:100px;
    vertical-align:middle;
    cursor: pointer;
    }
    .dialog-confirm-btn {
    display:inline-block;
    height:30px;
    100px;
    color:#fff!important;
    line-height:30px;
    font-weight:bold;">#3ABBCD;
    border-radius:100px;
    vertical-align:middle;
    margin-left:20px;
    cursor: pointer;
    }

    .hidden-btn{
    opacity: 0;
    position: absolute;
    }

    JS代码:
    use([], function() {
    Vue.component('dialogWidget', {
    pageName: "common",
    template: "public/widget/dialog/dialog.html",
    props:["isHidden","msg","confirmName","cancelName","handle","dialogIcon","confirmHidden","notifyHidden"],
    data:function() {
    return {
    isHD:'dialog-hidden'
    }
    },
    created: function() {},
    mounted: function() {
    this.isHD = this.isHidden;
    },
    methods: {
    IKonw:function(){
    this.isHD = "dialog-hidden";
    },
    confirm:function(){
    this.IKonw();
    if(this.handle){
    this.handle();
    }
    }
    }
    });
    });

    var dialog = {
    viewDialog: null,
    init: function(config) {
    var type = config.type || "notify";
    var msg = config.msg || "参数配置有误";
    var confirmName = config.confirmName || '';
    var cancelName = config.cancelName || '';
    var handle = config.handle || '';

    var isHidden='',dialogIcon,confirmHidden,notifyHidden;

    if(type == "confirm"){
    dialogIcon = "dialog-confirm-icon";
    confirmHidden = "";
    notifyHidden = "notify-hidden";
    }
    if(type == "notify"){
    dialogIcon = "dialog-notify-icon";
    confirmHidden = "confirm-hidden";
    notifyHidden = "";
    }
    if(type == "warning"){
    dialogIcon = "dialog-warning-icon";
    confirmHidden = "confirm-hidden";
    notifyHidden = "";
    }

    this.viewDialog = Vue.extend({
    template: '<dialogWidget :isHidden = "isHidden" :msg="msg" :confirmName="confirmName" :cancelName="cancelName" :handle="handle" :dialogIcon="dialogIcon" :confirmHidden="confirmHidden" :notifyHidden="notifyHidden"></dialogWidget>' ,
    data: function() {
    return {
    isHidden : isHidden,
    msg : msg,
    confirmName : confirmName,
    cancelName : cancelName,
    handle : handle,
    dialogIcon : dialogIcon,
    confirmHidden : confirmHidden,
    notifyHidden : notifyHidden
    }
    }
    });

    if($("#viewPrompter")){
    $("#viewPrompter").remove();
    }
    var component = new this.viewDialog().$mount();//挂载到内存节点上

    var viewerEle = $("<div id='viewPrompter'></div>");
    $("#content-box").append(viewerEle);
    viewerEle.append($(component.$el));
    }
    };

    组件引用:

    组件调用:

    showPrompt: function(){
    dialog.init({
    type:"warning",
    msg:"这是一个弹框?",
    confirmName:"我知道啊",
    handle:function(){
    console.log(111111111111)
    }
    });
    },
    showNotify: function(){
    dialog.init({
    type:"notify",
    msg:"这是一个notify弹框,这是一个notify弹框.这是一个notify弹框?",
    confirmName:"立即前往",
    handle:function(){
    console.log("去哪啊。。。。")
    }
    });
    },
    showConfirm: function(){
    dialog.init({
    type:"confirm",
    msg:"这是一个confirm弹框,这是一个confirm弹框.这是一个confirm弹框?",
    cancelName:"取消",
    confirmName:"确定",
    handle:function(){
    console.log("保存成功")
    }
    });
    }
    
    
    
  • 相关阅读:
    201521123091 《Java程序设计》第4周学习总结
    代码统计
    Java 第三周总结
    201521123077 《Java程序设计》第12周学习总结
    201521123077 《Java程序设计》第11周学习总结
    201521123077 《Java程序设计》第10周学习总结
    201521123077 《Java程序设计》第9周学习总结
    201521123077 《Java程序设计》第8周学习总结
    201521123077 《Java程序设计》第7周学习总结
    201521123077 《Java程序设计》第6周学习总结
  • 原文地址:https://www.cnblogs.com/lovemiao/p/8656057.html
Copyright © 2011-2022 走看看