1234567891011121314151617181920212223242526272829303132333435363738 |
- import { render, h } from 'vue'
- import { hasOwn } from '@vue/shared'
- import FormDialogConstructor from './index'
- function showFormDialog (options, resolve, reject) {
- const container = document.createElement('div')
- options.onVanish = () => {
- render(null, container)
- }
- options.onAction = (action) => {
- if (action === 'close') {
- reject()
- } else {
- resolve()
- }
- }
- const vnode = h(FormDialogConstructor, options)
- render(vnode, container)
- document.body.appendChild(container)
- const instance = vnode.component
- const vm = instance.proxy
- // eslint-disable-next-line no-unused-vars
- for (const prop in options) {
- if (hasOwn(options, prop) && !hasOwn(vm.$props, prop)) {
- vm[prop] = options[prop]
- }
- }
- vm.visible = true
- }
- function FormDialog (options = {}) {
- return new Promise((resolve, reject) => {
- showFormDialog(options, resolve, reject)
- })
- }
- export default FormDialog
|