fix: failed to update user avatar

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/639/head
Ryan Wang 2022-10-12 11:44:55 +08:00
parent a7399e8988
commit 9639befd19
1 changed files with 28 additions and 12 deletions

View File

@ -255,7 +255,16 @@
</a-form> </a-form>
<template #footer> <template #footer>
<a-button type="primary" @click="handleUpdateAvatar"></a-button> <ReactiveButton
:errored="updateAvatarForm.errored"
:loading="updateAvatarForm.saving"
erroredText="保存失败"
loadedText="保存成功"
text="保存"
type="primary"
@callback="handleUpdateAvatarCallback"
@click="handleUpdateAvatar"
></ReactiveButton>
<a-button @click="updateAvatarForm.visible = false">关闭</a-button> <a-button @click="updateAvatarForm.visible = false">关闭</a-button>
</template> </template>
</a-modal> </a-modal>
@ -521,20 +530,27 @@ export default {
}) })
}, },
async handleUpdateAvatar() { async handleUpdateAvatar() {
const { updateAvatarData } = await apiClient.user.getProfile() const { data: userToUpdate } = await apiClient.user.getProfile()
updateAvatarData.avatar = this.updateAvatarForm.avatar userToUpdate.avatar = this.updateAvatarForm.avatar
this.updateAvatarForm.saving = true
apiClient.user apiClient.user
.updateProfile(updateAvatarData) .updateProfile(userToUpdate)
.then(response => {
this.$message.success('更新头像成功!')
this.updateAvatarForm.visible = false
this.userForm.model.avatar = response.data.avatar
this.setUser(Object.assign({}, this.userForm.model))
})
.catch(() => { .catch(() => {
this.$message.error('更新头像失败!') this.updateAvatarForm.saveErrored = true
this.updateAvatarForm.visible = true
}) })
.finally(() => {
setTimeout(() => {
this.updateAvatarForm.saving = false
}, 400)
this.handleLoadStatistics()
})
},
handleUpdateAvatarCallback() {
if (this.updateAvatarForm.saveErrored) {
this.updateAvatarForm.saveErrored = false
return
}
this.updateAvatarForm.visible = false
} }
} }
} }