refactor(park-desktop): admin 后台新 UI + vision_yolo 手势接入,清理设计文档与安装包,补充工作区规范

This commit is contained in:
Pine
2026-08-24 11:27:55 +08:00
parent 9f2b90aeca
commit 4e73a6bba8
19 changed files with 700 additions and 1239 deletions
+17
View File
@@ -14,6 +14,20 @@
var screenId = '';
var screenRole = '';
/* 状态识别:点击某页面后,把该页操作模块前置到页面控制下方,并高亮当前页面按钮 */
function activatePage(page) {
if (!page) return;
var cards = document.querySelectorAll('.main-grid .card[data-page]');
for (var i = 0; i < cards.length; i++) cards[i].style.order = '';
var active = null;
for (var j = 0; j < cards.length; j++) {
if (cards[j].getAttribute('data-page') === page) { active = cards[j]; break; }
}
if (active) active.style.order = -10; // 前置到 main-grid 顶部(页面控制下方)
var navs = document.querySelectorAll('[data-nav]');
for (var k = 0; k < navs.length; k++) navs[k].classList.toggle('active', navs[k].getAttribute('data-nav') === page);
}
function applyScreenTarget(sel) {
sel = sel || document.getElementById('screenTarget');
if (!sel) return;
@@ -179,6 +193,8 @@
try { cmd = JSON.parse(btn.getAttribute('data-mqtt')); } catch (err) { toast('指令 JSON 错误', 'error'); return; }
// 屏幕终端精准控制:除「双屏开关」外,注入目标 client_id + role;全空=全局广播
if (cmd.action !== 'dual_screen') { cmd.screen_id = screenId; cmd.screen_role = screenRole; }
// 状态识别:切页命令 → 前置对应页面操作模块
if (cmd.action === 'navigate' && cmd.params && cmd.params.page) activatePage(cmd.params.page);
var tgtTxt = screenId
? (cmd.screen_role === 'main' ? '主屏' : cmd.screen_role === 'secondary' ? '副屏' : '屏幕') + '·' + String(screenId).slice(0, 10)
: '全部';
@@ -212,6 +228,7 @@
// 页面切换(绑定目标屏幕:screen_id 精确某台;空=全部)
if (btn.hasAttribute('data-nav')) {
var page = btn.getAttribute('data-nav');
activatePage(page); // 状态识别:前置该页操作模块
var tgtTxt = screenId
? (screenRole === 'main' ? '主屏' : screenRole === 'secondary' ? '副屏' : '屏幕') + '·' + String(screenId).slice(0, 10)
: '全部';