Vue ZyDialog
A dialog component that provides customizable alert, confirm and prompt for your Vue.js apps.
Features
- Promise based, friendly programming interface
- Global and per call config
- Sequential calls are queued automatically, while it's possible to override the priority manually
- Zero styling dependency, theming (WIP) based on CSS
- Mobile & desktop ready
Requirement
- Vue.js 2.x
Browser Compatibility
- Evergreen browsers
- IE >= 10
Installation
With Yarn
yarn add vue-zydialog Or with NPM
npm install vue-zydialog --save Basic Example
Import ZyDialog in your main.js file
import ZyDialog from 'vue-zydialog' Vue.use(ZyDialog)Use it in your vue component
... methods: { sayHello () { this.$alert('Hello world') .then(() => { this.$alert('World confirmed') }) } } ...If you prefer the async/await flavour, you can do this
... methods: { async sayHello () { await this.$alert('Hello world') this.$alert('World confirmed') } } ... ... methods: { async toConfirm () { if (await this.$confirm('Are you sure?')){ // continue to process } else { // abort processing } } } ...Documentation
Options
You can pass an object of options when initializing ZyDialog or when calling alert, confirm and prompt. For example:
// Global options import ZyDialog from 'vue-zydialog' Vue.use(ZyDialog, { duration: 3000 // This will make all dialogs auto close after 3 seconds }) // Per call options // When calling with a string as the parameter, the string automatically goes to "title" field, or you can explicitly set the "title" and other options like this ... methods: { async sayHello () { await this.$alert({ title: 'Hello world', duration: 3000 }) } } ...Available options are as follows:
| Field | Type | Default | Notes |
|---|---|---|---|
| id | String | 'vue-zydialog-default' | DOM id |
| className | String | '' | additional DOM class name |
| maskColor | String | 'rgba(40, 40, 40, 0.6)' | color of the mask area |
| override | Boolean | false | current dialog overrides the queue and will be shown instantly, this will also clear the queue |
| parent | String | 'body' | parent DOM node, needs a querySelector compatible string |
| transition | String | 'zy-dialog-transition' | transition class name, refer to Vue.js Transitions Docs for defining your own transition |
| duration | Number | 0 | milliseconds before auto close, set to 0 or any falsy value to disable auto close |
| wide | Boolean | false | shows as a wide dialog |
| title | String | '' | dialog title |
| message | String | '' | dialog message |
| forceStay | Boolean | true | set to true to prevent closing / canceling the dialog when mask area is clicked |
| lbHide | Bolean | false | hide left button |
| rbHide | Boolean | false | hide right button |
| lbLabel | String | '取消' | left button label text |
| rbLabel | String | '确认' | right button label text |
| actionAlt | Function/null | null | callback function when left button and mask area is clicked |
| action | Function/null | null | callback function when right button is clicked |
Theme
Docs WIP for theming the visual part
License
MIT © mogita