diff --git a/INTEGRATION_GUIDE.md b/INTEGRATION_GUIDE.md new file mode 100644 index 0000000..1806a12 --- /dev/null +++ b/INTEGRATION_GUIDE.md @@ -0,0 +1,183 @@ +# Интеграция маркетингового анализа v4.0 в существующую архитектуру + +## ✅ Что было сделано + +### 1. Восстановлена старая архитектура Vue.js +- Восстановлены все файлы из `origin/main` +- Сохранена структура проекта (Vue 3 + PrimeVue + Vite) + +### 2. Добавлен новый функционал v4.0 + +#### Типы и сервисы +- `src/types/marketing-v3.js` — все enum'ы и маппинги для UI +- `src/service/MarketingV3Service.js` — API сервис для работы с v4.0 + +#### Новый многошаговый опросник +- `src/components/marketing/MarketingBriefWizardV3.vue` — главный компонент опросника +- `src/components/marketing/wizard/StepSection.vue` — секция шага +- `src/components/marketing/wizard/RadioGroupField.vue` — радио-группа с карточками +- `src/components/marketing/wizard/CheckboxCardsLimitedField.vue` — чекбоксы с ограничением (max 2) +- `src/components/marketing/wizard/CheckboxCardsField.vue` — обычные чекбоксы +- `src/components/marketing/wizard/TagArrayField.vue` — поле для массивов (города) +- `src/components/marketing/wizard/DynamicLinksField.vue` — динамические ссылки + +#### Дашборд результатов +- `src/views/pages/marketing/MarketingAnalysisV3.vue` — страница результатов с поллингом +- `src/components/marketing/MetricCard.vue` — карточка метрики + +### 3. Обновлён дизайн существующих компонентов +- `src/views/pages/auth/Login.vue` — обновлён под новый стиль (градиенты, современные карточки) +- `src/views/pages/marketing/MarketingMain.vue` — добавлена ссылка на новый опросник v4.0, улучшен hover-эффект + +### 4. Добавлены новые роуты +- `/marketing-analysis/v3` — новый опросник v4.0 +- `/marketing-analysis/v3/:id` — страница результатов анализа v4.0 + +--- + +## 🚀 Как запустить и протестировать + +### 1. Установка зависимостей + +```bash +npm install +``` + +### 2. Запуск проекта + +```bash +npm run dev +``` + +Открой в браузере: **http://localhost:5173** (или другой порт, который покажет Vite) + +### 3. Тестирование нового функционала + +#### Шаг 1: Авторизация +1. Перейди на `/auth/login` +2. Войди в систему (используй существующие credentials) + +#### Шаг 2: Новый опросник v4.0 +1. Перейди в раздел "Маркетинг" (`/marketing-analysis`) +2. Выбери **"Маркетинговый анализ v4.0 (новый)"** — первый пункт в меню +3. Или перейди напрямую на `/marketing-analysis/v3` + +#### Шаг 3: Заполнение опросника +- Пройди все 5 шагов: + 1. **Базовая информация** — ниша, название, цель, этап бизнеса + 2. **География и чек** — города, средний чек + 3. **Продукт и поведение** — описание, частота покупок, приоритеты + 4. **Текущая ситуация** — SMM статус, заявки, ограничения + 5. **Ссылки и настройки** — соцсети, конкуренты, уровень детализации + +**Особенности:** +- Ограничение выбора: некоторые поля позволяют выбрать только 1–2 варианта (карточки серые, если достигнут лимит) +- Динамические поля: города добавляются по Enter, ссылки — кнопкой "Добавить ссылку" +- Казахстанские примеры в placeholder'ах (Алматы, Астана, Шымкент и т.д.) + +#### Шаг 4: Результаты анализа +- После отправки формы тебя перенаправит на `/marketing-analysis/v3/{analysisId}` +- Страница автоматически делает поллинг каждые 5 секунд +- Пока статус `QUEUED` или `PROCESSING` — показывается красивый лоадер с меняющимися сообщениями +- Когда статус `COMPLETED` — отображается дашборд с: + - Hero-карточками (Executive Summary) + - Графиками (сезонность, платформы конкурентов) + - Таблицей конкурентов с аккордеоном + - Выводами и стратегией + +--- + +## 📋 Структура файлов + +``` +src/ +├── components/ +│ └── marketing/ +│ ├── MarketingBriefWizardV3.vue # Главный опросник v4.0 +│ ├── MetricCard.vue # Карточка метрики +│ └── wizard/ # Компоненты для опросника +│ ├── StepSection.vue +│ ├── RadioGroupField.vue +│ ├── CheckboxCardsLimitedField.vue +│ ├── CheckboxCardsField.vue +│ ├── TagArrayField.vue +│ └── DynamicLinksField.vue +├── views/ +│ └── pages/ +│ ├── auth/ +│ │ └── Login.vue # Обновлённый дизайн +│ └── marketing/ +│ ├── MarketingMain.vue # Обновлённое меню +│ └── MarketingAnalysisV3.vue # Дашборд результатов v4.0 +├── service/ +│ └── MarketingV3Service.js # API для v4.0 +└── types/ + └── marketing-v3.js # Типы и enum'ы +``` + +--- + +## 🔧 API эндпоинты + +Новый функционал использует: +- `POST /api/v3/marketing-analysis/start` — запуск анализа v4.0 +- `GET /api/v3/marketing-analysis/{id}` — получение статуса и результатов + +**Важно:** Убедись, что на бэкенде эти эндпоинты реализованы и возвращают данные в формате: +- `POST` → `{ analysisId: string }` +- `GET` → `MarketingAnalysisV3Document` с полями `status`, `resultData`, `errorMessage` + +--- + +## 🎨 Особенности дизайна + +### Новый стиль опросника +- Премиальные карточки для выбора (Radio Cards) +- Плавные анимации переходов между шагами +- Прогресс-бар с градиентом +- Индикаторы шагов с галочками для завершённых + +### Обновлённый Login +- Градиентный фон +- Современная карточка с тенью +- Иконка замка в градиентном круге +- Улучшенная типографика + +### Дашборд результатов +- Карточки метрик с иконками +- Графики Chart.js (линейный и doughnut) +- Таблица конкурентов с аккордеоном +- Адаптивная сетка + +--- + +## ⚠️ Важные замечания + +1. **Поллинг:** Дашборд автоматически опрашивает статус каждые 5 секунд. Поллинг останавливается при статусе `COMPLETED` или `FAILED`. + +2. **Валидация:** Форма валидируется перед отправкой. Обязательные поля и ограничения на массивы проверяются. + +3. **Казахстанский контекст:** Все примеры адаптированы под казахстанский рынок (города, примеры ниш). + +4. **Совместимость:** Новый функционал не ломает существующий опросник — он доступен по старому роуту `/marketing-analysis/analysis`. + +--- + +## 🐛 Если что-то не работает + +1. **Ошибки компиляции:** + - Проверь, что все зависимости установлены: `npm install` + - Убедись, что Vue 3 и PrimeVue установлены + +2. **Ошибки API:** + - Проверь, что бэкенд запущен и доступен + - Проверь URL в `src/config/api.js` + - Убедись, что эндпоинты `/api/v3/marketing-analysis/*` реализованы на бэкенде + +3. **Компоненты не отображаются:** + - Проверь консоль браузера на ошибки + - Убедись, что все компоненты правильно импортированы + +--- + +Готово! Теперь можно тестировать новый функционал. 🎉 diff --git a/QUICK_START.md b/QUICK_START.md new file mode 100644 index 0000000..14fceb5 --- /dev/null +++ b/QUICK_START.md @@ -0,0 +1,155 @@ +# 🚀 Быстрый старт — Маркетинговый анализ v4.0 + +## Что было сделано + +✅ **Восстановлена старая архитектура Vue.js** из Git +✅ **Добавлен новый многошаговый опросник v4.0** с премиальным дизайном +✅ **Создан дашборд результатов** с графиками и таблицами +✅ **Обновлён дизайн Login.vue** под новый стиль +✅ **Обновлён дизайн маркетинговых страниц** +✅ **Интегрированы новые роуты** в существующий роутер + +--- + +## 📦 Запуск проекта + +### 1. Установка зависимостей + +```bash +npm install +``` + +### 2. Запуск dev-сервера + +```bash +npm run dev +``` + +Открой в браузере: **http://localhost:5173** (или порт, который покажет Vite) + +--- + +## 🧪 Как протестировать + +### Шаг 1: Авторизация +1. Перейди на `/auth/login` +2. Войди в систему + +### Шаг 2: Новый опросник v4.0 +1. Перейди в **"Маркетинг"** (`/marketing-analysis`) +2. Выбери **"Маркетинговый анализ v4.0 (новый)"** — первый пункт в меню +3. Или перейди напрямую на `/marketing-analysis/v3` + +### Шаг 3: Заполнение опросника +Пройди все 5 шагов: +- **Шаг 1:** Базовая информация (ниша, название, цель, этап бизнеса) +- **Шаг 2:** География и чек (города, средний чек) +- **Шаг 3:** Продукт и поведение (описание, частота покупок, приоритеты клиентов) +- **Шаг 4:** Текущая ситуация (SMM статус, заявки, ограничения) +- **Шаг 5:** Ссылки и настройки (соцсети, конкуренты, уровень детализации) + +**Особенности:** +- ✨ Красивые карточки для выбора (Radio Cards) +- 🔢 Ограничение выбора: некоторые поля позволяют выбрать только 1–2 варианта +- 🏙️ Динамические поля для городов (добавляются по Enter) +- 🔗 Динамические ссылки (кнопка "Добавить ссылку") +- 🇰🇿 Казахстанские примеры (Алматы, Астана, Шымкент и т.д.) + +### Шаг 4: Результаты анализа +- После отправки формы тебя перенаправит на `/marketing-analysis/v3/{analysisId}` +- Страница автоматически делает **поллинг каждые 5 секунд** +- Пока статус `QUEUED` или `PROCESSING` — показывается **красивый лоадер** с меняющимися сообщениями +- Когда статус `COMPLETED` — отображается **дашборд** с: + - 📊 Hero-карточками (Executive Summary) + - 📈 Графиками (сезонность, платформы конкурентов) + - 📋 Таблицей конкурентов с аккордеоном (strengths/weaknesses) + - ✅ Выводами и стратегией + +--- + +## 🎨 Новые роуты + +- `/marketing-analysis/v3` — новый опросник v4.0 +- `/marketing-analysis/v3/:id` — страница результатов анализа v4.0 + +**Старый опросник остался доступен:** +- `/marketing-analysis/analysis` — старый опросник (не изменён) + +--- + +## 📋 Структура новых файлов + +``` +src/ +├── components/marketing/ +│ ├── MarketingBriefWizardV3.vue # Новый опросник v4.0 +│ ├── MetricCard.vue # Карточка метрики +│ └── wizard/ # Компоненты для опросника +│ ├── StepSection.vue +│ ├── RadioGroupField.vue +│ ├── CheckboxCardsLimitedField.vue +│ ├── CheckboxCardsField.vue +│ ├── TagArrayField.vue +│ └── DynamicLinksField.vue +├── views/pages/marketing/ +│ └── MarketingAnalysisV3.vue # Дашборд результатов v4.0 +├── service/ +│ └── MarketingV3Service.js # API для v4.0 +└── types/ + └── marketing-v3.js # Типы и enum'ы +``` + +--- + +## ⚙️ API эндпоинты + +Новый функционал использует: +- `POST /api/v3/marketing-analysis/start` — запуск анализа v4.0 +- `GET /api/v3/marketing-analysis/{id}` — получение статуса и результатов + +**Важно:** Убедись, что на бэкенде эти эндпоинты реализованы и возвращают: +- `POST` → `{ analysisId: string }` +- `GET` → `MarketingAnalysisV3Document` с полями `status`, `resultData`, `errorMessage` + +--- + +## 🎯 Особенности + +### Дизайн +- ✨ Премиальные карточки для выбора (Radio Cards) +- 🎭 Плавные анимации переходов между шагами +- 📊 Прогресс-бар с градиентом +- ✅ Индикаторы шагов с галочками + +### Функционал +- 🔄 Автоматический поллинг статуса анализа +- ✅ Валидация формы перед отправкой +- 🏙️ Динамические поля для городов и ссылок +- 🔢 Ограничения на выбор (max 2 для некоторых полей) + +### Казахстанский контекст +- 🇰🇿 Примеры городов: Алматы, Астана, Шымкент, Караганда, Актобе +- 📱 Примеры ниш: стоматология в Алматы, клиники +- 🔗 Примеры ссылок: Instagram профили, 2ГИС + +--- + +## 🐛 Если что-то не работает + +1. **Ошибки компиляции:** + ```bash + npm install + ``` + +2. **Ошибки API:** + - Проверь, что бэкенд запущен + - Проверь URL в `src/config/api.js` + - Убедись, что эндпоинты `/api/v3/marketing-analysis/*` реализованы + +3. **Компоненты не отображаются:** + - Проверь консоль браузера + - Убедись, что все компоненты правильно импортированы + +--- + +Готово! Теперь можно тестировать. 🎉 diff --git a/a.md b/a.md deleted file mode 100644 index edf931c..0000000 --- a/a.md +++ /dev/null @@ -1,351 +0,0 @@ -# Руководство по API для фронтенда - -## Обзор - -Это руководство описывает API сервиса `Parser`, который собирает и предоставляет новостные данные. API спроектировано для эффективной работы с клиентскими приложениями и поддерживает пагинацию, сортировку и фильтрацию. - -## Реализация в UI: что мы должны показать пользователю - -Ниже описаны ключевые элементы интерфейса, которые необходимо создать, используя эндпоинты из этого руководства. - -### 1. Основной экран: Лента новостей 📰 - -Это главный экран приложения, где пользователь видит все собранные новости. - -- **Функционал:** - - **Отображение новостей:** Используйте `GET /api/parser/items` для загрузки и отображения списка новостей. Каждая новость в списке должна показывать заголовок, источник, дату публикации и краткий текст (`rawText` или `analytics.summary`, когда он будет готов). - - **Пагинация:** Так как новостей может быть много, реализуйте "бесконечную прокрутку" (подгрузка новых статей при скролле вниз) или классические кнопки пагинации («1, 2, 3...»). API полностью это поддерживает. - - **Сортировка:** По умолчанию новости должны быть отсортированы по дате публикации (`sort=publishedAt,desc`), чтобы пользователь видел сначала самое свежее. - -### 2. Панель фильтров 🔎 - -Сбоку или сверху от ленты новостей должна быть панель, позволяющая пользователю отфильтровать данные. - -- **Функционал:** - - **Фильтр по источнику:** Добавьте выпадающий список или чекбоксы с названиями источников (например, "Kursiv", "Kapital.kz"). При выборе источника отправляйте его в параметре `sourceName` в запросе к `GET /api/parser/items`. - - **Фильтр по дате:** Добавьте два поля для выбора даты ("от" и "до") с календарем. Это позволит пользователю смотреть новости за конкретный период. Используйте параметры `startDate` и `endDate`. - -### 3. Дашборд/Статистика 📊 - -Нужно создать отдельную страницу "Дашборд" или "Статистика", где будет отображаться общая информация о системе. - -- **Функционал:** - - **Общее количество новостей:** Используйте `GET /api/parser/stats` для получения и отображения общего числа статей в базе (`totalItems`). - - **Разбивка по источникам:** На основе поля `sourceStatistics` постройте круговую диаграмму (pie chart), которая наглядно покажет, сколько новостей пришло с каждого источника. - - **Статус системы:** Используйте `GET /api/parser/health`, чтобы показать пользователю (скорее, администратору) текущий статус сервиса и планировщика. Можно добавить зелёный/красный индикатор. - -### 4. Админ-панель: Управление парсером (опционально, для администраторов) ⚙️ - -Эта часть интерфейса может быть скрыта от обычных пользователей и доступна только администраторам. - -- **Функционал:** - - **Ручной запуск парсинга:** Добавьте кнопки "Запустить парсинг Kursiv", "Запустить парсинг Kapital" и "Запустить все". Эти кнопки будут отправлять запросы на эндпоинты `POST /api/parser/parse/{source}` и `POST /api/parser/parse/all`. - - **Мониторинг состояния БД:** Используйте `GET /api/parser/health/mongodb` для проверки статуса подключения к базе данных и выводите сообщение об успехе или ошибке. - ---- - -## API Endpoints - -### 1. Получение записей с фильтрацией и пагинацией - -```http -GET /api/parser/items?page=0&size=10&sort=publishedAt,desc&sourceName=Kursiv&startDate=2025-01-01&endDate=2025-01-31 -``` - -**Параметры:** - -- `page` (optional, default: 0) - номер страницы -- `size` (optional, default: 20) - размер страницы -- `sort` (optional, default: "publishedAt,desc") - сортировка -- `sourceName` (optional) - фильтр по источнику -- `startDate` (optional) - начальная дата (ISO format) -- `endDate` (optional) - конечная дата (ISO format) - -**Ответ:** - -```json -{ - "success": true, - "message": "Записи получены успешно", - "data": { - "content": [ - { - "id": "...", - "sourceName": "Kursiv (Бизнес/экономика)", - "title": "Заголовок новости", - "url": "https://kursiv.media/...", - "publishedAt": "2025-01-14T10:30:00", - "addedAt": "2025-01-14T12:00:00", - "rawText": "Текст статьи...", - "hash": "...", - "category": "Бизнес", - "analytics": { - "summary": null, - "sentiment": null, - "tags": [], - "entities": {} - } - } - ], - "pageable": { - "sort": { - "sorted": true, - "unsorted": false, - "empty": false - }, - "pageNumber": 0, - "pageSize": 10, - "offset": 0, - "paged": true, - "unpaged": false - }, - "totalElements": 25, - "totalPages": 3, - "last": false, - "first": true, - "numberOfElements": 10, - "size": 10, - "number": 0, - "sort": { - "sorted": true, - "unsorted": false, - "empty": false - }, - "empty": false - } -} -``` - -### 2. Статистика системы - -```http -GET /api/parser/stats -``` - -**Ответ:** - -```json -{ - "success": true, - "message": "Статистика получена успешно", - "data": { - "totalItems": 150, - "sourceStatistics": { - "Kursiv (Бизнес/экономика)": 75, - "Kapital.kz (Бизнес)": 75 - }, - "lastUpdate": "2025-01-14T12:00:00" - } -} -``` - -### 3. Запуск парсинга - -#### Парсинг всех источников - -```http -POST /api/parser/parse/all -``` - -**Ответ:** - -```json -{ - "success": true, - "message": "Парсинг всех источников завершен успешно", - "data": [ - { - "source": "Kursiv", - "processedItems": 15, - "totalItemsInDb": 90, - "status": "completed" - }, - { - "source": "Kapital", - "processedItems": 12, - "totalItemsInDb": 90, - "status": "completed" - } - ] -} -``` - -#### Парсинг конкретного источника - -```http -POST /api/parser/parse/kursiv -POST /api/parser/parse/kapital -``` - -### 4. Проверка состояния - -#### Общее состояние - -```http -GET /api/parser/health -``` - -**Ответ:** - -```json -{ - "success": true, - "message": "Сервис работает", - "data": { - "status": "UP", - "service": "RSS Parser System", - "timestamp": 1705123456789, - "scheduler": "Enabled - runs every 30 minutes" - } -} -``` - -#### Состояние MongoDB - -```http -GET /api/parser/health/mongodb -``` - -**Ответ при успехе:** - -```json -{ - "success": true, - "message": "MongoDB подключение успешно", - "data": { - "status": "UP", - "message": "MongoDB подключение успешно", - "timestamp": 1705123456789 - } -} -``` - -**Ответ при ошибке:** - -```json -{ - "success": false, - "message": "Ошибка подключения к MongoDB", - "data": { - "status": "DOWN", - "message": "Ошибка подключения к MongoDB: Command failed with error 13 (Unauthorized)", - "timestamp": 1705123456789, - "suggestion": "Проверьте учетные данные в application.properties" - } -} -``` - -## Примеры использования - -### 1. Получение последних новостей с пагинацией - -```javascript -// Получить первую страницу с 10 записями, отсортированными по дате публикации -fetch('/api/parser/items?page=0&size=10&sort=publishedAt,desc') - .then((response) => response.json()) - .then((data) => { - if (data.success) { - const items = data.data.content; - const totalPages = data.data.totalPages; - // Обработка данных - } - }); -``` - -### 2. Фильтрация по источнику - -```javascript -// Получить только новости от Kursiv -fetch('/api/parser/items?sourceName=Kursiv (Бизнес/экономика)&page=0&size=20') - .then((response) => response.json()) - .then((data) => { - if (data.success) { - const kursivNews = data.data.content; - // Обработка данных - } - }); -``` - -### 3. Фильтрация по датам - -```javascript -// Получить новости за последнюю неделю -const endDate = new Date().toISOString(); -const startDate = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(); - -fetch(`/api/parser/items?startDate=${startDate}&endDate=${endDate}`) - .then((response) => response.json()) - .then((data) => { - if (data.success) { - const recentNews = data.data.content; - // Обработка данных - } - }); -``` - -### 4. Комплексная фильтрация - -```javascript -// Получить новости Kapital за последний месяц, отсортированные по дате -const endDate = new Date().toISOString(); -const startDate = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString(); - -fetch(`/api/parser/items?sourceName=Kapital.kz (Бизнес)&startDate=${startDate}&endDate=${endDate}&sort=publishedAt,desc&page=0&size=50`) - .then((response) => response.json()) - .then((data) => { - if (data.success) { - const kapitalNews = data.data.content; - const totalCount = data.data.totalElements; - // Обработка данных - } - }); -``` - -### 5. Получение статистики - -```javascript -fetch('/api/parser/stats') - .then((response) => response.json()) - .then((data) => { - if (data.success) { - const stats = data.data; - console.log(`Всего новостей: ${stats.totalItems}`); - console.log('По источникам:', stats.sourceStatistics); - } - }); -``` - -## Поддерживаемые форматы дат - -API поддерживает следующие форматы дат: - -- `yyyy-MM-dd` (например: 2025-01-14) -- `yyyy-MM-dd'T'HH:mm:ss` (например: 2025-01-14T10:30:00) -- `yyyy-MM-dd'T'HH:mm:ss.SSS` (например: 2025-01-14T10:30:00.000) -- `yyyy-MM-dd HH:mm:ss` (например: 2025-01-14 10:30:00) - -## Обработка ошибок - -Все ответы API следуют единому формату: - -```json -{ - "success": false, - "message": "Описание ошибки", - "error": "Детальная информация об ошибке" -} -``` - -HTTP статус коды: - -- `200` - Успешный запрос -- `500` - Внутренняя ошибка сервера -- `503` - Сервис недоступен (например, MongoDB) - -## Рекомендации для фронтенда - -1. **Кэширование**: Используйте кэширование для статистики и часто запрашиваемых данных -2. **Пагинация**: Реализуйте бесконечную прокрутку или традиционную пагинацию -3. **Фильтры**: Предоставьте пользователю удобные фильтры по источнику и датам -4. **Обновление**: Используйте WebSocket или polling для обновления данных в реальном времени -5. **Обработка ошибок**: Всегда проверяйте поле `success` в ответе diff --git a/d.md b/d.md deleted file mode 100644 index acc937a..0000000 --- a/d.md +++ /dev/null @@ -1,52 +0,0 @@ -### Инструкция (Промпт) для AI Агента - -Ты — Senior Vue.js разработчик. Мне нужно исправить рендеринг Markdown в компоненте. - -**Проблема:** -Компонент отображает сырой Markdown (символы #, \*, таблицы в виде текста), вместо HTML разметки. Стили CSS есть, но они не применяются, так как HTML не генерируется. - -**Анализ кода:** - -1. В секции imports из 'vue' забыли добавить `computed`. -2. Функция `renderMarkdown` скорее всего падает в `catch` и возвращает исходную строку. -3. Библиотека `marked` в последних версиях изменила API (удален `setOptions`, используется `marked.parse`). - -**Задача:** -Перепиши секцию ` + + diff --git a/src/components/marketing/MetricCard.vue b/src/components/marketing/MetricCard.vue new file mode 100644 index 0000000..dd268f7 --- /dev/null +++ b/src/components/marketing/MetricCard.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/components/marketing/PptConclusionBox.vue b/src/components/marketing/PptConclusionBox.vue index 326464c..1fabd57 100644 --- a/src/components/marketing/PptConclusionBox.vue +++ b/src/components/marketing/PptConclusionBox.vue @@ -1,3 +1,10 @@ + + - - - diff --git a/src/components/marketing/PptFunnel.vue b/src/components/marketing/PptFunnel.vue index 270f1a6..80d6e5d 100644 --- a/src/components/marketing/PptFunnel.vue +++ b/src/components/marketing/PptFunnel.vue @@ -1,40 +1,5 @@ - - + + diff --git a/src/components/marketing/PptKpiCard.vue b/src/components/marketing/PptKpiCard.vue index 6063a5b..8b7a7d1 100644 --- a/src/components/marketing/PptKpiCard.vue +++ b/src/components/marketing/PptKpiCard.vue @@ -1,3 +1,39 @@ + + - - diff --git a/src/components/marketing/SegmentsChannelMatrixHeatmap.vue b/src/components/marketing/SegmentsChannelMatrixHeatmap.vue index 5a65f18..8e0a23f 100644 --- a/src/components/marketing/SegmentsChannelMatrixHeatmap.vue +++ b/src/components/marketing/SegmentsChannelMatrixHeatmap.vue @@ -1,36 +1,5 @@ - - + + diff --git a/src/views/news/NewsAdmin.vue b/src/views/news/NewsAdmin.vue index 16364e9..af662d1 100644 --- a/src/views/news/NewsAdmin.vue +++ b/src/views/news/NewsAdmin.vue @@ -1,220 +1,3 @@ - - + + diff --git a/src/views/pages/marketing/MarketingAnalysisV3List.vue b/src/views/pages/marketing/MarketingAnalysisV3List.vue new file mode 100644 index 0000000..33dd202 --- /dev/null +++ b/src/views/pages/marketing/MarketingAnalysisV3List.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/src/views/pages/marketing/MarketingCredentials.vue b/src/views/pages/marketing/MarketingCredentials.vue index b8dc90f..4d2d788 100644 --- a/src/views/pages/marketing/MarketingCredentials.vue +++ b/src/views/pages/marketing/MarketingCredentials.vue @@ -1,128 +1,5 @@ - - + + diff --git a/src/views/pages/marketing/MarketingPromotion.vue b/src/views/pages/marketing/MarketingPromotion.vue index 3c5102e..593deb6 100644 --- a/src/views/pages/marketing/MarketingPromotion.vue +++ b/src/views/pages/marketing/MarketingPromotion.vue @@ -1,348 +1,5 @@ - - + + diff --git a/src/views/reports/ReportGenerator.vue b/src/views/reports/ReportGenerator.vue index 8da5948..e7c3063 100644 --- a/src/views/reports/ReportGenerator.vue +++ b/src/views/reports/ReportGenerator.vue @@ -1,115 +1,3 @@ - - + +