Opened 13 months ago

Closed 3 weeks ago

Last modified 3 weeks ago

#1398 closed дефект (готово)

Неверный результат поиска несоответствий

Reported by: alx Owned by: Denis_N
Priority: major Component: БД изделий АДС
Keywords: Cc:

Description

В r417/base на странице "Несоответствия" в панели "Поиск несоответствий" в поле S/N ввожу строку "Б2084". После этого выполняется поиск (список несоответствий в панели пропадает и снова появляется), однако его результат не соответствует введенному серийному номеру:


Как видно на скриншоте, отображаются записи о несоответствиях разных изделий, а не только изделий, серийный номер которого введен в строке S/N. Ожидалось, что будет отображаться только несоответствие изделия с S/N Б2084.

Дополнительно отмечу, что если нажать любую клавишу, например shift, то поиск выполняется снова (второй раз), и на этот раз результат соответствует ожидаемому.

Attachments (1)

ss1.jpg (95.4 KB ) - added by alx 13 months ago.

Download all attachments as: .zip

Change History (3)

by alx, 13 months ago

Attachment: ss1.jpg added

comment:1 by alx, 13 months ago

Дополнительно уточню, что текст в строку ввода вставлялся из буфера обмена, а не вводился с клавиатуры.

comment:2 by Denis_N, 3 weeks ago

Resolution: готово
Status: newclosed

В r417/base причина была во frontend-обработке поля S/N в интерфейсе "Несоответствия": поиск запускался по событиям keyup/paste, из-за чего первый AJAX-запрос мог уйти до того, как поле поиска получило актуальное значение. Поэтому после ввода/вставки S/N сначала отображался список не по введённому номеру, а повторное нажатие клавиши запускало поиск уже с правильным значением.

Исправлено в r537/base: поиск переведён на событие input, которое срабатывает после обновления значения поля; предыдущие AJAX-запросы отменяются, а запоздавшие ответы старых запросов не применяются. Дополнительно состояние галочки фильтра передаётся прямо в AJAX-запрос.

Закрываю как исправленный.

Last edited 3 weeks ago by Denis_N (previous) (diff)
Note: See TracTickets for help on using tickets.