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
+}
@@ -331,6 +353,10 @@ function hasInvalidTempPrivilege(user) {
{{ privilegeDisplayName }}