From 4118f025d4d1cd4e032677262ab80ba2d888b82e Mon Sep 17 00:00:00 2001 From: Kunagisa <1549184870@qq.com> Date: Tue, 8 Jul 2025 18:52:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=97=B2=E7=9A=84=E6=B2=A1?= =?UTF-8?q?=E4=BA=8B=E7=9E=8E=E5=87=A0=E6=8A=8A=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E6=8B=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ChangeUsernameDialog.vue | 233 ++++++++++++++++++++++++ src/components/login_module.vue | 8 +- src/views/index.vue | 35 +++- 3 files changed, 271 insertions(+), 5 deletions(-) create mode 100644 src/components/ChangeUsernameDialog.vue diff --git a/src/components/ChangeUsernameDialog.vue b/src/components/ChangeUsernameDialog.vue new file mode 100644 index 0000000..66d6cd0 --- /dev/null +++ b/src/components/ChangeUsernameDialog.vue @@ -0,0 +1,233 @@ + + + + + \ No newline at end of file diff --git a/src/components/login_module.vue b/src/components/login_module.vue index 75262b6..8640e6d 100644 --- a/src/components/login_module.vue +++ b/src/components/login_module.vue @@ -159,10 +159,10 @@ const validateForm = () => { return false } // 修正正则表达式:只允许纯数字 - if (!/^\d+$/.test(username.value)) { - usernameError.value = 'QQ号码只能包含数字' - return false - } + // if (!/^\d+$/.test(username.value)) { + // usernameError.value = 'QQ号码只能包含数字' + // return false + // } if (username.value.length < 4) { usernameError.value = 'QQ号码长度不能小于4个字符' return false diff --git a/src/views/index.vue b/src/views/index.vue index 98d3f7f..85e9af2 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -8,6 +8,7 @@ import { requestTempPrivilege } from '@/api/login.js' const PrivilegeRequestDialog = defineAsyncComponent(() => import('@/components/PrivilegeRequestDialog.vue')) const SuccessDialog = defineAsyncComponent(() => import('@/components/SuccessDialog.vue')) const ErrorDialog = defineAsyncComponent(() => import('@/components/ErrorDialog.vue')) +const ChangeUsernameDialog = defineAsyncComponent(() => import('@/components/ChangeUsernameDialog.vue')) const isLoggedIn = computed(() => { return !!localStorage.getItem('access_token') && !!currentUserData.value @@ -175,7 +176,7 @@ onMounted(() => { console.log('权限检查失败:', error) } } - }, 10 * 1000) // 10秒 + }, 100 * 1000) // 10秒 }) onUnmounted(() => { @@ -208,6 +209,7 @@ const privilegeDialogVisible = ref(false) const privilegeDialogName = ref('') const privilegeDialogKey = ref('') const successDialog = ref({ visible: false, message: '' }) +const changeUsernameDialogVisible = ref(false) const privilegeDisplayNames = { 'lv-admin': '管理员', @@ -265,6 +267,26 @@ function hasInvalidTempPrivilege(user) { const arr = user.temp_privilege.split(';').map(p => p.trim()).filter(Boolean) return arr.some(p => !allowedTempPrivileges.includes(p)) } + +// 显示修改用户名对话框 +function showChangeUsernameDialog() { + changeUsernameDialogVisible.value = true + showDropdown.value = false +} + +// 处理修改用户名成功 +function handleUsernameChangeSuccess(newUsername) { + if (currentUserData.value) { + currentUserData.value.username = newUsername + } + successDialog.value = { visible: true, message: '用户名修改成功!' } +} + +// 处理修改用户名错误 +function handleUsernameChangeError(errorMessage) { + errorDialogMessage.value = errorMessage + errorDialogVisible.value = true +}