index.js 924 B

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