😎优化 v-reclick 指令

This commit is contained in:
zuohuaijun 2025-09-14 13:26:39 +08:00
parent 8cb0417685
commit 51400baea5

View File

@ -182,23 +182,28 @@ export function dragDirective(app: App) {
* @directive v-reclick `<el-button v-reclick></el-button>` * @directive v-reclick `<el-button v-reclick></el-button>`
* @directive v-reclick="number" `<el-button v-reclick="500"></el-button>` * @directive v-reclick="number" `<el-button v-reclick="500"></el-button>`
*/ */
export function reclickDirective(app: App) { export function reclickDirective(app: App) {
let opacity = '';
app.directive('reclick', { app.directive('reclick', {
mounted(el, time) { mounted(el, time) {
el.addEventListener('click', () => { el.addEventListener('click', () => {
if (!el.disabled) { if (!el.disabled) {
el.disabled = true; el.disabled = true;
opacity = el.style.opacity;
el.style.opacity = '0.2';
setTimeout( setTimeout(
() => { () => {
el.disabled = false; el.disabled = false;
el.style.opacity = opacity;
}, },
time.value === undefined ? 500 : time.value time.value === undefined ? 800 : time.value
); );
} }
}); });
}, },
unmounted(el) { unmounted(el) {
el.disabled = false; el.disabled = false;
el.style.opacity = opacity;
}, },
}); });
} }