Files
MES_Manage_View_V20/static/user-manual/personnel-management-demo.html

965 lines
180 KiB
HTML
Raw 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">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>MES 动态用户操作手册</title>
<style>
:root { --blue:#304a9b; --blue-2:#456bca; --ink:#26354a; --muted:#718097; --line:#e2e7f0; --page:#f3f6fb; --active:#edf3ff; --green:#55a96a; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; color:var(--ink); background:var(--page); font:14px/1.45 "Microsoft YaHei", "Segoe UI", sans-serif; }
.appbar { position:fixed; inset:0 0 auto; z-index:20; display:flex; align-items:center; height:52px; color:#fff; background:var(--blue); box-shadow:0 1px 4px rgba(26,42,75,.18); }
.logo { display:grid; place-items:center; flex:0 0 228px; align-self:stretch; color:#304a9b; background:#fff; font-family:Arial,sans-serif; font-size:27px; font-style:italic; font-weight:800; letter-spacing:0; }
.appbar-main { display:flex; align-items:center; justify-content:space-between; width:100%; padding:0 24px 0 16px; }
.crumb { display:flex; align-items:center; gap:10px; font-weight:600; }
.hamburger { font-size:20px; line-height:1; }
.crumb span { opacity:.72; }
.playing { display:flex; align-items:center; gap:8px; font-size:13px; }
.playing i { width:8px; height:8px; border-radius:50%; background:#77d393; box-shadow:0 0 0 0 rgba(119,211,147,.72); animation:pulse 1.7s infinite; }
@keyframes pulse { 70% { box-shadow:0 0 0 8px rgba(119,211,147,0); } 100% { box-shadow:0 0 0 0 rgba(119,211,147,0); } }
.shell { display:grid; grid-template-columns:228px minmax(0,1fr); min-height:100vh; padding-top:52px; }
.sidebar { position:fixed; z-index:10; top:52px; bottom:0; width:228px; overflow:auto; background:#fff; border-right:1px solid var(--line); }
.group-title, .menu-link { width:100%; border:0; background:transparent; color:#334258; font:inherit; text-align:left; }
.group-title { display:flex; align-items:center; gap:10px; height:42px; padding:0 30px; cursor:pointer; font-weight:700; }
.group-title .chev { margin-left:auto; color:#7986a1; font-size:12px; }
.group-title:hover { background:#f6f8fd; }
.group-title:focus-visible { outline:2px solid #547bd0; outline-offset:-2px; }
.menu-group[hidden] { display:none; }
.menu-link { position:relative; display:flex; align-items:center; gap:11px; min-height:42px; padding:0 30px 0 52px; cursor:pointer; }
.menu-link:hover { background:#f6f8fd; }
.menu-link.active { color:#2f65dc; background:var(--active); font-weight:700; }
.menu-link.active::before { position:absolute; left:0; top:7px; bottom:7px; width:3px; background:#304a9b; content:""; }
.menu-icon { width:14px; color:#8b98ab; text-align:center; font-size:15px; }
.menu-link.active .menu-icon { color:#4774d4; }
.other-groups { margin-top:4px; border-top:1px solid #eef1f6; }
.other-groups .group-title { height:38px; font-weight:600; }
.content { grid-column:2; min-width:0; padding:18px 24px 34px; }
.tabs { display:flex; gap:7px; overflow:auto; min-height:31px; margin:-8px -2px 12px; }
.tab { flex:0 0 auto; padding:5px 12px; color:#405581; background:#fff; border:1px solid #7190d2; font-size:13px; }
.tab.active { color:#fff; background:#304a9b; border-color:#304a9b; }
.manual { max-width:1460px; min-height:calc(100vh - 132px); padding:22px; background:#fff; border:1px solid #e6ebf3; box-shadow:0 3px 12px rgba(40,58,91,.08); }
.manual-head { display:flex; align-items:start; justify-content:space-between; gap:20px; padding-bottom:17px; border-bottom:1px solid var(--line); }
h1 { margin:0 0 5px; font-size:22px; letter-spacing:0; }
.manual-head p { margin:0; color:var(--muted); }
.counter { flex:0 0 auto; padding:5px 9px; color:#3f66bf; background:#eff4ff; border:1px solid #ccdafa; font-size:12px; }
.stage { display:grid; grid-template-columns:214px minmax(0,1fr); gap:22px; padding-top:20px; }
.steps { align-self:start; padding:12px 13px; border:1px solid var(--line); background:#fbfcfe; }
.steps h2 { margin:0 0 8px; font-size:14px; }
.step { display:flex; width:100%; gap:9px; min-height:51px; padding:9px 3px; color:#7b8798; background:transparent; border:0; border-top:1px solid #ebeff5; cursor:pointer; font:inherit; text-align:left; }
.step:first-of-type { border-top:0; }
.step:hover { color:#3e65bb; background:#f2f6ff; }
.step:focus-visible { outline:2px solid #547bd0; outline-offset:2px; }
.step-number { display:grid; place-items:center; flex:0 0 23px; height:23px; color:#718097; background:#e9eef5; font-size:12px; font-weight:700; }
.step strong { display:block; color:inherit; font-size:13px; }
.step > span:last-child > span { display:block; margin-top:2px; font-size:11px; line-height:1.35; }
.step.active { color:#2f65d8; }
.step.active .step-number { color:#fff; background:#3d6fcf; }
.step.done .step-number { color:#fff; background:var(--green); }
.viewer { min-width:0; }
.screen-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; min-height:27px; margin:0 2px 10px; }
.screen-head strong { font-size:15px; }
.screen-head span { color:#7c899b; font-size:12px; }
.screen { position:relative; overflow:hidden; border:1px solid #dbe3ef; background:#f8fafc; box-shadow:0 7px 19px rgba(36,53,82,.1); aspect-ratio:16/9; }
.screen img { display:block; width:100%; height:100%; object-fit:cover; }
.focus { position:absolute; border:2px solid #f1a53a; box-shadow:0 0 0 999px rgba(18,31,52,.1); animation:blink 1.5s ease-in-out infinite; }
@keyframes blink { 50% { border-color:#ffcc59; } }
.caption { position:absolute; z-index:2; max-width:42%; padding:7px 10px; color:#fff; background:rgba(29,48,78,.94); border-left:3px solid #f3b342; box-shadow:0 3px 10px rgba(0,0,0,.18); font-size:13px; font-weight:600; }
.typed { position:absolute; z-index:3; color:#43536a; font-size:1.1vw; font-weight:600; }
.result-row { position:absolute; left:11%; right:5%; top:20.5%; height:3.7%; border:2px solid #e3a537; background:rgba(255,223,129,.18); }
.saved { position:absolute; z-index:4; right:4%; top:13%; padding:1.1% 1.7%; color:#fff; background:#4fa37c; box-shadow:0 4px 12px rgba(30,104,74,.25); font-size:1.02vw; }
.note { margin:11px 2px 0; color:#617085; }
.note b { color:#3765c5; }
@media (max-width:900px) { .logo { flex-basis:185px; font-size:23px; } .sidebar { width:185px; } .shell { grid-template-columns:185px minmax(0,1fr); } .content { padding:14px; } .manual { padding:16px; } .stage { grid-template-columns:1fr; } .steps { display:flex; overflow:auto; gap:3px; padding:7px; } .steps h2 { display:none; } .step { flex:0 0 130px; min-height:43px; border-top:0; border-left:1px solid #ebeff5; padding:6px; } .typed { font-size:1.5vw; } }
@media (max-width:620px) { .appbar { height:48px; } .logo { flex-basis:0; width:82px; font-size:16px; } .appbar-main { padding:0 12px; } .playing { display:none; } .shell { display:block; padding-top:48px; } .sidebar { position:relative; top:auto; width:100%; max-height:218px; border-right:0; border-bottom:1px solid var(--line); } .group-title { padding:0 16px; } .menu-link { padding-left:32px; } .content { padding:10px; } .manual { min-height:0; padding:13px; } h1 { font-size:18px; } .manual-head p { font-size:12px; } .counter { display:none; } .screen-head { display:block; } .screen-head span { display:block; margin-top:2px; } .caption { max-width:60%; padding:4px 6px; font-size:10px; } .note { font-size:12px; } .typed { font-size:2vw; } }
</style>
</head>
<body>
<header class="appbar">
<div class="logo">REMIFY</div>
<div class="appbar-main"><div class="crumb"><b class="hamburger"></b><b>首页</b><span>/</span><b id="crumbGroup">系统管理</b><span>/</span><b id="crumbPage">人员管理</b></div><div class="playing"><i></i><span id="playStatus">自动播放中</span></div></div>
</header>
<div class="shell">
<aside class="sidebar" aria-label="系统菜单">
<button class="group-title" type="button" data-group-toggle="systemMenu" aria-expanded="true"><span></span><span>系统管理</span><span class="chev"></span></button>
<nav id="systemMenu" class="menu-group">
<button class="menu-link active" type="button" data-module="personnel"><span class="menu-icon"></span><span>人员管理</span></button>
<button class="menu-link" type="button" data-module="menu"><span class="menu-icon"></span><span>菜单管理</span></button>
<button class="menu-link" type="button" data-module="role"><span class="menu-icon"></span><span>角色管理</span></button>
<button class="menu-link" type="button" data-module="workstation"><span class="menu-icon"></span><span>工位管理</span></button>
<button class="menu-link" type="button" data-module="operation"><span class="menu-icon"></span><span>报工操作记录</span></button>
<button class="menu-link" type="button" data-module="screenConfig"><span class="menu-icon"></span><span>大屏参数配置</span></button>
</nav>
<div class="other-groups" aria-label="其他系统菜单">
<button class="group-title" type="button" data-group-toggle="planMenu" aria-expanded="false"><span></span><span>计划排产</span><span class="chev"></span></button>
<nav id="planMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="planMachining"><span class="menu-icon"></span><span>机加件排产</span></button>
<button class="menu-link" type="button" data-module="planAssembly"><span class="menu-icon"></span><span>装配件排产</span></button>
<button class="menu-link" type="button" data-module="planMachiningDone"><span class="menu-icon"></span><span>机加件已排产</span></button>
<button class="menu-link" type="button" data-module="planMachiningTodo"><span class="menu-icon"></span><span>机加件未排产</span></button>
<button class="menu-link" type="button" data-module="planPriorityAssembly"><span class="menu-icon"></span><span>优先装配</span></button>
<button class="menu-link" type="button" data-module="planShell"><span class="menu-icon"></span><span>计划用表</span></button>
<button class="menu-link" type="button" data-module="planAssemblyTodo"><span class="menu-icon"></span><span>装配未排产</span></button>
<button class="menu-link" type="button" data-module="planOrderClose"><span class="menu-icon"></span><span>生产订单关闭</span></button>
<button class="menu-link" type="button" data-module="planWorkstation"><span class="menu-icon"></span><span>工位任务汇总</span></button>
<button class="menu-link" type="button" data-module="planAssemblyDone"><span class="menu-icon"></span><span>装配已排产</span></button>
<button class="menu-link" type="button" data-module="planSystemAssembly"><span class="menu-icon"></span><span>系统类装配任务</span></button>
<button class="menu-link" type="button" data-module="planValveAssembly"><span class="menu-icon"></span><span>阀类装配任务</span></button>
<button class="menu-link" type="button" data-module="planKitTrack"><span class="menu-icon"></span><span>及时齐套跟踪结果</span></button>
</nav>
<button class="group-title" type="button" data-group-toggle="productionMenu" aria-expanded="false"><span></span><span>生产管理</span><span class="chev"></span></button>
<nav id="productionMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="productionPlanTrack"><span class="menu-icon"></span><span>生产计划跟踪</span></button>
<button class="menu-link" type="button" data-module="productionMachining"><span class="menu-icon"></span><span>加工中心</span></button>
<button class="menu-link" type="button" data-module="productionAbnormal"><span class="menu-icon"></span><span>过程异常管控</span></button>
<button class="menu-link" type="button" data-module="productionHoursCheck"><span class="menu-icon"></span><span>工时校验</span></button>
<button class="menu-link" type="button" data-module="productionOutsource"><span class="menu-icon"></span><span>外协管理</span></button>
<button class="menu-link" type="button" data-module="productionPersonnelBinding"><span class="menu-icon"></span><span>人员绑定</span></button>
<button class="menu-link" type="button" data-module="productionAssembly"><span class="menu-icon"></span><span>装配中心</span></button>
<button class="menu-link" type="button" data-module="productionShift"><span class="menu-icon"></span><span>班次管理</span></button>
<button class="menu-link" type="button" data-module="productionTimesheet"><span class="menu-icon"></span><span>工时报表</span></button>
<button class="menu-link" type="button" data-module="productionUrgent"><span class="menu-icon"></span><span>加急件管理</span></button>
<button class="menu-link" type="button" data-module="productionPicking"><span class="menu-icon"></span><span>拣配任务</span></button>
<button class="menu-link" type="button" data-module="productionPurchaseOutsource"><span class="menu-icon"></span><span>采购外协管理</span></button>
<button class="menu-link" type="button" data-module="productionWorkhours"><span class="menu-icon"></span><span>工时查询</span></button>
<button class="menu-link" type="button" data-module="productionSettlement"><span class="menu-icon"></span><span>结算工时</span></button>
<button class="menu-link" type="button" data-module="productionDeviceStatus"><span class="menu-icon"></span><span>机加正在进行中</span></button>
<button class="menu-link" type="button" data-module="productionAssemblyStatus"><span class="menu-icon"></span><span>装配状态</span></button>
<button class="menu-link" type="button" data-module="productionOutsourceReport"><span class="menu-icon"></span><span>外协报表</span></button>
<button class="menu-link" type="button" data-module="productionWorkhoursEdit"><span class="menu-icon"></span><span>工时修正</span></button>
<button class="menu-link" type="button" data-module="productionAgv"><span class="menu-icon"></span><span>物料机器人</span></button>
<button class="menu-link" type="button" data-module="productionFormality"><span class="menu-icon"></span><span>手续确认报表</span></button>
<button class="menu-link" type="button" data-module="productionDelivery"><span class="menu-icon"></span><span>发货通知列表</span></button>
</nav>
<button class="group-title" type="button" data-group-toggle="qualityMenu" aria-expanded="false"><span></span><span>质量管理</span><span class="chev"></span></button>
<nav id="qualityMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="qualityFinal"><span class="menu-icon"></span><span>终检</span></button>
<button class="menu-link" type="button" data-module="qualityPurchaseIncoming"><span class="menu-icon"></span><span>采购入库检</span></button>
<button class="menu-link" type="button" data-module="qualitySalesReturn"><span class="menu-icon"></span><span>销售退货检</span></button>
<button class="menu-link" type="button" data-module="qualityMaterialReturn"><span class="menu-icon"></span><span>原材料退库检</span></button>
<button class="menu-link" type="button" data-module="qualityProcessReceive"><span class="menu-icon"></span><span>序检收检</span></button>
<button class="menu-link" type="button" data-module="qualityStandard"><span class="menu-icon"></span><span>质量检验标准</span></button>
<button class="menu-link" type="button" data-module="qualityOtherInbound"><span class="menu-icon"></span><span>其他入库检</span></button>
<button class="menu-link" type="button" data-module="qualityDetails"><span class="menu-icon"></span><span>质检明细</span></button>
<button class="menu-link" type="button" data-module="qualityUnqualified"><span class="menu-icon"></span><span>不合格品处置</span></button>
<button class="menu-link" type="button" data-module="qualityCenter"><span class="menu-icon"></span><span>质检报工</span></button>
<button class="menu-link" type="button" data-module="qualityTestAssembly"><span class="menu-icon"></span><span>测试装配任务</span></button>
<button class="menu-link" type="button" data-module="qualityPunctual"><span class="menu-icon"></span><span>及时检验报表</span></button>
<button class="menu-link" type="button" data-module="qualityWorkstationRate"><span class="menu-icon"></span><span>产品合格率(工位)</span></button>
</nav>
<button class="group-title" type="button" data-group-toggle="processMenu" aria-expanded="false"><span></span><span>工艺管理</span><span class="chev"></span></button>
<nav id="processMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="processProcedure"><span class="menu-icon"></span><span>工序管理</span></button>
<button class="menu-link" type="button" data-module="processStandardDevelop"><span class="menu-icon"></span><span>制定标准工艺</span></button>
<button class="menu-link" type="button" data-module="processProduction"><span class="menu-icon"></span><span>生产工艺</span></button>
<button class="menu-link" type="button" data-module="processInquiry"><span class="menu-icon"></span><span>工艺查询</span></button>
<button class="menu-link" type="button" data-module="processTask"><span class="menu-icon"></span><span>工艺任务</span></button>
<button class="menu-link" type="button" data-module="processPartDrawing"><span class="menu-icon"></span><span>图纸维护</span></button>
<button class="menu-link" type="button" data-module="processDrawing"><span class="menu-icon"></span><span>工艺维护</span></button>
<button class="menu-link" type="button" data-module="processDrawingView"><span class="menu-icon"></span><span>查看图纸</span></button>
<button class="menu-link" type="button" data-module="processProcurementDrawing"><span class="menu-icon"></span><span>采购图纸查询</span></button>
</nav>
<button class="group-title" type="button" data-group-toggle="deviceMenu" aria-expanded="false"><span></span><span>设备管理</span><span class="chev"></span></button>
<nav id="deviceMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="deviceInformation"><span class="menu-icon"></span><span>设备信息维护</span></button>
<button class="menu-link" type="button" data-module="deviceData"><span class="menu-icon"></span><span>设备数据</span></button>
<button class="menu-link" type="button" data-module="deviceHistory"><span class="menu-icon"></span><span>设备历史数据</span></button>
<button class="menu-link" type="button" data-module="deviceRealtime"><span class="menu-icon"></span><span>实时数据</span></button>
</nav>
<button class="group-title" type="button" data-group-toggle="salesMenu" aria-expanded="false"><span></span><span>销售订单管理</span><span class="chev"></span></button>
<nav id="salesMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="salesOrderStatus"><span class="menu-icon"></span><span>销售订单状态</span></button>
</nav>
<button class="group-title" type="button" data-group-toggle="anomalyMenu" aria-expanded="false"><span></span><span>异常提醒</span><span class="chev"></span></button>
<nav id="anomalyMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="anomalyPunctual"><span class="menu-icon"></span><span>机加及时开工</span></button>
<button class="menu-link" type="button" data-module="anomalyOutPunctual"><span class="menu-icon"></span><span>外协及时开工</span></button>
<button class="menu-link" type="button" data-module="anomalyUrgent"><span class="menu-icon"></span><span>加急任务列表</span></button>
<button class="menu-link" type="button" data-module="anomalyAssemblyInspection"><span class="menu-icon"></span><span>装配及时送检</span></button>
</nav>
<button class="group-title" type="button" data-group-toggle="researchMenu" aria-expanded="false"><span></span><span>研发管理</span><span class="chev"></span></button>
<nav id="researchMenu" class="menu-group" hidden>
<button class="menu-link" type="button" data-module="researchTask"><span class="menu-icon"></span><span>设计任务</span></button>
<button class="menu-link" type="button" data-module="researchReport"><span class="menu-icon"></span><span>设计报工</span></button>
<button class="menu-link" type="button" data-module="researchCheck"><span class="menu-icon"></span><span>设计工时校验</span></button>
<button class="menu-link" type="button" data-module="researchHoursReport"><span class="menu-icon"></span><span>设计工时报表</span></button>
<button class="menu-link" type="button" data-module="researchFinancialHours"><span class="menu-icon"></span><span>研发财务工时</span></button>
</nav>
</div>
</aside>
<main class="content">
<div class="tabs" id="tabs" aria-label="已打开页面"></div>
<section class="manual">
<div class="manual-head"><div><h1 id="manualTitle">人员管理自动操作演示</h1><p id="manualDesc"></p></div><div class="counter" id="counter">步骤 1 / 6</div></div>
<div class="stage"><aside class="steps"><h2>自动演示步骤</h2><div id="stepList"></div></aside><section class="viewer"><div class="screen-head"><strong id="screenTitle"></strong><span id="screenPath"></span></div><div class="screen" id="screen"></div><p class="note" id="note"></p></section></div>
</section>
</main>
</div>
<script>
const imageScene = (title, path, image, note, overlays = '') => ({ title, path, image, note, overlays });
const planView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'计划排产', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `计划排产 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const productionView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'生产管理', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `生产管理 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const qualityView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'质量管理', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `质量管理 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const processView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'工艺管理', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `工艺管理 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const deviceView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'设备管理', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `设备管理 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const salesView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'销售订单管理', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `销售订单管理 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const anomalyView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'异常提醒', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `异常提醒 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const researchView = (tab, image, steps) => ({
title: `${tab}自动操作演示`, group:'研发管理', tab, description: steps[0].note,
scenes: steps.map((step, index) => imageScene(
`${String(index + 1).padStart(2, '0')} ${step.title}`,
step.path || `研发管理 / ${tab}`,
step.image || image,
step.note,
step.overlays || '<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div>'
))
});
const modules = {
personnel: { title:'人员管理自动操作演示', tab:'人员管理', description:'自动播放真实界面截图,依次展示人员查询、新增、填写和保存结果。', scenes:[
imageScene('01 进入人员管理','系统管理 / 人员管理','personnel-list.png','确认人员列表与姓名、角色筛选区域。','<div class="focus" style="left:13.6%;top:9.8%;width:39.5%;height:4.8%"></div><div class="caption" style="left:14%;top:16%">人员列表上方提供姓名、角色筛选</div>'),
imageScene('02 填写搜索条件','示例:按姓名查询','personnel-list.png','可以按姓名筛选,也可叠加角色筛选。','<div class="focus" style="left:14%;top:10%;width:10.7%;height:3.1%"></div><span class="typed" style="left:15.2%;top:10.8%">刘卫鹏</span><div class="caption" style="left:28%;top:10%">输入条件后执行查询</div>'),
imageScene('03 查看查询结果','核对已有人员','personnel-list.png','查询结果用于确认人员是否已存在,避免重复新增。','<div class="focus" style="left:12%;top:13.8%;width:82%;height:5.2%"></div><div class="caption" style="left:13%;top:20%">核对姓名、工号、角色与班组</div>'),
imageScene('04 打开新增人员','新增人员弹窗','personnel-add-dialog.png','点击新增后,系统打开增加人员弹窗。','<div class="focus" style="left:45.4%;top:14.7%;width:15.8%;height:27.8%"></div><div class="caption" style="left:62.5%;top:20%">新增窗口集中填写人员资料</div>'),
imageScene('05 填写人员信息并保存','姓名、工号、角色为必填','personnel-add-dialog.png','系统默认初始密码为 123456保存后可在列表中重置密码。','<span class="typed" style="left:48%;top:24.4%">刘卫鹏</span><span class="typed" style="left:48%;top:30.2%">yls108</span><span class="typed" style="left:48%;top:36.2%">生产主管</span><div class="focus" style="left:45.7%;top:40.8%;width:4.25%;height:3.7%"></div><div class="caption" style="left:51%;top:41%">确认保存</div>'),
imageScene('06 保存成功并返回列表','新增信息即时可查','personnel-list.png','保存完成后,继续使用姓名或角色筛选核对新增人员。','<div class="result-row"></div><div class="saved">信息增加成功</div><div class="caption" style="left:13%;top:25%">列表刷新后,新增人员出现在查询结果中</div>') ] },
role: { title:'角色管理自动操作演示', tab:'角色管理', description:'自动演示角色查询与新增角色功能的界面操作。', scenes:[
imageScene('01 进入角色管理','系统管理 / 角色管理','role-list.png','角色列表展示已有角色功能及其编辑、删除入口。','<div class="focus" style="left:12.7%;top:9.8%;width:29%;height:4.7%"></div><div class="caption" style="left:13%;top:16%">输入角色功能后执行查询</div>'),
imageScene('02 查看角色列表','确认角色是否已存在','role-list.png','新增前先检索角色功能,避免创建重复角色。','<div class="focus" style="left:12.5%;top:14%;width:33.5%;height:34%"></div><div class="caption" style="left:13%;top:50%">列表中可查看角色功能</div>'),
imageScene('03 打开新增角色','新增角色弹窗','role-add-dialog.png','点击新增后,在弹窗中填写角色功能名称。','<div class="focus" style="left:39%;top:25%;width:23%;height:17%"></div><div class="caption" style="left:63%;top:27%">填写角色功能</div>'),
imageScene('04 填写并保存','完成角色新增','role-add-dialog.png','确认角色功能名称后保存,系统返回角色列表。','<span class="typed" style="left:45%;top:31%">生产主管</span><div class="focus" style="left:52%;top:40%;width:4.7%;height:3.7%"></div><div class="caption" style="left:57%;top:40%">确认保存</div>') ] },
menu: { title:'菜单管理自动操作演示', tab:'菜单管理', description:'自动演示角色的一级模块和二级菜单授权、筛选、移除与结果核对流程。', scenes:[
imageScene('01 进入菜单管理','系统管理 / 菜单管理','menu-list.png','进入页面后先选择角色;未选角色时,中间已分配菜单树为空。','<div class="focus" style="left:14.45%;top:9.65%;width:10.4%;height:3.5%"></div><div class="caption" style="left:25.5%;top:10%">第一步:选择需要配置的角色</div>'),
imageScene('02 识别三个权限区域','一级模块、已分配菜单、二级菜单','menu-list.png','左侧是尚未分配的一级模块,中间是角色已拥有的菜单树,右侧是可分配的二级菜单。','<div class="focus" style="left:12.65%;top:14.1%;width:22.8%;height:63.4%"></div><div class="focus" style="left:38.65%;top:14.1%;width:26%;height:63.4%"></div><div class="focus" style="left:68%;top:14.1%;width:22.8%;height:63.4%"></div><div class="caption" style="left:38%;top:79%">左选一级,中间定归属,右选二级</div>'),
imageScene('03 筛选待分配的一级模块','左侧模块名称过滤','menu-list.png','可在左侧输入关键字过滤一级模块,例如“系统管理”;已分配的一级模块不能再次勾选。','<div class="focus" style="left:13.1%;top:14.2%;width:20.7%;height:3.1%"></div><span class="typed" style="left:14%;top:14.8%">系统管理</span><div class="caption" style="left:13%;top:18.6%">筛选后勾选需要分配的一级模块</div>'),
imageScene('04 分配一级模块','左侧模块列表 -> 中间菜单树','menu-list.png','勾选左侧一级模块后,点击中间的右箭头。确认后,该一级模块会出现在角色已分配菜单树中。','<div class="focus" style="left:12.7%;top:20.5%;width:22.6%;height:4.1%"></div><div class="focus" style="left:36.1%;top:41.4%;width:2.1%;height:5.6%"></div><div class="caption" style="left:28%;top:48%">右箭头:分配选中的一级模块</div>'),
imageScene('05 在菜单树中只选择一个一级模块','中间已分配菜单树','menu-permission-panel.png','分配二级菜单前,必须在中间菜单树勾选且只勾选一个一级模块;同时选择多个或选择叶子菜单时不能分配。','<div class="focus" style="left:39%;top:17%;width:25.2%;height:19%"></div><div class="caption" style="left:40%;top:37%">仅勾选一个一级模块作为归属</div>'),
imageScene('06 筛选并勾选二级菜单','右侧模块名称过滤','menu-permission-panel.png','在右侧按名称过滤二级菜单,可一次勾选多个;列表同时显示模块所属路径。','<div class="focus" style="left:68.2%;top:14.2%;width:21.5%;height:3.1%"></div><span class="typed" style="left:69%;top:14.8%">人员管理</span><div class="focus" style="left:68.2%;top:20.6%;width:21.6%;height:16%"></div><div class="caption" style="left:68%;top:38%">勾选要授予的二级菜单</div>'),
imageScene('07 分配二级菜单','右侧二级菜单 -> 中间一级模块','menu-permission-panel.png','中间已选一个一级模块且右侧已勾选菜单时,点击左箭头,将这些二级菜单分配到该一级模块下。','<div class="focus" style="left:65.3%;top:41.4%;width:2.1%;height:5.6%"></div><div class="caption" style="left:55%;top:48%">左箭头:把已选二级菜单分配给中间一级模块</div>'),
imageScene('08 核对授权结果','角色已分配菜单树','menu-permission-panel.png','分配成功后,在中间树展开一级模块,确认二级菜单已出现在正确的模块下面。','<div class="focus" style="left:38.8%;top:17%;width:25.6%;height:62%"></div><div class="caption" style="left:39%;top:11%">展开并核对菜单层级</div>'),
imageScene('09 移除不需要的叶子菜单','中间树的移除操作','menu-permission-panel.png','需要撤回权限时,使用中间树叶子菜单右侧的“移除”;一级模块有子菜单时不可直接移除。','<div class="focus" style="left:58.7%;top:21%;width:4.8%;height:11.2%"></div><div class="caption" style="left:39%;top:34%">仅叶子菜单可直接移除</div>') ] },
workstation: { title:'工位管理自动操作演示', tab:'工位管理', description:'自动演示工位查询、新增及保存后的列表核对。', scenes:[
imageScene('01 进入工位管理','系统管理 / 工位管理','workstation-list.png','工位列表按工位名称和工位号展示已有工位。','<div class="focus" style="left:13.7%;top:9.8%;width:28.5%;height:4.8%"></div><div class="caption" style="left:14%;top:16%">可按工位名称查询</div>'),
imageScene('02 查看工位列表','确认工位名称与工位号','workstation-list.png','新增前先确认名称和工位号是否已存在。','<div class="focus" style="left:12.5%;top:13.8%;width:26%;height:52%"></div><div class="caption" style="left:13%;top:67%">核对工位名称和工位号</div>'),
imageScene('03 打开新增工位','新增工位弹窗','workstation-add-dialog.png','点击新增后,系统打开工位信息填写窗口。','<div class="focus" style="left:43%;top:20%;width:18%;height:22%"></div><div class="caption" style="left:62%;top:24%">填写工位基本信息</div>'),
imageScene('04 填写并保存','完成工位新增','workstation-add-dialog.png','填写工位名称、工位号后确认保存。','<span class="typed" style="left:47%;top:27%">加11</span><span class="typed" style="left:47%;top:33%">18</span><div class="focus" style="left:51%;top:41%;width:4.5%;height:3.8%"></div><div class="caption" style="left:56%;top:41%">确认保存</div>') ] },
operation: { title:'报工操作记录自动操作演示', tab:'报工操作记录', description:'自动展示按订单编号、操作人筛选报工记录以及重点字段核对。', scenes:[
imageScene('01 进入报工操作记录','系统管理 / 报工操作记录','operation-log.png','页面顶部提供订单编号和操作人两个查询条件。','<div class="focus" style="left:15.8%;top:11.5%;width:25.5%;height:3.2%"></div><div class="caption" style="left:16%;top:16%">输入订单编号或操作人查询</div>'),
imageScene('02 查看报工过程','操作记录明细','operation-log.png','列表记录开始加工、报工、辅助结束等操作类别。','<div class="focus" style="left:12.5%;top:17%;width:76%;height:47%"></div><div class="caption" style="left:13%;top:65%">查看操作类别、工序、工位和操作人</div>'),
imageScene('03 核对时间与工时','报工信息追溯','operation-log.png','可结合开始时间、结束时间、人员工时和设备工时追溯报工。','<div class="focus" style="left:65%;top:17%;width:31%;height:47%"></div><div class="caption" style="left:65%;top:65%">核对时间和工时字段</div>') ] },
screenConfig: { title:'大屏参数配置自动操作演示', tab:'大屏参数配置', description:'自动播放真实系统页面截图,展示各部门本月、上月配置率及保存入口。', scenes:[
imageScene('01 进入大屏参数配置','系统管理 / 大屏参数配置','screen-parameter-config.png','页面以部门为行,集中展示本月、上月配置以及最后修改信息。','<div class="focus" style="left:1.1%;top:7.1%;width:97.6%;height:32.8%"></div><div class="caption" style="left:2%;top:41%">配置数据按部门集中展示</div>'),
imageScene('02 查看本月配置','本月使用配置与配置率','screen-parameter-config.png','本月使用配置切换“真实”或“配置”;配置率可精确到两位小数。','<div class="focus" style="left:19.2%;top:10.9%;width:17.5%;height:26.8%"></div><div class="caption" style="left:19%;top:39%">核对本月使用方式和配置率</div>'),
imageScene('03 查看上月配置','上月使用配置与配置率','screen-parameter-config.png','上月配置独立维护,可对照本月数据确认当前配置是否合理。','<div class="focus" style="left:37%;top:10.9%;width:17.5%;height:26.8%"></div><div class="caption" style="left:37%;top:39%">核对上月使用方式和配置率</div>'),
imageScene('04 保存配置','提交当前全部修改','screen-parameter-config.png','确认各部门的开关和比例后,点击保存提交本次修改。','<div class="focus" style="left:6.5%;top:3.05%;width:4.1%;height:3.1%"></div><div class="caption" style="left:11%;top:3%">确认后保存全部修改</div>') ] },
planMachining: { title:'机加件排产自动操作演示', group:'计划排产', tab:'机加件排产', description:'自动播放真实机加件排产页面,展示待排产任务筛选、工位指派、计划日期和完成排产的流程。', scenes:[
imageScene('01 进入机加件排产','计划排产 / 机加件排产','plan-machining.png','页面上方为待排产任务筛选区,下方表单展示可排产的工序任务。','<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div><div class="caption" style="left:2%;top:24%">先按订单、物料、工序或日期缩小任务范围</div>'),
imageScene('02 选择待排产任务','待排产任务 / 表单','plan-machining.png','在待排产表单中勾选目标工序,核对生产订单、计划号、物料、计划数、要求完工日期、工时和工序名称。','<div class="focus" style="left:1%;top:25%;width:98%;height:59%"></div><div class="caption" style="left:2%;top:86%">勾选需要安排的机加工序</div>'),
imageScene('03 设置工位、数量和计划时间','指派对象与计划日期','plan-machining.png','为任务选择指派对象,填写指派数量、计划开始、计划完成和最晚开始时间。','<div class="focus" style="left:47%;top:30%;width:49%;height:54%"></div><div class="caption" style="left:47%;top:25%">逐项确认工位、数量和时间</div>'),
imageScene('04 维护二次派工和备注','编辑备注信息','plan-machining-remark.png','“二次派工”可多选人员;点击“编辑”后维护优先级、未完成说明和派工特殊备注。该页面源码中的“派工”按钮已注释,实际页面不提供此入口。','<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">在真实备注弹窗中维护三项说明</div>'),
imageScene('05 批量排产并完成','批量排产 / 排产完成','plan-machining.png','核对勾选任务后执行批量排产;排产完成会校验指派对象、数量和计划时间,缺少必填安排时不会提交。','<div class="focus" style="left:70%;top:14%;width:18%;height:3.4%"></div><div class="caption" style="left:70%;top:18%">先排产,再校验完成条件</div>'),
imageScene('06 查看已排产任务','已排产任务 / 表单','plan-machining-schedule.png','同一页面下方还有已排产任务区域,可按排产状态、要求完工日期、计划开始和完成日期及工位查询;待排产区和已排产区分页互相独立。','<div class="focus" style="left:5%;top:36%;width:92%;height:23%"></div><div class="caption" style="left:6%;top:31%">已排产任务提供独立查询和分页</div>'),
imageScene('07 在日程中核对计划','已排产任务 / 日程','plan-machining-schedule.png','切换已排产任务的“日程”,月历显示有计划日期的任务卡。拖拽可移动日期,拉伸可调整工期;确认后才写回计划开始和完成日期。','<div class="focus" style="left:5%;top:60%;width:93%;height:39%"></div><div class="caption" style="left:51%;top:55%">真实已排产日程中可看到任务卡</div>') ] },
planAssembly: { title:'装配件排产自动操作演示', group:'计划排产', tab:'装配件排产', description:'自动播放真实装配件排产页面,展示装配任务筛选、任务指派与计划时间维护。', scenes:[
imageScene('01 进入装配件排产','计划排产 / 装配件排产','plan-assembly.png','页面先展示待排产装配任务的订单、物料、工序和日期筛选条件。','<div class="focus" style="left:1%;top:7%;width:98%;height:16%"></div><div class="caption" style="left:2%;top:24%">按订单、物料、工序和日期定位装配任务</div>'),
imageScene('02 查看待排产任务','待排产任务表单','plan-assembly.png','查询后在表单页勾选任务,并核对生产订单、计划号、物料、工序和计划数。','<div class="focus" style="left:1%;top:25%;width:98%;height:45%"></div><div class="caption" style="left:2%;top:72%">先确认任务归属与计划数量</div>'),
imageScene('03 维护指派与日期','工位、人员与计划时间','plan-assembly.png','选择指派对象和人员,填写计划开始、计划完成时间后进行批量排产。','<div class="focus" style="left:48%;top:30%;width:48%;height:42%"></div><div class="caption" style="left:48%;top:25%">维护装配资源和计划日期</div>'),
imageScene('04 执行派工和二次派工','任务人员安排','plan-assembly.png','装配任务保留“派工”入口;先选中当前行再执行派工。二次派工支持多选人员并即时保存,不能在未选行时直接操作。','<div class="focus" style="left:62%;top:29%;width:34%;height:45%"></div><div class="caption" style="left:62%;top:24%">先选中任务,再维护派工人员</div>'),
imageScene('05 编辑优先级和说明','编辑备注信息','plan-assembly-remark.png','点击“编辑”打开真实弹窗,维护优先级、未完成说明和派工特殊备注;确认保存后刷新任务。','<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">备注与优先级集中维护</div>'),
imageScene('06 完成装配排产','批量排产 / 排产完成','plan-assembly.png','完成前核对已选任务的指派对象、数量和计划时间;缺少必填安排时按校验提示补齐后再提交。','<div class="focus" style="left:70%;top:14%;width:18%;height:3.4%"></div><div class="caption" style="left:70%;top:18%">确认后执行批量排产或排产完成</div>'),
imageScene('07 查看已排产装配日程','已排产任务 / 日程','plan-assembly-schedule.png','页面下方已排产任务具有独立日程;任务卡显示订单、产品、指派对象和数量,拖拽或拉伸后需确认才更新计划日期。','<div class="focus" style="left:5%;top:60%;width:93%;height:39%"></div><div class="caption" style="left:51%;top:55%">真实已排产装配日程</div>') ] },
planMachiningDone: { title:'机加件已排产自动操作演示', group:'计划排产', tab:'机加件已排产', description:'自动播放真实已排产机加任务页面,包含计划日期、外协分组、原料状态、二次派工、备注和日程管理。', scenes:[
imageScene('01 查询已排产任务','计划排产 / 机加件已排产','plan-machining-done.png','按生产订单、销售订单、物料编码、物料名称、工序名称、要求完工日期以及计划开始、完成日期筛选已排产任务。','<div class="focus" style="left:1%;top:7%;width:70%;height:16%"></div><div class="caption" style="left:2%;top:24%">先定位需要维护的已排产工序</div>'),
imageScene('02 维护计划时间与指派','指派对象、数量、计划开始和完成','plan-machining-done.png','先点击选中目标行,再维护指派对象、指派数量、计划开始和计划完成;保存排产前必须具备指派对象以及开始、完成时间。','<div class="focus" style="left:52%;top:30%;width:37%;height:56%"></div><div class="caption" style="left:52%;top:25%">选中任务后核对工位、数量和计划日期</div>'),
imageScene('03 设置外协分组','外协分组直接保存','plan-machining-done.png','先点击选中目标任务,再在“外协分组”列输入分组值;离开输入框后系统按当前任务保存外协分组,用于后续外协任务归集。','<div class="focus" style="left:89.5%;top:30%;width:7%;height:56%"></div><div class="caption" style="left:77%;top:25%">外协分组可在列表内直接维护</div>'),
imageScene('04 查看原料状态','原料信息弹窗','plan-machining-done-material.png','点击“原料状态”的查看入口,打开有数据的原料信息窗口,核对子件编码、名称、基本数量、待出数量、拣配数量、计划数量、存货量、材质和产品单位。','<div class="focus" style="left:14%;top:30%;width:72%;height:52%"></div><div class="caption" style="left:15%;top:24%">在真实原料明细中核对库存与材质</div>'),
imageScene('05 查看历史工时','历史工时弹窗','plan-machining-done-work-hours.png','点击“历史工时”的查看入口,核对同物料历史任务的结算工时、工位、订单、操作人、报工/辅助工时及完成数。','<div class="focus" style="left:13%;top:28%;width:74%;height:51%"></div><div class="caption" style="left:15%;top:22%">历史工时来自实际报工记录</div>'),
imageScene('06 维护二次派工','多选人员后即时保存','plan-machining-done.png','横向滚动到“二次派工”列,多选辅助执行人员后系统保存当前任务。该页面源码中的“派工”按钮已经注释,演示不再描述不存在的入口。','<div class="focus" style="left:1%;top:88%;width:53%;height:2%"></div><div class="caption" style="left:2%;top:83%">通过底部横向滚动条进入后续字段</div>'),
imageScene('07 编辑优先级和备注','编辑备注信息','plan-machining-done-remark.png','点击“编辑”,在真实弹窗中维护优先级、未完成说明和派工特殊备注;优先任务会在列表和日程中突出显示。','<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">确认三项说明后保存</div>'),
imageScene('08 日程查看与调整','已排产任务日程','plan-machining-done-schedule.png','日历按月展示任务,任务卡包含订单、产品、产品编码、指派对象、计划数量和完成数量。','<div class="focus" style="left:20%;top:54%;width:78%;height:42%"></div><div class="caption" style="left:21%;top:50%">真实日程月视图</div>'),
imageScene('09 拖拽或拉伸日程任务','确认后更新计划时间','plan-machining-done-schedule.png','拖拽任务改变日期,拉伸任务调整工期。确认后更新订单行和拆分任务的计划开始、完成日期,失败或取消则恢复原位置。','<div class="focus" style="left:20%;top:54%;width:78%;height:42%"></div><div class="caption" style="left:21%;top:50%">在任务卡上拖拽或拉伸后确认保存</div>') ] },
planMachiningTodo: planView('机加件未排产','plan-machining-todo.png',[
{ title:'筛选未排产机加工序', note:'按生产订单、销售订单、物料、工序、要求完工日期和计划日期查询;列表只用于待排产任务的资源与时间维护。' },
{ title:'维护工位、数量与计划日期', note:'点击任务行后可直接选择指派对象、输入指派数量并确认;计划开始、计划完成和最晚开始日期分别触发保存。' },
{ title:'维护外协分组与二次派工', note:'横向滚动到任务后半段,在“外协分组”输入分组值并离开输入框即可保存;“二次派工”支持多选人员并即时更新当前任务。', overlays:'<div class="focus" style="left:66%;top:29%;width:31%;height:57%"></div><div class="caption" style="left:66%;top:24%">按当前任务维护外协分组和二次派工人员</div>' },
{ title:'查看原料状态', path:'原料状态 / 原料信息', image:'plan-machining-todo-material.png', note:'点击“原料状态”列的“查看”,在原料信息弹窗核对子件编码、名称、基本数量、待出数量、拣配数量、计划数量、存货量、材质和产品单位。', overlays:'<div class="focus" style="left:14%;top:30%;width:72%;height:52%"></div><div class="caption" style="left:15%;top:24%">原料明细有数据后再核对数量与材质</div>' },
{ title:'查看历史工时', path:'历史工时 / 报工记录', image:'plan-machining-todo-work-hours.png', note:'点击“历史工时”列的“查看”,按任务描述核对结算报工/辅助单件工时、工位、生产订单、操作人、报工与辅助工时、完成数及合计工时。', overlays:'<div class="focus" style="left:13%;top:28%;width:74%;height:51%"></div><div class="caption" style="left:15%;top:22%">历史工时来自实际报工和辅助工时记录</div>' },
{ title:'查看零件图纸', path:'图纸 / 零件图纸', image:'plan-machining-todo-part-drawing.png', note:'点击当前任务的“零件图纸”,系统按物料编号查询图纸维护记录并在图纸查看器中加载 PDF可使用右下角缩放、适配和旋转工具查看尺寸与技术要求。', overlays:'<div class="focus" style="left:33%;top:31%;width:33%;height:45%"></div><div class="caption" style="left:68%;top:33%">在实际图纸查看器中核对零件尺寸和技术要求</div>' },
{ title:'查看工艺图纸', path:'图纸 / 工艺图纸', image:'plan-machining-todo-process-drawing.png', note:'点击“工艺图纸”,系统按物料编码和工序查询工艺维护中上传的 PDF若当前记录未上传会直接提示应换到已维护图纸的任务查看。', overlays:'<div class="focus" style="left:33%;top:31%;width:33%;height:45%"></div><div class="caption" style="left:68%;top:33%">工艺图纸入口与零件图纸入口相互独立</div>' },
{ title:'编辑优先级与任务说明', path:'编辑 / 编辑备注信息', image:'plan-machining-todo-remark.png', note:'点击任务行“编辑”,在弹窗中选择优先级并填写未完成说明、派工特殊备注;确认后保存,取消或关闭不会修改任务。', overlays:'<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">确认三项内容后再保存</div>' },
{ title:'进入日程查看任务', path:'表单 / 日程', image:'plan-machining-todo-schedule.png', note:'点击“日程”进入月历。日历事件由当前页任务的计划开始和计划完成时间生成;未维护计划日期的未排产任务不会显示事件,先在表单页补齐日期后再进入日程核对。', overlays:'<div class="focus" style="left:2%;top:39%;width:97%;height:55%"></div><div class="caption" style="left:49%;top:34%">日程只显示已经维护开始、完成日期的当前页任务</div>' }
]),
planPriorityAssembly: planView('优先装配','plan-priority-assembly.png',[
{ title:'筛选优先装配任务', note:'按订单、物料、工序及计划开始、完成日期定位优先装配任务,查询结果可勾选。' },
{ title:'核对指派与计划开始', note:'表单展示指派对象、指派数量、计划开始和计划完成;计划开始日期在列表内可直接修改并保存。' },
{ title:'切换月、周、日程视图', image:'plan-priority-assembly-schedule.png', note:'点击“日程”后可切换月、周、日和今天。真实周视图按小时显示任务卡;任务可点击查看,拖拽移动或拉伸后需确认才会回写计划日期。', overlays:'<div class="focus" style="left:5%;top:36%;width:93%;height:56%"></div><div class="caption" style="left:6%;top:31%">周视图可直接比较每天的优先装配任务</div>' }
]),
planShell: planView('计划用表','plan-shell.png',[
{ title:'按计划维度查询', note:'可按生产订单、销售订单、物料、计划号、发货状态、齐套、完成状态和计划开始日期组合查询。' },
{ title:'核对计划执行状态', note:'列表同时呈现计划数量、入库数量、齐套、拣配、发料和装配开工状态,用于判断计划是否具备执行条件。' },
{ title:'展开生产工序明细', image:'plan-shell-expanded.png', note:'点击订单左侧展开箭头,查看工序名称、计划数量、指派对象、开始/结束时间、完成进度、合格/不良数、任务状态和加工状态。', overlays:'<div class="focus" style="left:5%;top:35%;width:93%;height:31%"></div><div class="caption" style="left:6%;top:30%">订单行展开后显示真实工序执行明细</div>' },
{ title:'查看工序缺料单', image:'plan-shell-shortage.png', note:'在展开的工序行点击“缺料”,系统按产品编码和生产订单查询缺料单,显示缺料物料名称与缺货数量;此窗口只查看,不在这里修改库存。', overlays:'<div class="focus" style="left:27%;top:31%;width:46%;height:13%"></div><div class="caption" style="left:38%;top:25%">缺料单来自当前工序的实际缺料查询</div>' },
{ title:'横向核对后续状态', note:'继续横向查看送检数量、终检、工艺和排产状态灯;应结合展开工序的进度与缺料情况判断计划状态,不能只看单一齐套标记。', overlays:'<div class="focus" style="left:70%;top:29%;width:29%;height:59%"></div><div class="caption" style="left:70%;top:24%">核对送检、终检、工艺与排产状态</div>' }
]),
planAssemblyTodo: planView('装配未排产','plan-assembly-todo.png',[
{ title:'定位未排产装配任务', note:'使用订单、物料、工序、要求完工日期和计划日期范围查询尚未排产的装配任务。' },
{ title:'选择任务并维护资源', note:'勾选目标任务后,按行填写指派对象、指派数量、计划开始和计划完成;数量确认后才提交当前行。' },
{ title:'执行派工与二次派工', note:'选择当前任务后可执行“派工”;二次派工支持多选人员并即时保存。不要在未选中目标行时操作,避免把人员写入上一条任务。', overlays:'<div class="focus" style="left:62%;top:29%;width:34%;height:48%"></div><div class="caption" style="left:62%;top:24%">先选中任务,再维护派工人员</div>' },
{ title:'编辑优先级与说明', image:'plan-assembly-todo-remark.png', note:'点击“编辑”打开真实备注弹窗,维护优先级、未完成说明和派工特殊备注,确认后保存。', overlays:'<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">任务说明集中在弹窗维护</div>' },
{ title:'执行批量排产', note:'核对勾选任务、指派对象、数量与时间后使用批量排产;排产完成前需确认每项任务的资源和计划日期均已具备。' },
{ title:'进入待排产日程', image:'plan-assembly-todo-schedule.png', note:'点击“日程”进入月历。源码只为当前页任务按计划开始、完成日期生成事件;未排产任务尚未维护日期时日历为空,应返回表单补齐日期后再核对。', overlays:'<div class="focus" style="left:2%;top:39%;width:97%;height:55%"></div><div class="caption" style="left:49%;top:34%">只有已维护计划日期的当前页任务才会显示</div>' }
]),
planOrderClose: planView('生产订单关闭','plan-order-close.png',[
{ title:'筛选可关闭订单', note:'默认查询“可关闭、机加”订单;可改为全部、已关闭、未关闭或 SAP 未关闭,并按订单编号及机加/装配属性重新查询。' },
{ title:'核对关闭前置数据', note:'表格直接展示计划数量、入库数量、终检不合格数和终检合格数;复选框只允许选择可确认或可关闭的订单。' },
{ title:'勾选并批量确认订单', image:'plan-order-close-confirm.png', note:'勾选可确认订单后点击“批量确认”,系统先显示选中数量的确认框;点击确定才逐单执行,取消不会修改订单。已确认订单不能再次确认。', overlays:'<div class="focus" style="left:39%;top:49%;width:22%;height:14%"></div><div class="caption" style="left:40%;top:43%">核对选中数量后再确定</div>' },
{ title:'关闭已确认订单', note:'单行或批量关闭必须满足“确认状态=已确认”且“单据状态不是已关闭”;关闭成功后同步将 SAP 生产订单状态更新为 Closed并刷新列表。' }
]),
planWorkstation: planView('工位任务汇总','plan-workstation-summary.png',[
{ title:'按工位与日期筛选任务', note:'按生产订单、销售订单、物料、工序、要求完工日期、计划开始和计划完成查询;上方工位复选框可限定参与汇总的工位。' },
{ title:'展开工位和日期层级', image:'plan-workstation-expanded.png', note:'结果是“工位 -> 日期 -> 任务”三级表。点击工位行展开日期,再点击日期行展开任务;工位和日期汇总行分别显示标准工时、结算工时和结算单件工时。', overlays:'<div class="focus" style="left:5%;top:42%;width:93%;height:52%"></div><div class="caption" style="left:6%;top:37%">工位和多个日期层级已经真实展开</div>' },
{ title:'选择结算单件工时', image:'plan-workstation-work-hours.png', note:'点击任务行的结算单件工时按钮,打开有数据的历史工时窗口;对照任务描述、结算报工/辅助单件工时、工位、订单和操作人,选择“报工”或“辅助”作为结算值。', overlays:'<div class="focus" style="left:15%;top:35%;width:72%;height:25%"></div><div class="caption" style="left:16%;top:29%">从真实历史任务中选择结算依据</div>' },
{ title:'查看任务原料', image:'plan-workstation-material.png', note:'在任务最右侧点击“原料”,查看当前生产订单的子件编码、数量、库存和材质;截图使用有明细的订单,不再展示空表。', overlays:'<div class="focus" style="left:14%;top:30%;width:72%;height:52%"></div><div class="caption" style="left:15%;top:24%">核对任务原料与可用库存</div>' },
{ title:'维护排产资源', image:'plan-workstation-expanded.png', note:'任务行可维护指派对象、计划开始/完成/最晚开始、二次派工和外协分组;修改前先点击当前任务行,避免跨任务保存。', overlays:'<div class="focus" style="left:72%;top:50%;width:27%;height:45%"></div><div class="caption" style="left:72%;top:45%">日期、人员和外协分组按任务维护</div>' },
{ title:'编辑任务说明', image:'plan-workstation-remark.png', note:'点击“编辑”打开备注弹窗,维护优先级、未完成说明和派工特殊备注;此页面源码没有“批量排产完成”按钮,演示已删除原错误步骤。', overlays:'<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">维护任务优先级与说明</div>' },
{ title:'进入工位日程', image:'plan-workstation-schedule.png', note:'点击“日程”按月查看工位任务。红色任务为优先任务,蓝色为普通任务;任务卡显示订单、产品、物料、工位、计划数和完成数。', overlays:'<div class="focus" style="left:5%;top:51%;width:93%;height:47%"></div><div class="caption" style="left:6%;top:46%">真实工位日程包含多条任务卡</div>' }
]),
planAssemblyDone: planView('装配已排产','plan-assembly-done.png',[
{ title:'筛选已排产装配任务', note:'按订单、物料、工序、排产状态、要求完工日期和计划日期查询已排产装配任务,并可按工位复选框进一步限定。' },
{ title:'调整指派和二次派工', note:'点击指派对象或指派数量进入行内维护;先选中任务再点击“派工”,系统直接执行派工过程并创建对应采购申请,不会打开派工弹窗;二次派工支持多选人员并即时保存。' },
{ title:'维护优先级与说明', image:'plan-assembly-done-remark.png', note:'点击“编辑”打开真实备注弹窗,维护优先级、未完成说明和派工特殊备注;确认后保存并刷新任务。', overlays:'<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">在弹窗中维护任务说明</div>' },
{ title:'进入已排产日程', image:'plan-assembly-done-schedule.png', note:'点击“日程”按月查看装配任务;任务卡可拖拽移动或拉伸调整工期,确认后更新计划开始和完成日期。', overlays:'<div class="focus" style="left:5%;top:51%;width:93%;height:47%"></div><div class="caption" style="left:6%;top:46%">真实日程任务卡可直接调整日期</div>' }
]),
planSystemAssembly: planView('系统类装配任务','plan-system-assembly.png',[
{ title:'筛选并导出系统类任务', note:'按订单、物料、工序、辅助配件、要求完工日期和计划时间筛选Excel 导出使用当前查询条件。' },
{ title:'维护钣金预达与计划日期', note:'点击单元格后分别维护钣金预达、计划开始和计划完成日期;每个日期离开编辑状态时按当前行独立保存。' },
{ title:'维护送检与销售要求日期', note:'预计送检日期和销售要求日期是两个独立字段,点击对应单元格后选择日期;保存失败会重新查询恢复列表。', overlays:'<div class="focus" style="left:42%;top:29%;width:36%;height:54%"></div><div class="caption" style="left:42%;top:24%">交付日期按字段独立维护</div>' },
{ title:'维护四类预算工时', note:'任务预算装配、任务预算质检、合同预算装配和合同预算测试工时均可行内编辑;输入必须是不小于零的数字,合同号为空时合同预算不可编辑。', overlays:'<div class="focus" style="left:55%;top:29%;width:43%;height:54%"></div><div class="caption" style="left:55%;top:24%">区分任务预算与合同预算</div>' },
{ title:'维护人员与任务说明', image:'plan-system-assembly-remark.png', note:'二次派工支持多选人员;点击“编辑”维护优先级、未完成说明和派工特殊备注。源码中的“派工”按钮已注释,实际页面不提供该入口。', overlays:'<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">备注弹窗与行内人员维护相互独立</div>' },
{ title:'通过日程调整时间', image:'plan-system-assembly-schedule.png', note:'日程页签显示真实系统类任务卡;点击查看,拖拽移动或拉伸调整工期,确认后才更新订单行的计划开始和完成时间。', overlays:'<div class="focus" style="left:5%;top:51%;width:93%;height:47%"></div><div class="caption" style="left:6%;top:46%">日程中可看到多条系统类任务</div>' }
]),
planValveAssembly: planView('阀类装配任务','plan-valve-assembly.png',[
{ title:'筛选并导出阀类任务', note:'按订单、物料、工序、辅助配件、要求完工日期和计划时间查询阀类装配任务Excel 导出遵循当前条件。' },
{ title:'维护计划日期与资源', note:'选择目标行后可保存计划开始、计划完成、最晚开始、指派对象和指派数量;日期和数量均按当前行保存,避免跨行修改。' },
{ title:'维护交付日期与预算工时', note:'预计送检、销售要求日期以及任务/合同预算装配、质检和测试工时均为独立字段;预算值必须是不小于零的数字。', overlays:'<div class="focus" style="left:48%;top:29%;width:49%;height:54%"></div><div class="caption" style="left:48%;top:24%">分别维护交付日期与四类预算工时</div>' },
{ title:'维护二次派工和说明', image:'plan-valve-assembly-remark.png', note:'二次派工为多选人员;点击“编辑”在真实弹窗中维护优先级、未完成说明和派工特殊备注。源码中的“派工”按钮已注释。', overlays:'<div class="focus" style="left:42%;top:24%;width:25%;height:29%"></div><div class="caption" style="left:68%;top:31%">保存后刷新阀类任务列表</div>' },
{ title:'从日程调整计划', image:'plan-valve-assembly-schedule.png', note:'日程中显示真实阀类任务卡;拖拽移动或拉伸后需确认才写回计划日期,取消或失败会恢复原位置。', overlays:'<div class="focus" style="left:5%;top:51%;width:93%;height:47%"></div><div class="caption" style="left:6%;top:46%">真实阀类日程包含跨日任务</div>' }
]),
planKitTrack: planView('及时齐套跟踪结果','plan-kit-track.png',[
{ title:'按齐套跟踪条件查询', note:'按订单、物料、计划号、发货状态、齐套、完成状态、发料状态和计划开始日期筛选跟踪结果。' },
{ title:'判断任务是否可开工', note:'主表对照计划数量、入库数量、预计齐套时间、齐套、拣配、发料、装配开工、送检、终检和工艺状态。' },
{ title:'展开查看缺件明细', image:'plan-kit-track-expanded.png', note:'点击“发料缺件”的订单左侧展开入口,查看缺件物料、缺件/库存数量、属性、生产订单、进度、工艺路线或采购状态、预计完成、采购未清数量和质检状态。', overlays:'<div class="focus" style="left:5%;top:41%;width:93%;height:13%"></div><div class="caption" style="left:6%;top:36%">真实缺件行显示工艺路线和预计完成时间</div>' }
]),
productionPlanTrack: productionView('生产计划跟踪','production-plan-track.png',[
{ title:'组合条件查询生产计划', note:'按销售订单、生产订单、物料编码、物料名称、计划号、要求完工日等条件查询;列表同时显示排产、拣配、开工、终检、加急和优先级状态。' },
{ title:'识别当前工序与状态灯', note:'当前序和工艺路线旁的状态灯用于快速判断各工序进度;列表还对照计划数量、完成数量、入库数量和要求完工日。', overlays:'<div class="focus" style="left:4%;top:25%;width:94%;height:44%"></div><div class="caption" style="left:5%;top:20%">逐行核对订单状态和当前工序</div>' },
{ title:'展开真实工艺路线', image:'production-plan-track-expanded.png', note:'点击订单左侧展开入口,查看每道工序的计划数量、标准工时、指派对象、计划/实际时间、完成进度、发料、合格数、不良数和任务状态。', overlays:'<div class="focus" style="left:4%;top:28%;width:94%;height:42%"></div><div class="caption" style="left:5%;top:23%">展开行显示该订单的完整工序明细</div>' },
{ title:'理解路线颜色与外协分组', image:'production-plan-track-expanded.png', note:'源码按完成、已开始、当前可执行和外协工序计算路线样式;外协连续工序按组显示,不能只凭颜色判断是否已完成。', overlays:'<div class="focus" style="left:4%;top:29%;width:94%;height:14%"></div><div class="caption" style="left:5%;top:44%">蓝色、绿色及外协分组对应不同工序状态</div>' },
{ title:'编辑任务说明', note:'选中任务后可进入编辑窗口维护任务说明;保存时按当前任务提交,完成后重新查询核对。' },
{ title:'处理外协通知与任务拆分', note:'源码提供外协通知和任务拆分入口;拆分时填写拆分数量、工位等信息并校验数量,提交后再展开路线确认新任务。' }
]),
productionMachining: productionView('加工中心','production-machining-center.png',[
{ title:'查询当前机加任务', note:'按任务ID、生产订单、物料编码、计划号、销售订单、任务状态和工位查询页面初始化若账号未绑定工位需要手工点击“查询”。' },
{ title:'选择工位并读取任务状态', note:'工位复选区来自系统工位基础数据;表格显示上序合格数、加工/收料状态、加急数量、下序、首检、序检、完成数和任务状态。', overlays:'<div class="focus" style="left:5%;top:28%;width:84%;height:52%"></div><div class="caption" style="left:6%;top:23%">先选择任务行,再执行右侧或底部操作</div>' },
{ title:'辅助开始与辅助结束', note:'辅助开始只允许符合当前任务状态的记录进入准备作业;辅助结束还会校验加工状态,并要求填写完成数量、操作工位和操作人。状态不符合时系统会直接提示,不能跳过前置步骤。' },
{ title:'打开收料窗口核对数量', image:'production-machining-receive.png', note:'选择任务后点击“收料”,真实弹窗显示生产订单、零件编码、分配数量、已收数量、上序合格数量、收料工位和操作人;填写本次收料数前先确认不能超过可收范围。', overlays:'<div class="focus" style="left:31%;top:25%;width:38%;height:49%"></div><div class="caption" style="left:70%;top:32%">先核对订单、上序合格数和已收数量</div>' },
{ title:'开始、暂停并打开报工窗口', image:'production-machining-report.png', note:'满足前序和收料条件后点击“开始加工”;加工中的任务可以暂停或进入“报工结束”。报工弹窗逐行显示真实工序、分配数、已完成数、上序合格数、报工日期时间、报工数量、操作人和二次工序说明。', overlays:'<div class="focus" style="left:18%;top:20%;width:64%;height:67%"></div><div class="caption" style="left:69%;top:14%">逐工序核对可报工数量后再提交</div>' },
{ title:'执行首检自检', image:'production-machining-first-check.png', note:'点击“首检自检”打开当前任务的真实检验记录,核对物料、订单、工序、检测数量、合格数、计划数量、检验人和检验时间;支持上一个、下一个、删除当前记录和关闭。', overlays:'<div class="focus" style="left:27%;top:24%;width:47%;height:58%"></div><div class="caption" style="left:75%;top:33%">翻页时每一页对应一件检验记录</div>' },
{ title:'继续序检、收检并追溯记录', image:'production-machining-first-check.png', note:'“序检自检”按同样的逐件分页方式记录过程检验;“收检”登记收料检验结果,“检验记录”用于回看首检、序检和收检明细。源码会按任务和检验类型加载对应记录。' },
{ title:'新增异常工时记录', image:'production-machining-abnormal-add.png', note:'先进入“异常工时”,再点击“新增异常工时”。真实表单自动带出生产订单、物料编码、物料名称、工序名称和指派对象,操作类别、开始时间、结束时间为必填项,并可填写工作内容和备注。', overlays:'<div class="focus" style="left:31%;top:24%;width:38%;height:62%"></div><div class="caption" style="left:70%;top:31%">红色星号字段必须完整填写</div>' },
{ title:'进入异常管控流程', image:'production-machining-abnormal-control.png', note:'点击“异常管控”进入流程面板;顶部统计待处理、我发起和已完成数量。“我发起的”列表显示真实流程状态,并提供发起新流程和查看进度入口。', overlays:'<div class="focus" style="left:20%;top:24%;width:61%;height:63%"></div><div class="caption" style="left:69%;top:18%">通过页签切换待办、发起和已处理流程</div>' },
{ title:'查看真实零件图纸', image:'production-machining-part-drawing.png', note:'选择任务后点击“零件图纸”,系统按物料编码读取图纸维护文件并在弹窗中显示;“工艺图纸”则读取工艺维护文件。若工艺图纸未上传会显示空白,因此示例使用已加载成功的真实零件图纸。', overlays:'<div class="focus" style="left:41%;top:30%;width:18%;height:43%"></div><div class="caption" style="left:61%;top:33%">可在图纸弹窗中缩放检查尺寸与技术要求</div>' },
{ title:'领料、退库后复查任务', note:'“领料”和“退库”会按当前生产订单和物料生成对应单据,提交前必须核对工位、物料和数量;完成业务动作后重新查询,确认收料状态、完成数和任务状态已同步刷新。' }
]),
productionAbnormal: productionView('过程异常管控','production-abnormal-control.png',[
{ title:'查看异常流程统计', note:'页面顶部汇总待我处理、我发起的和我已处理数量;统计卡与下方三个页签使用同一批流程数据。' },
{ title:'切换三个业务页签', image:'production-assembly-abnormal-control.png', note:'“待我处理”显示当前审批节点,“我发起的”显示流程状态和进度入口,“我已处理”用于追溯已完成的处理记录;截图中的“我发起的”页签已加载 6 条真实流程。', overlays:'<div class="focus" style="left:20%;top:24%;width:61%;height:64%"></div><div class="caption" style="left:69%;top:18%">点击页签立即切换对应流程列表</div>' },
{ title:'打开发起新流程表单', image:'production-abnormal-create.png', note:'在“我发起的”页签点击“发起新流程”,先选择优先级,填写流程标题和描述,再选择审批人;下方可按生产订单、产品编码和产品名称查询并绑定具体任务。', overlays:'<div class="focus" style="left:23%;top:25%;width:53%;height:67%"></div><div class="caption" style="left:69%;top:19%">流程内容、审批人和关联任务需要同时核对</div>' },
{ title:'查看真实流程进度', image:'production-abnormal-progress.png', note:'点击列表中的“查看进度”,详情弹窗显示流程名称、发起人、当前状态、关联生产订单、物料、工序、审批流程和审批记录;示例流程已完成并保留审批人、意见和处理时间。', overlays:'<div class="focus" style="left:29%;top:25%;width:42%;height:57%"></div><div class="caption" style="left:72%;top:31%">从审批记录核对处理人、意见和时间</div>' },
{ title:'处理或转办待办任务', note:'待办卡片提供“处理”和“转办”;处理时填写意见,转办时选择目标人员和原因,提交后该节点归属随之更新。' },
{ title:'确认完结流程', note:'发起人可对处理中流程执行“完结”,填写完结说明并确认;完结后流程进入已处理记录,不再出现在待办中。' }
]),
productionHoursCheck: productionView('工时校验','production-work-hours-check.png',[
{ title:'筛选待校验工时', note:'按任务ID、生产订单、操作人、开始时间、校验状态、异常、性质和加班类型查询默认条件无结果时可切换为“全部”核对历史记录。' },
{ title:'核对工时原始字段', note:'逐行核对人员、订单、物料、工序、工位、报工类型、数量、开始/结束时间、设备工时、人员工时、工序说明和异常说明。', overlays:'<div class="focus" style="left:5%;top:31%;width:92%;height:16%"></div><div class="caption" style="left:6%;top:25%">校验前先确认原始报工信息</div>' },
{ title:'选择需要校验的记录', note:'勾选目标工时行后再执行批量动作;校验状态、最后编辑人和最后编辑时间用于判断记录是否已被处理。' },
{ title:'执行一键校验', note:'“一键校验”按源码计算工时阶段偏移、绑定设备和资源有效性,再保存校验结果;应先确认选中范围,避免误批量。' },
{ title:'使用直接校验', note:'“直接校验”用于具备相应权限的快捷处理;处理完成后重新查询,确认校验状态及最后编辑信息已经更新。' }
]),
productionOutsource: productionView('外协管理','production-outsource.png',[
{ title:'查询外协任务', note:'按生产订单、计划号、物料编码、物料名称、工序名称、同步状态和完成状态查询外协任务。' },
{ title:'核对同步与收发数量', note:'列表同时显示上序合格数、指派数量、打印数量、发料数量、收货数量、单重、打印次数和备注;操作前先确认单据状态。' },
{ title:'派工并同步 SAP', note:'勾选目标外协行后执行“派工并同步SAP”源码会按任务集合生成同步数据完成后刷新同步状态。' },
{ title:'打印并登记打印次数', note:'“打印”按选中任务生成外协单,并更新打印次数;再次打印前先检查历史打印记录和数量。' },
{ title:'打开真实发料窗口', image:'production-outsource-issue.png', note:'在具备发料条件的任务行点击“发料”。订单 898 的真实弹窗会带出物料编号、分配数 20、上序合格数 5、已发料 5、发料工位和操作人填写本次发料前先核对不能超过上序可用数量。', overlays:'<div class="focus" style="left:34%;top:25%;width:32%;height:49%"></div><div class="caption" style="left:67%;top:32%">订单、上序合格数和已发料数必须一致</div>' },
{ title:'打开真实收货窗口', image:'production-outsource-receive.png', note:'点击同一任务的“收货”,弹窗显示生产订单、物料编号、发料数、已收货、收货工位和操作人;本次收货数量应以实际到货和质检结果为准,确定后列表累计收货数会刷新。', overlays:'<div class="focus" style="left:34%;top:25%;width:32%;height:45%"></div><div class="caption" style="left:67%;top:32%">先核对已发料和已收货,再录入本次数量</div>' },
{ title:'编辑外协打印和备注信息', image:'production-outsource-edit.png', note:'点击“编辑”打开打印数量、单重和备注维护窗口;这些字段会影响外协单打印和重量信息,保存前应结合当前任务的打印次数和物料信息核对。', overlays:'<div class="focus" style="left:34%;top:25%;width:32%;height:25%"></div><div class="caption" style="left:67%;top:31%">打印数量、单重和备注分别维护</div>' },
{ title:'查看真实历史发料', image:'production-outsource-history.png', note:'点击“历史记录”打开真实历史发料窗口,按时间查看数量,并可从记录行再次打印对应单据。', overlays:'<div class="focus" style="left:29%;top:25%;width:42%;height:43%"></div><div class="caption" style="left:31%;top:20%">历史窗口保留时间、数量和打印入口</div>' },
{ title:'打开零件和工艺图纸', note:'“查看图纸”读取物料图纸,“工艺图纸”读取工艺维护图纸;没有文件时应回到图纸维护检查物料编码和上传记录。' }
]),
productionPersonnelBinding: productionView('人员绑定','production-personnel-binding.png',[
{ title:'查询工位绑定清单', note:'按工位名称或工位号查询,列表显示每个工位当前绑定人员;绑定关系决定加工中心等页面的默认工位范围。' },
{ title:'打开绑定人员窗口', image:'production-personnel-binding-dialog.png', note:'点击目标工位的“绑定人员”,真实弹窗左侧显示可选人员,右侧显示该工位已绑定人员。', overlays:'<div class="focus" style="left:43%;top:26%;width:15%;height:30%"></div><div class="caption" style="left:59%;top:31%">当前示例工位已有两名绑定人员</div>' },
{ title:'左右转移人员', image:'production-personnel-binding-dialog.png', note:'选中人员后用中间箭头加入或移出右侧列表;可按姓名定位人员,避免在长列表中误选。' },
{ title:'确认并刷新绑定结果', image:'production-personnel-binding-dialog.png', note:'点击“确定”保存当前工位绑定;返回清单重新查询,确认绑定人员列与弹窗右侧一致。' }
]),
productionAssembly: productionView('装配中心','production-assembly-center.png',[
{ title:'查询装配任务', note:'按任务、订单、物料、计划、工位和任务状态查询;列表显示齐套、发料、拣配、加急、分配数、送检数、上序合格数和二次派工。' },
{ title:'选择任务并判断可操作状态', note:'选中任务后,根据任务状态、加工状态、齐套和上序合格数判断可执行操作;红色行用于提示需要关注的任务。', overlays:'<div class="focus" style="left:5%;top:29%;width:84%;height:38%"></div><div class="caption" style="left:6%;top:24%">先看齐套、发料和任务状态,再执行底部动作</div>' },
{ title:'打开真实缺料单', image:'production-assembly-shortage.png', note:'点击任务行中的“缺料”或选中任务后点击底部“缺料”,弹窗按当前任务列出缺件物料名称、物料编号和缺少数量。示例任务 8673 实际缺少同轴阀组插装组件 48 件。', overlays:'<div class="focus" style="left:20%;top:25%;width:61%;height:19%"></div><div class="caption" style="left:21%;top:20%">按缺料单逐项处理领料或齐套问题</div>' },
{ title:'开始、结束并报工', note:'开始加工后可记录辅助/生产过程,报工时填写数量和说明;提交成功会更新送检数、完成数和加工状态。' },
{ title:'执行真实首检自检', image:'production-assembly-first-check.png', note:'“首检自检”弹窗自动带出物料、销售订单、物料编号、生产订单和装配工序;填写检测数量、合格数、不合格数,并核对计划生产数、检验人和检验时间。底部支持逐件翻页和删除当前记录。', overlays:'<div class="focus" style="left:20%;top:25%;width:60%;height:56%"></div><div class="caption" style="left:69%;top:19%">当前检测件数和总件数显示在弹窗底部</div>' },
{ title:'继续序检、收检和送检', image:'production-assembly-first-check.png', note:'“序检自检”按检测项目记录过程结果,“收检”汇总合格与不合格数量;右侧“送检”会打开送检数量窗口。各动作都依赖当前选中的任务,提交后应检查送检数是否更新。' },
{ title:'新增装配异常工时', image:'production-assembly-abnormal-add.png', note:'点击“异常工时”后选择“新增异常工时”,真实弹窗自动带出订单 8673、物料、装配工序和指派对象操作类别、开始时间和结束时间必填工作内容和备注用于说明停工原因。', overlays:'<div class="focus" style="left:31%;top:24%;width:38%;height:63%"></div><div class="caption" style="left:70%;top:31%">系统已自动带出当前装配任务信息</div>' },
{ title:'进入装配异常管控流程', image:'production-assembly-abnormal-control.png', note:'“异常管控”打开与过程异常管控互通的流程面板;“我发起的”页签显示 6 条真实流程及完成、拒绝、取消等状态,并可发起新流程或进入查看进度。', overlays:'<div class="focus" style="left:20%;top:24%;width:61%;height:64%"></div><div class="caption" style="left:69%;top:18%">真实流程列表可继续打开查看进度</div>' },
{ title:'领料退库和查看图纸', note:'装配任务支持领料、退库、零件图纸和工艺图纸;提交单据前核对订单、物料、工位和数量。' }
]),
productionShift: productionView('班次管理','production-shift.png',[
{ title:'查看班次和绑定人员', note:'班次清单显示班次名称、起止时间及绑定人员;展开后可核对每个班次当前成员。' },
{ title:'添加新班次', image:'production-shift-add.png', note:'点击“添加新班次”,页面插入一条真实编辑行,默认时间为 08:00 至 17:00。', overlays:'<div class="focus" style="left:5%;top:22%;width:90%;height:12%"></div><div class="caption" style="left:6%;top:17%">新增行直接出现在班次列表顶部</div>' },
{ title:'填写名称和时间', image:'production-shift-add.png', note:'填写唯一班次名称并选择开始、结束时间;跨日班次也要按实际上下班时刻维护。' },
{ title:'保存或取消编辑', image:'production-shift-add.png', note:'“保存”提交新增/修改内容,“取消”放弃本次编辑并恢复原数据;示例截图未执行保存。' },
{ title:'打开班次人员绑定窗口', image:'production-shift-binding.png', note:'点击目标班次的“绑定”进入双列表弹窗;真实示例为 8/4 班次03:30 - 04:30左侧显示 131 名可选人员,右侧显示当前 4 名已选人员。', overlays:'<div class="focus" style="left:34%;top:25%;width:32%;height:47%"></div><div class="caption" style="left:67%;top:31%">先确认班次名称和时间,再调整人员</div>' },
{ title:'搜索并左右转移班次人员', image:'production-shift-binding.png', note:'左右两侧都可按姓名或工号搜索;勾选人员后使用中间箭头加入或移出已选人员,右上角数量用于核对变更前后的人员总数。' },
{ title:'确认班次绑定结果', image:'production-shift-binding.png', note:'点击“确定”才会保存当前双列表结果;返回班次清单后检查绑定人员标签是否与右侧已选人员一致。示例仅打开窗口,没有提交变更。' },
{ title:'编辑或删除班次', note:'“编辑”修改已有班次名称和时间;“删除”前先确认没有继续使用该班次,系统确认后才执行。' }
]),
productionTimesheet: productionView('工时报表','production-timesheet.png',[
{ title:'按业务条件查询工时', note:'按合同号、生产订单、物料、工序、操作人和日期范围查询;当前示例订单 8829 已加载真实工时。' },
{ title:'查看项目工时', note:'“项目工时”按合同、产品、工序和工时类型分层汇总计划数量、工时、操作人及起止时间,顶部显示当前总工时。', overlays:'<div class="focus" style="left:4%;top:27%;width:93%;height:48%"></div><div class="caption" style="left:5%;top:22%">项目树可展开到具体工时记录</div>' },
{ title:'切换作业者工时', image:'production-timesheet-operator.png', note:'“作业者工时”按操作人、日期和任务分组,查看订单、工序、类型、报工数量、班次、起止时间和工时。', overlays:'<div class="focus" style="left:4%;top:27%;width:93%;height:62%"></div><div class="caption" style="left:5%;top:22%">逐级展开操作人和工作日期</div>' },
{ title:'切换任务工时', image:'production-timesheet-task.png', note:'“任务工时”按生产任务汇总不同操作人的报工记录,适合核对同一订单工序的人工投入和报工次数。' },
{ title:'切换设备工时', image:'production-timesheet-device.png', note:'“设备工时”按设备/工位维度展示运行工时、任务和操作人,用于对照人工工时与设备占用。' },
{ title:'核对类型汇总与总工时', note:'每个页签重新计算当前工时类型汇总和总工时;切换页签后应等待数据加载完成再读取汇总。' },
{ title:'按当前页签导出 Excel', note:'“Excel导出”使用当前查询条件和当前页签结构生成文件导出前先核对页签、总工时及展开层级。' }
]),
productionUrgent: productionView('加急件管理','production-urgent.png',[
{ title:'查询未完成加急件', note:'按销售订单、生产订单、物料编码、转至状态和完成状态查询;默认列表以红色突出需要处理的加急任务。' },
{ title:'核对加急生产数据', note:'列表显示工序、计划生产数、加急数量、收检数量、合格/不合格数、检验人员和检验时间。', overlays:'<div class="focus" style="left:5%;top:28%;width:78%;height:58%"></div><div class="caption" style="left:6%;top:23%">蓝色加急数量可打开对应明细</div>' },
{ title:'打开真实加急明细', image:'production-urgent-detail.png', note:'点击加急数量打开“加急明细”,核对来源生产订单、加急数量和物料编号;示例显示真实订单 5226。', overlays:'<div class="focus" style="left:20%;top:25%;width:62%;height:20%"></div><div class="caption" style="left:35%;top:46%">明细用于确认加急数量的具体来源</div>' },
{ title:'执行转至', note:'“转至”按当前行更新流转状态;执行前先确认生产订单和物料,操作后使用转至状态重新查询。' },
{ title:'标记完成', note:'“完成”将加急任务转为完成状态;这是业务写入动作,应在合格、收检和数量均核对无误后执行。' }
]),
productionPicking: productionView('拣配任务','production-picking.png',[
{ title:'查询拣配任务', note:'按项目、计划号、生产订单、产成品物料和日期条件查询拣配任务。' },
{ title:'核对计划与齐套时间', note:'逐行查看计划生产数、加急数量、计划数量、拣配日期、预计齐套时间、检验人员和检验时间。', overlays:'<div class="focus" style="left:5%;top:28%;width:90%;height:55%"></div><div class="caption" style="left:6%;top:23%">列表已有真实拣配任务数据</div>' },
{ title:'识别加急任务', note:'加急数量用于区分普通和加急拣配需求;结合预计齐套时间判断备料优先顺序。' },
{ title:'查询后跟踪处理结果', note:'源码当前页面以查询和状态展示为主;“转至/完成”仅存在于已注释模板,不作为当前可操作按钮演示。' }
]),
productionPurchaseOutsource: productionView('采购外协管理','production-purchase-outsource.png',[
{ title:'查询采购外协任务', note:'按生产订单、计划号、物料编码、物料名称、工序名称、同步状态和单据状态查询采购外协记录。' },
{ title:'核对单据和数量', note:'列表显示单据状态、计划时间、上序合格数、指派/打印/发料/收货数量、单重、打印次数和备注。' },
{ title:'派工同步并打印', note:'勾选任务后执行“派工并同步SAP”同步成功后可打印外协单打印次数会随成功操作更新。' },
{ title:'打开采购外协发料窗口', image:'production-purchase-outsource-issue.png', note:'查询订单 898 后点击“发料”,真实弹窗带出生产订单、物料编号、分配数 20、上序合格数 5、已发料 5、发料工位和操作人本次发料数必须在可发范围内。', overlays:'<div class="focus" style="left:34%;top:25%;width:32%;height:49%"></div><div class="caption" style="left:67%;top:32%">示例订单 898 已加载完整发料数据</div>' },
{ title:'打开采购外协收货窗口', image:'production-purchase-outsource-receive.png', note:'点击订单 898 的“收货”,核对发料数 5、已收货 5、收货工位和操作人后填写本次收货“更新”用于重新取得当前外协数据执行后应再次查询核对数量。', overlays:'<div class="focus" style="left:34%;top:25%;width:32%;height:45%"></div><div class="caption" style="left:67%;top:32%">收货数量应结合质检记录确认</div>' },
{ title:'查看真实收发记录', image:'production-purchase-outsource-records.png', note:'点击“收发记录”打开真实明细,按类型、时间、数量和操作人追溯每次发料/收货。', overlays:'<div class="focus" style="left:29%;top:25%;width:41%;height:42%"></div><div class="caption" style="left:31%;top:20%">示例记录显示发料 100 及操作人</div>' },
{ title:'查看真实质检记录', image:'production-purchase-outsource-quality.png', note:'点击订单 898 的“质检记录”,弹窗显示收检和终检两条真实数据,包括检验数量 5、合格数 5、不合格数 0、操作人和精确时间用于判断当前任务是否满足收货要求。', overlays:'<div class="focus" style="left:30%;top:31%;width:40%;height:15%"></div><div class="caption" style="left:71%;top:34%">收检和终检均合格后再核对收货</div>' },
{ title:'打开零件和工艺图纸', note:'“查看图纸”加载物料图纸,“工艺图纸”加载工艺文件;两者数据源不同,应按现场需要分别查看。' }
]),
productionWorkhours: productionView('工时查询','production-workhours.png',[
{ title:'按订单和日期查询', note:'按生产订单、合同、物料、工序、操作人和日期查询工序工时;当前示例订单 8829 返回真实数据。' },
{ title:'展开工序工时树', note:'“工序工时”按订单、任务和操作记录组织层级,左侧箭头用于逐级展开或收起。', overlays:'<div class="focus" style="left:4%;top:28%;width:93%;height:48%"></div><div class="caption" style="left:5%;top:23%">展开后查看每道工序和报工明细</div>' },
{ title:'核对报工记录字段', note:'明细包含任务描述、日期、班次、操作人、报工类型、数量、工位、工时、程序时间、单件工时和工艺工时。' },
{ title:'查看产品与订单信息', note:'同一树中保留合同号、订单号、产品编码、产品名称和工序名称,便于把工时追溯到具体生产任务。' },
{ title:'确认总工时', note:'页面实时汇总当前查询结果总工时;修改条件重新查询后,应等待树加载完成再读取合计。' }
]),
productionSettlement: productionView('结算工时','production-settlement.png',[
{ title:'查询可结算工时', note:'按生产订单、物料、工位、操作人和日期查询;示例订单 8750 已加载真实结算工时。' },
{ title:'展开任务层级', note:'主行汇总生产订单和任务,展开后查看具体工位、操作人及报工明细;箭头状态决定当前导出层级。', overlays:'<div class="focus" style="left:4%;top:27%;width:93%;height:38%"></div><div class="caption" style="left:5%;top:22%">真实任务树可逐级展开</div>' },
{ title:'核对报工与辅助工时', note:'分别查看报工工时、辅助工时、报工/辅助完成数和合计工时,避免把辅助作业重复计入。' },
{ title:'核对单件结算值', note:'装夹时间、程序时间、结算报工单件工时和结算辅助单件工时为结算依据,应与操作人及完成数量一起核对。' },
{ title:'导出当前结算结果', note:'“导出”按当前查询结果和树结构生成 Excel文件名包含日期导出前确认筛选条件及展开范围。' }
]),
productionDeviceStatus: productionView('机加正在进行中','production-device-status.png',[
{ title:'查询正在加工任务', note:'按工位、生产订单、计划号、销售订单、物料和加工状态筛选当前机加任务。' },
{ title:'读取现场加工状态', note:'列表展示工位、工序、分配数、上序合格数、加工状态、收料状态、下序名称、完成数和人员名称。', overlays:'<div class="focus" style="left:5%;top:27%;width:91%;height:55%"></div><div class="caption" style="left:6%;top:22%">绿色状态用于快速识别正在加工任务</div>' },
{ title:'关注计划和开工时间', note:'任务行同时显示开工时间、计划开始、计划完成、优先、加急数量和备注,用于判断现场是否偏离计划。' },
{ title:'翻页查看全部进行中任务', note:'使用每页条数和页码浏览完整结果;切换页码会重新调用查询,需等待加载结束。' }
]),
productionAssemblyStatus: productionView('装配状态','production-assembly-status.png',[
{ title:'查询装配状态', note:'按人员、工位、生产订单、计划号、销售订单、物料和状态查询正在进行的装配任务。' },
{ title:'核对任务和质量数量', note:'列表显示分配数、上序合格数、送检数、收检合格/不合格数和入库数量,完整反映装配进度。', overlays:'<div class="focus" style="left:5%;top:26%;width:91%;height:58%"></div><div class="caption" style="left:6%;top:21%">颜色标签区分齐套、发料和拣配状态</div>' },
{ title:'检查物料保障状态', note:'结合发料状态、拣配状态和齐套字段判断装配能否持续;缺料任务应先处理物料保障。' },
{ title:'对照计划时间和备注', note:'开始时间、计划开始、计划完成及备注用于判断延期风险;分页可浏览全部在制装配任务。' }
]),
productionOutsourceReport: productionView('外协报表','production-outsource-report.png',[
{ title:'按条件查询外协报表', note:'按供应商、生产订单、计划号、合同号、物料、工序、日期、执行状态等条件查询;示例订单 898 返回真实数据。' },
{ title:'核对价格和金额', note:'报表显示材质、数量、单价、金额、发料日期、要求到货日期、预计到货、收货日期和收货数量。', overlays:'<div class="focus" style="left:4%;top:30%;width:93%;height:22%"></div><div class="caption" style="left:5%;top:25%">真实供应商记录包含单价和金额</div>' },
{ title:'核对质量与收发数量', note:'合格数量、报废数量、发料数量、收料数量和开票状态共同反映外协执行结果。' },
{ title:'应用执行状态规则', note:'页面按执行状态合并和筛选记录;切换状态后必须重新查询,确认屏幕行数和合计范围。' },
{ title:'导出当前查询结果', note:'“Excel导出”已按页面同一查询条件、执行状态过滤及合并规则生成数据导出前先确认页面结果正是所需范围。' }
]),
productionWorkhoursEdit: productionView('工时修正','production-workhours-edit.png',[
{ title:'筛选需要修正的工时', note:'按任务ID、生产订单、操作人、开始时间、校验状态、异常、性质和加班类型查询工时记录。' },
{ title:'核对原始工时列表', note:'列表显示工时ID、人员、订单、物料、工序、工位、报工类型、数量、起止时间、设备/人员工时及最后编辑信息。' },
{ title:'打开真实编辑任务窗口', image:'production-workhours-edit-dialog.png', note:'点击“修改”打开带真实任务数据的编辑窗口;可核对操作数值、起止时间、设备工时、人员工时和班次标准工时。', overlays:'<div class="focus" style="left:31%;top:25%;width:37%;height:69%"></div><div class="caption" style="left:69%;top:32%">已校验记录会限制再次提交</div>' },
{ title:'计算并提交修正工时', image:'production-workhours-edit-dialog.png', note:'调整开始/结束时间后,源码重新计算人员工时;确认设备工时和班次标准工时后再点“确定”,保存人和时间会写入列表。' },
{ title:'新增工时记录', image:'production-workhours-add.png', note:'“新增工时记录”依次选择操作类别、生产订单、工序、操作人和起止时间,并填写工作内容、备注;物料和工位随订单工序带出。', overlays:'<div class="focus" style="left:31%;top:25%;width:37%;height:66%"></div><div class="caption" style="left:69%;top:32%">带红色星号的字段必须填写</div>' },
{ title:'查看设备工时明细', note:'每行“设备工时”用于查询关联设备的工位名称、累计分钟、设备状态和累计秒数;无关联数据时应返回列表换一条有设备记录的任务。' }
]),
productionAgv: productionView('物料机器人','production-agv.png',[
{ title:'查看实时 AGV 任务', note:'主页面显示任务编号、AGV 编号、物料、当前位置、目标点位、状态、进度、速度、电量、操作人和更新时间。' },
{ title:'生成物料搬运任务', note:'选择物料、起始点和目标点后点击“生成任务”;源码保存任务并刷新实时数据,未选择完整信息时会阻止提交。' },
{ title:'开始或取消任务', note:'待执行任务显示“开始”和“取消”;开始会调用 AGV 移动并更新状态,取消前应确认设备尚未执行关键搬运。' },
{ title:'手工刷新与自动刷新', note:'“刷新实时”立即重取任务数据;页面同时启用定时刷新,状态、进度、速度和电量会持续变化。' },
{ title:'打开真实任务历史', image:'production-agv-history.png', note:'“历史记录”按物料和时间范围查询已完成、已取消等任务,显示起终点、开始/结束时间、耗时和操作人。', overlays:'<div class="focus" style="left:14%;top:25%;width:72%;height:61%"></div><div class="caption" style="left:15%;top:20%">真实历史记录保留每次搬运状态和耗时</div>' },
{ title:'管理真实 AGV 点位', image:'production-agv-points.png', note:'“点位管理”展示点位编码、名称、类型、区域、X/Y 坐标、描述和状态;示例已有 A1、A2、A3、B1。', overlays:'<div class="focus" style="left:19%;top:25%;width:62%;height:58%"></div><div class="caption" style="left:20%;top:20%">点位是生成搬运任务的起点和终点</div>' },
{ title:'新增、编辑或删除点位', image:'production-agv-points.png', note:'新增/编辑时维护点位编码、名称、类型、区域、坐标、描述和状态;删除启用点位前先确认没有任务继续使用。' }
]),
productionFormality: productionView('手续确认报表','production-formality.png',[
{ title:'查询待确认手续', note:'按生产订单、销售订单、计划号、物料和任务条件查询手续确认清单。' },
{ title:'核对任务流转字段', note:'列表同时显示齐套、发料、拣配、加急数量、分配数、送检数、任务状态、指派对象、计划时间和二次派工。', overlays:'<div class="focus" style="left:5%;top:26%;width:92%;height:61%"></div><div class="caption" style="left:6%;top:21%">红色行表示仍需关注的手续任务</div>' },
{ title:'确认工序和手续状态', note:'结合工序名称、上序合格数、入库数量与“手续确认”列判断是否具备确认条件。' },
{ title:'执行已完成确认', note:'点击“已完成”会调用手续确认保存过程,这是业务写入动作;必须核对当前行后再确认,完成后重新查询验证状态。' }
]),
productionDelivery: productionView('发货通知列表','production-delivery.png',[
{ title:'查询发货通知', note:'按销售订单、生产订单、物料和要求发货日期查询发货通知列表。' },
{ title:'核对订单和交期', note:'列表显示订单数量、要求发货日期、完成数量、合格数量和入库数量,用于判断交付缺口。', overlays:'<div class="focus" style="left:5%;top:26%;width:92%;height:62%"></div><div class="caption" style="left:6%;top:21%">真实订单按发货准备状态集中展示</div>' },
{ title:'判断齐套与派发状态', note:'齐套、派发、发料状态和装配开工使用格式化状态显示,可快速识别尚未备齐或尚未开工的订单。' },
{ title:'追踪责任人与数量变化', note:'操作人列用于追溯最近业务处理;重复查询可跟踪完成、合格和入库数量直至满足发货要求。' }
]),
qualityFinal: qualityView('终检','quality-final.png',[
{ title:'按终检条件查询', note:'可组合生产订单、销售订单、物料编码、物料名称、物料类型、检测日期、检测结果、检测状态和检测人查询终检任务。' },
{ title:'核对待检数量与状态', note:'列表集中显示计划数量、完成数量、送检数量、已检数量、合格数、不合格数、放行数和检测状态;红色记录需要优先核对。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:56%"></div><div class="caption" style="left:4%;top:20%">先核对数量关系,再进入终检</div>' },
{ title:'打开真实终检窗口', image:'quality-final-dialog.png', note:'点击行内“终检”打开真实检验窗口,窗口带入生产订单、产品信息、任务数量和当前质检累计值。', overlays:'<div class="focus" style="left:24%;top:17%;width:52%;height:69%"></div><div class="caption" style="left:26%;top:12%">终检窗口已加载当前任务数据</div>' },
{ title:'填写终检结果', image:'quality-final-dialog.png', note:'填写本次检数、合格数、不合格数、放行数量、检测人、检测时间和检测说明;各数量之和必须与本次检验范围一致。' },
{ title:'查看加急和终检记录', note:'加急数量可进入加急明细;“终检记录”用于回看同一任务既往检验结果、操作人和时间,避免重复检验。' },
{ title:'确认后重新查询', note:'终检保存会写入业务数据。提交前再次核对检验数量和放行数,保存成功后重新查询,确认已检数与检测状态同步更新。' }
]),
qualityPurchaseIncoming: qualityView('采购入库检','quality-purchase-incoming.png',[
{ title:'查询采购来料任务', note:'按单据编号、采购订单、物料、检测日期、检测结果、检测状态和检测人筛选采购入库检任务。' },
{ title:'判断本次可检数量', note:'列表显示到货仓位、加急数量、到货数、已检数、剩余数、合格数和不合格数;本次检数不得超过剩余数。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:59%"></div><div class="caption" style="left:4%;top:20%">重点核对到货数、已检数和剩余数</div>' },
{ title:'核对加急来料', note:'加急数量可打开明细,确认加急来源和数量后再安排检验,避免普通批次占用加急件检验进度。' },
{ title:'打开真实入库检窗口', image:'quality-purchase-incoming-dialog.png', note:'点击“入库检”后,真实窗口带入采购订单、物料、到货数量、已检数量和剩余数量。', overlays:'<div class="focus" style="left:24%;top:13%;width:52%;height:75%"></div><div class="caption" style="left:26%;top:9%">当前示例到货 5、剩余 5</div>' },
{ title:'填写来料检验结果', image:'quality-purchase-incoming-dialog.png', note:'填写本次检数、合格数、不合格数、放行数量、检测人、检测时间及说明,确认总数不超过当前剩余量后再保存。' },
{ title:'查看图纸并复核', note:'行内图纸入口用于核对物料技术文件;图纸未上传时应先补齐资料,不以空白图纸代替检验依据。保存后重新查询剩余数和状态。' }
]),
qualitySalesReturn: qualityView('销售退货检','quality-sales-return.png',[
{ title:'查询销售退货任务', note:'按销售订单、物料、日期、检测状态、检测结果、检测人和物料类别查询退货检记录。' },
{ title:'核对退货批次', note:'查看订单、产品、退货数量、已检数量、合格数、不合格数、放行数和检测状态,先确认本次处理的真实退货批次。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:34%"></div><div class="caption" style="left:4%;top:20%">真实退货记录已加载</div>' },
{ title:'打开真实退货检窗口', image:'quality-sales-return-dialog.png', note:'点击“退货检”进入检验窗口,系统自动带入销售退货任务和累计检验数据。', overlays:'<div class="focus" style="left:25%;top:15%;width:50%;height:72%"></div><div class="caption" style="left:27%;top:10%">在当前批次上登记退货检验</div>' },
{ title:'登记退货检验结果', image:'quality-sales-return-dialog.png', note:'填写本次检数、合格数、不合格数、放行数、检测人、检测时间和说明;保存前核对处置数量与退货数量。' },
{ title:'分别查看零件和工艺图纸', note:'“零件图纸”和“工艺图纸”读取不同资料,退货原因涉及尺寸或工序时应分别查看,完成后重新查询确认检测状态。' }
]),
qualityMaterialReturn: qualityView('原材料退库检','quality-material-return.png',[
{ title:'查询原材料退库任务', note:'按单据编号、采购订单、物料、日期、检测结果、检测状态、检测人和物料类别筛选退库检任务。' },
{ title:'核对退库与累计检验数量', note:'列表展示退库数量、已检数、剩余数、合格数、不合格数、放行数和检验状态,用于确认本次可处理数量。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:48%"></div><div class="caption" style="left:4%;top:20%">退库任务按批次显示真实数据</div>' },
{ title:'打开真实退库检窗口', image:'quality-material-return-dialog.png', note:'点击“退库检”打开真实窗口,系统带入原材料退库单、物料和累计检验值。', overlays:'<div class="focus" style="left:24%;top:14%;width:52%;height:74%"></div><div class="caption" style="left:26%;top:9%">退库检窗口对应当前选中批次</div>' },
{ title:'填写退库检验结果', image:'quality-material-return-dialog.png', note:'登记本次检数、合格数、不合格数、放行数、检测人、检测时间和检测说明,数量不得超过剩余待检数。' },
{ title:'保存并复核状态', note:'保存属于业务写入,确认数量和检测结论后提交;返回列表重新查询,核对已检数、剩余数及检测状态是否正确更新。' }
]),
qualityProcessReceive: qualityView('序检收检','quality-process-receive.png',[
{ title:'查询工序送检任务', note:'可按生产订单、销售订单、物料、物料类型、检测结果、检测人、检测状态和物料类别查询序检收检任务。' },
{ title:'核对工序和工位', note:'列表显示工序名称、工位、加急数、完成数、送检数、已检数、合格数、不合格数和放行数;必须在正确工序上收检。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:57%"></div><div class="caption" style="left:4%;top:20%">工序、工位和送检数量需同时核对</div>' },
{ title:'打开真实收检窗口', image:'quality-process-receive-dialog.png', note:'点击“收检”后,窗口带入订单、零件、工序、工位、送检数量和历史收检数据。', overlays:'<div class="focus" style="left:22%;top:11%;width:56%;height:79%"></div><div class="caption" style="left:24%;top:7%">序检收检窗口已加载工序信息</div>' },
{ title:'填写序检结果', image:'quality-process-receive-dialog.png', note:'填写本次检数、合格数、不合格数、放行数、检测人、检测时间和说明;检验数量不得大于本次送检可用数量。' },
{ title:'查看加急明细', note:'点击加急数量查看当前任务的加急来源和数量,质检人员可据此调整收检优先级。' },
{ title:'查看零件和工艺图纸', note:'零件图纸用于核对产品尺寸资料,工艺图纸用于核对当前工序要求;保存后返回列表复核送检数、已检数和状态。' }
]),
qualityStandard: qualityView('质量检验标准','quality-standard-add.png',[
{ title:'按标准维度查询', note:'按物料编码、工序名称和物料类别查询检验标准;新增前先查询,防止同物料、同工序重复维护。' },
{ title:'打开新增检验标准', note:'点击“新增”进入真实标准维护窗口,表单集中维护检验对象、量具和判定范围。', overlays:'<div class="focus" style="left:18%;top:10%;width:64%;height:78%"></div><div class="caption" style="left:20%;top:6%">真实新增检验标准表单</div>' },
{ title:'选择物料、工序和类别', note:'先选择物料,再选择适用工序和物料类别;三者共同决定标准应用到哪类检验任务。' },
{ title:'填写检验指标', note:'维护量具、检验项目、理论值、上限、下限、单位、检验比例和备注,数值范围应与图纸或工艺文件一致。' },
{ title:'编辑已有标准', note:'在查询结果中点击编辑可修改现有标准;修改前确认是否会影响正在执行的质检任务,并保留正确的适用范围。' },
{ title:'谨慎删除标准', note:'删除会移除检验依据。仅在确认标准未被业务使用或已有替代标准时执行,删除后重新查询核对。' }
]),
qualityOtherInbound: qualityView('其他入库检','quality-other-inbound.png',[
{ title:'切换状态并查询真实记录', note:'页面默认可能只显示未完成记录;将检测状态切换为“全部”后查询,可查看已完成和历史其他入库检数据。' },
{ title:'核对历史检验数量', note:'列表显示入库数量、已检数、合格数、不合格数、放行数、检测人、检测时间和状态,用于追溯其他入库检结果。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:56%"></div><div class="caption" style="left:4%;top:20%">状态切换为全部后已加载真实数据</div>' },
{ title:'打开真实入库检窗口', image:'quality-other-inbound-dialog.png', note:'点击“入库检”可进入选中记录的真实检验窗口,查看订单、产品和已有检验结果。', overlays:'<div class="focus" style="left:23%;top:12%;width:54%;height:77%"></div><div class="caption" style="left:25%;top:8%">窗口显示当前历史批次的检验数据</div>' },
{ title:'填写或复核检验结果', image:'quality-other-inbound-dialog.png', note:'根据任务状态填写或复核本次检数、合格数、不合格数、放行数、检测人、时间和说明;已完成记录不要重复提交。' },
{ title:'查看图纸并回到列表', note:'需要判定依据时查看零件或工艺图纸;关闭窗口后保留原查询条件,重新查询确认检测结果。' }
]),
qualityDetails: qualityView('质检明细','quality-details.png',[
{ title:'组合查询质检明细', note:'按订单号、零件编码、零件名称、质检类型、是否放行和检测日期查询收检、终检、来料检验及退库检验明细。' },
{ title:'追溯订单和检验位置', note:'列表把质检类型、销售订单、生产订单、工序、工位和供应商并列展示,可从一条记录追溯到具体业务位置。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:56%"></div><div class="caption" style="left:4%;top:20%">当前真实明细超过 3.9 万条</div>' },
{ title:'核对检验结论', note:'逐行查看检验数量、合格数、不合格数、放行数、检测人、检测时间和检测说明,发现数量关系异常时回到对应检验页面核实。' },
{ title:'使用分页定位记录', note:'结果量较大时使用页码和每页条数定位;调整筛选条件后页码会回到有效范围,避免把不同条件的页数混用。' },
{ title:'按当前条件导出 Excel', note:'“Excel导出”使用当前查询条件生成明细文件。导出前先查询并核对总条数确保页面结果与导出范围一致。' }
]),
qualityUnqualified: qualityView('不合格品处置','quality-unqualified.png',[
{ title:'查询待核对记录', note:'按零件编码、零件名称、检测人、质检类型和日期查询检验记录,再结合不合格数识别需要处置的记录。' },
{ title:'识别真正的不合格记录', note:'页面结果不代表每一行都不合格,必须查看质检类型、不合格数和检测说明,不能仅凭菜单名称判断。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:55%"></div><div class="caption" style="left:4%;top:20%">以不合格数和检验结论作为处置依据</div>' },
{ title:'追溯订单和责任位置', note:'通过销售订单、生产订单、工序、工位或供应商追溯问题来源,并核对检测人、检测时间和放行数量。' },
{ title:'打印不合格品处置单', note:'行内“打印”生成该条记录的标准处置单。打印前必须选准记录并核对产品、数量和检验结论。' },
{ title:'分页复查处置范围', note:'数据量较大时按日期和质检类型缩小范围,再分页核对,避免跨批次打印或遗漏待处置记录。' }
]),
qualityCenter: qualityView('质检报工','quality-center.png',[
{ title:'按任务状态查询', note:'按任务编号、生产订单、计划号、销售订单、物料、日期、送检状态、任务状态和工位复选项查询质检报工任务。' },
{ title:'核对任务与数量', note:'查看工序、工位、计划数、完成数、送检数、收检数、合格数、不合格数、放行数和任务状态;红色行表示需要重点关注。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:58%"></div><div class="caption" style="left:4%;top:20%">先选中正确任务,再执行报工或质检动作</div>' },
{ title:'选中任务并打开送检', image:'quality-center-send.png', note:'选中一行后点击“送检”,窗口显示生产订单、零件编码、计划数量、当前时间、送检数、操作工位和操作人。', overlays:'<div class="focus" style="left:26%;top:18%;width:48%;height:62%"></div><div class="caption" style="left:28%;top:13%">送检数不能超过当前可送检数量</div>' },
{ title:'打开真实收检窗口', image:'quality-center-receive.png', note:'点击“收检”进入检验登记窗口,填写本次检数、合格数、不合格数、放行数、检测人和时间。', overlays:'<div class="focus" style="left:23%;top:12%;width:54%;height:76%"></div><div class="caption" style="left:25%;top:8%">收检结果会改变任务质量数量</div>' },
{ title:'执行首件自检', note:'“首件自检”按当前物料和工序加载质量检验标准,可逐项录入实测值、判定结果和说明,并支持上一条、下一条及保存当前记录。' },
{ title:'执行过程自检', note:'“过程自检”同样按检验标准逐项记录中间过程结果;应先确认工序和检测项目,再保存当前项,避免把结果记到其他任务。' },
{ title:'查看质检记录和图纸', note:'“质检记录”回看当前任务历史收检、自检结果;零件图纸和工艺图纸分别提供产品与工序判定依据。' },
{ title:'新增异常工时记录', image:'quality-center-abnormal-add.png', note:'“异常工时”中的新增窗口维护操作类别、生产订单、物料、工序、指派对象、开始/结束时间、工作内容和备注。', overlays:'<div class="focus" style="left:25%;top:8%;width:50%;height:84%"></div><div class="caption" style="left:27%;top:4%">真实异常工时新增表单</div>' },
{ title:'谨慎执行任务状态动作', note:'开始、暂停、结束、送检、收检和异常工时保存都会写入业务数据。操作前核对选中行、操作人和数量,提交后重新查询验证状态。' }
]),
qualityTestAssembly: qualityView('测试装配任务','quality-test-assembly.png',[
{ title:'按装配任务类型查询', note:'任务类型可选全部、阀类或系统类,并可叠加生产订单、销售订单和物料条件查询测试装配任务。' },
{ title:'核对预计送检日期', note:'列表显示预计送检日期、计划开始时间和完成时间,用于识别应送检但尚未完成的装配任务。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:53%"></div><div class="caption" style="left:4%;top:20%">真实测试装配任务已加载</div>' },
{ title:'比较生产和质检数量', note:'计划数量、完成数量、检验数量、合格数和不合格数应连续对应;检验数落后于完成数时需要跟踪送检进度。' },
{ title:'按订单追溯任务', note:'使用生产订单、销售订单、物料编码和名称定位具体产品,结合任务类型区分阀类与系统类装配。' },
{ title:'导出当前任务清单', note:'导出前先完成查询并核对当前任务类型、订单条件和总条数,确保导出内容与页面筛选结果一致。' }
]),
qualityPunctual: qualityView('及时检验报表','quality-punctual.png',[
{ title:'查询及时检验记录', note:'按生产订单、销售订单、物料、物料类型、检测结果和检测人查询及时检验报表。' },
{ title:'比较检验与报工结束时间', note:'列表同时显示检测时间和报工结束时间,用于判断质检是否在规定时间内完成。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:38%"></div><div class="caption" style="left:4%;top:20%">真实报表记录已加载</div>' },
{ title:'查看逾期天数', note:'“逾期天数”直接反映延迟情况;结合完成数、检验数、合格数和不合格数判断是送检滞后还是检验未完成。' },
{ title:'核对供应商和收货单', note:'采购类记录通过供应商和采购收货单追溯来源,加急数量用于识别需要优先处理的批次。' },
{ title:'结合说明复核异常', note:'查看检测说明和检测人确认逾期原因;调整查询条件重新查询,核对目标记录仍在正确统计范围内。' }
]),
qualityWorkstationRate: qualityView('产品合格率(工位)','quality-workstation-rate.png',[
{ title:'查询工位送检任务', note:'按生产订单、销售订单、零件编码、零件名称和工序名称查询工位相关送检数据。' },
{ title:'理解页面统计范围', note:'页面提示仅显示预计送检日期小于或等于当天的任务,查看数据时需先确认当前日期和统计口径。', overlays:'<div class="focus" style="left:3%;top:18%;width:94%;height:62%"></div><div class="caption" style="left:4%;top:13%">真实列表按预计送检日期限制范围</div>' },
{ title:'区分任务类型和工位', note:'通过任务类型、工序和工位识别阀类、系统类或其他装配任务,避免把不同生产环节混合统计。' },
{ title:'比较关键时间节点', note:'对照计划开始、完成时间、齐套时间、钣金到货时间和预计送检日期,定位影响及时送检或合格率的前置环节。' },
{ title:'导出当前统计数据', note:'导出使用当前订单、物料和工序筛选结果;导出前重新查询并核对页面条数和日期范围。' }
]),
processProcedure: processView('工序管理','process-procedure.png',[
{ title:'查看工序基础清单', note:'页面加载全部工序名称,当前真实列表包含锯切、普车、数车、数铣、卧加、装配、焊接、检测等 36 项基础工序。', overlays:'<div class="focus" style="left:3%;top:18%;width:28%;height:70%"></div><div class="caption" style="left:32%;top:20%">工序是标准工艺和生产工艺的基础字典</div>' },
{ title:'打开新增工序窗口', image:'process-procedure-add.png', note:'点击“新增工艺”打开真实新增窗口,表单只维护工艺名称。', overlays:'<div class="focus" style="left:40%;top:27%;width:20%;height:24%"></div><div class="caption" style="left:61%;top:31%">填写唯一且清晰的工序名称</div>' },
{ title:'填写并确认工序名称', image:'process-procedure-add.png', note:'输入名称前先在现有清单中检查是否重复;“确定”会新增基础工序,保存后应回到列表核对。' },
{ title:'编辑现有工序', image:'process-procedure-edit.png', note:'点击行内编辑图标进入真实编辑窗口,系统带入当前工序名称;修改会影响后续工艺选择显示。', overlays:'<div class="focus" style="left:40%;top:27%;width:20%;height:24%"></div><div class="caption" style="left:61%;top:31%">编辑前确认工序是否已被工艺引用</div>' },
{ title:'谨慎删除基础工序', note:'行内删除图标会弹出确认并调用删除接口。只有确认该工序未被标准工艺、生产工艺和任务引用时才可删除。' },
{ title:'复核工序字典', note:'新增、编辑或删除成功后重新加载清单,确认名称、顺序和引用范围正确,再进入制定标准工艺页面使用。' }
]),
processStandardDevelop: processView('制定标准工艺','process-standard-develop.png',[
{ title:'选择物料并查询标准工艺', note:'在物料编码远程搜索框中选择物料后点击查询;当前真实示例已加载电磁同轴阀的“装配”标准工序。' },
{ title:'识别工艺编辑区域', note:'左侧是可选基础工序,右侧按顺序显示当前标准工艺;每行维护准备工时、标准工时、工时合计、工装量具、指定机床、车间、工序说明和备注。', overlays:'<div class="focus" style="left:12%;top:16%;width:84%;height:69%"></div><div class="caption" style="left:43%;top:11%">左选工序,右侧维护完整标准参数</div>' },
{ title:'插入或选择工序', note:'使用行内加号在当前位置插入一行,再从左侧工序清单选择工序;同一产品的工艺顺序应与实际加工流程一致。' },
{ title:'填写工时和资源', note:'准备工时与标准工时用于计算工时合计;工装量具、指定机床和车间从设备基础数据中选择,工序说明填写技术要求。' },
{ title:'调整工序顺序', note:'向上、向下图标会更新工艺顺序;调整后从第一道到最后一道逐项复核,避免工序顺序与现场流转相反。' },
{ title:'删除不适用工序', note:'减号删除当前标准工序。删除前确认它不是必须加工或检验环节,删除后检查剩余序号是否连续。' },
{ title:'查看真实工艺文件', image:'process-drawing-document.png', note:'“图纸”读取该物料对应的工艺文件;真实示例展示机械加工工艺过程卡,用于核对工序内容、设备和技术要求。', overlays:'<div class="focus" style="left:35%;top:5%;width:55%;height:92%"></div><div class="caption" style="left:6%;top:15%">工艺文件与标准工艺参数应保持一致</div>' },
{ title:'保存标准工艺', note:'“保存”会写入该物料的标准工艺。提交前核对工序名称、顺序、工时、资源和说明,保存后重新查询验证。' }
]),
processProduction: processView('生产工艺','process-production-order25.png',[
{ title:'组合查询生产订单工艺', note:'按生产订单、销售订单、物料编码、物料名称、计划号、任务状态、属性、下达日期和工艺状态查询;真实示例查询生产订单 25。' },
{ title:'核对订单与工艺状态灯', note:'列表显示计划数量、三类日期、加急状态、标准工艺、生产工艺和图纸状态;生成前先确认标准工艺已存在且生产工艺尚未生成。', overlays:'<div class="focus" style="left:3%;top:25%;width:94%;height:34%"></div><div class="caption" style="left:4%;top:20%">状态灯决定后续可以执行的工艺动作</div>' },
{ title:'打开真实生产工艺编辑器', image:'process-production-edit.png', note:'点击“编辑工艺”打开订单 25 的真实生产工艺窗口,带入物料编码、物料名称和当前工序。', overlays:'<div class="focus" style="left:14%;top:14%;width:72%;height:77%"></div><div class="caption" style="left:16%;top:9%">生产工艺只作用于当前订单和物料</div>' },
{ title:'核对原料信息', image:'process-production-edit.png', note:'窗口顶部原料区域按订单读取机加件子件的编码、材质、名称、计划数量、基本数量和库存量;有原料时先核对再编辑工序。' },
{ title:'维护工序参数', image:'process-production-edit.png', note:'每行可维护工序、准备工时、标准工时、工装量具、指定机床、车间、属性、工序说明和备注。' },
{ title:'插入、排序或删除工序', image:'process-production-edit.png', note:'使用加号插入、上下箭头排序、减号删除。源码会禁止删除已经存在生产任务的工序,避免破坏已下发任务。' },
{ title:'分别查看零件和工艺图纸', image:'process-drawing-view-document.png', note:'“零件图纸”打开尺寸和结构图,“工艺图纸”打开加工过程文件;二者数据源不同,应分别核对。' },
{ title:'保存或转为标准工艺', image:'process-production-edit.png', note:'“保存”更新当前订单生产工艺;“保存为标准工艺”把当前生产工艺沉淀为物料标准,执行前需确认其具备通用性。' },
{ title:'下发单道或全部任务', image:'process-production-edit.png', note:'行内“下发任务”只下发当前工序,顶部“下发任务”处理整套生产工艺;下发后工序删除会受到限制。' },
{ title:'批量生成生产工艺', note:'主列表勾选多条后可批量生成,源码仅处理已有标准工艺且尚无生产工艺的记录;提交后重新查询状态灯。' }
]),
processInquiry: processView('工艺查询','process-inquiry.png',[
{ title:'切换全部状态并查询', note:'按物料编码、生产订单、计划号、打印状态、拣配状态和属性查询工艺周转单;当前真实页面已切换“全部”并加载 20 条当前页数据。' },
{ title:'核对周转单主信息', note:'列表显示生产订单、计划号、物料名称、物料编码、加工数量和打印次数,用于确认要输出的周转单。', overlays:'<div class="focus" style="left:3%;top:24%;width:75%;height:60%"></div><div class="caption" style="left:4%;top:19%">打印前先选准生产订单和物料</div>' },
{ title:'按打印状态筛选', note:'任务状态可选全部、已打印、未打印;打印次数用于复核是否属于首次打印或补打。' },
{ title:'按拣配和属性筛选', note:'拣配状态可区分已拣配与未拣配,属性可区分机加件与装配件;组合条件用于缩小现场待打印范围。' },
{ title:'勾选需要打印的记录', note:'打印按钮只有勾选记录后才启用。打印前核对加工数量、要求日期和计划号,避免跨订单混选。' },
{ title:'打印工序周转单', note:'源码生成带公司标识、订单二维码、物料/原料信息、工序顺序、工时、工位和任务二维码的“工序周转单”。打印会更新打印次数,属于业务写入。' },
{ title:'分页复核打印结果', note:'使用每页条数和页码定位记录;打印完成后按“已打印”重新查询,核对打印次数已按实际操作更新。' }
]),
processTask: processView('工艺任务','process-task.png',[
{ title:'按全部状态查询任务订单', note:'按生产订单、销售订单、物料编码、物料名称、任务状态、属性和要求完工日期查询;切换“全部”后加载真实任务清单。' },
{ title:'判断任务生成条件', note:'列表通过标准工艺、生产工艺状态灯判断订单是否具备生成任务条件,同时显示计划数量、日期和加急状态。', overlays:'<div class="focus" style="left:3%;top:24%;width:94%;height:62%"></div><div class="caption" style="left:4%;top:19%">先确认工艺齐全,再生成任务</div>' },
{ title:'查看真实生产工艺详情', image:'process-task-production-detail.png', note:'点击“查看生产工艺”打开只读详情,展示工序名称、说明、准备工时、标准工时、合计、量具、机床、车间和备注。', overlays:'<div class="focus" style="left:17%;top:18%;width:66%;height:57%"></div><div class="caption" style="left:19%;top:13%">订单 25 的生产工艺详情</div>' },
{ title:'查看真实标准工艺详情', image:'process-task-standard-detail.png', note:'点击“查看标准工艺”打开该物料标准工艺,字段与生产工艺一致,便于在生成任务前比较差异。', overlays:'<div class="focus" style="left:17%;top:18%;width:66%;height:57%"></div><div class="caption" style="left:19%;top:13%">同一物料的标准工艺详情</div>' },
{ title:'比较两套工艺', note:'重点比较工序顺序、工时、工装量具、指定机床、车间和工序说明;生产工艺应反映当前订单的实际调整。' },
{ title:'勾选订单批量生成任务', note:'批量生成任务前勾选目标订单;源码逐条检查工艺状态并生成任务,未具备条件的记录不应强行处理。' },
{ title:'生成后重新查询', note:'生成任务会写入任务状态。提交前再次核对订单、物料和计划数量,完成后按“已下发”重新查询验证。' }
]),
processPartDrawing: processView('图纸维护','process-part-drawing.png',[
{ title:'查询零件图纸清单', note:'按一个或多个物料编码查询零件图纸;真实列表显示物料编号、名称、文件名、导入人和导入时间。' },
{ title:'核对图纸责任信息', note:'导入人和导入时间用于判断当前版本责任人及更新时间;删除前必须确认文件名称和物料编号完全对应。', overlays:'<div class="focus" style="left:3%;top:21%;width:70%;height:65%"></div><div class="caption" style="left:4%;top:16%">当前页面已加载真实图纸记录</div>' },
{ title:'打开单件上传窗口', image:'process-part-drawing-upload.png', note:'“零件图”打开真实上传窗口,可拖入或选择一个 PDF 文件,单文件不超过 100MB。', overlays:'<div class="focus" style="left:32%;top:24%;width:36%;height:48%"></div><div class="caption" style="left:34%;top:19%">未选择文件时不要点击确定</div>' },
{ title:'打开多物料上传窗口', image:'process-part-drawing-multi-upload.png', note:'“选零件上传零件图”先多选物料编码,再选择一个 PDF可将同一份图纸关联到多个明确物料。', overlays:'<div class="focus" style="left:31%;top:19%;width:38%;height:56%"></div><div class="caption" style="left:33%;top:14%">先选物料,再选择 PDF</div>' },
{ title:'处理已有图纸冲突', note:'源码在上传前逐个检查目标物料;已有图纸时弹出冲突提示,列出现有导入人,要求联系责任人处理后再上传。' },
{ title:'查看真实删除记录', image:'process-part-drawing-delete-records.png', note:'“查看删除记录”显示物料编号、原文件名、操作人、删除时间和备注,可按物料继续筛选。', overlays:'<div class="focus" style="left:20%;top:17%;width:60%;height:65%"></div><div class="caption" style="left:22%;top:12%">删除记录用于审计图纸版本变化</div>' },
{ title:'查看真实零件图', image:'process-drawing-view-document.png', note:'有查看权限的记录可打开实际 PDF真实示例展示衬套尺寸、公差、剖面和技术要求。' },
{ title:'谨慎执行删除', note:'删除按钮会永久移除当前指导文件并记录操作人、文件名和时间。必须确认有替代版本或确需作废后再执行。' },
{ title:'上传后复核列表', note:'上传成功后按物料重新查询,核对文件名、导入人和导入时间;出现冲突或上传失败时不得以旧图代替新版本。' }
]),
processDrawing: processView('工艺维护','process-drawing.png',[
{ title:'查询工艺图纸清单', note:'按物料编号查询工艺图,真实列表展示物料、文件名、导入人、导入时间以及查看和删除入口。' },
{ title:'区分工艺图与零件图', note:'本页数据来自工艺图纸存储,主要提供加工过程、工序和工装要求;不要把零件尺寸图误当作工艺文件。', overlays:'<div class="focus" style="left:3%;top:21%;width:70%;height:66%"></div><div class="caption" style="left:4%;top:16%">工艺维护当前有真实文件记录</div>' },
{ title:'查看真实工艺过程卡', image:'process-drawing-document.png', note:'点击“查看”打开实际机械加工工艺过程卡,核对零件名称、材料、工艺内容、设备、工装和审批信息。' },
{ title:'直接上传工艺图', image:'process-drawing-upload.png', note:'“工艺图”打开直接上传窗口,文件名用于识别目标,限制为单个 PDF 且不超过 100MB。', overlays:'<div class="focus" style="left:38%;top:25%;width:24%;height:47%"></div><div class="caption" style="left:63%;top:31%">选择正确 PDF 后才能确认</div>' },
{ title:'选择物料上传工艺图', image:'process-drawing-select-upload.png', note:'“选零件上传工艺图”增加物料编码选择,先明确文件归属,再拖入 PDF。', overlays:'<div class="focus" style="left:37%;top:21%;width:26%;height:53%"></div><div class="caption" style="left:64%;top:27%">物料编码决定图纸归档位置</div>' },
{ title:'防止重复上传', note:'保存前源码查询该物料现有工艺图;已存在时清空待传文件并提示先删除,防止同一物料出现并行版本。' },
{ title:'谨慎删除工艺文件', note:'删除会弹出永久删除确认并调用删除接口。删除前记录文件名、物料和导入人,确认新版本已准备就绪。' },
{ title:'重新查询验证版本', note:'上传或删除后按物料查询,核对文件名称、导入人和时间,确保现场打开的是当前有效工艺文件。' }
]),
processDrawingView: processView('查看图纸','process-drawing-view.png',[
{ title:'按物料查询零件图', note:'输入物料编码远程搜索并查询;默认列表已加载真实零件图记录,显示文件名、导入人和导入时间。' },
{ title:'选择正确图纸记录', note:'同类名称可能对应不同物料版本,打开前必须核对完整物料编号、文件名称和导入时间。', overlays:'<div class="focus" style="left:3%;top:21%;width:70%;height:65%"></div><div class="caption" style="left:4%;top:16%">这是只读图纸查询页面</div>' },
{ title:'打开真实零件图 PDF', image:'process-drawing-view-document.png', note:'点击“查看”在 PDF 阅读器中打开真实零件图,可缩放检查尺寸、公差、剖面、技术要求和受控标识。' },
{ title:'使用 PDF 查看工具', image:'process-drawing-view-document.png', note:'工具栏支持页码、缩放、旋转、下载和打印;用于现场查看时应保持图纸方向和缩放比例便于识读。' },
{ title:'保持只读查询', note:'当前页面源码未开放删除按钮,也没有上传入口;需要变更图纸时返回“图纸维护”,按受控流程处理。' }
]),
processProcurementDrawing: processView('采购图纸查询','process-procurement-drawing.png',[
{ title:'查询采购物料图纸', note:'按采购物料编码远程搜索并查询,数据源只返回采购范围图纸;真实列表显示海绵垫、标牌等采购物料。' },
{ title:'核对采购文件信息', note:'检查物料编号、物料名称、文件名称、导入人和导入时间,确保询价、采购和验收使用同一版本。', overlays:'<div class="focus" style="left:3%;top:21%;width:70%;height:65%"></div><div class="caption" style="left:4%;top:16%">采购图纸与通用图纸使用不同查询口径</div>' },
{ title:'打开真实采购图纸', image:'process-procurement-drawing-document.png', note:'点击“查看”打开实际采购零件 PDF真实示例展示海绵垫的孔位、外形尺寸、材料名称和受控标识。' },
{ title:'核对技术要求和版本', image:'process-procurement-drawing-document.png', note:'采购下单前放大核对尺寸、材料、比例和图号,文件名或导入时间异常时联系图纸责任人确认。' },
{ title:'保持采购查询只读', note:'当前页面只提供查询和查看,源码未开放删除和上传按钮;采购图纸调整必须回到有权限的维护流程。' }
]),
salesOrderStatus: salesView('销售订单状态','sales-order-status.png',[
{ title:'进入销售订单状态', note:'页面默认按“入库状态未完成”查询销售订单,真实列表同时显示生产订单、计划号、销售订单、产品、计划数量、入库数量和要求日期。', overlays:'<div class="focus" style="left:12%;top:14%;width:82%;height:68%"></div><div class="caption" style="left:13%;top:9%">先从未入库订单开始核查</div>' },
{ title:'组合输入订单条件', note:'可按生产订单、销售订单、产品编码和计划号组合查询;编号条件用于精确定位,产品编码支持按页面输入内容缩小结果。', overlays:'<div class="focus" style="left:13%;top:10%;width:47%;height:4%"></div><div class="caption" style="left:61%;top:10%">多个编号条件可以同时使用</div>' },
{ title:'筛选业务状态', note:'发货状态、入库状态、自制件属性、外协状态、加急状态和单据状态共同决定结果口径;清空下拉条件后再查询可查看全部状态。', overlays:'<div class="focus" style="left:62%;top:10%;width:35%;height:4%"></div><div class="caption" style="left:62%;top:15%">先确认状态口径,再判断订单异常</div>' },
{ title:'识别颜色状态字段', note:'齐套、拣配、发料、装配开工、终检、生产工艺、排产等字段按状态着色。绿色通常表示已完成或已齐套,橙色表示未完成,灰点表示未通知;判断时以字段文字为准。' },
{ title:'展开订单工序明细', image:'sales-order-status-expanded.png', note:'点击订单行或左侧展开箭头,查看该生产订单的工序名称、计划数量、指派对象、计划时间、完成进度、完成数、合格数、不良数、任务状态和加工状态。', overlays:'<div class="focus" style="left:12%;top:18%;width:68%;height:13%"></div><div class="caption" style="left:48%;top:32%">展开区是订单进度判断的依据</div>' },
{ title:'核对计划与实绩', image:'sales-order-status-expanded.png', note:'逐工序比较计划数量、完成数量和完成进度;同时核对计划开始、结束时间以及任务状态,避免只看主表入库数量就判断整单完成。' },
{ title:'查看真实缺料单', image:'sales-order-status-shortage.png', note:'在展开工序的“操作”列点击“缺料”,系统按当前任务查询装配缺料明细。真实窗口列出物料名称和数量,可纵向滚动检查全部缺料项。', overlays:'<div class="focus" style="left:26%;top:15%;width:48%;height:82%"></div><div class="caption" style="left:75%;top:21%">缺料数量应与本次装配需求核对</div>' },
{ title:'关闭缺料单并继续核查', image:'sales-order-status-shortage.png', note:'缺料窗口只用于查看,确认物料和数量后点击关闭或右上角关闭。返回列表后可展开下一订单继续检查。' },
{ title:'横向查看完整状态', note:'列表列数较多,使用底部横向滚动条查看右侧通知、生产工艺和排产状态。横向滚动不会改变当前查询结果。' },
{ title:'重新查询确认最新状态', note:'订单状态不会因展开或关闭弹窗自动重查。业务处理完成后再次点击查询,核对入库数、齐套、拣配、发料和各工序进度是否已经更新。' }
]),
anomalyPunctual: anomalyView('机加及时开工','anomaly-punctual-work.png',[
{ title:'查看未及时开工任务', note:'页面读取已排产但计划开始时间早于实际开工或尚未开工的非外协、非装配任务。演示使用同版本测试服务的 217 条真实数据,避免正式库当前无匹配记录造成空图。', overlays:'<div class="focus" style="left:12%;top:23%;width:82%;height:70%"></div><div class="caption" style="left:13%;top:18%">列表用于追踪计划应开工但尚未及时开工的工序</div>' },
{ title:'按任务和订单定位', note:'可输入任务ID、生产订单、物料编码、计划号或销售订单已知 TaskAID 时优先精确查询,跨订单排查时再使用计划和物料条件。', overlays:'<div class="focus" style="left:13%;top:10%;width:57%;height:4%"></div><div class="caption" style="left:71%;top:10%">订单条件可叠加计划开工日期</div>' },
{ title:'设置计划开工范围', note:'计划开工日期决定异常判断区间。页面进入时默认取前一日;查询历史未开工任务时重新选择开始和结束日期,不能把默认日期误认为全部数据。' },
{ title:'筛选任务状态', note:'任务状态可区分待执行、执行中、已完成等口径。选择后点击查询,系统把状态编号传给及时开工查询过程;选择全部时同时核查多个状态。' },
{ title:'选择或反选工位', note:'工位复选项来自登录人员可见工位。使用“工位正选”时只查询勾选工位;切换“工位反选”后排除勾选工位,适合一次查看其余加工区域。', overlays:'<div class="focus" style="left:13%;top:14%;width:84%;height:8%"></div><div class="caption" style="left:65%;top:23%">正选和反选会改变相同勾选项的含义</div>' },
{ title:'核对上下序和可开工条件', note:'列表显示指派对象、工序顺序、分配数、上序合格数、下序名称和收料数。上序合格不足时,即使计划已到也要先确认物料是否具备开工条件。' },
{ title:'识别加急和任务状态', note:'加急数量可提示优先处理范围;同时检查完成数、任务状态、加工状态、开工时间和派工备注,区分“未开工”和“已开工但页面条件未刷新”。' },
{ title:'处理后重新查询', note:'本页是异常查询页,不直接执行开工。到对应生产任务完成开始加工或调整计划后,返回本页使用相同条件查询,确认异常记录已消失或状态已更新。' }
]),
anomalyOutPunctual: anomalyView('外协及时开工','anomaly-out-punctual.png',[
{ title:'进入外协及时开工', note:'页面默认查询执行状态“可执行”的外协任务,真实列表显示同步、上序合格、指派数量、打印、发料、收料和计划时间。', overlays:'<div class="focus" style="left:12%;top:18%;width:82%;height:70%"></div><div class="caption" style="left:13%;top:13%">先检查可执行但尚未按时启动的外协任务</div>' },
{ title:'按生产信息查询', note:'可按生产订单、计划号、物料编码、物料名称和工序组合筛选;处理某一采购或外协批次时应同时核对生产订单与物料编码。' },
{ title:'切换执行状态口径', note:'执行状态用于区分当前能否发起外协。默认“可执行”侧重待处理任务,切换其他状态可复核已处理或暂不可执行记录。' },
{ title:'核对上序和指派数量', note:'比较上序合格数与指派数量。上序数量不足时不能只按计划日期催办,应先确认前序报工、质检或任务拆分是否完成。' },
{ title:'检查打印发料收料链路', note:'打印、发料、收料及打印次数反映外协单据流转。打印完成但未发料,或发料后长期未收料,都需要结合计划开始与完成时间继续追踪。' },
{ title:'使用行选择复核批次', note:'左侧复选框支持标记要集中核查的记录。当前源码没有对所选行直接执行批量写入,选择仅用于操作人员分组确认,不能代替外协发料或收料。' },
{ title:'返回业务页面处理并验证', note:'本页负责提醒,不直接完成外协流转。应到对应外协单据执行打印、发料或收料,完成后返回重新查询并核对状态字段。' }
]),
anomalyUrgent: anomalyView('加急任务列表','anomaly-urgent-task.png',[
{ title:'查看加急任务清单', note:'页面按生产订单合并展示任务,包含销售订单、产品、计划数量、加急数量、工艺路线、入库数量、要求完工日和多项业务状态。', overlays:'<div class="focus" style="left:12%;top:18%;width:82%;height:70%"></div><div class="caption" style="left:13%;top:13%">工艺路线颜色用于快速识别各工序进展</div>' },
{ title:'组合筛选加急订单', note:'可按生产订单、销售订单、产品编码、计划号、自制件属性、外协状态、加急状态和单据状态查询;只看加急任务时明确选择“加急”。' },
{ title:'读取彩色工艺路线', note:'路线按工序顺序显示日期、工序、指派工位和合格数。蓝色、绿色、红色等样式来自工序状态及连续外协分组,必须结合日期和合格数解释。' },
{ title:'展开工序执行明细', image:'anomaly-urgent-task-expanded.png', note:'点击订单行或展开箭头,查看每道工序的计划开始、计划结束、实际开始、实际结束、完成进度、外协发料数、合格数、不良数、任务状态和加工状态。', overlays:'<div class="focus" style="left:12%;top:34%;width:75%;height:35%"></div><div class="caption" style="left:52%;top:70%">展开后逐道工序核实加急任务落点</div>' },
{ title:'判断当前应催办工序', image:'anomaly-urgent-task-expanded.png', note:'优先检查已到计划开始时间、上序已合格而当前仍“可执行”或未开工的工序;已报工和已完成工序不应重复催办。' },
{ title:'打开加急明细', image:'anomaly-urgent-task-detail.png', note:'点击青色加急数量,系统按当前订单拆分关系查询加急明细。真实窗口列出关联生产订单、各自加急数量和物料编号。', overlays:'<div class="focus" style="left:19%;top:15%;width:62%;height:23%"></div><div class="caption" style="left:35%;top:39%">总加急数量可能由多个生产订单组成</div>' },
{ title:'核对加急数量来源', image:'anomaly-urgent-task-detail.png', note:'逐行核对生产订单与加急数量之和是否等于主表显示值,同时确认物料编号一致;该窗口为只读明细,确认后点击关闭。' },
{ title:'处理后刷新整单状态', note:'加急工序处理完成后重新查询,核对路线颜色、工序合格数、入库数量和要求完工日。只更新单道工序不代表整单已经解除加急风险。' }
]),
anomalyAssemblyInspection: anomalyView('装配及时送检','anomaly-assembly-inspection.png',[
{ title:'查看应送检装配任务', note:'页面只显示预计送检日期不晚于当前日期的装配任务,真实列表中红色行为已经超过预计送检时间的记录。', overlays:'<div class="focus" style="left:12%;top:18%;width:82%;height:70%"></div><div class="caption" style="left:13%;top:13%">红色任务应优先核查未送检原因</div>' },
{ title:'按订单和物料筛选', note:'可按生产订单、销售订单、物料编码、物料名称和工序名称组合查询。先用生产订单精确定位,再用物料或工序排查同类延期。' },
{ title:'理解日期颜色规则', note:'预计送检日期早于今天时整行标红;等于今天时使用当天提醒样式。页面已经排除未来送检任务,因此不要把此列表当作全部装配计划。' },
{ title:'核对任务核心字段', note:'检查任务类型、任务日期、生产和销售订单、物料、工序、任务数量、指派对象、计划开始和计划完成时间,确认提醒对应正确任务。' },
{ title:'检查齐套钣金和加急', note:'齐套状态、钣金状态和加急状态解释延期背景。未齐套或钣金未完成时先追踪前置条件;已齐套且加急的任务应优先安排送检。' },
{ title:'导出当前送检清单', note:'点击导出将当前查询结果生成“装配及时送检.xlsx”。导出的是当前 tableData不会自动包含被筛选掉的任务导出前要记录查询条件。' },
{ title:'送检完成后复核提醒', note:'到装配和质量业务页面完成送检后返回查询。记录仍存在时,继续核对预计送检日期、任务状态及接口数据是否已刷新。' }
]),
researchTask: researchView('设计任务','research-task.png',[
{ title:'查看设计任务列表', note:'页面默认查询未完成设计任务真实列表显示领导批示、DID、状态、任务描述、设计要求、指派对象、预计日期、项目物料和创建信息。', overlays:'<div class="focus" style="left:12%;top:18%;width:82%;height:70%"></div><div class="caption" style="left:13%;top:13%">DID 是设计任务及后续报工的关联编号</div>' },
{ title:'使用基础查询条件', note:'可按任务ID、项目号、物料编码、图号、父件编码、类别、任务来源和状态组合查询项目号、物料和父件字段支持远程下拉检索。' },
{ title:'按预计日期查询', note:'预计开始和预计结束均提供起止范围。查询延期任务时同时限定状态和预计结束日期,避免把已结束任务混入待办。' },
{ title:'打开新建设计任务', image:'research-task-add.png', note:'点击新建进入真实表单。类别、任务描述为关键字段;任务来源、设计要求、对其可见、指派对象和预计日期共同确定任务范围与可见权限。', overlays:'<div class="focus" style="left:27%;top:15%;width:46%;height:76%"></div><div class="caption" style="left:74%;top:22%">先明确任务和人员,再关联项目物料</div>' },
{ title:'关联项目和物料资料', image:'research-task-add.png', note:'按业务选择项目号、物料编码和父件物料编码;系统自动带出物料名称和父件名称,可继续填写图号、研发立项号、研发目的和备注。' },
{ title:'设置可见人与指派人', image:'research-task-add.png', note:'“对其可见”控制除创建人外的查看范围,“指派对象”决定实际设计人员,均支持多人。保存前确认两个集合不要混淆。' },
{ title:'保存前核对必填项', image:'research-task-add.png', note:'检查类别、任务描述、人员及预计时间。点击保存后系统调用设计任务新增过程;演示不提交,避免创建测试任务。' },
{ title:'编辑已有设计任务', image:'research-task-edit.png', note:'点击编辑打开带真实数据的表单。DID和创建日期只读可调整任务内容、设计要求、人员、项目物料、研发信息和备注。', overlays:'<div class="focus" style="left:27%;top:15%;width:46%;height:80%"></div><div class="caption" style="left:74%;top:24%">编辑时先保留原任务关联关系</div>' },
{ title:'填写领导批示', image:'research-task-leader-note.png', note:'有权限的角色点击“领导批示”,窗口自动带入 DID 和任务描述。输入不超过 2000 字的批示后保存,批示会追加到任务说明记录。', overlays:'<div class="focus" style="left:34%;top:15%;width:32%;height:35%"></div><div class="caption" style="left:67%;top:22%">批示保存后在列表首列显示</div>' },
{ title:'使用完成和更多操作', note:'“完成”会先校验任务是否仍有未结束报工、是否产生过已结束报工,并阻止不满足条件的任务结束。“更多”提供附件查看/维护及删除入口;删除前还会检查报工、附件和引用关系。' }
]),
researchReport: researchView('设计报工','research-report.png',[
{ title:'查看可报工设计任务', note:'设计报工列表与任务清单使用相同业务信息,并增加报工次数、未结束数、正在设计人员、最后开始和最后结束时间。', overlays:'<div class="focus" style="left:12%;top:18%;width:82%;height:70%"></div><div class="caption" style="left:13%;top:13%">先确认本人是否已经有未结束报工</div>' },
{ title:'筛选本人目标任务', note:'可按DID、项目、物料、图号、父件、类别、来源和状态查询。开始报工前应通过任务描述、指派对象和项目物料确认没有选错任务。' },
{ title:'执行开始报工', note:'“开始”仅在当前用户对该任务没有未结束记录时可用。系统还会检查本人是否在其他任务上有未关闭报工;存在时必须先结束原任务,不能同时开始多个任务。' },
{ title:'识别按钮可用状态', note:'当前用户已有未结束记录时“开始”禁用而“结束”可用;没有未结束记录时相反。列表中的总未结束数和人员字段用于识别其他人员正在处理的同一任务。' },
{ title:'打开结束报工窗口', image:'research-report-end.png', note:'点击可用的“结束”后系统重新读取最新任务状态再打开结束报工窗口并带入DID、物料和任务描述填写本次进度说明后确认。', overlays:'<div class="focus" style="left:34%;top:15%;width:32%;height:45%"></div><div class="caption" style="left:67%;top:22%">进度说明应描述本次实际完成内容</div>' },
{ title:'确认结束后的工时记录', image:'research-report-end.png', note:'确认会关闭当前用户在该DID上的未结束报工并形成开始、结束时间和工时记录。演示只展示窗口没有执行确认。' },
{ title:'补充领导批示', image:'research-report-leader-note.png', note:'有权限人员可在设计报工页追加领导批示。窗口带入DID和任务描述保存后列表自动重新查询。' },
{ title:'查看附件并刷新状态', note:'“更多”可打开任务附件。页面会定时静默刷新,但弹窗、下拉或编辑状态下会暂停;开始或结束后仍应主动查询,核对次数、未结束数和最后时间。' }
]),
researchCheck: researchView('设计工时校验','research-check.png',[
{ title:'查看待校验报工记录', note:'页面默认筛选未校验记录真实列表显示RID、DID、任务状态、校验状态、项目物料、类别、任务描述、操作人和开始时间。', overlays:'<div class="focus" style="left:12%;top:18%;width:82%;height:70%"></div><div class="caption" style="left:13%;top:13%">RID 是每一次开始到结束报工的记录编号</div>' },
{ title:'按任务人员日期筛选', note:'可按DID、项目号、物料编码、类别、操作人、开始日期、结束日期和校验状态组合查询校验前优先锁定操作人与日期范围。' },
{ title:'选择待校验记录', note:'左侧复选框用于批量校验。只有未校验且已有结束时间的记录能进入批量范围,按钮在没有选择时保持禁用。' },
{ title:'打开单条校验窗口', image:'research-check-validate.png', note:'点击“校验”打开真实窗口自动带入RID、DID与任务、操作人和开始时间结束时间、工时和校验备注用于最终审核。', overlays:'<div class="focus" style="left:34%;top:15%;width:32%;height:50%"></div><div class="caption" style="left:67%;top:22%">结束时间必须晚于开始时间</div>' },
{ title:'核对并计算工时', image:'research-check-validate.png', note:'选择结束时间后系统按开始与结束时间差计算工时小时数。出现跨天、异常长时间或与工作内容不符时,先核实再填写校验备注。' },
{ title:'保存单条校验', image:'research-check-validate.png', note:'点击保存校验会写入结束时间、校验人、校验时间和备注,并把记录标记为已校验。已校验行不能再次打开校验。' },
{ title:'执行批量校验确认', note:'勾选多条有效记录后点击批量校验,系统显示确认数量。确认后统一写入当前校验人;批量操作不提供逐条修改结束时间,因此应先排除异常记录。' },
{ title:'查询已校验结果', note:'保存完成后切换校验状态为“已校验”再查询,核对校验人、校验时间、工时和备注,确保记录从未校验清单正确移出。' }
]),
researchHoursReport: researchView('设计工时报表','research-hours-report.png',[
{ title:'设置工时报表范围', note:'开始和结束日期为空时会查询全部可见记录数据量较大时先限定日期。还可按操作人、项目、物料、类别、任务描述和DID过滤。', overlays:'<div class="focus" style="left:13%;top:10%;width:83%;height:7%"></div><div class="caption" style="left:60%;top:18%">查询条件同时作用于两个报表标签</div>' },
{ title:'查看作业者工时树', image:'research-hours-report.png', note:'“作业者工时”先按操作人汇总,再按工作日期展开任务。真实结果展示人员、日期、任务、设计要求、进度说明、异常说明和奇思妙想。' },
{ title:'展开人员和日期层级', image:'research-hours-report.png', note:'点击行首箭头逐级展开。人员汇总用于看个人总投入,日期汇总用于看当天工作构成,最下层任务记录用于核对具体内容。' },
{ title:'读取总工时', image:'research-hours-report.png', note:'右下角总工时按当前查询结果汇总演示数据为1867.24小时。切换标签不会改变总口径,但筛选条件变化后必须重新查询。' },
{ title:'切换任务工时树', image:'research-hours-report-task.png', note:'“任务工时”先按DID和任务汇总再展开参与操作人适合查看一项设计任务由哪些人员投入及各自进度。', overlays:'<div class="focus" style="left:13%;top:19%;width:82%;height:73%"></div><div class="caption" style="left:13%;top:14%">任务视角以DID为第一层</div>' },
{ title:'对比任务和人员视角', image:'research-hours-report-task.png', note:'同一报工记录会分别出现在两个标签的不同树层级中,总工时应一致。按人员核绩效用作业者视角,按任务核成本用任务视角。' },
{ title:'导出当前标签报表', note:'点击导出只导出当前激活标签的树形结果,并保留层级信息。文件名区分作业者工时和任务工时,导出前先确认标签与查询条件。' },
{ title:'核对导出完整性', note:'导出后检查文件中的层级、人员或DID、日期、任务说明和工时合计。折叠状态不影响导出数据但当前筛选条件会限制导出范围。' }
]),
researchFinancialHours: researchView('研发财务工时','research-financial-hours.png',[
{ title:'设置财务工时条件', note:'页面初始要求设置查询条件后点击查询。可按日期、操作人、项目、物料、类别、任务来源、研发立项号和DID过滤财务核算时至少限定结算期间。', overlays:'<div class="focus" style="left:13%;top:10%;width:83%;height:7%"></div><div class="caption" style="left:61%;top:18%">结算期间决定财务工时归属</div>' },
{ title:'查看作业者财务工时', image:'research-financial-hours.png', note:'作业者标签按人员、日期和报工明细形成三级树显示RID、DID、创建日期、类别、来源、任务描述、设计要求和可见人员等完整核算字段。' },
{ title:'展开汇总与明细层级', image:'research-financial-hours.png', note:'“作业者汇总”和“日期汇总”行为粗体汇总层“报工明细”为可追溯记录。财务抽查时从汇总工时下钻到RID和实际工作内容。' },
{ title:'核对财务总工时', image:'research-financial-hours.png', note:'右下角显示当前条件总工时演示数据为1867.29小时。该报表字段和计算口径比普通工时报表更完整,不能用页面行数代替工时合计。' },
{ title:'切换任务财务工时', image:'research-financial-hours-task.png', note:'任务工时标签按DID任务汇总、作业者汇总、报工明细展开可直接查看同一任务由不同人员产生的财务工时。', overlays:'<div class="focus" style="left:13%;top:19%;width:82%;height:73%"></div><div class="caption" style="left:13%;top:14%">任务视角便于项目和研发立项归集</div>' },
{ title:'按研发属性归集', image:'research-financial-hours-task.png', note:'结合类别、任务来源、研发立项号、项目号和物料编码判断工时归属。缺少研发立项号或来源时,应返回设计任务核实基础信息。' },
{ title:'导出当前财务树', note:'导出会把当前标签树展平并增加层级列保留汇总行和明细行。先确认当前是作业者还是任务标签再生成对应Excel。' },
{ title:'完成期间复核', note:'财务归集完成后用相同日期和条件重新查询对比页面总工时与导出合计并抽查RID、DID、人员和任务描述避免漏算或跨期。' }
]),
deviceInformation: deviceView('设备信息维护','device-information.png',[
{ title:'查看设备台账', note:'页面默认查询设备台账,真实系统当前共 89 条;列表按设备名称、财务编码、生产用名、型号、设备类型、使用部门等字段展示设备基础信息。', overlays:'<div class="focus" style="left:12%;top:14%;width:82%;height:68%"></div><div class="caption" style="left:13%;top:9%">先核对设备是否已经建档</div>' },
{ title:'组合筛选设备', note:'可输入生产用名并选择设备类型后查询每次点击查询会把页码和每页条数重置为第一页、20 条,再按当前条件读取设备。', overlays:'<div class="focus" style="left:12.5%;top:10.2%;width:32%;height:4.2%"></div><div class="caption" style="left:46%;top:10%">生产用名和设备类型可以组合使用</div>' },
{ title:'核对台账扩展字段', note:'横向滚动继续核对维修记录、维保记录、工位绑定、主要设备、标准开机工时、特种设备和证书有效期;这些字段直接影响现场绑定和设备管理口径。' },
{ title:'识别证书到期颜色', note:'源码按证书有效期排序:已经过期的设备行显示红色,未来 30 天内到期显示黄色,其余设备正常显示;同一等级内按到期时间升序排列。' },
{ title:'打开新增设备窗口', image:'device-information-add.png', note:'点击“设备”打开真实新增窗口。新增时公司编码(财务)必须填写,生产用名为必填项;公司编码用于财务侧唯一识别。', overlays:'<div class="focus" style="left:24%;top:15%;width:51%;height:64%"></div><div class="caption" style="left:76%;top:21%">新增窗口包含完整设备档案</div>' },
{ title:'填写设备档案和管控属性', image:'device-information-add.png', note:'依次填写设备名称、生产用名、规格型号、类型、设备信息、使用部门、入账日期、单位、数量、状态、维修与维保记录;再选择多个工位绑定、主要设备、标准开机工时、特种设备和证书有效期。', overlays:'<div class="focus" style="left:29%;top:21%;width:43%;height:51%"></div><div class="caption" style="left:73%;top:31%">工位绑定支持多选,开机工时以小时录入</div>' },
{ title:'编辑真实设备资料', image:'device-information-edit.png', note:'点击编辑图标打开已加载数据的真实窗口。示例“加2”显示马扎克加工中心、型号、车间、维修维保、绑定工位、主要设备和 16 小时标准开机工时;编辑时财务编码被锁定,不能修改。', overlays:'<div class="focus" style="left:24%;top:15%;width:51%;height:64%"></div><div class="caption" style="left:76%;top:24%">先核对原值,再修改允许变更的字段</div>' },
{ title:'确认保存与列表复核', image:'device-information-edit.png', note:'点击确定前核对必填项、日期和数值。新增调用设备信息增加接口,编辑按设备流水号更新;保存成功后窗口关闭并重新查询,必须返回列表复核结果。' },
{ title:'谨慎执行删除', image:'device-information-delete.png', note:'删除图标会弹出“是否删除”确认。系统按设备流水号永久删除,只有确认设备未被工位、工艺或生产记录使用时才可确定;演示只打开确认框,没有执行删除。' },
{ title:'使用分页继续核查', note:'列表支持每页 10、20、30、40、100 条以及页码跳转;切换页数或页码都会重新查询服务器,检查全部设备时不要只核对当前首屏。' }
]),
deviceData: deviceView('设备数据','device-data.png',[
{ title:'查看当前采集数据', note:'页面进入后立即查询当前设备数据。真实画面包含机床、高压单元、电能表、环境和噪声等 415 行采集项,显示设备名称、参数名称、数值、单位和更新时间。', overlays:'<div class="focus" style="left:12%;top:14%;width:46%;height:68%"></div><div class="caption" style="left:60%;top:19%">当前值必须结合更新时间判断是否有效</div>' },
{ title:'按设备筛选', note:'设备下拉来源于工位与名称查询,可选择数控机床、高压单元、电能表或环境采集点;清空设备时查询全部设备。', overlays:'<div class="focus" style="left:13%;top:10%;width:13%;height:4%"></div><div class="caption" style="left:27%;top:10%">下拉框支持输入过滤设备</div>' },
{ title:'按参数名称筛选', image:'device-data-filtered.png', note:'参数名称支持模糊查询。真实示例输入“设备状态”后返回运行、待机和状态代码等 26 条当前值,可与设备条件组合缩小范围。', overlays:'<div class="focus" style="left:27%;top:10%;width:16%;height:4%"></div><div class="caption" style="left:44%;top:10%">输入参数后点击查询刷新结果</div>' },
{ title:'判断设备运行状态', image:'device-data-filtered.png', note:'状态文本用于快速识别运行或待机;数值型状态代码和电能表值必须结合设备协议解释,不要仅凭数值大小直接判定异常。', overlays:'<div class="focus" style="left:12%;top:14%;width:46%;height:68%"></div><div class="caption" style="left:60%;top:20%">同名参数可能来自不同类型的采集设备</div>' },
{ title:'核对数值、单位与更新时间', note:'压力、温度、湿度、噪声、转速、负载等参数的单位不同;更新时间长时间不变化可能表示采集离线,数值异常时先确认单位和采集时刻。' },
{ title:'重新查询获取最新快照', note:'该页面源码没有定时自动刷新。需要观察变化时再次点击查询,避免把进入页面时的旧快照当作实时结果。' },
{ title:'导出当前查询结果', note:'导出按钮在列表无数据时禁用。源码直接把当前查询得到的全部 tableData 写入“设备实时数据_时间.xlsx”包含序号、设备名称、参数名称、数值、单位和更新时间导出前先确认筛选条件。' }
]),
deviceHistory: deviceView('设备历史数据','device-history.png',[
{ title:'查看当天历史数据', note:'页面默认把开始、结束日期设为当天并自动查询。真实系统当前匹配 358483 条历史采集记录,表格按服务器分页展示前 20 条。', overlays:'<div class="focus" style="left:12%;top:14%;width:38%;height:68%"></div><div class="caption" style="left:52%;top:18%">总条数很大时必须先缩小查询范围</div>' },
{ title:'选择历史日期范围', note:'日期范围不可清空,查询参数分别传入开始时间和结束时间。跨天分析前确认起止日期,避免误查过长区间造成等待或导出文件过大。', overlays:'<div class="focus" style="left:13%;top:10%;width:17%;height:4%"></div><div class="caption" style="left:31%;top:10%">先选日期,再选设备和参数</div>' },
{ title:'组合设备与参数条件', image:'device-history-filtered.png', note:'设备下拉和参数名称可以同时使用。真实示例按参数“启动”查询,返回 12594 条启动及循环启动时间记录,便于追溯设备何时发生状态变化。', overlays:'<div class="focus" style="left:31%;top:10%;width:25%;height:4%"></div><div class="caption" style="left:57%;top:10%">条件越明确,历史分析越可靠</div>' },
{ title:'核对历史记录字段', image:'device-history-filtered.png', note:'每行包含设备名称、参数名称、采集值和采集时间。相同参数可能按分钟或事件连续写入,分析时应按时间顺序判断,不要只看某一条孤立记录。' },
{ title:'使用服务器分页', note:'分页支持每页 10、20、30、40、100 条。切换每页数量会回到第一页,切换页码会带当前日期、设备和参数条件重新调用历史查询。' },
{ title:'避免无条件大范围导出', note:'当前默认数据量超过 35 万条。导出前应限定日期、设备和参数,并核对总条数;否则浏览器需要一次读取全部匹配记录,可能耗时较长。' },
{ title:'导出完整筛选结果', note:'导出不是只保存当前 20 行。源码以总条数作为 PageSize 重新查询第一页再生成“设备历史数据_时间.xlsx”字段包含序号、设备名称、参数名称、数值和采集时间。' },
{ title:'处理无数据与导出结果', note:'当前列表为空或重新查询没有结果时系统提示“没有数据可导出”;导出完成后核对文件名时间、记录总数和首尾采集时间是否与页面条件一致。' }
]),
deviceRealtime: deviceView('实时数据','device-realtime.png',[
{ title:'选择日期和设备', note:'页面默认使用当天日期,并自动选择工位列表中的第一台设备后查询。左侧汇总开机时刻、待机、未通电、报警、程序和设备作业工时。', overlays:'<div class="focus" style="left:13%;top:10%;width:31%;height:4%"></div><div class="caption" style="left:45%;top:10%">日期和设备共同决定统计口径</div>' },
{ title:'读取设备工时汇总', note:'先核对开机时刻和各项分钟数。汇总只针对当前日期区间与设备,切换设备或日期后必须重新确认左侧数据已经刷新。', overlays:'<div class="focus" style="left:12%;top:14%;width:32%;height:28%"></div><div class="caption" style="left:45%;top:20%">放大镜表示该指标可以继续展开</div>' },
{ title:'查看报警状态时间段', image:'device-realtime-status.png', note:'选择“数3”并点击报警时长放大镜右侧显示真实报警开始时间、结束时间、状态和 19 分钟时长;无报警的设备会显示空明细。', overlays:'<div class="focus" style="left:44%;top:14%;width:42%;height:18%"></div><div class="caption" style="left:45%;top:33%">右侧时间段用于定位报警发生区间</div>' },
{ title:'理解连续状态合并规则', image:'device-realtime-status.png', note:'源码先按创建时间升序排列,再把状态相同且相邻采样间隔不超过 1 分钟的记录合并为一个时间段;状态变化或时间断点会开始新的区间。' },
{ title:'查看待机换件统计', image:'device-realtime-change.png', note:'点击待机时长后,右侧按生产订单汇总换件时长、最小时长、最大时长、产品编码和产品名称。真实示例显示订单 8449、8477 的换件统计。', overlays:'<div class="focus" style="left:44%;top:14%;width:42%;height:22%"></div><div class="caption" style="left:45%;top:37%">异常极值要回到逐次记录继续核对</div>' },
{ title:'查看程序时长统计', image:'device-realtime-program.png', note:'点击程序时长后,右侧按订单显示程序时长及最小、最大时长,并关联产品编码和名称;用于比较同一产品加工节拍是否稳定。' },
{ title:'查看设备作业工时明细', image:'device-realtime-work.png', note:'点击设备作业工时后,右侧展示每次采集的订单编号、加工时长、换件时长和采集时间;真实示例共有 27 条,可逐笔定位节拍波动。', overlays:'<div class="focus" style="left:44%;top:14%;width:42%;height:68%"></div><div class="caption" style="left:45%;top:9%">作业工时展开到逐次采集记录</div>' },
{ title:'按订单继续过滤作业记录', image:'device-realtime-work.png', note:'右侧订单编号输入框只在设备作业工时明细中出现;输入订单后点击右侧查询,可只查看该订单的加工和换件记录。' },
{ title:'翻页查看全部作业记录', image:'device-realtime-work.png', note:'作业记录明细支持每页 20、40、50、100 条和页码切换;分页时保留当前日期、设备、参数类型和订单条件重新查询。' },
{ title:'切换口径后重新核对', note:'日期、设备、左侧参数或右侧订单任一条件变化都会改变统计含义。完成分析后记录查询口径,并同时核对汇总值、明细条数和采集时间。' }
])
};
let activeKey = 'personnel';
let current = 0;
let timer = null;
const $ = id => document.getElementById(id);
function updateTabs() {
const keys = Object.keys(modules);
$('tabs').innerHTML = keys.map(key => `<span class="tab ${key === activeKey ? 'active' : ''}">${modules[key].tab}</span>`).join('');
}
function render(index) {
const module = modules[activeKey];
const scene = module.scenes[index];
current = index % module.scenes.length;
$('manualTitle').textContent = module.title;
$('manualDesc').textContent = module.description;
$('crumbGroup').textContent = module.group || '系统管理';
$('crumbPage').textContent = module.tab;
$('counter').textContent = `步骤 ${current + 1} / ${module.scenes.length}`;
$('screenTitle').textContent = scene.title;
$('screenPath').textContent = scene.path;
$('note').innerHTML = `<b>自动说明:</b>${scene.note}`;
$('screen').innerHTML = `<img src="${scene.image}" alt="${scene.title}">${scene.overlays}`;
$('stepList').innerHTML = module.scenes.map((item, i) => `<button class="step ${i === current ? 'active' : ''} ${i < current ? 'done' : ''}" type="button" data-step-index="${i}" aria-label="跳转到${item.title}"><span class="step-number">${i + 1}</span><span><strong>${item.title.replace(/^\d+\s/, '')}</strong><span>${item.note}</span></span></button>`).join('');
$('playStatus').textContent = `自动播放中:${module.tab} ${current + 1}/${module.scenes.length}`;
}
function startPlayback() {
window.clearInterval(timer);
timer = window.setInterval(() => render((current + 1) % modules[activeKey].scenes.length), 3600);
}
document.querySelectorAll('[data-module]').forEach(button => button.addEventListener('click', () => {
activeKey = button.dataset.module;
current = 0;
document.querySelectorAll('[data-module]').forEach(item => item.classList.toggle('active', item === button));
updateTabs();
render(0);
startPlayback();
}));
document.querySelectorAll('[data-group-toggle]').forEach(button => button.addEventListener('click', () => {
const menu = $(button.dataset.groupToggle);
const willExpand = menu.hidden;
menu.hidden = !willExpand;
button.setAttribute('aria-expanded', String(willExpand));
button.querySelector('.chev').textContent = willExpand ? '▲' : '▼';
}));
$('stepList').addEventListener('click', event => {
const step = event.target.closest('[data-step-index]');
if (!step) return;
render(Number(step.dataset.stepIndex));
startPlayback();
});
updateTabs();
render(0);
startPlayback();
</script>
</body>
</html>