feat(大屏): 园区登录 + 多租户 — 动态页眉名称/两段简介 + 租户 MQTT/数据

- utils/tenant.js:账密→长效 tenant token(localStorage 持久),login/logout/tenantFetch(附 tenant_id+token)。
- main.jsx 门禁:未登录显示 TenantLogin(登录页),登录后(App)。一次登录持久保持。
- PageHeader:名称+两段式简介改由 getTenantInfo()(后端 /park/auth/login 返回) 驱动,回退默认。
- mqtt.js:订阅 command/<tid>/<clientId> 与 tick/<tid>(租户频道);useMqttControl 心跳带 tenant_id。
- parkData.js:snapshot 走 tenantFetch(带 tenant_id+token),按租户取数。
- vite build 通过。
This commit is contained in:
Pine
2026-08-24 18:15:11 +08:00
parent d7c82fa9d4
commit daf6889580
7 changed files with 108 additions and 7 deletions
+4 -1
View File
@@ -1,6 +1,8 @@
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import TenantLogin from "./components/TenantLogin";
import { isAuthed } from "./utils/tenant";
import ErrorBoundary from "./components/ErrorBoundary";
import { ThemeProvider } from "@appica/ui-react/providers/theme-provider";
import { getApiBase } from "./config";
@@ -80,7 +82,8 @@ bootstrapRuntimeConfig().then(() => {
<React.StrictMode>
<ErrorBoundary>
<ThemeProvider>
<App />
{/* 多租户:未登录大屏 → 登录页登录(帐密 → 长效 tenant token,localStorage 持久) */}
{isAuthed() ? <App /> : <TenantLogin />}
</ThemeProvider>
</ErrorBoundary>
</React.StrictMode>,