fix: failed to update user avatar

Signed-off-by: Ryan Wang <i@ryanc.cc>
pull/639/head
Ryan Wang 2 years ago
parent a7399e8988
commit 9639befd19

@ -255,7 +255,16 @@
</a-form>
<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>
</template>
</a-modal>
@ -521,20 +530,27 @@ export default {
})
},
async handleUpdateAvatar() {
const { updateAvatarData } = await apiClient.user.getProfile()
updateAvatarData.avatar = this.updateAvatarForm.avatar
const { data: userToUpdate } = await apiClient.user.getProfile()
userToUpdate.avatar = this.updateAvatarForm.avatar
this.updateAvatarForm.saving = true
apiClient.user
.updateProfile(updateAvatarData)
.then(response => {
this.$message.success('更新头像成功!')
this.updateAvatarForm.visible = false
this.userForm.model.avatar = response.data.avatar
this.setUser(Object.assign({}, this.userForm.model))
})
.updateProfile(userToUpdate)
.catch(() => {
this.$message.error('更新头像失败!')
this.updateAvatarForm.visible = true
this.updateAvatarForm.saveErrored = true
})
.finally(() => {
setTimeout(() => {
this.updateAvatarForm.saving = false
}, 400)
this.handleLoadStatistics()
})
},
handleUpdateAvatarCallback() {
if (this.updateAvatarForm.saveErrored) {
this.updateAvatarForm.saveErrored = false
return
}
this.updateAvatarForm.visible = false
}
}
}

Loading…
Cancel
Save