Files
iistwin/.superpowers/sdd/di2-restyle/task-5-report.md

51 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчёт 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.