feat: страница Оборудование — рабочие места, агенты, ККТ и принтеры
- EquipmentPage: CRUD рабочих мест, генерация кода сопряжения с таймером, добавление устройств (ККТ/принтер, USB/сеть), онлайн-статус агентов - api.ts: интерфейсы Workstation, WorkstationDevice + api.workstations.* - Sidebar: пункт «Оборудование» в группе Настройки Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@ import { useState, useEffect } from 'react'
|
||||
import {
|
||||
CalendarDays, BookOpen, BedDouble, Globe, Settings,
|
||||
FileText, LayoutDashboard, Building2, Users, X, Hotel, Puzzle, CalendarRange, Map, LayoutGrid, UserCog, UsersRound,
|
||||
TrendingUp, Tag, Award, Wrench, Utensils, CalendarClock, Zap, ChevronRight, Star, CreditCard,
|
||||
TrendingUp, Tag, Award, Wrench, Utensils, CalendarClock, Zap, ChevronRight, Star, CreditCard, Monitor,
|
||||
} from 'lucide-react'
|
||||
import { useAuth } from '../../contexts/AuthContext'
|
||||
import { useModules } from '../../contexts/ModulesContext'
|
||||
@@ -185,7 +185,7 @@ export function Sidebar({ open, onClose }: SidebarProps) {
|
||||
prices: ['/tariffs', '/dynamic-pricing', '/discounts', '/rental'],
|
||||
service: ['/housekeeping', '/technical', ...activeModuleItems.map(m => m.sidebarItem!.path)],
|
||||
management: ['/users', '/schedule', '/loyalty', '/maintenance', '/floor-map', '/channels'],
|
||||
settingsGroup:['/modules', '/settings', '/billing'],
|
||||
settingsGroup:['/modules', '/settings', '/billing', '/equipment'],
|
||||
devGroup: ['/api-docs'],
|
||||
}
|
||||
|
||||
@@ -232,6 +232,7 @@ export function Sidebar({ open, onClose }: SidebarProps) {
|
||||
// settings
|
||||
{ to: '/modules', icon: Puzzle, label: 'Модули' },
|
||||
{ to: '/settings', icon: Settings, label: 'Настройки' },
|
||||
{ to: '/equipment', icon: Monitor, label: 'Оборудование' },
|
||||
// dev
|
||||
{ to: '/api-docs', icon: FileText, label: 'API & Документация' },
|
||||
]
|
||||
@@ -410,9 +411,10 @@ export function Sidebar({ open, onClose }: SidebarProps) {
|
||||
<GroupHeader label="Настройки" isOpen={groups.settingsGroup} onToggle={() => toggleGroup('settingsGroup')} />
|
||||
{groups.settingsGroup && (
|
||||
<div className="space-y-0.5">
|
||||
<NavItem to="/modules" icon={Puzzle} label="Модули" {...navItemProps} />
|
||||
<NavItem to="/settings" icon={Settings} label="Настройки" {...navItemProps} />
|
||||
<NavItem to="/billing" icon={CreditCard} label="Тарифы и оплата" {...navItemProps} />
|
||||
<NavItem to="/modules" icon={Puzzle} label="Модули" {...navItemProps} />
|
||||
<NavItem to="/settings" icon={Settings} label="Настройки" {...navItemProps} />
|
||||
<NavItem to="/billing" icon={CreditCard} label="Тарифы и оплата" {...navItemProps} />
|
||||
<NavItem to="/equipment" icon={Monitor} label="Оборудование" {...navItemProps} />
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
|
||||
Reference in New Issue
Block a user