From 0036a895e9b0fec6052a6023e352cc13b16908c8 Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Sat, 19 Oct 2024 11:58:01 +0800 Subject: [PATCH 1/3] feat(login): add userID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改按钮判断的逻辑,将 `userName` 替换成 `userID` 判断;解决不管是主程序还是插件修改用户名,都会存在的条件判断导致的渲染异常显示。(拆分自user的pr) --- src/components/cards/UserCard.vue | 36 +++++++++++++++---------------- src/pages/login.vue | 4 +++- src/store/auth.ts | 9 +++++++- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index f340460b8..549ad2ae2 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -21,8 +21,8 @@ const props = defineProps({ }, }) -// 当前用户名称 -const currentLoginUser = store.state.auth.userName +// 当前用户的ID +const currentLoginUserId = computed(() => store.state.auth.userID) // 定义触发的自定义事件 const emit = defineEmits(['remove', 'save']) @@ -57,7 +57,7 @@ async function fetchSubscriptions() { // 删除用户 async function removeUser() { - if (props.user.name == currentLoginUser) { + if (props.user.id === currentLoginUserId.value) { $toast.error('不能删除当前登录用户!') return } @@ -84,19 +84,6 @@ function editUser() { userEditDialog.value = true } -// 计算是否有用户编辑权限 -const canEditUser = computed(() => { - if (store.state.auth.superUser && props.user.name !== currentLoginUser) return true - return false -}) - -// 计算是否有用户管理权限 -const canManageUser = computed(() => { - if (props.user.name == currentLoginUser) return false - if (store.state.auth.superUser) return true - return false -}) - // 用户重新完成时 function onUserUpdate() { userEditDialog.value = false @@ -170,8 +157,21 @@ onMounted(() => { - 编辑 - 删除 + + 编辑 + + + 删除 + diff --git a/src/pages/login.vue b/src/pages/login.vue index 61a30fa20..bfa94b59b 100644 --- a/src/pages/login.vue +++ b/src/pages/login.vue @@ -171,6 +171,7 @@ function login() { // 获取token const token = response.access_token const superUser = response.super_user + const userID = response.user_id const userName = response.user_name const avatar = response.avatar const level = response.level @@ -178,7 +179,8 @@ function login() { const permissions = response.permissions // 更新token和remember状态到Vuex Store - store.dispatch('auth/login', { token, remember, superUser, userName, avatar, level, permissions }) + store.dispatch('auth/login', { + token, remember, superUser, userID, userName, avatar, level, permissions }) // 登录后处理 afterLogin(superUser) diff --git a/src/store/auth.ts b/src/store/auth.ts index b91a52a3c..050b27e4c 100644 --- a/src/store/auth.ts +++ b/src/store/auth.ts @@ -5,6 +5,7 @@ interface AuthState { token: string | null remember: boolean superUser: boolean + userID: number userName: string avatar: string originalPath: string | null @@ -24,6 +25,7 @@ const authModule: Module = { token: null, // 用户令牌 remember: false, // 记住我 superUser: false, // 超级管理员 + userID: 999, // 用户ID userName: '', // 用户名 avatar: '', // 头像 originalPath: null, // 原始路径 @@ -43,6 +45,9 @@ const authModule: Module = { setSuperUser(state, superUser: boolean) { state.superUser = superUser }, + setUserID(state, userID: number) { + state.userID = userID + }, setUserName(state, userName: string) { state.userName = userName }, @@ -60,10 +65,11 @@ const authModule: Module = { }, }, actions: { - login({ commit }, { token, remember, superUser, userName, avatar, level, permissions }) { + login({ commit }, { token, remember, superUser, userID, userName, avatar, level, permissions }) { commit('setToken', token) commit('setRemember', remember) commit('setSuperUser', superUser) + commit('setUserID', userID) commit('setUserName', userName) commit('setAvatar', avatar) commit('setLevel', level) @@ -78,6 +84,7 @@ const authModule: Module = { getToken: state => state.token, getRemember: state => state.remember, getSuperUser: state => state.superUser, + getUserID: state => state.userID, getUserName: state => state.userName, getAvatar: state => state.avatar, getOriginalPath: state => state.originalPath, From 0b3fc938ae008444f50abbcc9bbcf8c516af2759 Mon Sep 17 00:00:00 2001 From: Aqr-K <95741669+Aqr-K@users.noreply.github.com> Date: Sat, 19 Oct 2024 13:44:19 +0800 Subject: [PATCH 2/3] Update UserCard.vue --- src/components/cards/UserCard.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index 549ad2ae2..4b42ba6fe 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -165,7 +165,7 @@ onMounted(() => { 编辑 Date: Tue, 22 Oct 2024 01:24:57 +0800 Subject: [PATCH 3/3] fix: bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复超管判断条件。 --- src/components/cards/UserCard.vue | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index 4b42ba6fe..d3c515aaf 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -24,6 +24,9 @@ const props = defineProps({ // 当前用户的ID const currentLoginUserId = computed(() => store.state.auth.userID) +// 当前用户是否是管理员 +const currentUserIsSuperuser = computed(() => store.state.auth.superUser) + // 定义触发的自定义事件 const emit = defineEmits(['remove', 'save']) @@ -126,8 +129,9 @@ onMounted(() => { -
详情
- + +
详情
+
@@ -158,6 +162,7 @@ onMounted(() => {
{ 编辑