|
@@ -2,12 +2,12 @@
|
|
|
<div class="bg-[#f8f8f8]">
|
|
|
<img src="~/assets/img/profile/profile_top_bg.png" class="h-auto w-full" />
|
|
|
<div class="flex justify-center">
|
|
|
- <div class="w-wrap bg-white px-30 pb-100 pt-30">
|
|
|
+ <div v-loading="loading" class="w-wrap bg-white px-30 pb-100 pt-30">
|
|
|
<div class="flex space-x-10">
|
|
|
<div class="flex shrink-0 flex-col items-center space-y-10">
|
|
|
<img
|
|
|
@click="handleChangeAvatar"
|
|
|
- :src="userInfo.headImageUrl || defaultAvatar"
|
|
|
+ :src="form.headImageUrl || defaultAvatar"
|
|
|
class="h-136 w-136 cursor-pointer rounded-full object-cover"
|
|
|
/>
|
|
|
<el-button
|
|
@@ -93,6 +93,8 @@
|
|
|
import { useFileDialog } from '@vueuse/core'
|
|
|
import defaultAvatar from '~/assets/img/default_avatar.png'
|
|
|
|
|
|
+const loading = ref(false)
|
|
|
+
|
|
|
const userInfoStore = useUserInfoStore()
|
|
|
const { userInfo } = storeToRefs(userInfoStore)
|
|
|
|
|
@@ -184,18 +186,22 @@ onChange(async (files) => {
|
|
|
formData.append('asImage', true)
|
|
|
formData.append('fieldName', 'headImageUrl')
|
|
|
try {
|
|
|
+ loading.value = true
|
|
|
const { data } = await request('/website/tourism/user/upload', {
|
|
|
method: 'post',
|
|
|
body: formData
|
|
|
})
|
|
|
+ loading.value = false
|
|
|
form.headImageUrl = data.fileUrl
|
|
|
- userInfoStore.getUserInfo()
|
|
|
- } catch (error) {}
|
|
|
+ // userInfoStore.getUserInfo()
|
|
|
+ } catch (error) {
|
|
|
+ loading.value = false
|
|
|
+ }
|
|
|
})
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.sign-textarea.full :deep(.el-input__count) {
|
|
|
- color: #FF476A;
|
|
|
+ color: #ff476a;
|
|
|
}
|
|
|
</style>
|