0
Отвечен

Настройка гранулярных подсказок

Анонимный 9 лет назад обновлен 9 лет назад 6
Добрый день!
Необходимо заполнять адрес по полям: регион, район, город, нас. пункт, улица, дом, корпус, дом. В примере гранулярных подсказок http://codepen.io/dadata/pen/cGkah Регион / район, Город / населенный пункт идут как одно поле. Мне необходимо заполнять отдельными полями регион, район, город, нас. пункт. Посмотрел в сторону использования ограничения поиска http://codepen.io/dadata/pen/qADdb. Но меня не устраивают подписи у каждого поля адреса. Можно ли донастроить гранулярные подсказки или отключить надписи?

Image 81

Ответ

Ответ
Отвечен
Добрый день!
Вот, посмотрите пример со отдельными полями.
Нужно донастроить параметр bounds.
Их возможные значения:
regionРегион
areaРайон
cityГород
settlementНаселенный пункт
streetУлица
houseДом
В первом примере параметр объединял ограничения:
 // регион и район  
$region.suggestions({    
    serviceUrl: serviceUrl,
    token: token,
    type: type,
    hint: false,
    bounds: "region-area"
  });
Для решения вашей задачи нужно сделать отдельные поля на каждую часть адреса.
Также не забудьте указать корректные constraints для ограничений нижестоящих элементов по вышестоящим.

// регион  
  $region.suggestions({
    serviceUrl: serviceUrl,
    token: token,
    type: type,
    hint: false,
    bounds: "region"
  });
  
  // район
  $area.suggestions({
    serviceUrl: serviceUrl,
    token: token,
    type: type,
    hint: false,
    bounds: "area",
    constraints: $region
  });
Ответ
Отвечен
Добрый день!
Вот, посмотрите пример со отдельными полями.
Нужно донастроить параметр bounds.
Их возможные значения:
regionРегион
areaРайон
cityГород
settlementНаселенный пункт
streetУлица
houseДом
В первом примере параметр объединял ограничения:
 // регион и район  
$region.suggestions({    
    serviceUrl: serviceUrl,
    token: token,
    type: type,
    hint: false,
    bounds: "region-area"
  });
Для решения вашей задачи нужно сделать отдельные поля на каждую часть адреса.
Также не забудьте указать корректные constraints для ограничений нижестоящих элементов по вышестоящим.

// регион  
  $region.suggestions({
    serviceUrl: serviceUrl,
    token: token,
    type: type,
    hint: false,
    bounds: "region"
  });
  
  // район
  $area.suggestions({
    serviceUrl: serviceUrl,
    token: token,
    type: type,
    hint: false,
    bounds: "area",
    constraints: $region
  });
Спасибо за пример.
А есть возможность разделить дом и корпус? В текущей реализации у нас это разные поля.

// дом
$area.suggestions({ 
    serviceUrl: serviceUrl, 
    token: token, 
    type: type, 
    hint: false, 
    bounds: "house", 
    constraints: $street
});

// корпус
$area.suggestions({ 
    serviceUrl: serviceUrl,     
    token: token, 
    type: type, 
    hint: false, 
    bounds: "building", 
    constraints: $street
});

К сожалению, такой возможности нет.
Дом и корпус не разделяются.
Есть еще одна проблема. Связана с наследованием улицы от города. Если выбрать населенный пункт (какую-либо деревню или поселок), а город оставить пустым, то улица возвращается некорректно (возвращаются улицы из всех населенных пунктов района). Можно ли поле улицы настроить таким образом, чтобы при наличии города, улицы брались из города, а в противном случае - из нас. пункта?


Можно, укажите constraints для улицы вот так:
 // улица  
$street.suggestions({
    serviceUrl: serviceUrl,
    token: token,
    type: type,
    hint: false,
    bounds: "street",
    constraints: $settlement
  });
Если settlement заполнено — улицы будут ограничены по нему.
Если нет — будут ограничены по первому заполненному полю выше (в вашем случае это город).
Пример дополнен, посмотрите.
Спасибо за пример и описание. Теперь решение нам полностью подходит.

Сервис поддержки клиентов работает на платформе UserEcho