index.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. function handle(e, num) {
  2. var dataset = e.currentTarget.dataset;
  3. var componentId = dataset.componentId;
  4. var disabled = dataset.disabled;
  5. var stepper = +dataset.stepper;
  6. if (disabled) return null;
  7. callback.call(this, componentId, stepper + num);
  8. }
  9. function callback(componentId, stepper) {
  10. stepper = +stepper;
  11. var e = { componentId, stepper };
  12. if (this.handleZanStepperChange) {
  13. this.handleZanStepperChange(e);
  14. } else {
  15. console.warn('页面缺少 handleZanStepperChange 回调函数');
  16. }
  17. }
  18. var Stepper = {
  19. _handleZanStepperMinus(e) {
  20. handle.call(this, e, -1);
  21. },
  22. _handleZanStepperPlus(e) {
  23. handle.call(this, e, +1);
  24. },
  25. _handleZanStepperBlur(e) {
  26. var dataset = e.currentTarget.dataset;
  27. var componentId = dataset.componentId;
  28. var max = +dataset.max;
  29. var min = +dataset.min;
  30. var value = e.detail.value;
  31. if (!value) {
  32. setTimeout(() => {
  33. callback.call(this, componentId, min);
  34. }, 16);
  35. callback.call(this, componentId, value);
  36. return '' + value;
  37. }
  38. value = +value;
  39. if (value > max) {
  40. value = max;
  41. } else if (value < min) {
  42. value = min;
  43. }
  44. callback.call(this, componentId, value);
  45. return '' + value;
  46. }
  47. };
  48. module.exports = Stepper;