!51 fix(user): 用户管理页面不可删除当前登录账户
Merge pull request !51 from 萌狼蓝天/master
This commit is contained in:
@@ -253,7 +253,8 @@ import RoleAPI from "@/api/system/role-api";
|
|||||||
|
|
||||||
import DeptTree from "./components/DeptTree.vue";
|
import DeptTree from "./components/DeptTree.vue";
|
||||||
import UserImport from "./components/UserImport.vue";
|
import UserImport from "./components/UserImport.vue";
|
||||||
|
import { useUserStore } from "@/store";
|
||||||
|
const userStore = useUserStore();
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: "User",
|
name: "User",
|
||||||
inheritAttrs: false,
|
inheritAttrs: false,
|
||||||
@@ -425,6 +426,33 @@ const handleSubmit = useDebounceFn(() => {
|
|||||||
});
|
});
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查是否删除当前登录用户
|
||||||
|
* @param singleId 单个删除的用户ID
|
||||||
|
* @param selectedIds 批量删除的用户ID数组
|
||||||
|
* @param currentUserInfo 当前用户信息
|
||||||
|
* @returns 是否包含当前用户
|
||||||
|
*/
|
||||||
|
function isDeletingCurrentUser(
|
||||||
|
singleId?: number,
|
||||||
|
selectedIds: number[] = [],
|
||||||
|
currentUserInfo?: any
|
||||||
|
): boolean {
|
||||||
|
if (!currentUserInfo?.userId) return false;
|
||||||
|
|
||||||
|
// 单个删除检查
|
||||||
|
if (singleId && singleId.toString() === currentUserInfo.userId) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 批量删除检查
|
||||||
|
if (!singleId && selectedIds.length > 0) {
|
||||||
|
return selectedIds.map(String).includes(currentUserInfo.userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除用户
|
* 删除用户
|
||||||
*
|
*
|
||||||
@@ -437,12 +465,19 @@ function handleDelete(id?: number) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 安全检查:防止删除当前登录用户
|
||||||
|
const currentUserInfo = userStore.userInfo;
|
||||||
|
if (isDeletingCurrentUser(id, selectIds.value, currentUserInfo)) {
|
||||||
|
ElMessage.error("不能删除当前登录用户");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ElMessageBox.confirm("确认删除用户?", "警告", {
|
ElMessageBox.confirm("确认删除用户?", "警告", {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning",
|
type: "warning",
|
||||||
}).then(
|
}).then(
|
||||||
function () {
|
() => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
UserAPI.deleteByIds(userIds)
|
UserAPI.deleteByIds(userIds)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@@ -451,7 +486,7 @@ function handleDelete(id?: number) {
|
|||||||
})
|
})
|
||||||
.finally(() => (loading.value = false));
|
.finally(() => (loading.value = false));
|
||||||
},
|
},
|
||||||
function () {
|
() => {
|
||||||
ElMessage.info("已取消删除");
|
ElMessage.info("已取消删除");
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user