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