Files
iAOP/web/mobile/index.html
bot_dev1 7a2e45e7c4 feat: 全站 Ant Design Pro 风格重构 + 登录守卫与角色门户(issue #131/#134)
- 新增 web/shared:pro.css(AntD 5 设计系统,旧 CSS 变量统一映射 AntD 色板)、
  session.js(后端优先+本地账号降级双轨会话,IAOP_AUTH 兼容层)、
  pro-header.js(全站统一 Pro 导航条:logo/页题/用户角色 Tag/退出)
- 门户 web/index.html:未登录跳登录页(next 回跳),登录后按角色过滤
  可见模块(readonly→驾驶舱/助手/移动端;engineer→+配置台;admin→全部)
- 登录页 auth/login.html 重写为 Ant Design Pro 风格,本地降级模式自动
  播种演示账号(admin/engineer/viewer),保留 OIDC SSO 双轨入口
- user_store.js 新增 verify() + seedDefaults() 默认账号播种
- 六模块页统一接入 pro.css + 统一导航条 + 登录守卫(PRD 8.2)
- 驾驶舱主题 dark→light(Ant Design 5 色板):renderer.py THEME_TOKENS、
  ti-cl4/resin 模板 theme、告警三级配色对齐 AntD(P0 #ff4d4f/P1 #faad14/
  P2 #1677ff),渲染计划已重编(build_plans.py)
- 验证:core/cockpit 86 单测通过;JS 语法检查通过;静态冒烟全 200
2026-08-05 14:17:37 +08:00

72 lines
2.5 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<!-- 移动端视口:iOS14+/Android 10+(PRD 9);viewport-fit 适配刘海屏 -->
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>iAOP 移动端驾驶舱</title>
<link rel="stylesheet" href="mobile.css">
<link rel="stylesheet" href="../shared/pro.css">
</head>
<body>
<!-- iAOP 移动端只读驾驶舱 + 交接班摘要(issue #136 / PRD 2.2 场景C、7.5)
纯静态(无构建链),与 Web 驾驶舱共享布局资产(../cockpit/plans/*.json),
只读展示:工艺四状态 / KPI / 告警;交接班摘要按 handover_brief 章节渲染。 -->
<header id="topbar">
<h1 id="page-title">iAOP 移动驾驶舱</h1>
<div>
<button id="btn-refresh" class="ghost-btn">刷新</button>
<span id="ro-badge">只读</span>
</div>
</header>
<!-- 只读驾驶舱视图 -->
<main id="view-cockpit" class="view active">
<div id="m-stages" class="card"></div>
<div id="m-kpis" class="kpi-grid"></div>
<div class="card">
<div class="card-title">告警(只读)</div>
<div id="m-alarms"></div>
</div>
</main>
<!-- 交接班摘要视图 -->
<main id="view-handover" class="view">
<div class="card">
<div class="row">
<select id="shift-select">
<option value="早班 08:00-16:00">早班 08:00-16:00</option>
<option value="中班 16:00-24:00">中班 16:00-24:00</option>
<option value="夜班 00:00-08:00">夜班 00:00-08:00</option>
</select>
<button id="btn-gen" class="primary">生成摘要</button>
</div>
<!-- issue #158:历史摘要查看(最近 10 次生成,本地保存) -->
<div class="row" id="brief-history-row" hidden>
<select id="brief-history"></select>
</div>
<div id="gen-status" class="hint"></div>
</div>
<div id="brief"></div>
<div class="card" id="push-card" hidden>
<button id="btn-push" class="primary">推送下一班</button>
<span id="push-status" class="hint"></span>
</div>
</main>
<!-- 底部页签(移动端惯用) -->
<nav id="tabbar">
<button class="tab active" data-view="cockpit">驾驶舱</button>
<button class="tab" data-view="handover">交接班</button>
</nav>
<script src="../auth/user_store.js"></script>
<script src="../shared/session.js"></script>
<script>
// 登录守卫(PRD 8.2):未登录跳登录页(移动端不加 Pro 桌面导航条,仅守卫)
IAOP_SESSION.requireLoginElseRedirect("../auth/login.html");
</script>
<script src="mobile.js"></script>
</body>
</html>