From a2fbad8169347bb1edc2fa4bbf3dae7413e2021a Mon Sep 17 00:00:00 2001 From: Pine Date: Thu, 8 Oct 2026 16:51:38 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=90=8C=E6=AD=A5=E5=9B=AD=E5=8C=BA?= =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=94=B9=E5=8A=A8=EF=BC=88config/main?= =?UTF-8?q?=EF=BC=89=E5=8F=8A=E5=AE=A1=E6=9F=A5=E9=97=AE=E9=A2=98=E5=88=86?= =?UTF-8?q?=E5=B8=83=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config.js | 7 ++++++- src/main.jsx | 7 +++++-- 审查问题分布.html | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 审查问题分布.html diff --git a/src/config.js b/src/config.js index ba409f2..42e2767 100644 --- a/src/config.js +++ b/src/config.js @@ -34,9 +34,14 @@ const _isLegacyVision = (u) => !!(u && (String(u).includes(':10085') || String(u const _visionFromWindow = window.__DPM_VISION__ && !_isLegacyVision(window.__DPM_VISION__) ? window.__DPM_VISION__ : null; const _visionFromEnv = env.VITE_VISION_API_BASE && !_isLegacyVision(env.VITE_VISION_API_BASE) ? env.VITE_VISION_API_BASE : null; export const VISION_API_BASE = (_visionFromWindow || _visionFromEnv || '').replace(/\/$/, ''); -export const MQTT_URL = window.__DPM_MQTT__ || env.VITE_MQTT_URL || `ws://${resolveHost()}:8083/mqtt`; +// MQTT 地址:生产默认走 wss://(TLS);本地开发走 ws://。 +// 若 broker 侧未启用 TLS,请用构建期 VITE_MQTT_URL 或 /api/config 下发覆盖为 ws://。 +const _mqttScheme = import.meta.env.PROD ? 'wss' : 'ws'; +export const MQTT_URL = window.__DPM_MQTT__ || env.VITE_MQTT_URL || `${_mqttScheme}://${resolveHost()}:8083/mqtt`; export const MQTT_USERNAME = window.__DPM_MQTT_USER__ || env.VITE_MQTT_USERNAME || ''; export const MQTT_PASSWORD = window.__DPM_MQTT_PASS__ || env.VITE_MQTT_PASSWORD || ''; +// 大屏引导令牌(/park/api/config 鉴权):window.__DPM_BOOTSTRAP__ > 构建期 VITE_PARK_BOOTSTRAP_TOKEN +export const PARK_BOOTSTRAP_TOKEN = window.__DPM_BOOTSTRAP__ || env.VITE_PARK_BOOTSTRAP_TOKEN || ''; /** 惰性读取 API 基址(仅接受 server-core 地址,旧 :10085 一律回退到 :8090/park) */ export function getApiBase() { diff --git a/src/main.jsx b/src/main.jsx index 0136538..edb4375 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -5,7 +5,7 @@ import BindScreen from "./components/BindScreen.jsx"; import { isDeviceBound } from "./utils/tenant"; import ErrorBoundary from "./components/ErrorBoundary"; import { ThemeProvider } from "@appica/ui-react/providers/theme-provider"; -import { getApiBase, getMqttUrl, getMqttCredentials } from "./config"; +import { getApiBase, getMqttUrl, getMqttCredentials, PARK_BOOTSTRAP_TOKEN } from "./config"; import { invoke } from "@tauri-apps/api/core"; import "./styles/global.css"; @@ -62,7 +62,10 @@ async function bootstrapRuntimeConfig() { // 则后端 /api/config 不再覆盖(避免后端默认 localhost 冲掉正确地址)。 const bakedMqtt = import.meta.env.VITE_MQTT_URL; try { - const res = await fetch(`${getApiBase()}/api/config`, { cache: 'no-store' }); + const res = await fetch(`${getApiBase()}/api/config`, { + cache: 'no-store', + headers: PARK_BOOTSTRAP_TOKEN ? { 'X-Park-Bootstrap': PARK_BOOTSTRAP_TOKEN } : undefined, + }); if (res.ok) { const cfg = await res.json(); if (!bakedMqtt && cfg.mqtt_url) window.__DPM_MQTT__ = cfg.mqtt_url; diff --git a/审查问题分布.html b/审查问题分布.html new file mode 100644 index 0000000..5dc55e7 --- /dev/null +++ b/审查问题分布.html @@ -0,0 +1,33 @@ + +
+
park-desktop 审查问题分布(28 项)
+
+
+
按严重度
+
+
严重 · 展示口径错误6
+
重要 · 架构/文档脱节7
+
一般 · 死代码/健壮性10
+
轻微 · 清理项5
+
+
按模块
+
+
DataScreen 数据页
9
+
企业数据(4 源)
7
+
部署/文档
6
+
语音/死代码
4
+
Tauri/Rust
2
+
+
+
+
核心结论
+
+ 营收 252.15 万元被显示为"252.2 元"(同页 4 处单位打架),ShowCard 再除 10000 显示"0.0 亿"——大屏核心数字口径错误,参观即露馅。

+ 企业数据 4 套独立维护、分区命名 3 套体系,同一企业"云南上古绝学"在两页分区互相矛盾;README/compose/.env 停留在旧架构(:10085),生产 MQTT 指向 192.168.1.3 需核实。

+ 648 行语音页 + 1342 行 s2s 客户端未注册路由(不可达);构建通过但主 chunk 867KB + Building3D 958KB。 +
+
+
+
数据来源:park-desktop 源码逐文件审查(2026-09-16)· 构建 npm run build 通过
+
+