fix: фильтр S.zone теперь работает без поиска, zoneLabel — исходные названия для экспорта, экранный статус — отдельный map

This commit is contained in:
Moldabayev_d 2026-09-21 09:19:19 +00:00
parent 74a7eed922
commit 68fc499ac9

View File

@ -512,7 +512,7 @@
return w;
}
function zoneLabel(z) {
return { green: "В норме", yellow: "Наблюдение", red: "Нарушение", nodefault: "Без норматива", nodata: "Нет данных" }[z] || z;
return { green: "Зелёная", yellow: "Жёлтая", red: "Красная", nodefault: "Без норматива", nodata: "Нет данных" }[z] || z;
}
/* ---------- учебный (синтетический) пример ---------- */
@ -591,7 +591,8 @@
}
function statusHtml(zone) {
var cls = { green: "s-green", yellow: "s-yellow", red: "s-red", nodefault: "s-nodefault", nodata: "s-nodata" }[zone] || "s-nodata";
return "<span class='kfu-status " + cls + "'>" + zoneLabel(zone) + "</span>";
var screenLabel = { green: "В норме", yellow: "Наблюдение", red: "Нарушение", nodefault: "Без норматива", nodata: "Нет данных" }[zone] || zone;
return "<span class='kfu-status " + cls + "'>" + screenLabel + "</span>";
}
function coefCell(e, key) {
var v = e[key];
@ -743,14 +744,17 @@
renderDiag();
/* компании (без группы) */
var filtered = S.q ? comps.filter(function (e) {
if (e.name.toLowerCase().indexOf(S.q.toLowerCase()) === -1) return false;
var wz = worst(e);
if (!S.zone) return true;
if (S.zone === "nodefault") return wz === "nodefault";
return wz === S.zone;
}) : comps;
/* компании (без группы): поиск и зона комбинируются независимо */
var q = (S.q || "").toLowerCase();
var filtered = comps.filter(function (e) {
if (q && e.name.toLowerCase().indexOf(q) === -1) return false;
if (S.zone) {
var wz = worst(e);
if (S.zone === "nodefault") return wz === "nodefault";
return wz === S.zone;
}
return true;
});
filtered = filterSortList(filtered);
var body = $("#tbody");
if (!filtered.length) {