fix: пустая карточка клиента — обработка ошибок и сравнение client_tg_id

- Добавить проверку data.error после fetchClients() в renderClientHistory
- Сравнивать client_tg_id как строки (String(c.client_tg_id) === String(clientKey))
  чтобы избежать 5937498515 !== '5937498515'
- Показывать явное сообщение если клиент не найден вместо пустой страницы
- Версия clients.js: 20260518b
This commit is contained in:
wasrusgen 2026-05-18 00:11:44 +03:00
parent a4124c6b50
commit 860c768572
2 changed files with 12 additions and 6 deletions

View File

@ -571,19 +571,25 @@ const Clients = (function () {
if (!clients) { if (!clients) {
try { try {
const data = await fetchClients(); const data = await fetchClients();
clients = data.clients; if (data.error) {
root.appendChild(el(`<div class="error">Ошибка загрузки клиентов: ${escHtml(data.error)}</div>`));
return;
}
clients = data.clients || [];
clientsCache = data; clientsCache = data;
} catch (e) { } catch (e) {
root.appendChild(el(`<div class="error">${e.message}</div>`)); root.appendChild(el(`<div class="error">Сеть: ${escHtml(e.message)}</div>`));
return; return;
} }
} }
// Сравниваем как строки — client_tg_id может прийти числом из API
const clientKeyStr = String(clientKey);
const client = clients.find(c => const client = clients.find(c =>
(c.client_tg_id && c.client_tg_id === clientKey) || (c.client_tg_id && String(c.client_tg_id) === clientKeyStr) ||
(c.client_name && c.client_name.toLowerCase() === clientKey) (c.client_name && c.client_name.toLowerCase() === clientKeyStr)
); );
if (!client) { if (!client) {
root.appendChild(el(`<div class="empty">Клиент не найден</div>`)); root.appendChild(el(`<div class="empty" style="padding:24px 16px;color:var(--muted)">Клиент не найден.<br><small>Вернитесь в список и попробуйте ещё раз.</small></div>`));
return; return;
} }

View File

@ -39,7 +39,7 @@
<script src="assets/podbor.config.js?v=20260516h"></script> <script src="assets/podbor.config.js?v=20260516h"></script>
<script src="assets/podbor.picts.js?v=20260516h"></script> <script src="assets/podbor.picts.js?v=20260516h"></script>
<script src="assets/podbor.js?v=20260517d"></script> <script src="assets/podbor.js?v=20260517d"></script>
<script src="assets/clients.js?v=20260518a"></script> <script src="assets/clients.js?v=20260518b"></script>
<script src="assets/zamer-picts.js?v=20260516h"></script> <script src="assets/zamer-picts.js?v=20260516h"></script>
<script src="assets/measurements.js?v=20260517d"></script> <script src="assets/measurements.js?v=20260517d"></script>
<script src="assets/request.js?v=20260517d"></script> <script src="assets/request.js?v=20260517d"></script>