generated from Leo_Ding/web-template
70 lines
1.1 KiB
JavaScript
70 lines
1.1 KiB
JavaScript
import { ref } from 'vue'
|
|
|
|
export default () => {
|
|
const modal = ref({
|
|
type: '',
|
|
title: '',
|
|
open: false,
|
|
confirmLoading: false,
|
|
})
|
|
|
|
/**
|
|
* 设置弹窗
|
|
* @param options
|
|
*/
|
|
function setModal(options = {}) {
|
|
modal.value = {
|
|
...modal.value,
|
|
...options,
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 显示弹窗
|
|
* @param options
|
|
*/
|
|
function showModal(options = {}) {
|
|
setModal({
|
|
open: true,
|
|
...options,
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 隐藏弹窗
|
|
*/
|
|
function hideModal() {
|
|
setModal({
|
|
type: '',
|
|
open: false,
|
|
confirmLoading: false,
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 显示 loading
|
|
*/
|
|
function showLoading() {
|
|
setModal({
|
|
confirmLoading: true,
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 隐藏 loading
|
|
*/
|
|
function hideLoading() {
|
|
setModal({
|
|
confirmLoading: false,
|
|
})
|
|
}
|
|
|
|
return {
|
|
modal,
|
|
showModal,
|
|
hideModal,
|
|
showLoading,
|
|
hideLoading,
|
|
}
|
|
}
|