Первый коммит: модульный монолит ядра (.NET 10) и gRPC-сервисы ai/ml/telegram, фронтенд Vue 3/Vite/Tailwind, документация (ТЗ, инструкция пользователя, техдокументация, код-стайл), бэклог, скрипты развёртывания и архив прототипа LeadRadar.
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— без ошибок.