diff --git a/index.html b/index.html
index 455daa3..e6dfa9b 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,17 @@
DatingApp
-
+
+
diff --git a/src/views/ProfileView.vue b/src/views/ProfileView.vue
index f4a9450..10c57cf 100644
--- a/src/views/ProfileView.vue
+++ b/src/views/ProfileView.vue
@@ -387,10 +387,22 @@ const toggleEditMode = () => {
if (isEditMode.value) {
// При входе в режим редактирования копируем данные профиля в редактируемый объект
+ // Преобразуем формат даты из ISO в yyyy-MM-dd
+ let formattedDate = '';
+ if (profileData.value.dateOfBirth) {
+ try {
+ const date = new Date(profileData.value.dateOfBirth);
+ formattedDate = date.toISOString().split('T')[0]; // Получаем только yyyy-MM-dd часть
+ } catch (e) {
+ console.error('Ошибка форматирования даты:', e);
+ formattedDate = '';
+ }
+ }
+
editableProfileData.value = {
name: profileData.value.name || '',
bio: profileData.value.bio || '',
- dateOfBirth: profileData.value.dateOfBirth || '',
+ dateOfBirth: formattedDate,
gender: profileData.value.gender || '',
location: {
city: profileData.value.location?.city || '',
@@ -749,13 +761,22 @@ const saveProfileChanges = async () => {
try {
console.log('[ProfileView] Сохранение данных профиля:', editableProfileData.value);
-
- // Подготавливаем данные для отправки на сервер
+ // Подготавливаем данные для отправки на сервер
const dataToUpdate = { ...editableProfileData.value };
- // Обрабатываем дату рождения - если это строка с датой, преобразуем в формат ISO
+ // Обрабатываем дату рождения - если это строка с датой в формате yyyy-MM-dd
+ // преобразуем её в полноценную дату (в формат ISO)
if (dataToUpdate.dateOfBirth) {
- // dateOfBirth уже в нужном формате из input type="date"
+ try {
+ // Получаем дату в формате ISO с поправкой на часовой пояс
+ const dateObj = new Date(dataToUpdate.dateOfBirth);
+ if (!isNaN(dateObj.getTime())) { // Проверяем, что дата валидна
+ dataToUpdate.dateOfBirth = dateObj.toISOString();
+ }
+ } catch (e) {
+ console.error('[ProfileView] Ошибка обработки даты:', e);
+ // Оставляем как есть, если возникла ошибка
+ }
console.log('[ProfileView] Дата рождения для отправки:', dataToUpdate.dateOfBirth);
}
@@ -787,10 +808,21 @@ const loadCities = async () => {
try {
// Используем правильный путь к файлу для Vite
const response = await import('@/assets/russian-cities.json');
- cities = response.default || [];
+ const rawData = response.default || [];
+
+ // Проверяем, что данные - массив строк
+ if (Array.isArray(rawData)) {
+ // Фильтруем и очищаем данные, оставляя только строки
+ cities = rawData.filter(city => typeof city === 'string');
+ } else {
+ cities = [];
+ console.error('[ProfileView] Неверный формат данных городов:', typeof rawData);
+ }
+
console.log('[ProfileView] Загружен список городов:', cities.length);
} catch (err) {
console.error('[ProfileView] Ошибка при загрузке списка городов:', err);
+ cities = []; // Инициализируем пустым массивом в случае ошибки
}
};
@@ -807,11 +839,12 @@ const onCitySearch = () => {
const query = citySearchQuery.value.toLowerCase().trim();
filteredCities.value = cities
- .filter(city => city.toLowerCase().includes(query))
+ .filter(city => typeof city === 'string' && city.toLowerCase().includes(query))
.slice(0, 10); // Ограничиваем количество результатов
};
const selectCity = (city) => {
+ console.log('[ProfileView] Выбран город:', city, typeof city);
citySearchQuery.value = city;
if (!editableProfileData.value.location) {
@@ -863,7 +896,7 @@ onMounted(async () => {