WXL (wul)
2 天以前 d54ac083e2992a5613f5cb22849db9742dbe9a9b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
export default {
  install(Vue) {
    Vue.directive('preventReClick', {
      inserted(el, binding) {
        el.addEventListener('click', () => {
          if (!el.disabled) {
            el.disabled = true;
            // 可以添加禁用样式(可选)
            el.style.pointerEvents = 'none';
            el.style.opacity = '0.6';
            // 设定恢复时间,binding.value 是指令传入的值(如:v-prevent-reclick="2000")
            setTimeout(() => {
              el.disabled = false;
              el.style.pointerEvents = 'all';
              el.style.opacity = '1';
            }, binding.value || 1500); // 默认1.5秒
          }
        });
      }
    });
  }
};