toast.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. let timer;
  2. Page({
  3. properties: {},
  4. data: {
  5. //是否显示
  6. visible: false,
  7. //显示标题
  8. title: "操作成功",
  9. //显示内容
  10. content: "",
  11. //是否有icon
  12. icon: false,
  13. imgUrl: ""
  14. },
  15. lifetimes: {
  16. detached: function () {
  17. clearTimeout(timer);
  18. timer = null;
  19. }
  20. },
  21. methods: {
  22. // show: function (options) {
  23. // let {
  24. // duration = 2000,
  25. // icon = false
  26. // } = options;
  27. // clearTimeout(timer);
  28. // if (icon && options.imgUrl) {
  29. // this.setData({
  30. // imgUrl: options.imgUrl
  31. // })
  32. // }
  33. // this.setData({
  34. // visible: true,
  35. // title: options.title || "",
  36. // content: options.content || "",
  37. // icon: icon
  38. // })
  39. // timer = setTimeout(() => {
  40. // this.setData({
  41. // visible: false
  42. // }, () => {
  43. // timer = null;
  44. // })
  45. // }, duration)
  46. // }
  47. },
  48. show: function (options) {
  49. let {
  50. duration = 2000,
  51. icon = false
  52. } = options;
  53. clearTimeout(timer);
  54. if (icon && options.imgUrl) {
  55. this.setData({
  56. imgUrl: options.imgUrl
  57. })
  58. }
  59. this.setData({
  60. visible: true,
  61. title: options.title || "",
  62. content: options.content || "",
  63. icon: icon
  64. })
  65. timer = setTimeout(() => {
  66. this.setData({
  67. visible: false
  68. }, () => {
  69. timer = null;
  70. })
  71. }, duration)
  72. }
  73. })