diff --git a/app/components/layout/SplitLayout.vue b/app/components/layout/SplitLayout.vue new file mode 100644 index 0000000..3bb7404 --- /dev/null +++ b/app/components/layout/SplitLayout.vue @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + {{ $t('common.list') }} + + + + {{ $t('common.map') }} + + + + + + + diff --git a/app/components/navigation/MainNavigation.vue b/app/components/navigation/MainNavigation.vue new file mode 100644 index 0000000..02f1dc0 --- /dev/null +++ b/app/components/navigation/MainNavigation.vue @@ -0,0 +1,217 @@ + + + + + + + + Optovia + + + + + + + + {{ tab.label }} + + + + + + + + + + + + {{ $t('common.language') }} + + + {{ loc.code.toUpperCase() }} + + + {{ $t('common.theme') }} + + + {{ theme === 'night' ? $t('common.theme_light') : $t('common.theme_dark') }} + + + + + + + + + + + {{ userData?.activeTeam?.name || $t('common.selectTeam') }} + + + + + {{ $t('common.teams') }} + + + {{ team.name }} + + + + + + + {{ $t('cabinetNav.teamSettings') }} + + + + + + + + + + + + + + + {{ userInitials }} + + + + + + {{ userName }} + + + + + {{ $t('dashboard.profile') }} + + + + + + + {{ $t('auth.logout') }} + + + + + + + + {{ $t('auth.login') }} + + + + + + + + + + + {{ tab.label }} + + + + + + + + diff --git a/app/components/navigation/SubNavigation.vue b/app/components/navigation/SubNavigation.vue new file mode 100644 index 0000000..46b4d2c --- /dev/null +++ b/app/components/navigation/SubNavigation.vue @@ -0,0 +1,63 @@ + + + + + + {{ item.label }} + + + + + + + + diff --git a/app/components/search/GlobalSearchBar.vue b/app/components/search/GlobalSearchBar.vue new file mode 100644 index 0000000..f313e20 --- /dev/null +++ b/app/components/search/GlobalSearchBar.vue @@ -0,0 +1,223 @@ + + + + + + + + {{ $t('search.product') }} + + + + + + + {{ product.name }} + {{ product.categoryName }} + + + + + + + + + + {{ $t('search.quantity') }} + + + + + {{ $t('units.t') }} + {{ $t('units.kg') }} + + + + + + + + {{ $t('search.destination') }} + + + + + + + {{ dest.name }} + {{ dest.country }} + + + + + + + + + + + + + + + + + + diff --git a/app/layouts/topnav.vue b/app/layouts/topnav.vue new file mode 100644 index 0000000..02acbc5 --- /dev/null +++ b/app/layouts/topnav.vue @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + diff --git a/i18n/locales/en/cabinetNav.json b/i18n/locales/en/cabinetNav.json index ab0b203..ffa8f8c 100644 --- a/i18n/locales/en/cabinetNav.json +++ b/i18n/locales/en/cabinetNav.json @@ -1,11 +1,17 @@ { "cabinetNav": { + "catalog": "Catalog", "orders": "My orders", "addresses": "My addresses", "billing": "Balance", "profile": "Profile", "team": "Company", + "teamSettings": "Team settings", "offers": "My offers", + "myOffers": "My offers", + "seller": "Seller", + "suppliers": "Suppliers", + "hubs": "Hubs", "ai": "AI assistant" } } diff --git a/i18n/locales/en/common.json b/i18n/locales/en/common.json index a2448b2..ba71cee 100644 --- a/i18n/locales/en/common.json +++ b/i18n/locales/en/common.json @@ -7,6 +7,13 @@ "error": "Error", "success": "Success", "retry": "Retry", + "back": "Back", + "list": "List", + "map": "Map", + "language": "Language", + "theme": "Theme", + "teams": "Teams", + "selectTeam": "Select team", "actions": { "load_more": "Load more" }, @@ -19,5 +26,9 @@ "values": { "not_available": "Not available" } + }, + "units": { + "t": "t", + "kg": "kg" } } diff --git a/i18n/locales/en/search.json b/i18n/locales/en/search.json index b20886e..ccb77b5 100644 --- a/i18n/locales/en/search.json +++ b/i18n/locales/en/search.json @@ -3,10 +3,14 @@ "title": "Find Raw Materials", "subtitle": "& Industrial Services", "description": "Connect with suppliers, get competitive prices, and streamline your procurement process", + "product": "Product", "product_label": "What are you looking for?", "product_placeholder": "Select material type", + "quantity": "Quantity", "quantity_label": "Quantity", "quantity_placeholder": "Amount", + "destination": "Destination", + "destination_placeholder": "City or hub", "location_label": "Delivery to", "location_placeholder": "City or region", "search_button": "Search", diff --git a/i18n/locales/ru/cabinetNav.json b/i18n/locales/ru/cabinetNav.json index 3d5fa59..47cc5bb 100644 --- a/i18n/locales/ru/cabinetNav.json +++ b/i18n/locales/ru/cabinetNav.json @@ -1,11 +1,17 @@ { "cabinetNav": { + "catalog": "Каталог", "orders": "Мои заказы", "addresses": "Мои адреса", "billing": "Баланс", "profile": "Профиль", "team": "Компания", + "teamSettings": "Настройки команды", "offers": "Мои предложения", + "myOffers": "Мои предложения", + "seller": "Продавец", + "suppliers": "Поставщики", + "hubs": "Хабы", "ai": "AI ассистент" } } diff --git a/i18n/locales/ru/common.json b/i18n/locales/ru/common.json index dea2adc..7423976 100644 --- a/i18n/locales/ru/common.json +++ b/i18n/locales/ru/common.json @@ -7,6 +7,13 @@ "error": "Ошибка", "success": "Успех", "retry": "Повторить", + "back": "Назад", + "list": "Список", + "map": "Карта", + "language": "Язык", + "theme": "Тема", + "teams": "Команды", + "selectTeam": "Выбрать команду", "actions": { "load_more": "Показать еще" }, @@ -19,5 +26,9 @@ "values": { "not_available": "Нет данных" } + }, + "units": { + "t": "т", + "kg": "кг" } } diff --git a/i18n/locales/ru/search.json b/i18n/locales/ru/search.json index 24b9435..cbb7163 100644 --- a/i18n/locales/ru/search.json +++ b/i18n/locales/ru/search.json @@ -3,10 +3,14 @@ "title": "Найти сырье", "subtitle": "и промышленные сервисы", "description": "Связывайтесь с поставщиками, получайте конкурентные цены и упрощайте процессы закупок", + "product": "Товар", "product_label": "Что вы ищете?", "product_placeholder": "Выберите тип материала", + "quantity": "Количество", "quantity_label": "Количество", "quantity_placeholder": "Объем", + "destination": "Куда", + "destination_placeholder": "Город или хаб", "location_label": "Доставка в", "location_placeholder": "Город или регион", "search_button": "Найти",