Skip to content

Каталог компонентов

Компоненты организованы по слоям FSD (Feature-Sliced Design).

Shared

Общие UI-компоненты, не привязанные к бизнес-логике.

КомпонентФайлОписание
SharedAppLogoshared/ui/AppLogo.vueТекстовый логотип "Partizap". Стилизованный <span> с классами text-xl font-bold text-primary.

Авто-импорт

Компоненты из shared/ui/ регистрируются с префиксом Shared (SharedAppLogo). Остальные слои --- без префикса.

Entities

Компоненты отображения доменных сущностей. Не содержат бизнес-логики --- только отображение переданных данных.

product

КомпонентФайлОписаниеКлючевые пропсы
ProductCardentities/product/ui/ProductCard.vueКарточка товара: изображение, название, цена, кнопка чата, геолокация, избранное.product, showStatus?, to?
ProductStatusBadgeentities/product/ui/ProductStatusBadge.vueБейдж статуса объявления (draft/pending/active/sold/archived/rejected) через UBadge.status

conversation

КомпонентФайлОписаниеКлючевые пропсы
ConversationCardentities/conversation/ui/ConversationCard.vueКарточка диалога в списке сообщений: аватар собеседника, миниатюра товара, превью сообщения, время, бейдж непрочитанных.conversation

message

КомпонентФайлОписаниеКлючевые пропсы
MessageBubbleentities/message/ui/MessageBubble.vueПузырь сообщения в чате. Поддерживает текст, изображения, системные сообщения, статус загрузки, подсветку поиска.message, isMine, showAvatar?, avatarUrl?, highlightQuery?, isCurrentMatch?
MessageStatusentities/message/ui/MessageStatus.vueИконка статуса отправки: одна галочка (sent), две серые (delivered), две синие (read).status

Features

Компоненты с бизнес-логикой, привязанные к конкретным пользовательским сценариям.

КомпонентФайлОписание
SearchBarfeatures/search/ui/SearchBar.vueКомпактная строка поиска с автокомплитом для хедера.
HeroSearchBarfeatures/search/ui/HeroSearchBar.vueКрупная строка поиска для главной страницы. Пропсы: initialQuery?, navigateOnSubmit?.

favorites

КомпонентФайлОписание
FavoriteButtonfeatures/favorites/ui/FavoriteButton.vueКнопка-сердечко для добавления/удаления из избранного. Пропс: productId.

contact-seller

КомпонентФайлОписание
ContactSellerButtonfeatures/contact-seller/ui/ContactSellerButton.vueКнопка "Написать продавцу" --- создаёт/открывает диалог. Пропс: productId.

geo-select

КомпонентФайлОписание
CitySelectorfeatures/geo-select/ui/CitySelector.vueКнопка выбора города в хедере + модалка с регионом и мультиселектом городов.
GeoSelectfeatures/geo-select/ui/GeoSelect.vueКаскадный селектор гео (Регион -> Город -> Район -> Метро) для форм. Emit: change.

category-select

КомпонентФайлОписание
CategoryCascadeSelectfeatures/category-select/ui/CategoryCascadeSelect.vueКаскадный селектор категорий N уровней вложенности. v-model --- массив id.

ymm-select

КомпонентФайлОписание
YmmSelectfeatures/ymm-select/ui/YmmSelect.vueОдна строка каскада Марка -> Модель -> Поколение -> Модификация.
YmmMultiSelectfeatures/ymm-select/ui/YmmMultiSelect.vueМультиселект совместимости: несколько строк YmmSelect + кнопка добавления. v-model --- массив Compatibility.

image-upload

КомпонентФайлОписание
ImageUploaderfeatures/image-upload/ui/ImageUploader.vueЗагрузчик фото: превью серверных и локальных изображений, индикация загрузки/ошибки, кнопка добавления. Пропсы: images, localImages, uploading, maxImages?, disabled?.

product-form

