refactor: ♻️ 删除重复的防抖函数定义,统一使用 vueuse 防抖函数
This commit is contained in:
@@ -39,32 +39,3 @@ export function isExternal(path: string) {
|
|||||||
const isExternal = /^(https?:|http?:|mailto:|tel:)/.test(path);
|
const isExternal = /^(https?:|http?:|mailto:|tel:)/.test(path);
|
||||||
return isExternal;
|
return isExternal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 防抖函数
|
|
||||||
*
|
|
||||||
* @param {Function} fn 需要防抖的函数
|
|
||||||
* @param {number} delay 防抖时间
|
|
||||||
* @returns {Function}
|
|
||||||
*/
|
|
||||||
export const debounce = <T extends (...args: any[]) => any>(
|
|
||||||
fn: T,
|
|
||||||
delay: number,
|
|
||||||
immediate = false
|
|
||||||
) => {
|
|
||||||
let timer: NodeJS.Timeout | null = null;
|
|
||||||
return function (this: any, ...args: Parameters<T>) {
|
|
||||||
if (timer) clearTimeout(timer);
|
|
||||||
|
|
||||||
if (immediate && !timer) {
|
|
||||||
fn.apply(this, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
timer = setTimeout(() => {
|
|
||||||
if (!immediate) {
|
|
||||||
fn.apply(this, args);
|
|
||||||
}
|
|
||||||
timer = null;
|
|
||||||
}, delay);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ defineOptions({
|
|||||||
});
|
});
|
||||||
|
|
||||||
import ConfigAPI, { ConfigPageVO, ConfigForm, ConfigPageQuery } from "@/api/system/config";
|
import ConfigAPI, { ConfigPageVO, ConfigForm, ConfigPageQuery } from "@/api/system/config";
|
||||||
import { debounce } from "@/utils";
|
|
||||||
|
|
||||||
const queryFormRef = ref(ElForm);
|
const queryFormRef = ref(ElForm);
|
||||||
const dataFormRef = ref(ElForm);
|
const dataFormRef = ref(ElForm);
|
||||||
@@ -212,8 +211,8 @@ function handleOpenDialog(id?: number) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 防抖刷新缓存
|
// 刷新缓存(防抖)
|
||||||
const debouncedRefresh = debounce(() => {
|
const debouncedRefresh = useDebounceFn(() => {
|
||||||
ConfigAPI.refreshCache().then(() => {
|
ConfigAPI.refreshCache().then(() => {
|
||||||
ElMessage.success("刷新成功");
|
ElMessage.success("刷新成功");
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -380,9 +380,9 @@ function handleCloseDialog() {
|
|||||||
formData.status = 1;
|
formData.status = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提交用户表单(防抖处理)
|
// 提交用户表单(防抖)
|
||||||
const handleSubmit = useThrottleFn(() => {
|
const handleSubmit = useDebounceFn(() => {
|
||||||
userFormRef.value.validate((valid: any) => {
|
userFormRef.value.validate((valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
const userId = formData.id;
|
const userId = formData.id;
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
@@ -405,7 +405,7 @@ const handleSubmit = useThrottleFn(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}, 3000);
|
}, 1000);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除用户
|
* 删除用户
|
||||||
|
|||||||
Reference in New Issue
Block a user