Modal 弹出框

通用参数

所有组件均支持class和style属性,class可以是vue变量也可以是字符串,style可以是字符串或者对象
注:如果是变量需要在class前面加冒号,例如 :class=”mv-button”

概述

button 可以自定义通用属性class和style,以及show(是否显示),headerHide(隐藏header),footerHide(隐藏footerHide),cancelText(取消按钮文本),okText(确定按钮文本),width(width宽度)

如何使用

<Modal :show.sync="show">
    <div slot="header">Mvui 默认弹框</div>
    <div>这是一个弹窗</div>
</Modal>
<script>
    import { Modal } from 'mvui';
    export default{   
        components: { 
            Modal,
        },
        data(){
             return {
                show: true
             }
        },
    }
</script>

API

Modal props

属性 说明 类型 默认值 可选值
class 选填,类名(可以设置icon) String - 任意
style 选填,内联样式,自由设置样式 [String,Object] - 任意
show 必填,是否显示 Boolean false,ture
header-hide 选填,是否隐藏header Boolean false false,ture
footer-hide 选填,是否隐藏footer Boolean false false,ture
cancel-text 选填,取消按钮文本 String 取消 任意文本
ok-text 选填,确定按钮文本 String 确定 任意文本
width 选填,弹框宽度 Number 80% 任意宽度
auto-close 选填,点击的时候是否自动关闭 Boolean true 默认开启

右侧示例代码

默认

<template>  
    <div class="body-wrapper">
        <Hometitle>Modal</Hometitle>
        <div class="wrapper-example">
            <div class="wrapper-area">
                <div class="wrapper-area-title">默认模态框</div>
                <div class="wrapper-area-content">
                    <div class="click-btn" @click="clickshow1">点击提示弹框</div>
                    <Modal :show.sync="show1">
                        <div slot="header">Mvui 默认弹框</div>
                        <div>这是一个弹窗</div>
                    </Modal>
                </div>
            </div>

            <div class="wrapper-area">
                <div class="wrapper-area-title">通过属性隐藏header 和 footer</div>
                <div class="wrapper-area-content">
                    <div class="click-btn" @click="clickshow2">点击提示弹框</div>
                    <Modal :show.sync="show2" :footer-hide="true" :header-hide="true">
                        <div slot="header">Mvui 默认弹框</div>
                        <div>
                            这是一个没有header和footer的弹框
                            <div @click="clickhide2">点我关闭</div>
                        </div>
                    </Modal>
                </div>
            </div>

            <div class="wrapper-area">
                <div class="wrapper-area-title">通过slot 隐藏header 和 footer</div>
                <div class="wrapper-area-content">
                    <div class="click-btn" @click="clickshow3">点击提示弹框</div>
                    <Modal :show.sync="show3">
                        <div slot="header"></div>
                        <div>
                            这是一个没有header和footer的弹框
                            <div @click="clickhide3">点我关闭</div>
                        </div>
                        <div slot="footer"></div>
                    </Modal>
                </div>
            </div>


            <div class="wrapper-area">
                <div class="wrapper-area-title">自定义header footer</div>
                <div class="wrapper-area-content">
                    <div class="click-btn" @click="clickshow4">点击提示弹框</div>
                    <Modal :show.sync="show4">
                        <div slot="header">
                            自定义模态框
                        </div>
                        <div>
                            <div>你好,我是自定义模块狂</div>
                            <div>你好,我是自定义模块狂框框</div>
                        </div>
                        <div slot="footer">
                            <div @click="clickhide4" style="padding-bottom: 10px;">自定义按钮</div>
                        </div>
                    </Modal>
                </div>
            </div>


            <div class="wrapper-area">
                <div class="wrapper-area-title">自定义header footer</div>
                <div class="wrapper-area-content">
                    <div class="click-btn" @click="clickshow5">事件回调</div>
                    <Modal :show.sync="show5" @on-cancel="oncancel" @on-ok="onok" :auto-close="false">
                        <div slot="header">
                            事件回调
                        </div>
                        <div>
                            <div>你好,我是自定义模块狂</div>
                            <div>你好,我是自定义模块狂框框</div>
                        </div>
                    </Modal>
                </div>
            </div>

            <Tip :show.sync="showtip">{{tipmessage}}</Tip>
        </div>
    </div>
</template>
<script>
    import Hometitle from './common/hometitle.vue';
    import { Modal, Tip } from 'mvui';
    export default{   
        components: { 
            Hometitle,
            Modal,
            Tip
        },
        data(){
             return {
                show1: false,
                show2: false,
                show3: false,
                show4: false,
                show5: false,
                showtip: false,
                tipmessage: ''
             }
        },
        methods: {
            clickshow1(){
                this.show1 = true;
            },
            clickshow2(){
                this.show2 = true;
            },
            clickhide2(){
                this.show2 = false;
            },
            clickshow3(){
                this.show3 = true;
            },
            clickhide3(){
                this.show3 = false;
            },
            clickshow4(){
                this.show4 = true;
            },
            clickhide4(){
                this.show4 = false;
            },
            clickshow5(){
                this.show5 = true;
            },
            oncancel(){
                this.show5 = false;
                this.tipmessage = "点击cancel按钮";
                this.showtip = true;
            },
            onok(){
                this.tipmessage = "点击ok按钮";
                this.showtip = true;
            }
        }
    }
</script>
<style lang="less">
    .click-btn{
        cursor: pointer;
    }
</style>