Major UX improvements across multiple pages
Шахматка: - Date/period picker dropdown on navigation button (choose start date + days window) - Cancelled bookings fade out with animation after 1 second Бронирования: - Clickable column headers with sort asc/desc (Гость, Заезд, Выезд, Статус, Источник, Сумма) Страница входа: - Removed role-based account selector — just email + password - System auto-detects role/hotel from credentials Настройки: - New "Бронирование" section with room assignment strategy (spread/together/sequential/manual) - Notifications: SMTP email config + SMS provider config (SMSC, SMS.ru, МТС, etc.) Модули: - Added Housekeeping and Channel Manager as proper modules - Channel Manager lists: Booking.com, Airbnb, Яндекс Путешествия, Островок, Суточно.ру, OneTwoTrip - Housekeeping visible to all roles (including housekeeper) via module status - Sidebar now uses module status to show/hide Уборка and Каналы Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import {
|
||||
Wifi, CreditCard, Tv2, KeyRound,
|
||||
BarChart3, Globe, CalendarCheck2,
|
||||
BarChart3, Globe, CalendarCheck2, Sparkles, Network,
|
||||
} from 'lucide-react'
|
||||
import type { ElementType } from 'react'
|
||||
|
||||
@@ -10,6 +10,7 @@ export interface ModuleSidebarItem {
|
||||
path: string
|
||||
label: string
|
||||
icon: ElementType
|
||||
showForHousekeeper?: boolean
|
||||
}
|
||||
|
||||
export interface ModuleDef {
|
||||
@@ -26,11 +27,63 @@ export interface ModuleDef {
|
||||
features: string[]
|
||||
stats?: { label: string; value: string }[]
|
||||
badge?: string
|
||||
/** Если задан — при активации модуля этот пункт появляется в сайдбаре */
|
||||
sidebarItem?: ModuleSidebarItem
|
||||
}
|
||||
|
||||
export const MODULES_DATA: ModuleDef[] = [
|
||||
{
|
||||
id: 'housekeeping',
|
||||
name: 'Управление уборкой',
|
||||
tagline: 'Расписание горничных и статус номеров',
|
||||
description:
|
||||
'Управление задачами уборки в реальном времени. Расписание горничных, статусы номеров, уведомления при заезде и выезде. Мобильный интерфейс для персонала.',
|
||||
icon: Sparkles,
|
||||
iconBg: 'bg-emerald-100 dark:bg-emerald-900/40',
|
||||
iconColor: 'text-emerald-600 dark:text-emerald-400',
|
||||
accentColor: 'bg-emerald-500',
|
||||
price: 0,
|
||||
badge: 'Входит в тариф',
|
||||
features: [
|
||||
'Список задач уборки по номерам',
|
||||
'Статусы: грязный / убирается / чистый / проверено',
|
||||
'Назначение горничных на комнаты',
|
||||
'Уведомление о заезде и выезде',
|
||||
'Мобильный интерфейс для горничных',
|
||||
'Отчёт по выполненным уборкам',
|
||||
],
|
||||
sidebarItem: {
|
||||
path: '/housekeeping',
|
||||
label: 'Уборка',
|
||||
icon: Sparkles,
|
||||
showForHousekeeper: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'channel-manager',
|
||||
name: 'Менеджер каналов',
|
||||
tagline: 'Синхронизация с OTA-платформами',
|
||||
description:
|
||||
'Управление ценами и доступностью на всех OTA одновременно. Booking.com, Airbnb, Яндекс Путешествия, Островок, Суточно.ру, OneTwoTrip и другие платформы.',
|
||||
icon: Network,
|
||||
iconBg: 'bg-sky-100 dark:bg-sky-900/40',
|
||||
iconColor: 'text-sky-600 dark:text-sky-400',
|
||||
accentColor: 'bg-sky-500',
|
||||
price: 2500,
|
||||
features: [
|
||||
'Booking.com, Airbnb, Expedia',
|
||||
'Яндекс Путешествия, Островок',
|
||||
'Суточно.ру, OneTwoTrip',
|
||||
'Синхронизация цен и доступности в реальном времени',
|
||||
'Автоматическое закрытие дат при заполнении',
|
||||
'Маппинг номеров по каналам',
|
||||
'Уведомления об ошибках синхронизации',
|
||||
],
|
||||
sidebarItem: {
|
||||
path: '/channels',
|
||||
label: 'Каналы',
|
||||
icon: Network,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'wifi-auth',
|
||||
name: 'Wi-Fi Авторизация',
|
||||
|
||||
Reference in New Issue
Block a user