修复重复弹msg的bug
deploy-userbase-front / build-and-deploy (push) Successful in 2m27s

This commit is contained in:
chenxing
2026-08-18 23:31:27 +08:00
parent 8fd5a21fcc
commit 02f1fd2b14
32 changed files with 4843 additions and 2530 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ import type { GeneratorConfig } from "@alova/wormhole";
export default {
generator: [
{
input: "http://localhost:8060/v2/api-docs",
input: "http://localhost:8060/v3/api-docs",
// 文档平台类型
platform: "swagger",
+101 -79
View File
@@ -2,13 +2,12 @@
/* tslint:disable */
/* eslint-disable */
/**
* 用户中心接口文档 - version 0.0.1-SNAPSHOT
* 用户中心接口文档 - version 0.0.1
*
* Demo project for Spring Boot
* UserBase 用户中心 OpenAPI 文档(springdoc-openapi)
*
* OpenAPI version: 3.0.0
* OpenAPI version: 3.0.1
*
* Contact:
*
* NOTE: This file is auto generated by the alova's vscode plugin.
*
@@ -17,79 +16,102 @@
* **Do not edit the file manually.**
*/
export default {
'AppSettings.addApp': ['POST', '/api/app/AddApp'],
'AppSettings.addModule': ['POST', '/api/app/AddModule'],
'AppSettings.addType': ['POST', '/api/app/AddType'],
'AppSettings.appAuthzList': ['GET', '/api/app/AppAuthzList'],
'AppSettings.appList': ['GET', '/api/app/AppList'],
'AppSettings.appSort': ['POST', '/api/app/AppSort'],
'AppSettings.appSortList': ['GET', '/api/app/AppSortList'],
'AppSettings.appTypeList': ['GET', '/api/app/AppTypeList'],
'AppSettings.appTypeSort': ['POST', '/api/app/AppTypeSort'],
'AppSettings.deleteApp': ['POST', '/api/app/DeleteApp/{id}'],
'AppSettings.deleteModule': ['POST', '/api/app/DeleteModule/{id}'],
'AppSettings.deleteType': ['POST', '/api/app/DeleteType/{id}'],
'AppSettings.editApp': ['POST', '/api/app/EditApp/{id}'],
'AppSettings.editModule': ['POST', '/api/app/EditModule/{id}'],
'AppSettings.editType': ['POST', '/api/app/EditType/{id}'],
'AppSettings.moduleList': ['GET', '/api/app/ModuleList'],
'AppSettings.resetAppSecret': ['POST', '/api/app/ResetAppSecret/{id}'],
'AppRole.removeRoleUser': ['POST', '/api/approle/RemoveRoleUser'],
'AppRole.roleAdd': ['POST', '/api/approle/RoleAdd'],
'AppRole.roleDelete': ['POST', '/api/approle/RoleDelete/{id}'],
'AppRole.roleEdit': ['POST', '/api/approle/RoleEdit/{id}'],
'AppRole.roleList': ['GET', '/api/approle/RoleList'],
'AppRole.roleModuleTree': ['GET', '/api/approle/RoleModuleTree'],
'AppRole.roleUsers': ['GET', '/api/approle/RoleUsers'],
'AppRole.saveRoleModules': ['POST', '/api/approle/SaveRoleModules'],
'AppRole.saveRoleUsers': ['POST', '/api/approle/SaveRoleUsers'],
'AppRole.saveUserRoles': ['POST', '/api/approle/SaveUserRoles'],
'Base.getSysDict': ['GET', '/api/base/GetSysDict'],
'Base.getUserInfo': ['GET', '/api/base/GetUserInfo'],
'Base.manualHashCacheDemo': ['GET', '/api/base/ManualHashCacheDemo'],
'Base.RedirectTo': ['GET', '/api/base/RedirectTo/{id}'],
'Base.uploadFile': ['POST', '/api/base/UploadFile'],
'GroupAuthz.assignApps': ['POST', '/api/groupauthz/AssignApps'],
'GroupAuthz.getSchoolAppId': ['GET', '/api/groupauthz/GetSchoolAppId'],
'GroupAuthz.groupAppList': ['GET', '/api/groupauthz/GroupAppList'],
'GroupAuthz.groupModuleTree': ['GET', '/api/groupauthz/GroupModuleTree'],
'GroupAuthz.groupModuleTreeByCategory': ['GET', '/api/groupauthz/GroupModuleTreeByCategory'],
'GroupAuthz.groupUsers': ['GET', '/api/groupauthz/GroupUsers'],
'GroupAuthz.hasModulePerm': ['GET', '/api/groupauthz/HasModulePerm'],
'GroupAuthz.saveModulePerms': ['POST', '/api/groupauthz/SaveModulePerms'],
'GroupAuthz.searchUsers': ['GET', '/api/groupauthz/SearchUsers'],
'GroupAuthz.setGroupModule': ['POST', '/api/groupauthz/SetGroupModule'],
'GroupAuthz.setSchoolApp': ['POST', '/api/groupauthz/SetSchoolApp'],
'GroupAuthz.userGroupTree': ['GET', '/api/groupauthz/UserGroupTree'],
'GroupAuthz.userPermissionTree': ['GET', '/api/groupauthz/UserPermissionTree'],
'GroupAuthz.userRoles': ['GET', '/api/groupauthz/UserRoles'],
'OperationLog.list': ['GET', '/api/oplog/List'],
'OperationLog.download': ['GET', '/api/oplog/Download/{id}'],
'SysGroup.add': ['POST', '/api/sysgroup/Add'],
'SysGroup.batchAdd': ['POST', '/api/sysgroup/BatchAdd'],
'SysGroup.delete': ['POST', '/api/sysgroup/Delete/{id}'],
'SysGroup.edit': ['POST', '/api/sysgroup/Edit/{id}'],
'SysGroup.getSchoolTree': ['GET', '/api/sysgroup/GetSchoolTree'],
'SysGroup.getTree': ['GET', '/api/sysgroup/GetTree'],
'SysGroup.list': ['GET', '/api/sysgroup/List'],
'SysGroup.move': ['POST', '/api/sysgroup/Move'],
'SysGroup.sortChildren': ['POST', '/api/sysgroup/SortChildren'],
'SysUser.add': ['POST', '/api/sysuser/Add'],
'SysUser.delete': ['POST', '/api/sysuser/Delete/{id}'],
'SysUser.deleteFromGroup': ['POST', '/api/sysuser/DeleteFromGroup/{userId}/{groupId}'],
'SysUser.batchDelete': ['POST', '/api/sysuser/BatchDelete'],
'SysUser.disable': ['POST', '/api/sysuser/Disable/{id}'],
'SysUser.edit': ['POST', '/api/sysuser/Edit/{id}'],
'SysUser.enable': ['POST', '/api/sysuser/Enable/{id}'],
'SysUser.list': ['GET', '/api/sysuser/List'],
'SysUser.getGroups': ['GET', '/api/sysuser/Groups/{userId}'],
'SysUser.changeGroups': ['POST', '/api/sysuser/ChangeGroups'],
'SysUser.changeSortNo': ['POST', '/api/sysuser/ChangeSortNo/{userId}'],
'SysUser.batchChangeStatus': ['POST', '/api/sysuser/BatchChangeStatus'],
'AppSettings.savePushSetting': ['POST', '/api/app/SavePushSetting/{id}'],
'AppSettings.getPushSetting': ['GET', '/api/app/GetPushSetting/{id}'],
'Push.test': ['POST', '/api/push/Test'],
'Push.recordList': ['GET', '/api/push/RecordList'],
'Push.retry': ['POST', '/api/push/Retry/{id}'],
'Push.download': ['GET', '/api/push/Download/{id}']
'sysUserController.enable': ['POST', '/api/sysuser/Enable/{id}'],
'sysUserController.edit': ['POST', '/api/sysuser/Edit/{id}'],
'sysUserController.disable': ['POST', '/api/sysuser/Disable/{id}'],
'sysUserController.deleteFromGroup': ['POST', '/api/sysuser/DeleteFromGroup/{userId}/{groupId}'],
'sysUserController.changeSortNo': ['POST', '/api/sysuser/ChangeSortNo/{userId}'],
'sysUserController.changeGroups': ['POST', '/api/sysuser/ChangeGroups'],
'sysUserController.batchImport': ['POST', '/api/sysuser/BatchImport'],
'sysUserController.batchDelete': ['POST', '/api/sysuser/BatchDelete'],
'sysUserController.batchChangeStatus': ['POST', '/api/sysuser/BatchChangeStatus'],
'sysUserController.add': ['POST', '/api/sysuser/Add'],
'sysGroupController.sortChildren': ['POST', '/api/sysgroup/SortChildren'],
'sysGroupController.move': ['POST', '/api/sysgroup/Move'],
'sysGroupController.edit_1': ['POST', '/api/sysgroup/Edit/{id}'],
'sysGroupController.delete_': ['POST', '/api/sysgroup/Delete/{id}'],
'sysGroupController.batchAdd': ['POST', '/api/sysgroup/BatchAdd'],
'sysGroupController.add_1': ['POST', '/api/sysgroup/Add'],
'pushSubscriptionController.test': ['POST', '/api/push/Test'],
'pushSubscriptionController.retry': ['POST', '/api/push/Retry/{id}'],
'identityController.switchIdentity': ['POST', '/api/identity/switch'],
'groupAuthzController.setSchoolApp': ['POST', '/api/groupauthz/SetSchoolApp'],
'groupAuthzController.setGroupModule': ['POST', '/api/groupauthz/SetGroupModule'],
'groupAuthzController.saveModulePerms': ['POST', '/api/groupauthz/SaveModulePerms'],
'groupAuthzController.assignApps': ['POST', '/api/groupauthz/AssignApps'],
'baseController.uploadFile': ['POST', '/api/base/UploadFile'],
'appRoleController.saveUserRoles': ['POST', '/api/approle/SaveUserRoles'],
'appRoleController.saveRoleUsers': ['POST', '/api/approle/SaveRoleUsers'],
'appRoleController.saveRoleModules': ['POST', '/api/approle/SaveRoleModules'],
'appRoleController.roleEdit': ['POST', '/api/approle/RoleEdit/{id}'],
'appRoleController.roleDelete': ['POST', '/api/approle/RoleDelete/{id}'],
'appRoleController.roleAdd': ['POST', '/api/approle/RoleAdd'],
'appRoleController.removeRoleUser': ['POST', '/api/approle/RemoveRoleUser'],
'appSettingsController.savePushSetting': ['POST', '/api/app/SavePushSetting/{id}'],
'appSettingsController.resetAppSecret': ['POST', '/api/app/ResetAppSecret/{id}'],
'appSettingsController.refreshSignKeys': ['POST', '/api/app/RefreshSignKeys'],
'appSettingsController.editType': ['POST', '/api/app/EditType/{id}'],
'appSettingsController.editModule': ['POST', '/api/app/EditModule/{id}'],
'appSettingsController.editApp': ['POST', '/api/app/EditApp/{id}'],
'appSettingsController.deleteType': ['POST', '/api/app/DeleteType/{id}'],
'appSettingsController.deleteModule': ['POST', '/api/app/DeleteModule/{id}'],
'appSettingsController.deleteApp': ['POST', '/api/app/DeleteApp/{id}'],
'appSettingsController.appTypeSort': ['POST', '/api/app/AppTypeSort'],
'appSettingsController.appSort': ['POST', '/api/app/AppSort'],
'appSettingsController.addType': ['POST', '/api/app/AddType'],
'appSettingsController.addModule': ['POST', '/api/app/AddModule'],
'appSettingsController.addApp': ['POST', '/api/app/AddApp'],
'userController.moveToGroup': ['POST', '/oapi/user/moveToGroup'],
'userController.edit_2': ['POST', '/oapi/user/edit/{id}'],
'userController.delete_1': ['POST', '/oapi/user/delete/{id}/{groupId}'],
'userController.batchAdd_1': ['POST', '/oapi/user/batchAdd'],
'userController.add_2': ['POST', '/oapi/user/add'],
'groupController.edit_3': ['POST', '/oapi/group/edit/{id}'],
'groupController.delete_2': ['POST', '/oapi/group/delete/{id}'],
'groupController.batchAdd_2': ['POST', '/oapi/group/batchAdd'],
'groupController.add_3': ['POST', '/oapi/group/add'],
'sysUserController.list': ['GET', '/api/sysuser/List'],
'sysUserController.getUserGroups': ['GET', '/api/sysuser/Groups/{userId}'],
'sysUserController.export_': ['GET', '/api/sysuser/Export'],
'sysUserController.downloadTemplate': ['GET', '/api/sysuser/DownloadTemplate'],
'sysGroupController.list_1': ['GET', '/api/sysgroup/List'],
'sysGroupController.getTree': ['GET', '/api/sysgroup/GetTree'],
'sysGroupController.getSchoolTree': ['GET', '/api/sysgroup/GetSchoolTree'],
'pushSubscriptionController.recordList': ['GET', '/api/push/RecordList'],
'pushSubscriptionController.download': ['GET', '/api/push/Download/{id}'],
'sysOperationLogController.list_2': ['GET', '/api/oplog/List'],
'sysOperationLogController.download_1': ['GET', '/api/oplog/Download/{id}'],
'identityController.current': ['GET', '/api/identity/current'],
'identityController.available': ['GET', '/api/identity/available'],
'groupAuthzController.userRoles': ['GET', '/api/groupauthz/UserRoles'],
'groupAuthzController.userPermissionTree': ['GET', '/api/groupauthz/UserPermissionTree'],
'groupAuthzController.userGroupTree': ['GET', '/api/groupauthz/UserGroupTree'],
'groupAuthzController.searchUsers': ['GET', '/api/groupauthz/SearchUsers'],
'groupAuthzController.hasModulePerm': ['GET', '/api/groupauthz/HasModulePerm'],
'groupAuthzController.groupUsers': ['GET', '/api/groupauthz/GroupUsers'],
'groupAuthzController.groupModuleTree': ['GET', '/api/groupauthz/GroupModuleTree'],
'groupAuthzController.groupModuleTreeByCategory': ['GET', '/api/groupauthz/GroupModuleTreeByCategory'],
'groupAuthzController.groupAppList': ['GET', '/api/groupauthz/GroupAppList'],
'groupAuthzController.getSchoolAppId': ['GET', '/api/groupauthz/GetSchoolAppId'],
'baseController.RedirectTo': ['GET', '/api/base/RedirectTo/{id}'],
'baseController.manualHashCacheDemo': ['GET', '/api/base/ManualHashCacheDemo'],
'baseController.getUserInfo': ['GET', '/api/base/GetUserInfo'],
'baseController.getSysDict': ['GET', '/api/base/GetSysDict'],
'appRoleController.roleUsers': ['GET', '/api/approle/RoleUsers'],
'appRoleController.roleModuleTree': ['GET', '/api/approle/RoleModuleTree'],
'appRoleController.roleList': ['GET', '/api/approle/RoleList'],
'appSettingsController.moduleList': ['GET', '/api/app/ModuleList'],
'appSettingsController.getPushSetting': ['GET', '/api/app/GetPushSetting/{id}'],
'appSettingsController.appTypeList': ['GET', '/api/app/AppTypeList'],
'appSettingsController.appSortList': ['GET', '/api/app/AppSortList'],
'appSettingsController.appList': ['GET', '/api/app/AppList'],
'appSettingsController.appAuthzList': ['GET', '/api/app/AppAuthzList'],
'userController.modules': ['GET', '/oapi/user/modules'],
'userController.byPhone': ['GET', '/oapi/user/byPhone'],
'userController.byLoginName': ['GET', '/oapi/user/byLoginName'],
'userController.byId': ['GET', '/oapi/user/byId'],
'signKeyInternalController.signKey': ['GET', '/oapi/internal/sign-key/{appId}'],
'groupController.tree': ['GET', '/oapi/group/tree'],
'groupController.list_3': ['GET', '/oapi/group/list'],
'groupController.byId_1': ['GET', '/oapi/group/byId']
};
+3 -4
View File
@@ -1,13 +1,12 @@
/* tslint:disable */
/* eslint-disable */
/**
* 用户中心接口文档 - version 0.0.1-SNAPSHOT
* 用户中心接口文档 - version 0.0.1
*
* Demo project for Spring Boot
* UserBase 用户中心 OpenAPI 文档(springdoc-openapi)
*
* OpenAPI version: 3.0.0
* OpenAPI version: 3.0.1
*
* Contact:
*
* NOTE: This file is auto generated by the alova's vscode plugin.
*
+4715 -2414
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -17,7 +17,6 @@
<script lang="ts" setup>
import { ref, nextTick, useTemplateRef } from "vue";
import { cloneDeep } from "lodash";
import { Message } from "view-ui-plus";
import MyTree from '@/components/MyTree.vue'
const GROUP_TYPE = {
@@ -149,7 +148,7 @@ async function loadTree(preferredId?: number | null) {
treeData.value = formatTree(tree || []);
emit('on-tree-data', cloneDeep(treeData.value));
} catch (e: any) {
Message.error(e?.message || '加载组织树失败');
console.warn(e?.message || '加载组织树失败');
} finally {
treeLoading.value = false;
}
+1 -1
View File
@@ -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];
}
+2 -2
View File
@@ -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();
}
}
+6 -6
View File
@@ -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;
+2 -1
View File
@@ -282,7 +282,8 @@ async function removeSave(id: number) {
tableRef.value?.reloadData(OperatorEnum.del);
} catch (error) {
Message.error(error);
// 全局拦截器已弹窗,这里仅记录日志避免二次弹窗
console.warn(error);
}
},
});
+2 -1
View File
@@ -31,7 +31,8 @@ onSuccess(() => {
onSuccessCallback?.();
});
onError((event) => {
Message.error(event?.error?.message || '新增失败');
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
console.warn('[AddAppContainer] 新增应用失败:', event?.error?.message || '新增失败');
});
/* ---------- 打开弹窗 ---------- */
+1 -1
View File
@@ -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 || '删除失败');
}
},
});
+2 -2
View File
@@ -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;
}
+2 -1
View File
@@ -31,7 +31,8 @@ onSuccess(() => {
onSuccessCallback?.();
});
onError((event) => {
Message.error(event?.error?.message || '编辑失败');
// 错误提示已由全局 alova 拦截器统一弹出,这里仅记录日志避免二次弹窗
console.warn('[EditAppContainer] 编辑应用失败:', event?.error?.message || '编辑失败');
});
/* ---------- 打开编辑弹窗 ---------- */
+1 -1
View File
@@ -215,7 +215,7 @@ async function handleDelete(item: any) {
Message.success("删除成功!");
await fetchModuleList();
} catch (e: any) {
Message.error(e?.message || '删除失败');
console.warn(e?.message || '删除失败');
}
},
});
+3 -3
View File
@@ -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;
}
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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
}
+2 -2
View File
@@ -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;
}
+3 -3
View File
@@ -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;
}
+4 -11
View File
@@ -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>
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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 || '重试失败');
}
}
+1 -1
View File
@@ -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));
}
+2 -1
View File
@@ -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) {
+1 -2
View File
@@ -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);
}
};
+2 -1
View File
@@ -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) {
+1 -1
View File
@@ -87,7 +87,7 @@ async function handleDelete(row: any) {
Message.success("删除成功!");
await sendRoles();
} catch (e: any) {
Message.error(e?.message || "删除失败");
console.warn(e?.message || "删除失败");
}
},
});
+2 -2
View File
@@ -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;
}
+2 -2
View File
@@ -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 || "移除失败");
}
},
});