diff --git a/activitylink/src/views/zhongchou/activity/index.vue b/activitylink/src/views/zhongchou/activity/index.vue
index ae875d1..65c9de8 100644
--- a/activitylink/src/views/zhongchou/activity/index.vue
+++ b/activitylink/src/views/zhongchou/activity/index.vue
@@ -14,7 +14,7 @@
-
+
@@ -204,9 +204,9 @@ const fetchMarketList = async () => {
} catch (error) {
console.error('请求市场列表失败:', error)
}
-}
-
+}// 防抖标志
+const isSubmitting = ref(false);
// 取消添加
const cancel = () => {
centerDialogVisible.value = false;
@@ -232,7 +232,15 @@ const addActivityShow = () => {
const addForm = ref(); // 定义 addForm ref
const addActivity = async () => {
+ // 防抖检查
+ if (isSubmitting.value) {
+ ElMessage.warning('操作过于频繁,请稍后再试');
+ return;
+ }
+
try {
+ isSubmitting.value = true; // 设置提交标志
+
const valid = await new Promise((resolve, reject) => {
addForm.value.validate(valid => {
if (valid) {
@@ -244,12 +252,14 @@ const addActivity = async () => {
});
if (!valid) {
+ isSubmitting.value = false; // 重置提交标志
return;
}
// 验证活动名称是否包含空格(双重保险)
if (!activity.value.activityName || activity.value.activityName.trim() === '') {
ElMessage.error('活动名称不能为空');
+ isSubmitting.value = false; // 重置提交标志
return;
}
@@ -257,6 +267,7 @@ const addActivity = async () => {
const cleanedActivityName = activity.value.activityName.replace(/\s/g, '');
if (cleanedActivityName !== activity.value.activityName) {
ElMessage.error('活动名称中不能包含空格');
+ isSubmitting.value = false; // 重置提交标志
return;
}
@@ -283,6 +294,11 @@ const addActivity = async () => {
} catch (error) {
console.error('添加活动失败:', error);
ElMessage.error('请求失败,请重试');
+ } finally {
+ // 3秒后重置提交标志
+ setTimeout(() => {
+ isSubmitting.value = false;
+ }, 3000);
}
};