From 9faef8fcf531d7220f0b059162233760a149103a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=D1=81=20=D0=A1=D1=83=D0=BB=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Mon, 7 Sep 2026 00:56:16 +0300 Subject: [PATCH] =?UTF-8?q?SDD:=20=D0=BE=D1=82=D1=87=D1=91=D1=82=20task=20?= =?UTF-8?q?5=20=E2=80=94=20=D1=84=D0=B8=D0=BA=D1=81=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D1=86=D0=B2=D0=B5=D1=82?= =?UTF-8?q?=D0=B0=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA=D0=BE=D0=B2=20DI2?= =?UTF-8?q?;=20=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=20=D0=BA=D0=BE=D0=BB=D0=BE?= =?UTF-8?q?=D0=BD=D0=BE=D0=BA=20=D0=B4=D0=BE=D1=85=D0=BE=D0=B4=D0=BE=D0=B2?= =?UTF-8?q?/=D1=80=D0=B0=D1=81=D1=85=D0=BE=D0=B4=D0=BE=D0=B2=20=D1=83?= =?UTF-8?q?=D0=B6=D0=B5=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .superpowers/sdd/di2-restyle/task-5-report.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .superpowers/sdd/di2-restyle/task-5-report.md diff --git a/.superpowers/sdd/di2-restyle/task-5-report.md b/.superpowers/sdd/di2-restyle/task-5-report.md new file mode 100644 index 0000000..91da382 --- /dev/null +++ b/.superpowers/sdd/di2-restyle/task-5-report.md @@ -0,0 +1,50 @@ +# Отчёт task 5 — фиксированные цвета графиков + выбор колонок доходов/расходов + +## Задача 1. Фиксированные цвета серий графиков + +**Решение владельца:** цвета серий на графиках НЕ должны меняться со скином/темой — они обозначают конкретные данные (категории/контрагенты/классы просрочки). Возвращены исходные палитры DI2 из состояния до рестайла `968010c` (источник: `git show 968010c^:<файл>` и локальная копия оригинального репозитория `tmp/Data-Insight2`). + +### Что поменяно (9 файлов) + +| Файл | Что | Исходные значения | +|---|---|---| +| `client-di2/src/pages/income-overview.tsx` | COLORS (20 шт) + фолбэк серии | hex-палитра `#2563eb, #e11d48, #16a34a, ...`; фолбэк `#999` | +| `client-di2/src/pages/expenses-overview.tsx` | COLORS (20 шт) + фолбэк серии | та же палитра; фолбэк `#999` | +| `client-di2/src/pages/calculations.tsx` | COLORS (income/expense/profit/tax/toPay/cumulative), HIGHLIGHT_COLORS (10 шт) | `#2563eb/#e11d48/#16a34a/#f59e0b/#8b5cf6/#0d9488`; хайлайты `#f97316, #8b5cf6, #0d9488, ...` | +| `client-di2/src/pages/debt.tsx` | OVERDUE_COLORS, clsColorMap, линии ДЗ/ПДЗ | `#22c55e/#3b82f6/#eab308/#f97316/#ef4444/#991b1b`; ДЗ `#3b82f6`, ПДЗ `#f87171`; фолбэк `#94a3b8` | +| `client-di2/src/pages/planning.tsx` | PIE_COLORS (8 hsl), paid/debt, totalDebt/totalOverdue, Cell факт/прогноз, линия net, легенда | `hsl(142 71% 45%)` и т.д.; прогноз — alpha `/0.5`; net `hsl(217 91% 60%)`; зарплаты `hsl(30 95% 55%)` | +| `client-di2/src/pages/salary.tsx` | CHART_COLORS (20 шт) | та же hex-палитра | +| `client-di2/src/pages/income-categories.tsx` | TAG_COLORS (8 шт) | `#2563eb, #e11d48, #16a34a, #f59e0b, #8b5cf6, #06b6d4, #ea580c, #84cc16` | +| `client-di2/src/pages/profitability.tsx` | income/expense/profit | `hsl(142, 71%, 45%)` / `hsl(0, 84%, 60%)` / `hsl(210, 85%, 55%)` | +| `client-di2/src/pages/dashboard.tsx` | COLORS (5 шт), Доходы/Расходы, billed/paid, линия Долг | исходная палитра темы DI2: `hsl(210 85% 42%)`, `hsl(195 75% 45%)`, `hsl(225 70% 48%)`, `hsl(180 65% 40%)`, `hsl(240 60% 50%)`; долг `hsl(0 72% 51%)` | + +### Особенность dashboard +В оригинальном репозитории DI2 (и в первом коммите порта `23ed1ec`) dashboard **всегда** использовал `hsl(var(--chart-1..5))` — отдельной hex-палитры не было. Зафиксированы значения, которые эти токены имели в исходной теме DI2 (`tmp/Data-Insight2/client/src/index.css`), — цвета те же, но больше не зависят от скина. + +### Что НЕ тронуто (по правилу задачи) +Цвета текста, осей, сеток (`hsl(var(--border))`), тултипов, ReferenceLine, фонов и KPI-иконок — остаются семантическими токенами скина. В т.ч. `bg-chart-*`/`text-chart-*` в KPI-карточках dashboard и числовых ячейках таблиц. + +## Задача 2. Выбор видимых колонок в таблицах доходов/расходов + +**Кода не потребовалось — функционал уже есть в DI2** (пришёл из оригинального репозитория, в проде с внедрения 2026-09-06). Изучен паттерн основного клиента (`client/src/components/TaskRegistry.tsx`: `registry-columns-${formId}`, JSON-мапа видимости, merge с дефолтами) — подход DI2 ему соответствует и местами богаче. + +Где именно (проверено по коду): + +| Таблица | Кнопка | Ключ localStorage | Возможности | +|---|---|---|---| +| Список доходов `/income/*` (income.tsx:262) | «Столбцы» справа от фильтров | `omegaprom_visible_columns` | чекбоксы, «Все», «По умолчанию», защита последней колонки (income.tsx:149) | +| Список расходов `/expenses/*` (expenses.tsx:~260) | «Столбцы» | `omegaprom_expense_visible_columns` | то же | +| Обзор доходов, вкладка «Таблица» (income-overview.tsx:934) | «Столбцы» | `omegaprom_income_table_cols` + `omegaprom_income_table_col_order` | чекбоксы + drag&drop порядок + синхронизация на сервер (`POST /api/table-settings`), защита последней колонки (income-overview.tsx:653) | +| Обзор расходов, вкладка «Таблица» (expenses-overview.tsx:~910) | «Столбцы» | `omegaprom_expense_table_cols` + `..._col_order` | то же | + +Скрытые колонки не рендерятся (`activeColumns = ALL_*_COLUMNS.filter(c => visibleColumns.includes(c.key))`), фильтры/сортировка не затронуты. + +**Рекомендация пользователю:** если кнопку «Столбцы» не видно — она в правой части строки фильтров/даты; в обзорах — на вкладках «Дерево» и «Таблица». Если под «нужен выбор колонок» имелось в виду другое (например, другие таблицы: дебиторка/расчёты/зарплаты) — уточнить, там выбора колонок действительно нет. + +## Проверки +- `npm run check` — чисто (оба tsc). +- `npm run build` — чисто (main + di2 + server bundle). + +## Коммиты +- `134b825` — «DI2: фиксированные цвета серий графиков — не зависят от скина/темы» (9 файлов). +- Коммит отчёта + push — см. git log.