pcp-tgu-ops-ui: тест-кнопка закладки, статус SUPERSEDED, подсветка цепочки

- Тест-кнопка «Подтвердить закладку» в деталях плана для AWAITING_LAYIN
  (под подписью «ТЕСТОВЫЙ ФУНКЦИОНАЛ», с подтверждением). Гасится, если по
  КА уже заложен план со стартом в пределах ±10 мин (дублирует бэкенд-гард).
- Статус SUPERSEDED: стиль/подпись/легенда.
- Поиск уже созданного черновика — по слоту (КА + окно исходного плана),
  т.к. basePlanId черновика теперь = предшественник, а не исходный план.
- Таймлайн: при выборе плана непричастные планы гаснут, а текущий/прошлый/
  следующий обводятся яркими рамками (current #2563EB, prev #94A3B8,
  next #F59E0B). Асимметрия: prev (явная база выбранного) показывается
  всегда, даже REJECTED/SUPERSEDED; next (обратная ссылка) не подсвечивает
  мёртвые статусы — иначе вытесненная коррекция ложно числилась бы
  «следующей» у заложенного плана.
This commit is contained in:
Дмитрий Соловьев
2026-06-04 16:13:13 +03:00
parent 87905311b1
commit faadc63028
6 changed files with 162 additions and 13 deletions
@@ -180,6 +180,10 @@
background-color: #a61e4d;
}
.status-superseded {
background-color: #6b7280;
}
.status-waiting {
background-color: #f0ad2e;
}
@@ -433,6 +437,13 @@
.tgu-timeline-plan {
cursor: pointer;
transition: opacity 0.12s ease;
}
/* При активном выборе непричастные планы гасим до еле заметных — на их фоне читаются
яркие рамки текущего/прошлого/следующего звена цепочки. */
.tgu-timeline-plan.is-dimmed {
opacity: 0.16;
}
.tgu-timeline-plan__bar {
@@ -445,26 +456,27 @@
stroke-dasharray: 7 5;
}
/* Яркая рамка ТЕКУЩЕГО (выбранного) плана — blue-600. */
.tgu-timeline-plan__selection {
stroke: #efffff;
stroke: #2563eb;
stroke-linecap: round;
stroke-width: 19;
opacity: 0.85;
opacity: 1;
}
/* Гало вокруг соседнего по цепочке плана при выборе: прошлое — тёплый янтарь, будущеебирюза. */
/* Яркая рамка соседнего по цепочке плана: прошлый — slate-400, будущийamber-500. */
.tgu-timeline-plan__neighbor {
stroke-linecap: round;
stroke-width: 19;
opacity: 0.7;
opacity: 1;
}
.tgu-timeline-plan__neighbor--prev {
stroke: #e0a23c;
stroke: #94a3b8;
}
.tgu-timeline-plan__neighbor--next {
stroke: #46b3c4;
stroke: #f59e0b;
}
.tgu-timeline-plan__label {
@@ -575,6 +587,29 @@
flex-wrap: wrap;
}
/* Тестовый блок — отделён сверху, с предупреждающей подписью «ТЕСТОВЫЙ ФУНКЦИОНАЛ». */
.tgu-details__test-block {
display: flex;
flex-direction: column;
gap: 0.4rem;
margin-top: 0.9rem;
padding-top: 0.7rem;
border-top: 1px dashed var(--line);
}
.tgu-details__test-label {
font-size: 0.66rem;
font-weight: 700;
letter-spacing: 0.08em;
color: #d97706;
}
.tgu-details__test-hint {
font-size: 0.74rem;
line-height: 1.3;
color: var(--muted, #79828d);
}
.tgu-alert {
border: 1px solid var(--line);
border-radius: 7px;