index.js 981 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const default_data = {
  2. visible: false,
  3. content: '',
  4. icon: '',
  5. image: '',
  6. duration: 2,
  7. mask: true,
  8. type: 'default', // default || success || warning || error || loading
  9. };
  10. let timmer = null;
  11. Component({
  12. externalClasses: ['i-class'],
  13. data: {
  14. ...default_data
  15. },
  16. methods: {
  17. handleShow (options) {
  18. const { type = 'default', duration = 2 } = options;
  19. this.setData({
  20. ...options,
  21. type,
  22. duration,
  23. visible: true
  24. });
  25. const d = this.data.duration * 1000;
  26. if (timmer) clearTimeout(timmer);
  27. if (d !== 0) {
  28. timmer = setTimeout(() => {
  29. this.handleHide();
  30. timmer = null;
  31. }, d);
  32. }
  33. },
  34. handleHide () {
  35. this.setData({
  36. ...default_data
  37. });
  38. }
  39. }
  40. });