修复重复弹msg的bug
This commit is contained in:
@@ -271,7 +271,7 @@ async function saveSingleApp(appid: number, add: boolean, before: number[]) {
|
||||
});
|
||||
Message.success(add ? "已开通" : "已取消开通");
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "操作失败");
|
||||
console.warn(e?.message || "操作失败");
|
||||
selectedAppIds.value = [...before];
|
||||
prevAppIds.value = [...before];
|
||||
}
|
||||
|
||||
@@ -485,7 +485,7 @@ async function onTreeCheck(node: any) {
|
||||
}
|
||||
syncInheritDoms(treeObj);
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "操作失败");
|
||||
console.warn(e?.message || "操作失败");
|
||||
await reloadCurrent();
|
||||
}
|
||||
}
|
||||
@@ -530,7 +530,7 @@ async function onInheritToggle(treeId: string, node: any, inherit: boolean) {
|
||||
}
|
||||
syncInheritDoms(treeObj);
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "操作失败");
|
||||
console.warn(e?.message || "操作失败");
|
||||
await reloadCurrent();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from "vue";
|
||||
import { Input, Message } from "view-ui-plus";
|
||||
import { Input } from "view-ui-plus";
|
||||
import GroupTreeSearchPanel from "@/components/GroupTreeSearchPanel.vue";
|
||||
import MyTree from "@/components/MyTree.vue";
|
||||
import Apis from "@/api";
|
||||
@@ -188,7 +188,7 @@ async function loadGroupUsers(groupId?: number) {
|
||||
try {
|
||||
userList.value = (await Apis.GroupAuthz.groupUsers({ params: { groupId }, cacheFor: null })) as UserItem[];
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "加载组用户失败");
|
||||
console.warn(e?.message || "加载组用户失败");
|
||||
userList.value = [];
|
||||
} finally {
|
||||
userLoading.value = false;
|
||||
@@ -209,7 +209,7 @@ async function onSearchUser() {
|
||||
try {
|
||||
userList.value = (await Apis.GroupAuthz.searchUsers({ params: { keyword: kw }, cacheFor: null })) as UserItem[];
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "搜索用户失败");
|
||||
console.warn(e?.message || "搜索用户失败");
|
||||
userList.value = [];
|
||||
} finally {
|
||||
userLoading.value = false;
|
||||
@@ -249,19 +249,19 @@ async function onSelectUser(user: UserItem) {
|
||||
if (permRes.status === "fulfilled") {
|
||||
permissionTree.value = formatPermissionTree((permRes.value as CategoryNode[]) || []);
|
||||
} else {
|
||||
Message.error(permRes.reason?.message || "加载权限树失败");
|
||||
console.warn(permRes.reason?.message || "加载权限树失败");
|
||||
permissionTree.value = [];
|
||||
}
|
||||
if (deptRes.status === "fulfilled") {
|
||||
deptTree.value = formatDeptTree((deptRes.value as GroupNode[]) || []);
|
||||
} else {
|
||||
Message.error(deptRes.reason?.message || "加载所属部门失败");
|
||||
console.warn(deptRes.reason?.message || "加载所属部门失败");
|
||||
deptTree.value = [];
|
||||
}
|
||||
if (roleRes.status === "fulfilled") {
|
||||
roleTree.value = formatRoleTree((roleRes.value as RoleItem[]) || []);
|
||||
} else {
|
||||
Message.error(roleRes.reason?.message || "加载所属角色失败");
|
||||
console.warn(roleRes.reason?.message || "加载所属角色失败");
|
||||
roleTree.value = [];
|
||||
}
|
||||
treeLoading.value = false;
|
||||
|
||||
@@ -282,7 +282,8 @@ async function removeSave(id: number) {
|
||||
tableRef.value?.reloadData(OperatorEnum.del);
|
||||
|
||||
} catch (error) {
|
||||
Message.error(error);
|
||||
// 全局拦截器已弹窗,这里仅记录日志避免二次弹窗
|
||||
console.warn(error);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -31,7 +31,8 @@ onSuccess(() => {
|
||||
onSuccessCallback?.();
|
||||
});
|
||||
onError((event) => {
|
||||
Message.error(event?.error?.message || '新增失败');
|
||||
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
|
||||
console.warn('[AddAppContainer] 新增应用失败:', event?.error?.message || '新增失败');
|
||||
});
|
||||
|
||||
/* ---------- 打开弹窗 ---------- */
|
||||
|
||||
@@ -211,7 +211,7 @@ async function handleDelete(row: any) {
|
||||
Message.success('删除成功!');
|
||||
tableRef.value?.reloadData(OperatorEnum.del);
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '删除失败');
|
||||
console.warn(e?.message || '删除失败');
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -89,7 +89,7 @@ async function fetchSortList() {
|
||||
sortList.value = (res ?? []).slice().sort((a: any, b: any) => (a.sortNo ?? 0) - (b.sortNo ?? 0));
|
||||
hasChanged.value = false;
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "获取排序列表失败");
|
||||
console.warn(e?.message || "获取排序列表失败");
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
@@ -115,7 +115,7 @@ async function handleSave() {
|
||||
modalVisible.value = false;
|
||||
emit("saved");
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "排序保存失败");
|
||||
console.warn(e?.message || "排序保存失败");
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,8 @@ onSuccess(() => {
|
||||
onSuccessCallback?.();
|
||||
});
|
||||
onError((event) => {
|
||||
Message.error(event?.error?.message || '编辑失败');
|
||||
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
|
||||
console.warn('[EditAppContainer] 编辑应用失败:', event?.error?.message || '编辑失败');
|
||||
});
|
||||
|
||||
/* ---------- 打开编辑弹窗 ---------- */
|
||||
|
||||
@@ -215,7 +215,7 @@ async function handleDelete(item: any) {
|
||||
Message.success("删除成功!");
|
||||
await fetchModuleList();
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '删除失败');
|
||||
console.warn(e?.message || '删除失败');
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -142,7 +142,7 @@ async function loadSettings() {
|
||||
? String(d.pushRoleIds).split(',').filter(Boolean).map(Number)
|
||||
: [];
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '加载推送设置失败');
|
||||
console.warn(e?.message || '加载推送设置失败');
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
@@ -187,7 +187,7 @@ async function handleSave() {
|
||||
show.value = false;
|
||||
emit('saved');
|
||||
})
|
||||
.catch((e: any) => Message.error(e?.message || '保存失败'))
|
||||
.catch((e: any) => console.warn(e?.message || '保存失败'))
|
||||
.finally(() => (saving.value = false));
|
||||
}
|
||||
|
||||
@@ -222,7 +222,7 @@ function doSync(interfacePath: string, loadingRef: Ref<boolean>, name: string):
|
||||
cacheFor: null,
|
||||
})
|
||||
.then((res: any) => Message.success(res?.message || `${name}已触发`))
|
||||
.catch((e: any) => Message.error(e?.message || `${name}失败`))
|
||||
.catch((e: any) => console.warn(e?.message || `${name}失败`))
|
||||
.finally(() => (loadingRef.value = false));
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -91,7 +91,7 @@ async function loadUserGroups(userId: number) {
|
||||
pendingGroupIds.value = groupIds || [];
|
||||
}
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '加载用户所在组失败');
|
||||
console.warn(e?.message || '加载用户所在组失败');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ async function handleSubmit() {
|
||||
visible.value = false;
|
||||
onSuccessCallback?.();
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '调整失败');
|
||||
console.warn(e?.message || '调整失败');
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ async function submit() {
|
||||
emit('success');
|
||||
visible.value = false;
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '添加失败');
|
||||
console.warn(e?.message || '添加失败');
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ async function confirmMove() {
|
||||
emit('saved', { movedId: props.moveId, newPid: targetPid.value });
|
||||
visible.value = false;
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '移动失败');
|
||||
console.warn(e?.message || '移动失败');
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ async function saveSort() {
|
||||
emit('saved')
|
||||
visible.value = false
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '保存失败')
|
||||
console.warn(e?.message || '保存失败')
|
||||
} finally {
|
||||
saving.value = false
|
||||
}
|
||||
|
||||
@@ -295,7 +295,7 @@ function showDeleteNode() {
|
||||
Message.success('删除成功!');
|
||||
refTreePanel.value?.removeNode(node?.id);
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '删除失败');
|
||||
console.warn(e?.message || '删除失败');
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -323,7 +323,7 @@ async function saveEditNode() {
|
||||
}
|
||||
editNodeModal.modal = false;
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '保存失败');
|
||||
console.warn(e?.message || '保存失败');
|
||||
} finally {
|
||||
editNodeModal.loading = false;
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ async function handleDelete(row: any) {
|
||||
Message.success('删除成功!');
|
||||
tableRef.value?.reloadData(OperatorEnum.del);
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '删除失败');
|
||||
console.warn(e?.message || '删除失败');
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -329,7 +329,7 @@ async function openBatchDelete(checkList: number[]) {
|
||||
Message.success('删除成功!');
|
||||
tableRef.value?.reloadData(OperatorEnum.del);
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '删除失败');
|
||||
console.warn(e?.message || '删除失败');
|
||||
}
|
||||
},
|
||||
});
|
||||
@@ -365,7 +365,7 @@ async function confirmBatchStatus() {
|
||||
statusModal.value = false;
|
||||
tableRef.value?.reloadData(OperatorEnum.sel);
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '设置失败');
|
||||
console.warn(e?.message || '设置失败');
|
||||
} finally {
|
||||
statusSubmitting.value = false;
|
||||
}
|
||||
|
||||
@@ -36,8 +36,8 @@ onSuccess(() => {
|
||||
onSuccessCallback?.();
|
||||
});
|
||||
onError((event) => {
|
||||
const msg = event?.error?.message || '新增失败';
|
||||
Message.error(normalizeAccountError(msg, form.value.account));
|
||||
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
|
||||
console.warn('[AddUserContainer] 新增失败:', event?.error?.message || '新增失败');
|
||||
});
|
||||
|
||||
/* ---------- 打开弹窗 ---------- */
|
||||
@@ -73,7 +73,8 @@ async function handleSubmit(formData: Record<string, any>) {
|
||||
try {
|
||||
await Apis.AppRole.saveUserRoles({ data: { userId: newId, roleIds: appRolesToSave } });
|
||||
} catch (e: any) {
|
||||
Message.error('用户已创建,但角色属性保存失败:' + (e?.message || '未知错误'));
|
||||
// 全局拦截器已弹窗,这里仅记录日志避免二次弹窗
|
||||
console.warn('[AddUserContainer] 用户已创建,但角色属性保存失败:', e?.message || '未知错误');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -98,13 +99,5 @@ function buildPayload(formData: Record<string, any>) {
|
||||
};
|
||||
}
|
||||
|
||||
/* ---------- 工具:账号重复提示标准化 ---------- */
|
||||
function normalizeAccountError(msg: string, account: string): string {
|
||||
if (account && /账号/.test(msg) && /(已存在|重复|已被其他用户使用)/.test(msg)) {
|
||||
return `账号${account}已存在`;
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
defineExpose({ open, visible });
|
||||
</script>
|
||||
|
||||
@@ -42,8 +42,8 @@ onSuccess(() => {
|
||||
onSuccessCallback?.();
|
||||
});
|
||||
onError((event) => {
|
||||
const msg = event?.error?.message || '编辑失败';
|
||||
Message.error(normalizeAccountError(msg, form.value.account));
|
||||
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
|
||||
console.warn('[EditUserContainer] 编辑失败:', event?.error?.message || '编辑失败');
|
||||
});
|
||||
|
||||
/* ---------- 打开编辑弹窗 ---------- */
|
||||
@@ -100,7 +100,8 @@ async function open(row: any, groups: any[], curGroupId?: number | null, onSucce
|
||||
roleOptions.value = list.map((r: any) => ({ id: r.id, name: r.name }));
|
||||
roleOptionsLoaded.value = true;
|
||||
} catch (e: any) {
|
||||
Message.error('加载角色列表失败:' + (e?.message || '未知错误'));
|
||||
// 全局拦截器已弹窗,这里仅记录日志避免二次弹窗
|
||||
console.warn('[EditUserContainer] 加载角色列表失败:', e?.message || '未知错误');
|
||||
}
|
||||
|
||||
// 3) 已绑定角色 -> appRoles 回填(相互独立)
|
||||
@@ -118,7 +119,8 @@ async function open(row: any, groups: any[], curGroupId?: number | null, onSucce
|
||||
} catch (e: any) {
|
||||
// 已绑定角色加载失败:仍回填其它字段,但标记未加载成功(提交时不回写,避免误清空)
|
||||
detailData.value = buildInitForm(row, [], defaultGroupId);
|
||||
Message.error('加载用户已绑定角色失败:' + (e?.message || '未知错误'));
|
||||
// 全局拦截器已弹窗,这里仅记录日志避免二次弹窗
|
||||
console.warn('[EditUserContainer] 加载用户已绑定角色失败:', e?.message || '未知错误');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,7 +161,8 @@ async function handleSubmit(formData: Record<string, any>) {
|
||||
try {
|
||||
await Apis.AppRole.saveUserRoles({ data: { userId: currentId.value as number, roleIds: appRolesToSave } });
|
||||
} catch (e: any) {
|
||||
Message.error('用户已更新,但角色属性保存失败:' + (e?.message || '未知错误'));
|
||||
// 全局拦截器已弹窗,这里仅记录日志避免二次弹窗
|
||||
console.warn('[EditUserContainer] 用户已更新,但角色属性保存失败:', e?.message || '未知错误');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -190,13 +193,5 @@ function buildPayload(formData: Record<string, any>, id: number) {
|
||||
return payload;
|
||||
}
|
||||
|
||||
/* ---------- 工具:账号重复提示标准化 ---------- */
|
||||
function normalizeAccountError(msg: string, account: string): string {
|
||||
if (account && /账号/.test(msg) && /(已存在|重复|已被其他用户使用)/.test(msg)) {
|
||||
return `账号${account}已存在`;
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
defineExpose({ open, visible });
|
||||
</script>
|
||||
|
||||
@@ -80,7 +80,7 @@ async function handleSubmit() {
|
||||
emit('update:visible', false);
|
||||
emit('saved');
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '排序设置失败');
|
||||
console.warn(e?.message || '排序设置失败');
|
||||
} finally {
|
||||
submitting.value = false;
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ async function handleRetry(row: any) {
|
||||
Message.success('已重新投递,稍后在列表中查看结果');
|
||||
tableRef.value?.refreshData();
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || '重试失败');
|
||||
console.warn(e?.message || '重试失败');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ function handleSend() {
|
||||
preview.value = res?.preview || null;
|
||||
sendMessage.value = res?.message || '已发送';
|
||||
})
|
||||
.catch((e: any) => Message.error(e?.message || '发送失败'))
|
||||
.catch((e: any) => console.warn(e?.message || '发送失败'))
|
||||
.finally(() => (sending.value = false));
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,8 @@ onSuccess(() => {
|
||||
onSuccessCallback?.();
|
||||
});
|
||||
onError((event: any) => {
|
||||
Message.error(event?.error?.message || "新增失败");
|
||||
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
|
||||
console.warn('[AddRoleContainer] 新增角色失败:', event?.error?.message || '新增失败');
|
||||
});
|
||||
|
||||
function open(onSuccess?: () => void) {
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, ref, shallowRef, reactive, watch } from "vue";
|
||||
import { Message } from "view-ui-plus";
|
||||
import { debounce } from "lodash";
|
||||
import Apis from "@/api";
|
||||
import MyTree from "@/components/MyTree.vue";
|
||||
@@ -296,7 +295,7 @@ const saveNow = async () => {
|
||||
try {
|
||||
await Apis.AppRole.saveRoleModules({ data: { roleId, moduleIds }, cacheFor: null });
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "保存失败");
|
||||
console.warn(e?.message || "保存失败");
|
||||
await loadRoleModuleTree(roleId);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -27,7 +27,8 @@ onSuccess(() => {
|
||||
onSuccessCallback?.();
|
||||
});
|
||||
onError((event: any) => {
|
||||
Message.error(event?.error?.message || "编辑失败");
|
||||
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
|
||||
console.warn('[EditRoleContainer] 编辑角色失败:', event?.error?.message || '编辑失败');
|
||||
});
|
||||
|
||||
function open(id: number, row: any, onSuccess?: () => void) {
|
||||
|
||||
@@ -87,7 +87,7 @@ async function handleDelete(row: any) {
|
||||
Message.success("删除成功!");
|
||||
await sendRoles();
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "删除失败");
|
||||
console.warn(e?.message || "删除失败");
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -96,7 +96,7 @@ async function onTreeChange(node: any) {
|
||||
const res = await Apis.GroupAuthz.groupUsers({ params: { groupId: groupId.value }, cacheFor: null });
|
||||
candidates.value = (res as any[]) ?? [];
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "加载用户失败");
|
||||
console.warn(e?.message || "加载用户失败");
|
||||
candidates.value = [];
|
||||
}
|
||||
}
|
||||
@@ -124,7 +124,7 @@ async function save() {
|
||||
emit("success");
|
||||
visible.value = false;
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "保存失败");
|
||||
console.warn(e?.message || "保存失败");
|
||||
} finally {
|
||||
saving.value = false;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ async function loadUsers() {
|
||||
const res = await Apis.AppRole.roleUsers({ params: { roleId: props.roleId }, cacheFor: null });
|
||||
userList.value = (res as any[]) ?? [];
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "加载角色用户失败");
|
||||
console.warn(e?.message || "加载角色用户失败");
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
@@ -72,7 +72,7 @@ function removeUser(row: any) {
|
||||
Message.success("已移除");
|
||||
await loadUsers();
|
||||
} catch (e: any) {
|
||||
Message.error(e?.message || "移除失败");
|
||||
console.warn(e?.message || "移除失败");
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user