You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
TypeScript
61 lines
1.4 KiB
TypeScript
// composables/useMessageBox.ts
|
|
import { ElMessageBox } from 'element-plus';
|
|
|
|
export const useMessageBox = () => {
|
|
const confirm = (options: any) => {
|
|
return ElMessageBox.confirm(
|
|
options.message,
|
|
options.title,
|
|
Object.assign({
|
|
confirmButtonText: '确认',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
draggable: true,
|
|
showClose: false,
|
|
customClass: 'custom-message-box',
|
|
beforeClose: (action:string, instance:any, done:any) => {
|
|
if (action === 'confirm') {
|
|
instance.confirmButtonLoading = true;
|
|
setTimeout(() => {
|
|
done();
|
|
instance.confirmButtonLoading = false;
|
|
}, 1000);
|
|
} else {
|
|
done();
|
|
}
|
|
}
|
|
}, options)
|
|
);
|
|
};
|
|
|
|
const prompt = (options: any) => {
|
|
return ElMessageBox.prompt(
|
|
options.message,
|
|
options.title,
|
|
Object.assign({
|
|
confirmButtonText: '提交',
|
|
cancelButtonText: '取消',
|
|
inputType: 'text',
|
|
inputPlaceholder: '请输入内容',
|
|
draggable: true
|
|
}, options)
|
|
);
|
|
};
|
|
|
|
const alert = (options: any) => {
|
|
return ElMessageBox.alert(
|
|
options.message,
|
|
options.title,
|
|
Object.assign({
|
|
confirmButtonText: '我知道了',
|
|
type: 'info'
|
|
}, options)
|
|
);
|
|
};
|
|
|
|
return {
|
|
confirm,
|
|
prompt,
|
|
alert
|
|
};
|
|
}; |