23 lines
667 B
TypeScript
23 lines
667 B
TypeScript
import {createVNode, render} from 'vue'
|
|
import Toast from './Toast.vue'
|
|
|
|
export const toast = (message: string) => {
|
|
if (timer) clearTimeout(timer)
|
|
let div = document.querySelector('.message-wrapper');
|
|
if (!div) {
|
|
div = document.createElement('div');
|
|
div.classList.add("message-wrapper");
|
|
document.body.append(div);
|
|
}
|
|
// TODO 完善多消息同时共存 - 主要时添加新的容器
|
|
const messageNode = createVNode(Toast, {message})
|
|
render(messageNode, div)
|
|
// @ts-ignore
|
|
timer = setTimeout(() => {
|
|
div.removeChild(messageNode.el as Node)
|
|
}, 3000)
|
|
}
|
|
let timer = 0;
|
|
export default {
|
|
toast,
|
|
} |