Archived
forked from admin/userbase
This commit is contained in:
+1
-1
@@ -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
@@ -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']
|
||||
};
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
Vendored
+4680
-2379
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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