diff --git a/src/components/Account.vue b/src/components/Account.vue index 720a846..6d35a53 100644 --- a/src/components/Account.vue +++ b/src/components/Account.vue @@ -6,22 +6,43 @@ const props = defineProps({ Email: String, }) +const showModal = ref(false); +const newUserName = ref(''); +const isSubmitting = ref(false); + +function openModal() { + newUserName.value = props.UserName; + showModal.value = true; +} + +function closeModal() { + showModal.value = false; + newUserName.value = ''; +} + function ChangeUserName() { - let newUserName = prompt('请输入新的用户名'); - if (newUserName !== null && newUserName !== props.UserName && newUserName.length > 0) { - const loginServerUrl = localStorage.getItem('loginServerUrl'); - const formData = new FormData(); - formData.append('name', newUserName); - fetch(loginServerUrl + '/changename', { - method: 'POST', - headers: { - Authorization: `Bearer ${window.localStorage.getItem('bearer')}` - }, - body: formData - }).then(res => { - location.reload(true); - }) + if (newUserName.value === null || newUserName.value === props.UserName || newUserName.value.length === 0) { + return; } + + isSubmitting.value = true; + const loginServerUrl = localStorage.getItem('loginServerUrl'); + const formData = new FormData(); + formData.append('name', newUserName.value); + + fetch(loginServerUrl + '/changename', { + method: 'POST', + headers: { + Authorization: `Bearer ${window.localStorage.getItem('bearer')}` + }, + body: formData + }).then(res => { + isSubmitting.value = false; + closeModal(); + location.reload(true); + }).catch(() => { + isSubmitting.value = false; + }) } @@ -41,7 +62,7 @@ function ChangeUserName() {