diff --git a/begushiybashkir/bbvue/src/views/Profile.vue b/begushiybashkir/bbvue/src/views/Profile.vue index 961e198..0bb5bfa 100644 --- a/begushiybashkir/bbvue/src/views/Profile.vue +++ b/begushiybashkir/bbvue/src/views/Profile.vue @@ -9,20 +9,15 @@
- +
👤
- +

{{ user.firstName }} {{ user.lastName }}

Участник с {{ joinDate }}

{{ user.email }}

@@ -160,17 +155,13 @@ export default { // Вычисляем полный URL аватара avatarUrl() { if (!this.user?.avatar) return null; - - // Если avatar уже содержит полный URL, возвращаем как есть - if (this.user.avatar.startsWith('http')) { - return this.user.avatar; - } - - // Иначе формируем полный URL - const baseUrl = 'https://begushiybashkir.ru/api/v1/user'; - alert(this.user.avatar) - return baseUrl + this.user.avatar; + let filename = this.user.avatar.trim('/').split('/').pop(); + + // Иначе формируем полный URL + const baseUrl = 'https://begushiybashkir.ru/api/v1/user/avatars/'; + + return baseUrl + filename; }, joinDate() { if (!this.user?.createdAt) return 'января 2024'; @@ -211,13 +202,13 @@ export default { await this.authStore.fetchProfile(); console.log('Avatar updated, user data:', this.authStore.user); }, - + // Обработчик ошибки загрузки изображения handleAvatarError() { console.error('Ошибка загрузки аватара:', this.avatarUrl); this.avatarLoadError = true; }, - + async loadUserData() { this.authLoading = true; this.avatarLoadError = false; @@ -230,7 +221,7 @@ export default { this.authLoading = false; } }, - + async loadStats() { this.statsLoading = true; try { @@ -251,20 +242,20 @@ export default { this.statsLoading = false; } }, - + async refreshStats() { await this.loadStats(); }, - + async handleLogout() { await this.authStore.logout(); this.$router.push('/'); }, - + editProfile() { this.$router.push('/profile/edit'); }, - + viewDetailedStats() { // TODO: Переход на страницу детальной статистики alert('Функция в разработке'); @@ -343,12 +334,15 @@ export default { font-size: 1.8rem; } -.user-email, .user-phone { +.user-email, +.user-phone { color: #666; margin: 0.25rem 0; } -.profile-info, .profile-stats, .achievements-preview { +.profile-info, +.profile-stats, +.achievements-preview { background: white; padding: 1.5rem; border-radius: 15px; @@ -584,7 +578,7 @@ export default { .page { padding: 1rem; } - + .info-grid { grid-template-columns: 1fr; } @@ -601,7 +595,7 @@ export default { flex-direction: column; gap: 0.5rem; } - + .avatar-preview { width: 120px; height: 120px; @@ -612,11 +606,11 @@ export default { .stats-grid { grid-template-columns: 1fr; } - + .profile-header { padding: 1.5rem; } - + .profile-header h2 { font-size: 1.5rem; }