index.js 788 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import vue from 'vue'
  2. import toastComponent from './index.vue'
  3. const ToastConstructor = vue.extend(toastComponent)
  4. let toastDom
  5. function showToast (text, isToast = true, duration = 2500) {
  6. if (!toastDom) {
  7. toastDom = new ToastConstructor({
  8. el: document.createElement('div'),
  9. data () {
  10. return {
  11. text,
  12. show: true
  13. }
  14. }
  15. })
  16. document.body.appendChild(toastDom.$el)
  17. } else {
  18. toastDom.show = true
  19. toastDom.text = text
  20. }
  21. if (isToast) {
  22. setTimeout(() => { toastDom.show = false }, duration)
  23. }
  24. }
  25. function hideToast () {
  26. if (toastDom) {
  27. toastDom.show = false
  28. }
  29. }
  30. function registryToast () {
  31. vue.prototype.$showTips = showToast
  32. vue.prototype.$hideTips = hideToast
  33. }
  34. export default registryToast