Реструктуризация: два глобальных раздела — Яша и Семен
Весь контент перенесён в content/yasha/ (7 подразделов). Создан content/semen/ с подразделами: changelog, kb, diary. Навигация — dropdown в навбаре, двухуровневое меню в hugo.toml. Шаблоны, сайдбар, поиск обновлены под вложенные секции.
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
---
|
||||
title: "Leadera — Экспорт диаграммы Ганта в Excel"
|
||||
date: 2026-04-09
|
||||
lastmod: 2026-04-09
|
||||
tags: ["leadera", "gantt", "excel", "export"]
|
||||
weight: 120
|
||||
---
|
||||
|
||||
# Экспорт диаграммы Ганта в Excel
|
||||
|
||||
**Дата:** 09.04.2026
|
||||
**Статус:** Требования
|
||||
**Проект:** Leadera
|
||||
|
||||
---
|
||||
|
||||
## Общее описание
|
||||
|
||||
Пользователь нажимает кнопку экспорта в интерфейсе диаграммы Ганта. Система запрашивает диапазон дат выгрузки (по умолчанию — текущий видимый диапазон из интерфейса). После указания диапазона скачивается Excel-файл с визуальным представлением диаграммы Ганта.
|
||||
|
||||
---
|
||||
|
||||
## Вводные данные
|
||||
|
||||
- **Источник:** текущая диаграмма Ганта проекта (один проект = одна диаграмма)
|
||||
- **Диапазон дат:** пользователь указывает начальную и конечную дату. По умолчанию подставляется видимый в момент запроса диапазон из интерфейса
|
||||
- **Масштаб таймлайна:** берётся тот, который выбран пользователем в интерфейсе в момент запроса (не сохранённый в системе, а текущий). Варианты: по ячейкам или по дням
|
||||
|
||||
---
|
||||
|
||||
## Структура Excel-файла
|
||||
|
||||
### Шапка (первые строки)
|
||||
- Название диаграммы (название проекта)
|
||||
- Диапазон дат, в рамках которого сделана выгрузка
|
||||
|
||||
### Лист — один
|
||||
|
||||
Вся диаграмма размещается на одном листе.
|
||||
|
||||
### Секции
|
||||
- Секции отображаются как **визуальная группировка строк** (не отдельные листы)
|
||||
- Название секции — строка-заголовок над группой задач
|
||||
|
||||
### Задачи
|
||||
Каждая задача — отдельная строка. Данные задачи:
|
||||
- **Название** (текстовая колонка слева)
|
||||
- **Дата начала** (текстовая колонка слева)
|
||||
- **Дата конца** (текстовая колонка слева)
|
||||
- **Цвет** — ячейки таймлайна, соответствующие задаче, закрашены в цвет задачи
|
||||
|
||||
### Таймлайн
|
||||
- Таймлайн представлен колонками дат в верхней части (горизонтальная ось времени)
|
||||
- Масштаб колонок соответствует выбранному пользователем в момент экспорта (по ячейкам / по дням)
|
||||
- Задачи отображаются как **merged cells** по соответствующим колонкам дат — визуальная полоса диаграммы Ганта
|
||||
|
||||
### Вехи
|
||||
- Отображаются **отдельной строкой** (как задача, но с маркировкой вехи)
|
||||
- Позиционируются на соответствующей дате в таймлайне
|
||||
|
||||
### Зависимости
|
||||
- **Не отображаются** (стрелочки/связи между задачами не нужны)
|
||||
|
||||
---
|
||||
|
||||
## Пользовательский сценарий
|
||||
|
||||
1. Пользователь открывает диаграмму Ганта проекта
|
||||
2. Настраивает масштаб таймлайна (по ячейкам / по дням)
|
||||
3. Нажимает кнопку «Экспорт в Excel»
|
||||
4. Система показывает диалог с выбором диапазона дат (предзаполнен текущим видимым диапазоном)
|
||||
5. Пользователь подтверждает / корректирует диапазон
|
||||
6. Система генерирует Excel-файл и инициирует скачивание
|
||||
|
||||
---
|
||||
|
||||
## Технические требования
|
||||
|
||||
### Backend (Go API)
|
||||
- Новый endpoint для генерации Excel (например, `GET /api/v1/gantt/:projectId/export`)
|
||||
- Query-параметры: `dateFrom`, `dateTo`, `scale` (cell|day)
|
||||
- Ответ: binary Excel-файл (`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`)
|
||||
- Авторизация: обязательна (только участники проекта)
|
||||
- Библиотека для генерации Excel: `excelize` (Go)
|
||||
|
||||
### Frontend (Angular)
|
||||
- Кнопка экспорта в тулбаре диаграммы Ганта
|
||||
- Модальное окно выбора диапазона дат с datepicker'ами
|
||||
- Предзаполнение диапазона из текущего видимого viewport'а
|
||||
- Скачивание файла через `Blob` / `saveAs`
|
||||
|
||||
### Фильтрация данных
|
||||
- Выгружаются все задачи и вехи, которые:
|
||||
- Начинаются в диапазоне, ИЛИ
|
||||
- Заканчиваются в диапазоне, ИЛИ
|
||||
- Начинаются до диапазона и заканчиваются после (перекрывают целиком)
|
||||
- Секции включаются, если в них есть хотя бы одна попавшая задача
|
||||
|
||||
---
|
||||
|
||||
## Открытые вопросы
|
||||
|
||||
_(Нет)_
|
||||
Reference in New Issue
Block a user