This repository has been archived on 2026-09-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
BPOS-TMP-REPO/docs/SS02-ACT-WORK-05-html/ACT-WORK-05-数据工单-01-芯片主数据创建.html
T
xcsandClaude Fable 5 bd86dd6088 docs(w05): 差异评估的目标件五份 HTML + 三份说明 + 实施计划;三张图
活动包 views/target-style.ts / report.ts 与两份 W05 文档都指着 docs/SS02-ACT-WORK-05-html ——
模版「逐字节搬自目标件」的那份目标件此前没入库。docs/img/cy 三张 png 现无引用,随批入库。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0167qWjeyBwvfdGovd7FWbCu
2026-08-27 11:44:35 +08:00

342 lines
27 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>数据工单 1 · 芯片主数据创建(P-08)· SS02 ACT-WORK-05 差异评估</title>
<style>
:root{
--ink:#1f2329; --ink-2:#41464e; --ink-3:#646a73; --ink-4:#8f959e;
--line:#dee0e3; --line-soft:#e8eaed; --soft:#f8f9fb;
--brand:#3370ff; --brand-deep:#245bdb; --brand-soft:#e1eaff; --brand-wash:#f0f4ff;
--data:#3370ff; --data-soft:#e1eaff; --data-line:#c3d6ff;
--ok:#278717; --ok-soft:#e8f8e4; --danger:#d83931; --danger-soft:#feeae9;
--mono:"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#eef1f6;color:var(--ink);font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}
.page{margin:0;padding:0}
.card{background:#fff;overflow:hidden;border:0;border-radius:0;box-shadow:none}
.card-head{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:2px solid var(--ink);background:linear-gradient(120deg,#f0f5ff 0%,#fff 55%,#eef4ff 100%)}
.badge{flex:none;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--data);color:#fff;font-weight:800;font-size:13px;box-shadow:0 6px 16px rgba(51,112,255,.25)}
.tit{flex:1;min-width:0}
.tit .kick{font-size:11px;letter-spacing:.08em;color:var(--ink-4);font-weight:700}
.tit h1{margin:2px 0 0;font-size:19px;font-weight:800;line-height:1.3}
.tit .sub{font-size:12px;color:var(--ink-3);margin-top:3px}
.side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.tag{font-size:11px;font-weight:800;padding:2px 10px;border-radius:999px;color:var(--data);background:var(--data-soft);border:1px solid var(--data-line)}
.step{font-size:12px;color:var(--ink-3)}
.deadline{font-size:12px;color:var(--ink-3)}
.deadline b{color:var(--danger)}
.card-bd{padding:20px 22px}
.zone{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--ink-4);margin:0 0 8px}
.zone b{color:var(--ink-3)}
.note{border:1px solid var(--line);border-left:3px solid var(--data);border-radius:8px;background:var(--soft);padding:14px 16px;margin-bottom:16px}
.note p{margin:0 0 6px;font-size:13px;color:var(--ink-2)}
.note p:last-child{margin-bottom:0}
.note b{color:var(--ink)}
.note .done{color:var(--ok);font-weight:700}
.note .need{color:var(--data);font-weight:700}
.jc-editgate{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 10px;padding:9px 12px;border-radius:9px;background:var(--soft);border:1px solid var(--line-soft);font-size:12px;color:var(--ink-3)}
.jc-editgate-t{flex:1 1 auto;min-width:0}
.jc-editgate-t b{color:var(--ink-2);font-weight:700}
.jc-egbtn{flex:none;display:inline-flex;align-items:center;gap:5px;cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:6px 13px;font:inherit;font-size:12px;font-weight:700;color:var(--ink-2);background:#fff;transition:border-color .16s,color .16s,background .16s}
.jc-egbtn:hover{border-color:var(--brand);color:var(--brand)}
.jc-egbtn.save{color:#fff;background:var(--data);border-color:var(--data)}
.jc-egbtn.save:hover{filter:brightness(1.06);color:#fff}
.jc-editgate .eg-cancel,.jc-editgate .eg-save{display:none}
.jc-editgate.on{background:var(--brand-wash);border-color:var(--data-line);color:#1e40af}
.jc-editgate.on .eg-open{display:none}
.jc-editgate.on .eg-cancel,.jc-editgate.on .eg-save{display:inline-flex}
.tbl-wrap{border:1px solid var(--line-soft);border-radius:10px;overflow:hidden}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{text-align:left;background:var(--soft);font-size:11px;letter-spacing:.03em;font-weight:800;color:var(--ink-3);padding:9px 10px;border-bottom:1px solid var(--line)}
th.req::after{content:" *";color:var(--danger);font-size:11px}
td{padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.rn{position:relative;width:38px;white-space:nowrap;font-family:var(--mono);font-size:11px;color:var(--ink-4);text-align:center}
.jc-vcell{display:block;font-size:12.5px;color:var(--ink);line-height:1.5;overflow-wrap:anywhere}
.jc-vcell.mono{font-family:var(--mono);font-size:11.5px;color:var(--ink-2)}
.jc-cell{display:none;width:100%;min-width:60px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit;font-size:12.5px;color:var(--ink);background:#fff}
.jc-cell.mono{font-family:var(--mono);font-size:11.5px}
.jc-cell:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash);outline:none}
table.on td>.jc-vcell{display:none}
table.on td>.jc-cell{display:block}
td.rn .jc-rowdel{display:none;width:22px;height:22px;margin:0 auto;cursor:pointer;border:1px solid var(--line);border-radius:6px;padding:0;font:inherit;font-size:14px;line-height:1;color:var(--ink-3);background:#fff}
td.rn .jc-rowdel:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}
table.on td.rn .jc-rn-num{display:none}
table.on td.rn .jc-rowdel{display:block}
.jc-addrow{display:none;margin:8px 0 0;padding:8px 12px;border-radius:9px;background:var(--soft);border:1px dashed var(--line);font-size:12px;color:var(--ink-3)}
.jc-addrow.show{display:flex;align-items:center;gap:8px}
.jc-addrow button{cursor:pointer;border:1px solid var(--brand-soft);border-radius:7px;padding:5px 12px;font:inherit;font-size:12px;font-weight:700;color:var(--brand-deep);background:var(--brand-wash)}
.jc-addrow button:hover{background:var(--brand-soft)}
.jc-addrow em{font-style:normal;font-size:11.5px;color:var(--ink-4)}
.flow{margin-top:16px;padding:9px 12px;border-radius:8px;background:var(--soft);border:1px dashed var(--line);font-size:12px;color:var(--ink-3)}
.flow b{color:var(--ink)}
.card-foot{padding:13px 22px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--ink-4);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
@media(max-width:600px){.card-head{flex-wrap:wrap}.side{align-items:flex-start}}
/* 补充:数据工单专用标识(仅追加,不改动基件样式) */
.mono{font-family:var(--mono);font-size:12px;color:var(--ink-2)}
.pre{font-style:normal;font-size:10.5px;font-weight:800;color:var(--data);background:var(--data-soft);border:1px solid var(--data-line);border-radius:999px;padding:0 7px;margin-left:6px;white-space:nowrap}
table.on td>.pre{display:none}
.ct{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
.ct.hard{color:var(--danger);background:var(--danger-soft);border-color:#f3b9b5}
.ct.soft{color:var(--ink-3);background:#eef1f6;border-color:var(--line)}
.tbl-gap{margin-top:18px}
</style>
<style>
/* ===== 视觉补充段 v3(通用批量模板:字段即表头、每行一条;不改基件样式与 JS 钩子) ===== */
.hic{flex:none;width:26px;height:26px;color:var(--data)}
.zic{width:14px;height:14px;color:var(--ink-3);vertical-align:-2px;margin-right:3px}
/* 表头内字段说明(第二行小字) */
.thd{display:block;font-size:10px;font-weight:600;color:var(--ink-4);letter-spacing:0;margin-top:1px;line-height:1.4}
/* 表 1:字段即表头,内容多列,允许横向滚动 */
#tbl1{min-width:1240px}
#tbl1 .jc-vcell{display:inline}
/* 表 2 列宽 */
#tbl2 th:nth-child(2){width:150px}
#tbl2 th:nth-child(3){width:18%}
#tbl2 th:nth-child(4){width:14%}
#tbl2 th:nth-child(5){width:8%;text-align:center;white-space:nowrap}
#tbl2 th:nth-child(6){width:13%;text-align:center;white-space:nowrap}
#tbl2 td:nth-child(5),#tbl2 td:nth-child(6){text-align:center;white-space:nowrap}
/* 说明列(只读注释,编辑态保持可见) */
.desc{color:var(--ink-3);font-size:12px;line-height:1.5}
table.on td>.jc-vcell.ro{display:block}
.tbl-wrap{overflow-x:auto}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
</style>
</head>
<body>
<div class="page">
<div class="card">
<header class="card-head">
<div class="badge">数据</div>
<svg class="hic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><ellipse cx="10" cy="5" rx="7" ry="3"/><path d="M3 5v14c0 1.66 3.13 3 7 3 1.13 0 2.21-.09 3.2-.26"/><path d="M3 12c0 1.66 3.13 3 7 3 1.13 0 2.21-.09 3.2-.26"/><circle cx="18" cy="18" r="4.2"/><path d="M18 15.8v4.4M15.8 18h4.4"/></svg>
<div class="tit">
<div class="kick">SS02 · ACT-WORK-05 差异评估 · 数据工单 1/1</div>
<h1>芯片主数据创建(P-08)</h1>
<div class="sub">收件人:<span data-slot="meta.task.owner">PW · 王工</span> · 关联任务:<span data-slot="meta.task.id">TASK-BT02-20260818-007</span></div>
</div>
<div class="side">
<span class="tag">数据工单</span>
<span class="step" data-slot="meta.phase">等待数据 · 步骤 0.5/5</span>
<span class="deadline">最迟交回:<b data-slot="card.deadline">1 个工作日</b></span>
</div>
</header>
<div class="card-bd">
<p class="zone"><svg class="zic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="8" y="2" width="8" height="4" rx="1"/><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><path d="M9 12h6M9 16h4"/></svg><b>【做什么】</b>—— 批量创建 P-08 主数据记录</p>
<div class="note">
<p><span class="need">模板定位</span>:本单是「数据工单」统一模板的实例——<b>一单一类(可多条)</b>:目标台账=<b data-slot="meta.data.target_ledger">P-08</b>、本批创建=<b data-slot="meta.data.target_key">XL2596S-5.0(1 条,可加行增建)</b>;<b>字段即表头、每行一条新记录</b>。同一活动每次读数缺数据都可能再派发新实例(D02、D03…),模板与规则完全相同。</p>
<p><span class="need">触发原因</span>:系统按 internal_pn 查 P-08 <b>无「XL2596S-5.0」记录</b>——是「完全没有」,不是字段缺失。本单为<b>系统判断派发</b>的数据创建工单(与执行工单的「有而不全」严格区分,互不嵌套)。</p>
<p><span class="done">AI 预填</span>:本单已上传 datasheet(选填),AI 已预填 <b data-slot="sd.prefill_count">1 条记录 · 8 项字段 + 7 行参数</b>(标「预填」),请核对并补齐空缺;若本单未上传 datasheet,则全部手填,同为合法路径。</p>
<p><span class="need">纪律</span>:<b>确认即正式入库</b>(无草稿、无审核),确认人 = 数据责任人并留痕;只建主数据 / 资料,事实与证据记录(如验证记录)须实测产生;在对话区【数据卡】确认后,活动自动从「等待数据」唤醒进入步骤 1,本单不复用。</p>
</div>
<p class="zone"><svg class="zic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M3 10h18M9 10v10"/></svg><b>【创建什么 · 表 1】</b>—— 主数据记录(每行一条,*为必填列)</p>
<div class="jc-editgate" id="gate1">
<span class="jc-editgate-t"><b>每行一条新记录</b>,点「编辑」核对预填、补齐空缺;「+ 加一行」= 再建一条;必填列(*)全齐才允许确认</span>
<button class="jc-egbtn eg-open" type="button">编辑</button>
<button class="jc-egbtn eg-cancel" type="button">取消</button>
<button class="jc-egbtn eg-save" type="button">保存</button>
</div>
<div class="tbl-wrap">
<table id="tbl1">
<thead>
<tr>
<th style="width:38px">#</th>
<th class="req" data-h="内部料号">内部料号 internal_pn<span class="thd">全链路统一基准,不可自由文本</span></th>
<th class="req" data-h="品牌名称">品牌 brand_name<span class="thd">与制造商、供应商分开</span></th>
<th data-h="制造商名称">制造商 manufacturer_name<span class="thd">与品牌不一致时分开记录</span></th>
<th class="req" data-h="规格描述">规格描述 specification_description<span class="thd">按原厂资料口径</span></th>
<th class="req" data-h="封装">封装 package<span class="thd">影响硬约束比对</span></th>
<th data-h="工艺">工艺 process_technology<span class="thd">硬约束比较项</span></th>
<th class="req" data-h="生命周期状态">生命周期 lifecycle_status<span class="thd">Active/NRND/EOL/停产/风险</span></th>
<th data-h="EOL/PCN状态">EOL/PCN eol_pcn_status<span class="thd">条件必填:通知/影响/生效时间</span></th>
<th data-h="Datasheet引用+版本">Datasheet 引用+版本<span class="thd">成对条件:有引用必填版本</span></th>
<th data-h="适配应用场景">适配场景 application_scenarios<span class="thd">判断实际适用性</span></th>
</tr>
</thead>
<tbody data-rows="in.create_p08_fields">
<tr>
<td class="rn"><span class="jc-rn-num">1</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="brand_name"><span class="jc-vcell">XLSEMI</span><em class="pre">预填</em><input class="jc-cell" value="XLSEMI"></td>
<td data-field="manufacturer_name"><span class="jc-vcell">XLSEMI</span><em class="pre">预填</em><input class="jc-cell" value="XLSEMI"></td>
<td data-field="specification_description"><span class="jc-vcell">降压型 DCDC 稳压器,3A,固定 5.0V,150kHz</span><em class="pre">预填</em><input class="jc-cell" value="降压型 DCDC 稳压器,3A,固定 5.0V,150kHz"></td>
<td data-field="package"><span class="jc-vcell mono">TO-263-5</span><em class="pre">预填</em><input class="jc-cell mono" value="TO-263-5"></td>
<td data-field="process_technology"><span class="jc-vcell">BCD</span><em class="pre">预填</em><input class="jc-cell" value="BCD"></td>
<td data-field="lifecycle_status"><span class="jc-vcell">Active</span><em class="pre">预填</em><input class="jc-cell" value="Active"></td>
<td data-field="eol_pcn_status"><span class="jc-vcell">—</span><input class="jc-cell" value="—"></td>
<td data-field="datasheet_ref"><span class="jc-vcell mono">xlsemi.com/datasheet/XL2596S-5.0.pdf · Rev C</span><em class="pre">预填</em><input class="jc-cell mono" value="xlsemi.com/datasheet/XL2596S-5.0.pdf · Rev C"></td>
<td data-field="application_scenarios"><span class="jc-vcell">工业电源;消费电源</span><input class="jc-cell" value="工业电源;消费电源"></td>
</tr>
</tbody>
</table>
</div>
<div class="jc-addrow" id="addrow1">
<button type="button">+ 加一行(再建一条记录)</button>
<em>新行的必填列(*)全部填写后才允许确认;删一行 = 该记录不建</em>
</div>
<p class="zone tbl-gap"><svg class="zic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3"/><path d="M1 14h6M9 8h6M17 16h6"/></svg><b>【创建什么 · 表 2】</b>—— 标准化参数集 normalized_parameter_set(每行一个参数,按所属料号归属,*必填)</p>
<div class="jc-editgate" id="gate2">
<span class="jc-editgate-t"><b>AI 已预填 7 行参数</b>(全部归属 XL2596S-5.0),点「编辑」核对修正;「+ 加一行」补充未列出的参数</span>
<button class="jc-egbtn eg-open" type="button">编辑</button>
<button class="jc-egbtn eg-cancel" type="button">取消</button>
<button class="jc-egbtn eg-save" type="button">保存</button>
</div>
<div class="tbl-wrap">
<table id="tbl2">
<thead>
<tr>
<th style="width:38px">#</th>
<th class="req" data-h="所属料号">所属料号 internal_pn<span class="thd">归属表 1 哪条记录</span></th>
<th class="req" data-h="参数名">参数名</th>
<th class="req" data-h="值">值</th>
<th data-h="单位">单位</th>
<th class="req" data-h="约束类型">约束(硬/软)</th>
<th data-h="说明">说明</th>
</tr>
</thead>
<tbody data-rows="in.create_p08_params">
<tr>
<td class="rn"><span class="jc-rn-num">1</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="param"><span class="jc-vcell">输入电压范围</span><input class="jc-cell" value="输入电压范围"></td>
<td data-field="value"><span class="jc-vcell mono">4.5~40</span><input class="jc-cell mono" value="4.5~40"></td>
<td data-field="unit"><span class="jc-vcell">V</span><input class="jc-cell" value="V"></td>
<td data-field="constraint"><span class="jc-vcell"><span class="ct hard">硬约束</span></span><input class="jc-cell" value="硬约束"></td>
<td data-field="desc" class="desc"><span class="jc-vcell ro">必须覆盖客户输入(本例上限 40V)</span></td>
</tr>
<tr>
<td class="rn"><span class="jc-rn-num">2</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="param"><span class="jc-vcell">输出电压</span><input class="jc-cell" value="输出电压"></td>
<td data-field="value"><span class="jc-vcell mono">5.0(固定)</span><input class="jc-cell mono" value="5.0(固定)"></td>
<td data-field="unit"><span class="jc-vcell">V</span><input class="jc-cell" value="V"></td>
<td data-field="constraint"><span class="jc-vcell"><span class="ct hard">硬约束</span></span><input class="jc-cell" value="硬约束"></td>
<td data-field="desc" class="desc"><span class="jc-vcell ro">固定版 vs 可调版是硬差异点</span></td>
</tr>
<tr>
<td class="rn"><span class="jc-rn-num">3</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="param"><span class="jc-vcell">输出电流</span><input class="jc-cell" value="输出电流"></td>
<td data-field="value"><span class="jc-vcell mono">3</span><input class="jc-cell mono" value="3"></td>
<td data-field="unit"><span class="jc-vcell">A</span><input class="jc-cell" value="A"></td>
<td data-field="constraint"><span class="jc-vcell"><span class="ct hard">硬约束</span></span><input class="jc-cell" value="硬约束"></td>
<td data-field="desc" class="desc"><span class="jc-vcell ro">满载能力,须 ≥ 设计电流</span></td>
</tr>
<tr>
<td class="rn"><span class="jc-rn-num">4</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="param"><span class="jc-vcell">开关频率</span><input class="jc-cell" value="开关频率"></td>
<td data-field="value"><span class="jc-vcell mono">150</span><input class="jc-cell mono" value="150"></td>
<td data-field="unit"><span class="jc-vcell">kHz</span><input class="jc-cell" value="kHz"></td>
<td data-field="constraint"><span class="jc-vcell"><span class="ct soft">软约束</span></span><input class="jc-cell" value="软约束"></td>
<td data-field="desc" class="desc"><span class="jc-vcell ro">影响外围电感 / 电容选型</span></td>
</tr>
<tr>
<td class="rn"><span class="jc-rn-num">5</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="param"><span class="jc-vcell">静态电流</span><input class="jc-cell" value="静态电流"></td>
<td data-field="value"><span class="jc-vcell mono">4.2</span><input class="jc-cell mono" value="4.2"></td>
<td data-field="unit"><span class="jc-vcell">mA</span><input class="jc-cell" value="mA"></td>
<td data-field="constraint"><span class="jc-vcell"><span class="ct soft">软约束</span></span><input class="jc-cell" value="软约束"></td>
<td data-field="desc" class="desc"><span class="jc-vcell ro">影响待机功耗</span></td>
</tr>
<tr>
<td class="rn"><span class="jc-rn-num">6</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="param"><span class="jc-vcell">工作温度</span><input class="jc-cell" value="工作温度"></td>
<td data-field="value"><span class="jc-vcell mono">-40~+125</span><input class="jc-cell mono" value="-40~+125"></td>
<td data-field="unit"><span class="jc-vcell">℃</span><input class="jc-cell" value="℃"></td>
<td data-field="constraint"><span class="jc-vcell"><span class="ct hard">硬约束</span></span><input class="jc-cell" value="硬约束"></td>
<td data-field="desc" class="desc"><span class="jc-vcell ro">工业温域必须覆盖</span></td>
</tr>
<tr>
<td class="rn"><span class="jc-rn-num">7</span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>
<td data-field="internal_pn"><span class="jc-vcell mono">XL2596S-5.0</span><em class="pre">预填</em><input class="jc-cell mono" value="XL2596S-5.0"></td>
<td data-field="param"><span class="jc-vcell">使能阈值</span><input class="jc-cell" value="使能阈值"></td>
<td data-field="value"><span class="jc-vcell mono">未披露</span><input class="jc-cell mono" value="未披露"></td>
<td data-field="unit"><span class="jc-vcell">V</span><input class="jc-cell" value="V"></td>
<td data-field="constraint"><span class="jc-vcell"><span class="ct hard">硬约束</span></span><input class="jc-cell" value="硬约束"></td>
<td data-field="desc" class="desc"><span class="jc-vcell ro">未披露项将进入 UNKNOWN 并挂验证任务</span></td>
</tr>
</tbody>
</table>
</div>
<div class="jc-addrow" id="addrow2">
<button type="button">+ 加一行(补充参数)</button>
<em>所属料号 / 参数名 / 值 / 单位 / 约束类型齐全;「未披露」请直接写未披露,将进入 UNKNOWN 并挂验证任务;「说明」列为系统注释,无需填写</em>
</div>
<div class="flow"><b>提交 / 确认:</b>本工单只承载内容;确认请在对话区【数据卡】中进行。</div>
</div>
<footer class="card-foot">
<span>SS02 · ACT-WORK-05 差异评估 · 数据工单 1/1 · 芯片主数据创建(P-08)</span>
<span style="font-family:'SF Mono',Menlo,Consolas,monospace">工单类型:数据 · <span data-slot="card.id">WO-ACT-WORK-05-D01</span></span>
</footer>
</div>
</div>
<script>
(function(){
function wire(gateId, tblId, addrowId, addTpl){
var gate = document.getElementById(gateId);
var tbl = document.getElementById(tblId);
var addrow = addrowId ? document.getElementById(addrowId) : null;
var tbody = tbl.querySelector('tbody');
function setEdit(on){ gate.classList.toggle('on',on); tbl.classList.toggle('on',on); if(addrow){ addrow.classList.toggle('show',on); } }
function sync(fromVtoC){ tbody.querySelectorAll('tr').forEach(function(tr){ tr.querySelectorAll('td').forEach(function(td){ var v=td.querySelector('.jc-vcell'),c=td.querySelector('.jc-cell'); if(v&&c){ if(fromVtoC){c.value=v.textContent;}else{v.textContent=c.value;} } }); }); }
function renumber(){ tbody.querySelectorAll('tr').forEach(function(tr,i){ tr.querySelector('.jc-rn-num').textContent=i+1; }); }
gate.querySelector('.eg-open').addEventListener('click', function(){ setEdit(true); });
gate.querySelector('.eg-cancel').addEventListener('click', function(){ sync(true); setEdit(false); });
gate.querySelector('.eg-save').addEventListener('click', function(){ sync(false); renumber(); setEdit(false); });
if(addrow && addTpl){
addrow.querySelector('button').addEventListener('click', function(){
var tr=document.createElement('tr');
tr.innerHTML=addTpl;
tbody.appendChild(tr); renumber();
});
tbody.addEventListener('click', function(e){ if(e.target.classList.contains('jc-rowdel')){ e.target.closest('tr').remove(); renumber(); } });
}
}
wire('gate1','tbl1','addrow1',
'<td class="rn"><span class="jc-rn-num"></span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>'+
'<td><span class="jc-vcell mono"></span><input class="jc-cell mono" placeholder="内部料号*"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="品牌*"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="制造商"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="规格描述*"></td>'+
'<td><span class="jc-vcell mono"></span><input class="jc-cell mono" placeholder="封装*"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="工艺"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="生命周期*"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="EOL/PCN"></td>'+
'<td><span class="jc-vcell mono"></span><input class="jc-cell mono" placeholder="Datasheet 引用 · 版本"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="适配场景"></td>');
wire('gate2','tbl2','addrow2',
'<td class="rn"><span class="jc-rn-num"></span><button class="jc-rowdel" type="button" title="删除此行">×</button></td>'+
'<td><span class="jc-vcell mono"></span><input class="jc-cell mono" placeholder="所属料号*"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="参数名"></td>'+
'<td><span class="jc-vcell mono"></span><input class="jc-cell mono" placeholder="值"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="单位"></td>'+
'<td><span class="jc-vcell"></span><input class="jc-cell" placeholder="硬约束 / 软约束"></td>'+
'<td><span class="jc-vcell ro">—</span></td>');
})();
</script>
</body>
</html>