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);
| };
|
|
|