Files
Deal/.superpowers/sdd/channel-discovery/task-8-brief.md
T
Rustam Khalimov 9e07568ddd Инициализировать репозиторий «Дейл»
Первый коммит: модульный монолит ядра (.NET 10) и gRPC-сервисы
ai/ml/telegram, фронтенд Vue 3/Vite/Tailwind, документация (ТЗ,
инструкция пользователя, техдокументация, код-стайл), бэклог,
скрипты развёртывания и архив прототипа LeadRadar.
2026-09-11 02:50:17 +03:00

1.6 KiB

Task 8: Фронтенд — store + каркас подвкладки «Поиск»

Files:

  • Modify: frontend/src/store.js
  • Create: frontend/src/views/DiscoveryView.vue
  • Modify: frontend/src/views/ChannelsView.vue

Interfaces:

  • state: channelsTab: 'list' | 'search', discTasks: [], discCandidates: [], discBlacklist: [], discLog: [], discActiveTaskId: null, discCandidateStatus: 'review', discBusy: false.

  • store-функции: gotoChannelsTab(tab), loadDiscTasks(), saveDiscTask(form, id=null) (create/patch), deleteDiscTask(id), startDiscTask(id), pauseDiscTask(id), generateDiscKeywords(taskId), loadDiscCandidates(taskId, status), joinDiscCandidate(c), rejectDiscCandidate(c), loadDiscBlacklist(), removeDiscBlacklist(id), loadDiscLog(taskId).

  • Step 1: store.js — состояние + функции (паттерны: api.get/post/patch/delete, toast, errMsg).

  • Step 2: ChannelsView.vue — в шапке сегмент: «Каналы | Поиск» (state.channelsTab), содержимое по табу.

  • Step 3: DiscoveryView.vue (каркас): левая колонка — список задач (+ «Новая задача»); правая — панель задачи: мастер (name, description, «Сгенерировать ключи ИИ», чипы ключей редактируемые, minSubscribers, lang select ru/any, threshold, sampleSize, planJoins, autoJoin toggle, кнопки «Запустить/Пауза/Удалить»).

  • Step 4: npm run build — без ошибок.