健康同学微信公众号h5项目
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

78 lines
2.2KB

  1. import { Toast } from 'vant';
  2. /**
  3. *
  4. * @type {{loading: (function({message?: *, className?: *, loadingType?: *, overlay?: *, forbidClick?: *, duration?: *})), success: (function({message?: *, className?: *, loadingType?: *, overlay?: *, forbidClick?: *, duration?: *})), fail: (function({message?: *, className?: *, loadingType?: *, overlay?: *, forbidClick?: *, duration?: *})), clear: (function())}}
  5. */
  6. let ToastService = {
  7. loading({
  8. message,
  9. className,
  10. loadingType,
  11. overlay,
  12. forbidClick,
  13. duration,
  14. getContainer,
  15. closeOnClick,
  16. onClose
  17. } = {}) {
  18. const sec = 2000;
  19. if (onClose) {
  20. const timer = setTimeout(() => {
  21. onClose();
  22. clearTimeout(timer);
  23. }, duration || sec);
  24. }
  25. return Toast.loading({
  26. message: message || '',
  27. className: className || 'device_toast',
  28. loadingType: loadingType || 'circular',
  29. overlay: overlay || false,
  30. forbidClick: forbidClick || true,
  31. duration: duration || 0,
  32. getContainer: getContainer || 'body',
  33. closeOnClick: closeOnClick || true
  34. });
  35. },
  36. success({ message, className, loadingType, overlay, forbidClick, duration, onClose }) {
  37. const sec = 2000;
  38. if (onClose) {
  39. const timer = setTimeout(() => {
  40. onClose();
  41. clearTimeout(timer);
  42. }, duration || sec);
  43. }
  44. return Toast.success({
  45. message: message || '',
  46. className: className || 'device_toast',
  47. loadingType: loadingType || 'circular',
  48. overlay: overlay || false,
  49. forbidClick: forbidClick || true,
  50. duration: duration || sec
  51. });
  52. },
  53. fail({ message, className, loadingType, overlay, forbidClick, duration, onClose }) {
  54. const sec = 2000;
  55. // 官方的onoClose方法有bug,已暂停使用
  56. if (onClose) {
  57. const timer = setTimeout(() => {
  58. onClose();
  59. clearTimeout(timer);
  60. }, duration || sec);
  61. }
  62. return Toast.fail({
  63. message: message || '操作失败',
  64. className: className || 'device_toast',
  65. loadingType: loadingType || 'circular',
  66. overlay: overlay || false,
  67. forbidClick: forbidClick || true,
  68. duration: duration || 2000
  69. });
  70. },
  71. clear() {
  72. return Toast.clear();
  73. }
  74. };
  75. export default ToastService;