2025-11-21 13:27:40 +00:00
<!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" / >
2026-01-05 02:27:58 +00:00
<!-- Modern Professional Typography -->
< link rel = "preconnect" href = "https://fonts.googleapis.com" / >
2025-11-21 13:27:40 +00:00
< link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin / >
2026-01-05 02:27:58 +00:00
< link href = "https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap" rel = "stylesheet" / >
2025-11-22 08:27:41 +00:00
< link rel = "stylesheet" href = "./assets/styles.css?v=20251122" / >
2026-01-05 02:27:58 +00:00
< link rel = "stylesheet" href = "./assets/dashboard-enhancements.css" / >
2025-12-08 03:20:28 +00:00
< link rel = "stylesheet" href = "./assets/mod.css" / >
2026-01-05 07:19:13 +00:00
< link rel = "stylesheet" href = "./assets/meituan-test.css" / >
2025-11-21 13:27:40 +00:00
< / head >
< body >
2026-01-03 11:18:40 +00:00
<!-- 初始加载提示 -->
< div id = "initial-loading" style = "position:fixed;top:0;left:0;width:100%;height:100%;background:#f8f9fa;display:flex;align-items:center;justify-content:center;z-index:9999;" >
< div style = "text-align:center;" >
< div style = "width:40px;height:40px;border:3px solid #e9ecef;border-top:3px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px;" > < / div >
< p style = "color:#666;margin:0;" > 正在加载系统...< / p >
< / div >
< / div >
< style >
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
< / style >
< div id = "app" class = "trackit-layout" style = "opacity:0;" >
2025-12-12 05:17:42 +00:00
<!-- 顶部导航栏 -->
2025-12-30 06:35:09 +00:00
< header class = "topbar sidebar" id = "sidebar" >
2025-12-12 05:17:42 +00:00
< div class = "topbar-left" >
< div class = "brand" >
2025-12-10 06:42:48 +00:00
< div class = "coin-wrapper" >
< div class = "coin" >
< div class = "side heads" >
2025-12-12 05:17:42 +00:00
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 4091.27 4091.73" width = "100%" height = "100%" >
< path fill = "#F7931A" d = "M4030.06 2540.77c-273.24,1096.01 -1383.32,1763.02 -2479.46,1489.71 -1095.68,-273.24 -1762.69,-1383.39 -1489.33,-2479.31 273.12,-1096.13 1383.2,-1763.19 2479,-1489.95 1096.06,273.24 1763.03,1383.51 1489.76,2479.57l0.02 -0.02z" > < / path >
< path fill = "white" d = "M2947.77 1754.38c40.72,-272.26 -166.56,-418.61 -450,-516.24l91.95 -368.8 -224.5 -55.94 -89.51 359.09c-59.02,-14.72 -119.63,-28.59 -179.87,-42.34l90.16 -361.46 -224.36 -55.94 -92 368.68c-48.84,-11.12 -96.81,-22.11 -143.35,-33.69l0.26 -1.16 -309.59 -77.31 -59.72 239.78c0,0 166.56,38.18 163.05,40.53 90.91,22.69 107.35,82.87 104.62,130.57l-104.74 420.15c6.26,1.59 14.38,3.89 23.34,7.49 -7.49,-1.86 -15.46,-3.89 -23.73,-5.87l-146.81 588.57c-11.11,27.62 -39.31,69.07 -102.87,53.33 2.25,3.26 -163.17,-40.72 -163.17,-40.72l-111.46 256.98 292.15 72.83c54.35,13.63 107.61,27.89 160.06,41.3l-92.9 373.03 224.24 55.94 92 -369.07c61.26,16.63 120.71,31.97 178.91,46.43l-91.69 367.33 224.51 55.94 92.89 -372.33c382.82,72.45 670.67,43.24 791.83,-303.02 97.63,-278.78 -4.86,-439.58 -206.26,-544.44 146.69,-33.83 257.18,-130.31 286.64,-329.61l-0.07 -0.05zm-512.93 719.26c-69.38,278.78 -538.76,128.08 -690.94,90.29l123.28 -494.2c152.17,37.99 640.17,113.17 567.67,403.91zm69.43 -723.3c-63.29,253.58 -453.96,124.75 -580.69,93.16l111.77 -448.21c126.73,31.59 534.85,90.55 468.94,355.05l-0.02 0z" > < / path >
< / svg >
< / div >
< div class = "side tails" >
< svg xmlns = "http://www.w3.org/2000/svg" class = "svg_back" viewBox = "0 0 4091.27 4091.73" width = "100%" height = "100%" >
< path fill = "#F7931A" d = "M4030.06 2540.77c-273.24,1096.01 -1383.32,1763.02 -2479.46,1489.71 -1095.68,-273.24 -1762.69,-1383.39 -1489.33,-2479.31 273.12,-1096.13 1383.2,-1763.19 2479,-1489.95 1096.06,273.24 1763.03,1383.51 1489.76,2479.57l0.02 -0.02z" > < / path >
< path fill = "white" d = "M2947.77 1754.38c40.72,-272.26 -166.56,-418.61 -450,-516.24l91.95 -368.8 -224.5 -55.94 -89.51 359.09c-59.02,-14.72 -119.63,-28.59 -179.87,-42.34l90.16 -361.46 -224.36 -55.94 -92 368.68c-48.84,-11.12 -96.81,-22.11 -143.35,-33.69l0.26 -1.16 -309.59 -77.31 -59.72 239.78c0,0 166.56,38.18 163.05,40.53 90.91,22.69 107.35,82.87 104.62,130.57l-104.74 420.15c6.26,1.59 14.38,3.89 23.34,7.49 -7.49,-1.86 -15.46,-3.89 -23.73,-5.87l-146.81 588.57c-11.11,27.62 -39.31,69.07 -102.87,53.33 2.25,3.26 -163.17,-40.72 -163.17,-40.72l-111.46 256.98 292.15 72.83c54.35,13.63 107.61,27.89 160.06,41.3l-92.9 373.03 224.24 55.94 92 -369.07c61.26,16.63 120.71,31.97 178.91,46.43l-91.69 367.33 224.51 55.94 92.89 -372.33c382.82,72.45 670.67,43.24 791.83,-303.02 97.63,-278.78 -4.86,-439.58 -206.26,-544.44 146.69,-33.83 257.18,-130.31 286.64,-329.61l-0.07 -0.05zm-512.93 719.26c-69.38,278.78 -538.76,128.08 -690.94,90.29l123.28 -494.2c152.17,37.99 640.17,113.17 567.67,403.91zm69.43 -723.3c-63.29,253.58 -453.96,124.75 -580.69,93.16l111.77 -448.21c126.73,31.59 534.85,90.55 468.94,355.05l-0.02 0z" > < / path >
< / svg >
< / div >
2025-12-10 06:42:48 +00:00
< / div >
< / div >
2025-12-12 05:17:42 +00:00
< span class = "brand-name" > 韬智生产管理< / span >
2025-12-30 06:35:09 +00:00
< button id = "sidebar-toggle" class = "sidebar-toggle" type = "button" aria-label = "切换侧边栏" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M15 18l-6-6 6-6" / >
< / svg >
< / button >
< / div >
< div class = "sidebar-search" >
< span class = "search-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< circle cx = "11" cy = "11" r = "7" / >
< path d = "M20 20l-3.5-3.5" / >
< / svg >
< / span >
< input class = "sidebar-search-input" type = "text" placeholder = "搜索菜单 (Ctrl+K)" autocomplete = "off" / >
2025-12-10 06:42:48 +00:00
< / div >
2025-12-12 05:17:42 +00:00
< nav class = "topnav" id = "topnav" >
2025-12-30 06:35:09 +00:00
< a href = "#/dashboard" class = "topnav-item" data-route = "dashboard" >
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< rect x = "3" y = "3" width = "7" height = "7" rx = "2" / >
< rect x = "14" y = "3" width = "7" height = "7" rx = "2" / >
< rect x = "14" y = "14" width = "7" height = "7" rx = "2" / >
< rect x = "3" y = "14" width = "7" height = "7" rx = "2" / >
< / svg >
< / span >
< span class = "topnav-text" > 仪表盘< / span >
< / span >
< / a >
2025-12-12 05:17:42 +00:00
< div class = "topnav-item has-dropdown" data-menu = "upload" >
2025-12-30 06:35:09 +00:00
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M20 16.5a4.5 4.5 0 0 0-1.8-8.7A6 6 0 0 0 6 9a4 4 0 0 0 0 8h14" / >
< path d = "M12 12v9" / >
< path d = "M8 16l4-4 4 4" / >
< / svg >
< / span >
< span class = "topnav-text" > 上传< / span >
< / span >
2025-12-12 05:17:42 +00:00
< span class = "topnav-caret" > ▾< / span >
< div class = "topnav-dropdown" >
< a href = "#/upload/mac" class = "dropdown-item" data-route = "upload-mac" > MAC与批次< / a >
< a href = "#/upload/stats" class = "dropdown-item" data-route = "upload-stats" > 良/不良统计< / a >
< a href = "#/upload/repairs" class = "dropdown-item" data-route = "upload-repairs" > 返修记录< / a >
< a href = "#/upload/shipments" class = "dropdown-item" data-route = "upload-shipments" > 发货记录< / a >
< a href = "#/upload/sop" class = "dropdown-item" data-route = "upload-sop" > SOP< / a >
2025-11-21 13:27:40 +00:00
< / div >
< / div >
2025-12-12 05:17:42 +00:00
< div class = "topnav-item has-dropdown" data-menu = "query" >
2025-12-30 06:35:09 +00:00
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< circle cx = "11" cy = "11" r = "7" / >
< path d = "M20 20l-3.5-3.5" / >
< / svg >
< / span >
< span class = "topnav-text" > 出货查询< / span >
< / span >
2025-12-12 05:17:42 +00:00
< span class = "topnav-caret" > ▾< / span >
< div class = "topnav-dropdown" >
< a href = "#/shipments/query" class = "dropdown-item" data-route = "shipments-query" > 详细记录查询< / a >
< a href = "#/shipments/summary" class = "dropdown-item" data-route = "shipments-summary" > 汇总信息查询< / a >
2025-11-21 14:04:43 +00:00
< / div >
< / div >
2025-12-12 05:17:42 +00:00
< div class = "topnav-item has-dropdown" data-menu = "production" >
2025-12-30 06:35:09 +00:00
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M3 21V9l6 3V9l6 3V9l6 3v9" / >
< path d = "M3 21h18" / >
< / svg >
< / span >
< span class = "topnav-text" > 生产管理< / span >
< / span >
2025-12-12 05:17:42 +00:00
< span class = "topnav-caret" > ▾< / span >
< div class = "topnav-dropdown" >
< a href = "#/production-mgmt/work-order" class = "dropdown-item" data-route = "production-mgmt-work-order" > 生产工单下发中心< / a >
2025-11-23 05:28:53 +00:00
< / div >
< / div >
2025-12-12 05:17:42 +00:00
< div class = "topnav-item has-dropdown" data-menu = "plan" >
2025-12-30 06:35:09 +00:00
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< rect x = "3" y = "4" width = "18" height = "18" rx = "2" / >
< path d = "M16 2v4" / >
< path d = "M8 2v4" / >
< path d = "M3 10h18" / >
< / svg >
< / span >
< span class = "topnav-text" > 计划管理< / span >
< / span >
2025-12-12 05:17:42 +00:00
< span class = "topnav-caret" > ▾< / span >
< div class = "topnav-dropdown" >
< a href = "#/plan-mgmt/bom" class = "dropdown-item" data-route = "plan-mgmt-bom" > BOM物料清单< / a >
< a href = "#/plan-mgmt/initial-stock" class = "dropdown-item" data-route = "plan-mgmt-initial-stock" > 期初库存< / a >
< a href = "#/plan-mgmt/purchase-demand" class = "dropdown-item" data-route = "plan-mgmt-purchase-demand" > 采购需求清单< / a >
< a href = "#/plan-mgmt/customer-order" class = "dropdown-item" data-route = "plan-mgmt-customer-order" > 客户订单< / a >
< a href = "#/plan-mgmt/reconciliation" class = "dropdown-item" data-route = "plan-mgmt-reconciliation" > 对账单< / a >
2025-11-24 01:30:08 +00:00
< / div >
< / div >
2025-12-12 05:17:42 +00:00
< div class = "topnav-item has-dropdown" data-menu = "collect" >
2025-12-30 06:35:09 +00:00
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M4 19V5" / >
< path d = "M4 15c2-2 4-3 8-3s6-1 8-3" / >
< path d = "M20 19V5" / >
< / svg >
< / span >
< span class = "topnav-text" > 采集< / span >
< / span >
2025-12-12 05:17:42 +00:00
< span class = "topnav-caret" > ▾< / span >
< div class = "topnav-dropdown" >
< a href = "#/devices" class = "dropdown-item" data-route = "devices" > 设备状态< / a >
< a href = "#/environment" class = "dropdown-item" data-route = "environment" > 环境参数< / a >
< a href = "#/personnel" class = "dropdown-item" data-route = "personnel" > 人员信息< / a >
< a href = "#/qa" class = "dropdown-item" data-route = "qa" > 质检报告< / a >
< a href = "#/production" class = "dropdown-item" data-route = "production" > 时间记录< / a >
2025-11-21 13:27:40 +00:00
< / div >
< / div >
2026-01-05 07:19:13 +00:00
< div class = "topnav-item has-dropdown" data-menu = "test" >
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" / >
< polyline points = "14,2 14,8 20,8" / >
< line x1 = "16" y1 = "13" x2 = "8" y2 = "13" / >
< line x1 = "16" y1 = "17" x2 = "8" y2 = "17" / >
< polyline points = "10,9 9,9 8,9" / >
< / svg >
< / span >
< span class = "topnav-text" > 基站测试< / span >
< / span >
< span class = "topnav-caret" > ▾< / span >
< div class = "topnav-dropdown" >
< a href = "#/test/meituan" class = "dropdown-item" data-route = "test-meituan" > 美团基站测试< / a >
< / div >
< / div >
2025-12-30 06:35:09 +00:00
< a href = "#/export" class = "topnav-item" data-route = "export" >
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M12 3v10" / >
< path d = "M8 9l4 4 4-4" / >
< path d = "M4 17v3h16v-3" / >
< / svg >
< / span >
< span class = "topnav-text" > 导出< / span >
< / span >
< / a >
< a href = "#/product-intro" class = "topnav-item" data-route = "product-intro" >
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M21 16V8a2 2 0 0 0-1-1.7l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.7l7 4a2 2 0 0 0 2 0l7-4a2 2 0 0 0 1-1.7z" / >
< path d = "M3.3 7.5L12 12l8.7-4.5" / >
< path d = "M12 22V12" / >
< / svg >
< / span >
< span class = "topnav-text" > 产品< / span >
< / span >
< / a >
< a href = "#/system/operations-log" class = "topnav-item superadmin-only" data-route = "system-operations-log" style = "display:none;" >
< span class = "nav-left" >
< span class = "nav-icon" aria-hidden = "true" >
< svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" / >
< path d = "M14 2v6h6" / >
< path d = "M16 13H8" / >
< path d = "M16 17H8" / >
< / svg >
< / span >
< span class = "topnav-text" > 操作日志< / span >
< / span >
< / a >
2025-12-12 05:17:42 +00:00
< / nav >
2025-12-30 06:35:09 +00:00
< div class = "sidebar-footer" >
< div id = "sidebar-notification-card" class = "sidebar-notification-card" style = "display:none;" >
< span id = "notification-badge" class = "notification-badge" style = "display:none;" > 0< / span >
< div class = "sidebar-notification-header" >
< div class = "sidebar-notification-title" > < svg xmlns = "http://www.w3.org/2000/svg" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" > < path d = "M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" / > < / svg > < / div >
< div class = "sidebar-notification-actions" >
< button id = "mark-all-read" class = "btn-text" type = "button" > 全部已读< / button >
< button id = "delete-read" class = "btn-text btn-danger" type = "button" > 删除已读< / button >
2025-12-08 03:20:28 +00:00
< / div >
< / div >
2025-12-30 06:35:09 +00:00
< div id = "notification-list" class = "sidebar-notification-list" >
< div class = "notification-empty" > 暂无消息通知< / div >
2025-12-08 03:20:28 +00:00
< / div >
< / div >
2025-12-30 06:35:09 +00:00
< div class = "sidebar-actions" >
2026-01-05 02:27:58 +00:00
<!-- 主题切换按钮已隐藏 -->
< label class = "switch" style = "display: none;" >
2025-12-30 06:35:09 +00:00
< input id = "theme-toggle-checkbox" type = "checkbox" / >
< span class = "slider" >
< div class = "star star_1" > < / div >
< div class = "star star_2" > < / div >
< div class = "star star_3" > < / div >
< svg viewBox = "0 0 16 16" class = "cloud_1 cloud" >
< path
transform="matrix(.77976 0 0 .78395-299.99-418.63)"
fill="#fff"
d="m391.84 540.91c-.421-.329-.949-.524-1.523-.524-1.351 0-2.451 1.084-2.485 2.435-1.395.526-2.388 1.88-2.388 3.466 0 1.874 1.385 3.423 3.182 3.667v.034h12.73v-.006c1.775-.104 3.182-1.584 3.182-3.395 0-1.747-1.309-3.186-2.994-3.379.007-.106.011-.214.011-.322 0-2.707-2.271-4.901-5.072-4.901-2.073 0-3.856 1.202-4.643 2.925"
>< / path >
< / svg >
< / span >
< / label >
< 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;" >
< a href = "#/settings" class = "user-dropdown-item" data-route = "settings" >
< span class = "dropdown-icon" > ⚙️< / span >
< span > 设置< / span >
< / a >
< div class = "user-dropdown-item" id = "user-dropdown-logout" >
< span class = "dropdown-icon" > 🚪< / span >
< span > 退出登录< / span >
< / div >
< / div >
2025-11-21 13:27:40 +00:00
< / div >
< / div >
< / div >
2025-12-12 05:17:42 +00:00
< / div >
< / header >
< main class = "content topbar-layout" >
2025-11-21 13:27:40 +00:00
< section id = "view" class = "view" > < / section >
< / main >
< / div >
< div id = "toast" class = "toast" > < / div >
< div id = "overlay" class = "overlay hidden" >
2025-12-18 01:30:09 +00:00
< div class = "spinner" >
< div > < / div >
< div > < / div >
< div > < / div >
< div > < / div >
< div > < / div >
< div > < / div >
2025-11-21 13:27:40 +00:00
< / div >
< / div >
2025-12-30 06:35:09 +00:00
< div id = "notification-modal" class = "notification-modal" style = "display:none;" >
< div class = "notification-modal-backdrop" data-close = "1" > < / div >
< div class = "notification-modal-content" role = "dialog" aria-modal = "true" aria-label = "🔔" >
< div class = "notification-modal-header" >
< div class = "notification-modal-title" > 🔔< / div >
< button id = "notification-modal-close" class = "notification-modal-close" type = "button" aria-label = "关闭" > × < / button >
< / div >
< div id = "notification-modal-list" class = "notification-modal-list" > < / div >
< / div >
< / div >
2026-01-03 11:18:40 +00:00
< script src = "./js/router.js" defer > < / script >
< script src = "./js/api.js" defer > < / script >
< script src = "./js/utils/memory-monitor.js" defer > < / script >
< script src = "./js/components/sidebar.js" defer > < / script >
< script src = "./js/components/menu-search.js" defer > < / script >
< script src = "./js/components/dashboard.js" defer > < / script >
< script src = "./js/components/ai-report.js" defer > < / script >
< script src = "./js/components/upload.js" defer > < / script >
< script src = "./js/components/shipments.js" defer > < / script >
< script src = "./js/components/shipment-query.js" defer > < / script >
< script src = "./js/components/shipment-summary.js" defer > < / script >
< script src = "./js/components/defects.js" defer > < / script >
< script src = "./js/components/devices.js" defer > < / script >
< script src = "./js/components/environment.js" defer > < / script >
< script src = "./js/components/personnel.js" defer > < / script >
< script src = "./js/components/qa.js" defer > < / script >
< script src = "./js/components/production.js" defer > < / script >
< script src = "./js/components/work-order.js" defer > < / script >
< script src = "./js/components/bom.js" defer > < / script >
< script src = "./js/components/initial-stock.js" defer > < / script >
< script src = "./js/components/purchase-demand.js" defer > < / script >
< script src = "./js/components/customer-order.js" defer > < / script >
< script src = "./js/components/reconciliation.js" defer > < / script >
< script src = "./js/components/export.js" defer > < / script >
< script src = "./js/components/settings.js" defer > < / script >
< script src = "./js/components/notifications.js" defer > < / script >
2026-01-05 07:19:13 +00:00
< script src = "./js/components/meituan-test.js" defer > < / script >
2026-01-03 11:18:40 +00:00
< script src = "./js/components/operations-log.js" defer > < / script >
< script src = "./js/components/product-intro.js" defer > < / script >
< script src = "./js/app.js" defer > < / script >
2025-11-21 13:27:40 +00:00
< / body >
< / html >