zhouwx
2025-06-16 7c8c06b5397d22151b02407b1f4f19d771bb15dd
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
31
32
33
34
35
36
import { App } from 'vue';
 
export function preventClick(app: App) {
    app.directive('throttle', {
        mounted(el: any, binding: any) {
            el.addEventListener('click', () => {
                if (!el.disabled) {
                    el.disabled = true;
                    setTimeout(() => {
                        el.disabled = false;
                    }, binding.value || 2000);
                }
            });
        }
 
        // mounted(el, binding) {
        //     let timer : NodeJS.Timeout | null = null
        //     el.addEventListener('click', () => {
        //         debugger
        //         let firstClick: Boolean = !timer;
        //         if(firstClick){
        //             binding.value
        //         }
        //         if(timer){
        //             clearTimeout(timer)
        //         }
        //         timer = setTimeout(() => {
        //             timer = null
        //             if(!firstClick){
        //                 binding.value
        //             }
        //         },3000);
        //     })
        // }
    });
}