dcc
2024-06-13 3616db170333df7d668c97323344335b52c4153c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 定义防止重复点击的指令
export const preventReClick = {
    created(el, binding, vnode, prevVnode) {
      el.addEventListener("click", (e) => customClick(e, binding, el));
    },
    // 销毁
    unmounted(el, binding, vnode) {
      el.removeEventListener("click", customClick);
    },
  };
  
  const customClick = (e, binding, el) => {
    e.stopPropagation();
    if (!el.disabled) {
      el.disabled = true;
      setTimeout(() => {
        el.disabled = false;
      }, binding.arg || 3000);
  
      // 正常触发点击事件
      binding.value();
    } else {
      // 拦截点击事件
    }
  };
  
  export const setupAuthDirective = (app) => {
    app.directive("click", preventReClick);
  };