ERP/frontend/index.html
2025-12-08 11:20:28 +08:00

294 lines
12 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>韬智生产管理系统</title>
<link rel="icon" type="image/svg+xml" href="./assets/favicon.svg" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@600&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="./assets/styles.css?v=20251122" />
<link rel="stylesheet" href="./assets/mod.css" />
</head>
<body>
<div id="app">
<aside class="sidebar" id="sidebar">
<div class="brand-container">
<div class="loader-wrapper">
<div class="brand-logo dollar-spinner">$</div>
<div class="brand-text">
<span class="brand-title">韬智生产管理</span>
<span class="brand-subtitle">Production System</span>
</div>
</div>
<button id="sidebar-toggle" class="sidebar-toggle" title="收起菜单">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="11 17 6 12 11 7"></polyline>
<polyline points="18 17 13 12 18 7"></polyline>
</svg>
</button>
</div>
<nav class="nav">
<div class="nav-group">
<div class="nav-group-title">概览</div>
<a href="#/dashboard" class="nav-item" data-route="dashboard">
<span class="icon icon-dashboard"></span>
<span class="text">仪表盘</span>
</a>
</div>
<div class="nav-group">
<div class="nav-group-title">数据上传</div>
<div class="nav-item has-children" data-expand="upload">
<button class="nav-item-btn">
<span class="icon">⬆️</span>
<span class="text">上传</span>
<span class="caret"></span>
</button>
<div class="nav-children" data-parent="upload">
<a href="#/upload/mac" class="nav-child" data-route="upload-mac">
<span class="child-icon">📱</span>
<span>MAC与批次</span>
</a>
<a href="#/upload/stats" class="nav-child" data-route="upload-stats">
<span class="child-icon">📈</span>
<span>良/不良统计</span>
</a>
<a href="#/upload/repairs" class="nav-child" data-route="upload-repairs">
<span class="child-icon">🔧</span>
<span>返修记录</span>
</a>
<a href="#/upload/shipments" class="nav-child" data-route="upload-shipments">
<span class="child-icon">📦</span>
<span>发货记录</span>
</a>
<a href="#/upload/sop" class="nav-child" data-route="upload-sop">
<span class="child-icon">📄</span>
<span>SOP</span>
</a>
</div>
</div>
</div>
<div class="nav-group">
<div class="nav-group-title">查询</div>
<div class="nav-item has-children" data-expand="query">
<button class="nav-item-btn">
<span class="icon">🔍</span>
<span class="text">出货查询</span>
<span class="caret"></span>
</button>
<div class="nav-children" data-parent="query">
<a href="#/shipments/query" class="nav-child" data-route="shipments-query">
<span class="child-icon">📋</span>
<span>详细记录查询</span>
</a>
<a href="#/shipments/summary" class="nav-child" data-route="shipments-summary">
<span class="child-icon">📊</span>
<span>汇总信息查询</span>
</a>
</div>
</div>
</div>
<div class="nav-group">
<div class="nav-group-title">生产管理</div>
<div class="nav-item has-children" data-expand="production-mgmt">
<button class="nav-item-btn">
<span class="icon">📋</span>
<span class="text">生产管理</span>
<span class="caret"></span>
</button>
<div class="nav-children" data-parent="production-mgmt">
<a href="#/production-mgmt/work-order" class="nav-child" data-route="production-mgmt-work-order">
<span class="child-icon">📝</span>
<span>生产工单下发中心</span>
</a>
</div>
</div>
</div>
<div class="nav-group">
<div class="nav-group-title">计划管理</div>
<div class="nav-item has-children" data-expand="plan-mgmt">
<button class="nav-item-btn">
<span class="icon">📅</span>
<span class="text">计划管理</span>
<span class="caret"></span>
</button>
<div class="nav-children" data-parent="plan-mgmt">
<a href="#/plan-mgmt/bom" class="nav-child" data-route="plan-mgmt-bom">
<span class="child-icon">📦</span>
<span>BOM物料清单</span>
</a>
<a href="#/plan-mgmt/initial-stock" class="nav-child" data-route="plan-mgmt-initial-stock">
<span class="child-icon">🏭</span>
<span>期初库存</span>
</a>
<a href="#/plan-mgmt/purchase-demand" class="nav-child" data-route="plan-mgmt-purchase-demand">
<span class="child-icon">🛒</span>
<span>采购需求清单</span>
</a>
<a href="#/plan-mgmt/customer-order" class="nav-child" data-route="plan-mgmt-customer-order">
<span class="child-icon">📋</span>
<span>客户订单</span>
</a>
<a href="#/plan-mgmt/reconciliation" class="nav-child" data-route="plan-mgmt-reconciliation">
<span class="child-icon">💰</span>
<span>对账单</span>
</a>
</div>
</div>
</div>
<div class="nav-group">
<div class="nav-group-title">扩展采集</div>
<div class="nav-item has-children" data-expand="collect">
<button class="nav-item-btn">
<span class="icon">🛠️</span>
<span class="text">采集</span>
<span class="caret"></span>
</button>
<div class="nav-children" data-parent="collect">
<a href="#/devices" class="nav-child" data-route="devices">
<span class="child-icon">💻</span>
<span>设备状态</span>
</a>
<a href="#/environment" class="nav-child" data-route="environment">
<span class="child-icon">🌡️</span>
<span>环境参数</span>
</a>
<a href="#/personnel" class="nav-child" data-route="personnel">
<span class="child-icon">👥</span>
<span>人员信息</span>
</a>
<a href="#/qa" class="nav-child" data-route="qa">
<span class="child-icon"></span>
<span>质检报告</span>
</a>
<a href="#/production" class="nav-child" data-route="production">
<span class="child-icon">⏱️</span>
<span>时间记录</span>
</a>
</div>
</div>
</div>
<div class="nav-group">
<div class="nav-group-title">导出与设置</div>
<a href="#/export" class="nav-item" data-route="export">
<span class="icon">📤</span>
<span class="text">导出</span>
</a>
<a href="#/settings" class="nav-item" data-route="settings">
<span class="icon">⚙️</span>
<span class="text">设置</span>
</a>
</div>
</nav>
<div class="theme-toggle-container">
<label class="bb8-toggle">
<input id="theme-toggle-checkbox" class="bb8-toggle__checkbox" type="checkbox">
<div class="bb8-toggle__container">
<div class="bb8-toggle__scenery">
<div class="bb8-toggle__star"></div>
<div class="bb8-toggle__star"></div>
<div class="bb8-toggle__star"></div>
<div class="bb8-toggle__star"></div>
<div class="bb8-toggle__star"></div>
<div class="bb8-toggle__star"></div>
<div class="bb8-toggle__star"></div>
<div class="tatto-1"></div>
<div class="tatto-2"></div>
<div class="gomrassen"></div>
<div class="hermes"></div>
<div class="chenini"></div>
<div class="bb8-toggle__cloud"></div>
<div class="bb8-toggle__cloud"></div>
<div class="bb8-toggle__cloud"></div>
</div>
<div class="bb8">
<div class="bb8__head-container">
<div class="bb8__antenna"></div>
<div class="bb8__antenna"></div>
<div class="bb8__head"></div>
</div>
<div class="bb8__body"></div>
</div>
<div class="artificial__hidden">
<div class="bb8__shadow"></div>
</div>
</div>
</label>
</div>
</aside>
<main class="content">
<header class="content-header" style="background: var(--bg) !important;">
<div id="breadcrumb"></div>
<div id="actions">
<button id="notification-bell" class="notification-bell" style="display:none;">
<span class="bell-icon">🔔</span>
<span id="notification-badge" class="notification-badge" style="display:none;">0</span>
</button>
<div class="user-menu-container">
<button id="user-avatar-btn" class="user-avatar-btn">
<img id="user-avatar-img" src="./assets/user-avatar.svg" alt="用户头像" class="user-avatar-img" />
<span id="user-name-display" class="user-name-display">未登录</span>
</button>
<div id="user-dropdown" class="user-dropdown" style="display:none;">
<div class="user-dropdown-item" id="user-dropdown-logout">
<span class="dropdown-icon">🚪</span>
<span>退出登录</span>
</div>
</div>
</div>
<button id="menu-toggle" class="menu-toggle">菜单</button>
</div>
</header>
<section id="view" class="view"></section>
</main>
<!-- 通知面板 -->
<div id="notification-panel" class="notification-panel" style="display:none;">
<div class="notification-header">
<h3>消息通知</h3>
<div class="notification-actions">
<button id="mark-all-read" class="btn-text">全部已读</button>
<button id="delete-read" class="btn-text btn-danger">删除已读</button>
</div>
</div>
<div id="notification-list" class="notification-list">
<!-- 通知列表将在这里动态生成 -->
</div>
</div>
</div>
<div id="toast" class="toast"></div>
<div id="overlay" class="overlay hidden">
<div class="loader">
<div class="dot"></div>
<div class="dot"></div>
<div class="dot"></div>
</div>
</div>
<script src="./js/router.js"></script>
<script src="./js/api.js"></script>
<script src="./js/utils/memory-monitor.js"></script>
<script src="./js/components/sidebar.js"></script>
<script src="./js/components/dashboard.js"></script>
<script src="./js/components/upload.js"></script>
<script src="./js/components/shipments.js"></script>
<script src="./js/components/shipment-query.js"></script>
<script src="./js/components/shipment-summary.js"></script>
<script src="./js/components/defects.js"></script>
<script src="./js/components/devices.js"></script>
<script src="./js/components/environment.js"></script>
<script src="./js/components/personnel.js"></script>
<script src="./js/components/qa.js"></script>
<script src="./js/components/production.js"></script>
<script src="./js/components/work-order.js"></script>
<script src="./js/components/bom.js"></script>
<script src="./js/components/initial-stock.js"></script>
<script src="./js/components/purchase-demand.js"></script>
<script src="./js/components/customer-order.js"></script>
<script src="./js/components/reconciliation.js"></script>
<script src="./js/components/export.js"></script>
<script src="./js/components/settings.js"></script>
<script src="./js/components/notifications.js"></script>
<script src="./js/app.js"></script>
</body>
</html>