Task 2.3b портала отдела продаж — два Vue-экрана поверх готовых
эндпоинтов /api/sales/attachments:
- SalesAttachView (менеджер, #page-attach): форма заявки по логину
(e-mail/ИНН), живой баннер результата (отправлено/не найден/ошибка),
таблица «Мои заявки».
- SalesRequestsView (начальник, #page-requests): очередь на решение
с проверкой «свободен / уже за: …», кнопки Подтвердить/Переназначить
/Отклонить (переназначение = тот же approve на бэке), история, счётчик.
- api/sales.ts: submitAttachment / listMyAttachments / listAttachmentQueue
/ decideAttachment + типы.
- Роуты /sales/attach и /sales/requests переключены со stub на реальные экраны.
Vitest: SalesAttach 5 + SalesRequests 7 = 12 зелёных; полный фронт-набор
не сломан. ESLint чист.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>