- esn_tag_binding: ESL 태그 ↔ 선반위치 ↔ 상품 매핑 테이블 - esn_update_queue: POS 가격변경 → 태그 RF 전파 추적 큐 - TagBindingController/Service/Mapper: 태그 바인딩 CRUD + 언바인딩 - UpdateQueueController/Service/Mapper: Gateway 폴링(/poll), 태그 ACK(/confirm), 실패재시도 - PosCvtService.process(): 가격 처리 시 바인딩된 e-paper 태그에 자동 큐 생성 - 프론트: TagBindingList.tsx (배터리/신호강도), UpdateQueueList.tsx (5초 자동갱신) - 사이드바: 태그 바인딩 / 업데이트 큐 메뉴 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
50 lines
2.2 KiB
TypeScript
50 lines
2.2 KiB
TypeScript
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
|
import Layout from './components/Layout'
|
|
import Login from './pages/Login'
|
|
import Dashboard from './pages/Dashboard'
|
|
import StoreList from './pages/StoreList'
|
|
import TemplateList from './pages/TemplateList'
|
|
import PosCvtList from './pages/PosCvtList'
|
|
import AlarmList from './pages/AlarmList'
|
|
import HCoreStatus from './pages/HCoreStatus'
|
|
import WorkHistory from './pages/WorkHistory'
|
|
import FirmwareList from './pages/FirmwareList'
|
|
import UserList from './pages/UserList'
|
|
import ProductList from './pages/ProductList'
|
|
import TenantAdmin from './pages/TenantAdmin'
|
|
import AiAnalysis from './pages/AiAnalysis'
|
|
import TagBindingList from './pages/TagBindingList'
|
|
import UpdateQueueList from './pages/UpdateQueueList'
|
|
|
|
const qc = new QueryClient()
|
|
|
|
export default function App() {
|
|
return (
|
|
<QueryClientProvider client={qc}>
|
|
<BrowserRouter>
|
|
<Routes>
|
|
<Route path="/login" element={<Login />} />
|
|
<Route element={<Layout />}>
|
|
<Route path="/dashboard" element={<Dashboard />} />
|
|
<Route path="/stores" element={<StoreList />} />
|
|
<Route path="/templates" element={<TemplateList />} />
|
|
<Route path="/pos-cvt" element={<PosCvtList />} />
|
|
<Route path="/tag-binding" element={<TagBindingList />} />
|
|
<Route path="/update-queue" element={<UpdateQueueList />} />
|
|
<Route path="/alarms" element={<AlarmList />} />
|
|
<Route path="/hcore" element={<HCoreStatus />} />
|
|
<Route path="/works" element={<WorkHistory />} />
|
|
<Route path="/firmware" element={<FirmwareList />} />
|
|
<Route path="/products" element={<ProductList />} />
|
|
<Route path="/users" element={<UserList />} />
|
|
<Route path="/tenants" element={<TenantAdmin />} />
|
|
<Route path="/ai" element={<AiAnalysis />} />
|
|
</Route>
|
|
<Route path="*" element={<Navigate to="/dashboard" replace />} />
|
|
</Routes>
|
|
</BrowserRouter>
|
|
</QueryClientProvider>
|
|
)
|
|
}
|