КомпонентФайлОписание
ProductFormPagefeatures/product-form/ui/ProductFormPage.vueПолная форма создания/редактирования объявления. Пропсы: mode (create / edit), productId?.

cabinet-settings

КомпонентФайлОписание
SettingsTabsfeatures/cabinet-settings/ui/SettingsTabs.vueТабы навигации настроек (Профиль, Безопасность, Бизнес).
PhoneManagerfeatures/cabinet-settings/ui/PhoneManager.vueCRUD-управление телефонами: список, добавление, редактирование, удаление с подтверждением.

chat-image

КомпонентФайлОписание
ChatImageLightboxfeatures/chat-image/ui/ChatImageLightbox.vueПолноэкранный просмотр изображений из чата с навигацией (стрелки, свайпы, клавиатура). Пропсы: images, initialIndex, open.
КомпонентФайлОписание
ChatSearchBarfeatures/chat-search/ui/ChatSearchBar.vueСтрока поиска внутри диалога с навигацией по совпадениям. Пропсы: query, totalMatches, currentMatch, isSearching.
GlobalSearchResultsfeatures/chat-search/ui/GlobalSearchResults.vueРезультаты глобального поиска по чатам, сгруппированные по диалогам. Пропсы: grouped, query, isSearching, hasMore.

admin-dashboard

КомпонентФайлОписание
StatCardfeatures/admin-dashboard/ui/StatCard.vueКарточка статистики для дашборда. Пропсы: title, value, subtitle?, icon?, to?.

admin-moderation

КомпонентФайлОписание
ModerationActionsfeatures/admin-moderation/ui/ModerationActions.vueКнопки "Одобрить" / "Отклонить" для модерации товаров. Пропсы: productId, status, loading?.

admin-references

КомпонентФайлОписание
ReferenceListfeatures/admin-references/ui/ReferenceList.vueСписок элементов справочника с CRUD-операциями. Пропсы: title, items, selectedId?, selectable?, loading?.
ReferenceFormModalfeatures/admin-references/ui/ReferenceFormModal.vueУниверсальная модалка создания/редактирования элемента справочника. Пропсы: open, title, fields, initialValues?, loading?.

admin-users

КомпонентФайлОписание
UserBlockActionfeatures/admin-users/ui/UserBlockAction.vueКнопка блокировки/разблокировки пользователя с модалкой подтверждения. Пропсы: userId, userName, isActive, loading?.

Widgets

Композитные компоненты, собирающие несколько entity/feature-компонентов.

КомпонентФайлОписание
AppHeaderwidgets/header/ui/AppHeader.vueШапка приложения: лого, город, поиск, навигация (desktop/mobile), slideover-меню, модалка подтверждения выхода.
ChatUnreadBadgewidgets/chat-unread-badge/ui/ChatUnreadBadge.vueКнопка чата с бейджем непрочитанных сообщений из chatStore.

Заглушки виджетов

Директории widgets/catalog-filters/, widgets/footer/, widgets/product-list/, widgets/ymm-filter/ существуют, но пока не содержат компонентов.

Используемые компоненты Nuxt UI

Проект активно использует компоненты из Nuxt UI v3:

КомпонентПрименение
UButtonВсе кнопки, ссылки-кнопки
UInputТекстовые поля
UTextareaМногострочные поля
USelectMenuВыпадающие списки (каскадные селекторы, выбор телефона)
UFormFieldОбёртка поля формы (label + error)
UModalМодальные окна
USlideoverВыдвижная панель (мобильное меню)
UBadgeБейджи (статус товара, основной телефон)
UAlertУведомления в формах (ошибки, успех)
UIconИконки (Lucide, Heroicons)
UAvatarАватарки пользователей в чате
USwitchПереключатели (режим комплекта, основной телефон)
UCheckboxЧекбоксы (в ReferenceFormModal)
UTooltipПодсказки (причина блокировки кнопки)
USeparatorРазделители в мобильном меню
UColorModeButtonПереключение светлой/тёмной темы
UAppКорневой компонент с локалью