import { h, render } from 'vue'
import { Modal } from '@opentiny/vue'
const confirm = ({ title, status, message, exec, cancel, showFooter = true }) => {
Modal.confirm({
title,
status,
showFooter,
message: () => {
return (
<div class="modal-content">
<div class="wrap">{typeof message === 'string' ? message : <message />}</div>
</div>
)
}
}).then((res) => {
if (res === 'confirm' && typeof exec === 'function') {
exec()
} else if (typeof cancel === 'function') {
cancel()
}
})
}
const message = ({ title, status, message, exec, width = '400' }) => {
Modal.alert({
title,
status,
'confirm-btn-props': { text: '确定' },
width: width,
message() {
return (
<div div class="modal-content">
<div class="wrap">{typeof message === 'string' ? message : <message />}</div>
</div>
)
}
}).then(() => {
if (typeof exec === 'function') {
exec()
}
})
}
const topbox = (options) => {
const props = { ...options, modelValue: true }
let TopBox = h(Modal, props)
const modalEl = document.createElement('div')
const close = () => {
TopBox.el.remove()
TopBox = null
}
render(TopBox, modalEl)
return {
TopBox,
close
}
}
window.topbox = topbox
window.message = message
export default {
confirm,
message,
topbox
}