Исправлена отображение полей адреса и стили формы заказа
## Основные изменения: ### 1. Исправлена логика выбора режима адреса - Переместил функцию initAddressModeToggle() из jQuery блока в отдельную функцию - Теперь инициализация адреса работает независимо от jQuery - Добавлены подробные логи в консоль для отладки ([ADDRESS MODE] префикс) ### 2. Добавлены CSS классы для управления видимостью - address-history-mode: display: none !important (по умолчанию скрыт) - address-new-mode: display: none !important (по умолчанию скрыт) - .visible класс переводит элементы на display: block !important - Использование classList.add/remove вместо inline styles ### 3. Исправлены стили полей формы (OrderForm) - Добавлена явная обработка для Select полей - получают form-select - Поле "Статус" и другие Select теперь имеют правильные стили Bootstrap - Разделена логика для RadioSelect, Select и остальных полей ### 4. Улучшена отладка - Добавлены console.log сообщения на каждом этапе инициализации - Префикс [ADDRESS MODE] помогает отличить логи системы адреса от других ## Технические детали: - Address сервис использует метод format_address_for_display() для красивого вывода - AJAX endpoint get_customer_address_history() загружает адреса клиента - Три режима адреса: history (из истории), new (новый адрес), empty (без адреса) - Режим empty выбирается по умолчанию 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -241,6 +241,71 @@
|
||||
data.pickup_shop = parseInt(pickupShopField.value);
|
||||
}
|
||||
|
||||
// Новая логика выбора адреса
|
||||
const addressModeField = form.querySelector('input[name="address_mode"]:checked');
|
||||
if (addressModeField) {
|
||||
data.address_mode = addressModeField.value;
|
||||
|
||||
if (addressModeField.value === 'history') {
|
||||
const addressFromHistoryField = form.querySelector('select[name="address_from_history"]');
|
||||
if (addressFromHistoryField && addressFromHistoryField.value) {
|
||||
data.address_from_history = parseInt(addressFromHistoryField.value);
|
||||
}
|
||||
} else if (addressModeField.value === 'new') {
|
||||
// Собираем поля нового адреса
|
||||
const addressStreetField = form.querySelector('input[name="address_street"]');
|
||||
if (addressStreetField && addressStreetField.value) {
|
||||
data.address_street = addressStreetField.value;
|
||||
}
|
||||
|
||||
const addressBuildingField = form.querySelector('input[name="address_building_number"]');
|
||||
if (addressBuildingField && addressBuildingField.value) {
|
||||
data.address_building_number = addressBuildingField.value;
|
||||
}
|
||||
|
||||
const addressApartmentField = form.querySelector('input[name="address_apartment_number"]');
|
||||
if (addressApartmentField && addressApartmentField.value) {
|
||||
data.address_apartment_number = addressApartmentField.value;
|
||||
}
|
||||
|
||||
const addressEntranceField = form.querySelector('input[name="address_entrance"]');
|
||||
if (addressEntranceField && addressEntranceField.value) {
|
||||
data.address_entrance = addressEntranceField.value;
|
||||
}
|
||||
|
||||
const addressFloorField = form.querySelector('input[name="address_floor"]');
|
||||
if (addressFloorField && addressFloorField.value) {
|
||||
data.address_floor = addressFloorField.value;
|
||||
}
|
||||
|
||||
const addressIntercomField = form.querySelector('input[name="address_intercom_code"]');
|
||||
if (addressIntercomField && addressIntercomField.value) {
|
||||
data.address_intercom_code = addressIntercomField.value;
|
||||
}
|
||||
|
||||
const addressInstructionsField = form.querySelector('textarea[name="address_delivery_instructions"]');
|
||||
if (addressInstructionsField && addressInstructionsField.value) {
|
||||
data.address_delivery_instructions = addressInstructionsField.value;
|
||||
}
|
||||
|
||||
const addressConfirmField = form.querySelector('input[name="address_confirm_with_recipient"]');
|
||||
if (addressConfirmField) {
|
||||
data.address_confirm_with_recipient = addressConfirmField.checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Поля получателя
|
||||
const recipientNameField = form.querySelector('input[name="recipient_name"]');
|
||||
if (recipientNameField && recipientNameField.value) {
|
||||
data.recipient_name = recipientNameField.value;
|
||||
}
|
||||
|
||||
const recipientPhoneField = form.querySelector('input[name="recipient_phone"]');
|
||||
if (recipientPhoneField && recipientPhoneField.value) {
|
||||
data.recipient_phone = recipientPhoneField.value;
|
||||
}
|
||||
|
||||
// Собираем позиции заказа
|
||||
const items = collectOrderItems();
|
||||
if (items.length > 0) {
|
||||
|
||||
Reference in New Issue
Block a user