noclick.js 968 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* 防止处理多次点击
  2. main.js:
  3. //配置公共方法 防治多次点击
  4. import noclick from 'common/noclick.js'
  5. Vue.prototype.$noMultipleClicks = noclick.noMultipleClicks;
  6. 不传参:
  7. <view class="submit-btn" @click="$noMultipleClicks(commitWork)">提交</view>
  8. 传参:
  9. <view class="pay" @click.stop="$noMultipleClicks(goPay, item)" >支付</view>
  10. */
  11. function noMultipleClicks(methods, info) {
  12. // methods是需要点击后需要执行的函数, info是点击需要传的参数
  13. let that = this;
  14. if (that.noClick) {
  15. // 第一次点击
  16. that.noClick= false;
  17. if(info && info !== '') {
  18. // info是执行函数需要传的参数
  19. methods(info);
  20. } else {
  21. methods();
  22. }
  23. setTimeout(()=> {
  24. that.noClick= true;
  25. }, 2000)
  26. } else {
  27. // 这里是重复点击的判断
  28. }
  29. }
  30. //导出
  31. export default {
  32. noMultipleClicks,//禁止多次点击
  33. }