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 }}