index.js 903 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // 引入 vue 和 创建的 toast vue
  2. import Vue from 'vue'
  3. import Toast from './index.vue'
  4. // 创建 Toast Vue 子类
  5. const ToastMsg = Vue.extend(Toast)
  6. // 传入内容和 类型
  7. Toast.install = (options, type) => {
  8. console.log(options,type,111111)
  9. // 判断数据类型,并对应处理
  10. if (options === undefined || options === null) {
  11. options = {
  12. content: ''
  13. }
  14. } else if (typeof options === 'string' || typeof options === 'number') {
  15. options = {
  16. content: options
  17. }
  18. if (type !== undefined && options !== null) {
  19. options.type = type
  20. }
  21. }
  22. // 创建Toast实例,传入 data 数据
  23. let instance = new ToastMsg({
  24. data: options
  25. }).$mount()
  26. // 添加到 html 页面
  27. document.body.appendChild(instance.$el)
  28. // 在修改数据之后立即使用这个方法,获取更新后的 DOM
  29. Vue.nextTick(() => {
  30. instance.visible = true
  31. })
  32. }
  33. export default Toast.install