index.js 702 Bytes
import Vue from 'vue'
import FormDialog from './main'

export default config => {
  const {
    title,
    submitSuccessMessage,
    schema,
    rules,
    data = {},
    onSubmit,
    confirmButtonText
  } = config

  const Dialog = Vue.extend(FormDialog)
  const dialog = new Dialog({
    propsData: {
      title,
      schema,
      rules,
      submitSuccessMessage,
      confirmButtonText,
      data: JSON.parse(JSON.stringify(data)),
      submitMethod: onSubmit
    },
    destroyed() {
      document.body.removeChild(dialog.$el)
    }
  })
  dialog.$on('closed', () => {
    dialog.$destroy()
  })
  dialog.$mount()
  dialog.show()
  document.body.appendChild(dialog.$el)
  return dialog
}