ansidev / m-dialog

A dialog component for vue.

Home Page:https://mengdu.github.io/m-dialog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dialog

Vue 的 Dialog 弹窗组件,包含了 alertconfirm 对话框。

Live Demo

参考代码:el-dialog

Use

npm install vue-m-dialog
import MDialog from 'vue-m-dialog' // ro import { Dialog, Alert, Confirm } from 'vue-m-dialog'
import 'vue-m-dialog/dist/index.css'

Vue.use(MDialog) // 将挂载 m-dialog组件和 Vue.prototype.$alert 和 Vue.prototype.$confirm

如果 Vue.prototype.$alertVue.prototype.$confirm 方法冲突,通过配置:

Vue.use(MDialog, {
  dialogName: 'm-dialog',
  alertName: 'msg',
  confirmName: 'dialog',
  alertOptions: {}, // alert全部默认配置
  confirmOptions: {} // confirm 全局默认配置
})
<m-dialog
  :show.sync="show"
  title="提示"
  :append-to-body="appendToBody"
  :close-on-click-modal="closeOnClickModal"
  :close-on-press-escape="closeOnPressEscape"
  :no-head="noHead"
  :before-close="close"
  @open="onOpen"
  @close="onClose"
  width="300px"
  >
  <span>这里是正文内容...</span>
  <div slot="footer">
    <div style="float: right">
      <m-button plain @click="show = false">取消</m-button>
      <m-button type="info">确定</m-button>
    </div>
  </div>
</m-dialog>

MDialog Attributes

参数 说明 类型 可选值 默认值
show 是否显示 Dialog,支持 .sync 修饰符 boolean false
title Dialog 的标题,也可通过具名 slot (见下表)传入 string
width Dialog 的宽度 string 50%
auto-width 自动宽度 boolean true/false false
top Dialog CSS 中的 margin-top 值 string 15vh
append-to-body 弹窗DOM是否插入到 body boolean false
close-on-click-modal 是否可以通过点击 modal 关闭 Dialog boolean true/false true
close-on-press-escape 是否可以通过按下 ESC 键关闭 Dialog boolean true/false true
show-close 是否显示关闭按钮 boolean true/false true
before-close 关闭前的回调,会暂停 Dialog 的关闭 function
no-head 去掉标题部分 boolean true/false false
is-middle 是否居中 boolean true/false false
margin-top 距离顶部 string
fade-name 弹窗动画过渡类名 string 'scale-fade', 'slide-fade' 'slide-fade'

Slot

name 说明
- Dialog 的内容
title Dialog 标题区的内容
footer Dialog 按钮操作区的内容

Events

事件名称 说明 回调参数
close Dialog 关闭后回调,返回关闭触发类型 closeType 值为 'user', 'esc', 'button', 'modal'
open Dialog 打开的回调

Alert 提示框

Alert 是一个提示窗

import { Alert } from 'vue-m-dialog'

Alert('Hello !')
// ro
Alert.alert('Hello !')

Alert(msg[, options]) 提示一条信息,这是个列队模式,同时执行多次会逐个弹窗,如果需要多个弹出,请使用 Alert.alert

  • msg string 必须,消息内容
  • options object 可选,配置对象

Alert.alert(msg[, options]) 不列队弹窗, 返回当前组件对象

  • msg string 必须,消息内容
  • options object 可选,配置对象

Alert.config(options) 设置全局的默认配置

Confirm 对话框

import { Confirm } from 'vue-m-dialog'

Confirm('Are you sure ?')
// ro
Confirm.confirm('Are you sure ?')

Confirm(msg[, options]) 对话框,并发多次调用会列队;返回 Promise 对象;确认会 resolve,取消会 reject;如果不需要列队请用 Confirm.confirm

  • msg string 必须,消息内容
  • options object 可选,配置对象

Confirm.confirm(msg[, options]) 对话框不列队处理

  • msg string 必须,消息内容
  • options object 可选,配置对象

Confirm.config(options) 设置全局默认配置

options 配置对象如下:

参数 说明 类型 可选值 默认值
options.title 显示标题 string 'Message'
options.width 提示框宽度 string '300px'
options.iconType 提示图标 string info, warning, danger, success, 'question ''
options.iconImg 提示图标url string ''
options.showClose 是否显示关闭按钮 boolean true/false true
options.isMiddle 是否居中 boolean true/false true
options.closeOnClickModal 点击遮罩层是否关闭 boolean true/false true
options.closeOnPressEscape 按下esc按钮是否关闭 boolean true/false false
options.controlButtonCenter 控制按钮是否居中 boolean true/false false
options.confirmButtonText 确认按钮文字 string 'Confirm'
options.cancelButtonText 取消按钮文字 string 'Cancel'
options.cancelButtonClassName 取消按钮类名 string 'm-message-button--cancel'
options.confirmButtonClassName 确认按钮类名 string 'm-message-button--confirm'
options.supportHTMLString 是否支持html boolean true/false false
options.callback 关闭后回调 function null
options.fadeName 弹窗动画过渡类名 'scale-fade', 'slide-fade' 'slide-fade'

About

A dialog component for vue.

https://mengdu.github.io/m-dialog

License:MIT License


Languages

Language:JavaScript 49.1%Language:Vue 22.1%Language:Less 13.3%Language:CSS 13.3%Language:HTML 2.2%