diff --git a/bj_power_dashboard/package.json b/bj_power_dashboard/package.json index aee7bf8..3c79df6 100644 --- a/bj_power_dashboard/package.json +++ b/bj_power_dashboard/package.json @@ -15,14 +15,12 @@ "echarts": "^5.5.1", "react": "^18.3.1", "react-dom": "^18.3.1", - "three": "^0.185.1", "tslib": "^2.7.0" }, "devDependencies": { "@types/node": "^26.4.0", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.1", - "@types/three": "^0.185.4", "@vitejs/plugin-react": "^4.3.3", "typescript": "^5.6.3", "vite": "^5.4.10" diff --git a/bj_power_dashboard/src/App.tsx b/bj_power_dashboard/src/App.tsx index d543953..cfc9852 100644 --- a/bj_power_dashboard/src/App.tsx +++ b/bj_power_dashboard/src/App.tsx @@ -1,58 +1,32 @@ -import { useEffect, useState } from 'react'; -import { Layout, Nav, Tag, Spin } from '@douyinfe/semi-ui'; -import { IconMonitorStroked, IconSaveStroked, IconGridView } from '@douyinfe/semi-icons'; -import { useDashboardData } from '@bj_power_dashboard/hooks/useDashboardData'; -import { ProductionBoard } from '@bj_power_dashboard/pages/ProductionBoard'; -import { WarehouseBoard } from '@bj_power_dashboard/pages/WarehouseBoard'; -import { LineModel } from '@bj_power_dashboard/pages/LineModel'; -import { ErrorRetry } from '@bj_power_dashboard/components/ErrorRetry'; - -type PageKey = 'production' | 'warehouse' | 'model'; - -const navItems = [ - { itemKey: 'production', text: '生产总览', icon: }, - { itemKey: 'warehouse', text: '仓储动态', icon: }, - { itemKey: 'model', text: '产线孪生', icon: }, -]; - -const CYCLE_ORDER: PageKey[] = ['production', 'warehouse', 'model']; -const CYCLE_MS = 40_000; +import { useState } from 'react'; +import { Layout, Tag, Spin } from '@douyinfe/semi-ui'; +import { useDashboardData } from './hooks/useDashboardData'; +import { ProductionBoard } from './pages/ProductionBoard'; +import { WarehouseBoard } from './pages/WarehouseBoard'; +import { LineModel } from './pages/LineModel'; +import { ErrorRetry } from './components/ErrorRetry'; export function App() { - const [page, setPage] = useState('production'); const { data: dashboard, mode, error, retry } = useDashboardData(); const loading = !dashboard && !error; + const [now, setNow] = useState(() => new Date()); - // 无人值守自动轮播:40s 切下一屏;手动点选后重新计时 - useEffect(() => { - const timer = setInterval(() => { - setPage((cur) => { - const idx = CYCLE_ORDER.indexOf(cur); - return CYCLE_ORDER[(idx + 1) % CYCLE_ORDER.length]; - }); - }, CYCLE_MS); - return () => clearInterval(timer); - }, [page]); - - const selectPage = (k: string) => setPage(k as PageKey); + // 时钟 + setTimeout(() => setNow(new Date()), 1000); return ( -
北京电力智能产线 · 生产看板
{mode === 'sse' && 实时推送} {mode === 'polling' && 轮询刷新} {mode === 'demo' && 演示数据} {mode === 'init' && 连接中} - {new Date().toLocaleTimeString('zh-CN')} + {now.toLocaleTimeString('zh-CN')} + {now.toLocaleDateString('zh-CN', { weekday: 'long' })}
- -