fix: 修复ResultModal数据提取时的agent调用错误

详细说明:
- 修复getProjectInfo函数中seq.agent()的类型错误
- 添加兼容性处理,支持函数和对象两种数据格式
- 解决选择订单班后点击按钮导致页面崩溃的问题
- 修改文件: WorkflowPageV4.tsx (第934行)
- 影响模块: ResultModal数据显示系统

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Yep_Q
2025-10-10 14:25:07 +08:00
parent 6f1a9a577c
commit 125a134902
40 changed files with 7501 additions and 876 deletions

View File

@@ -959,3 +959,133 @@ body.dark-theme .theme-icon-dark {
body.dark-theme .theme-icon-light {
opacity: 0.5;
}
/* ========== Alternating Layout 图文交错布局 ========== */
.alternating-layout {
display: flex;
gap: var(--spacing-2xl);
align-items: center;
margin-bottom: var(--spacing-3xl);
}
.alternating-layout:nth-child(even) {
flex-direction: row-reverse; /* 偶数项自动反向 */
}
.alternating-layout .image-container {
flex: 0 0 45%; /* 图片占45% */
aspect-ratio: 16/9;
}
.alternating-layout .content {
flex: 1; /* 内容占剩余空间 */
}
/* ========== Featured Item 特色卡片 ========== */
.featured-item {
display: flex;
flex-direction: column;
}
.featured-item .image-container {
margin-bottom: var(--spacing-md);
aspect-ratio: 16/9;
}
.featured-item .image-container img {
aspect-ratio: 16/9;
width: 100%;
object-fit: cover;
}
/* ========== Progress Stats 进度条数据展示 ========== */
.progress-stats {
display: flex;
flex-direction: column;
gap: var(--spacing-lg);
padding: var(--spacing-xl);
background: var(--bg-card);
border-radius: var(--radius-lg);
border: 1px solid var(--border);
}
.progress-item {
display: flex;
flex-direction: column;
gap: var(--spacing-xs);
}
.progress-label {
font-size: 14px;
color: var(--text-secondary);
font-weight: 500;
}
.progress-bar {
height: 8px;
background: var(--bg-semi-dark);
border-radius: var(--radius-full);
overflow: hidden;
}
.progress-fill {
height: 100%;
background: linear-gradient(90deg, var(--accent-primary), var(--primary-purple));
border-radius: var(--radius-full);
transition: width 0.6s ease;
}
.progress-value {
font-size: 16px;
font-weight: 600;
color: var(--text-primary);
}
/* ========== Icon Grid 图标网格 ========== */
.icon-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: var(--spacing-lg);
}
.icon-card {
padding: var(--spacing-lg);
background: var(--bg-card);
border-radius: var(--radius-md);
border: 1px solid var(--border);
text-align: center;
transition: all var(--transition-base);
}
.icon-card:hover {
transform: translateY(-4px);
box-shadow: var(--shadow-lg);
}
.icon-card-icon {
font-size: 48px;
margin-bottom: var(--spacing-md);
}
.icon-card-title {
font-size: 16px;
font-weight: 600;
margin-bottom: var(--spacing-xs);
color: var(--text-primary);
}
.icon-card-value {
font-size: 14px;
color: var(--text-secondary);
}
/* ========== 响应式布局 ========== */
@media (max-width: 768px) {
.alternating-layout {
flex-direction: column !important;
}
.alternating-layout .image-container {
flex: 1 1 100%;
}
}

View File

@@ -66,14 +66,21 @@
</div>
<div class="section-content">
<div class="expert-intro">
<h3><i data-lucide="info"></i> 检测背景</h3>
<p>本项目对单批次 300mm 硅晶圆 + 表面SiO₂薄膜开展一次性质量检测。整套流程由AI引擎主导:负责数据清洗、主判定与自动出具结构化报告;检测员只在低可信或越界时介入复核,最大化保障速度与一致性。</p>
</div>
<div class="image-container" style="margin-bottom: var(--spacing-xl);">
<img data-src="images/检测背景主图.jpg" alt="检测背景" loading="lazy">
<div class="image-caption">AI驱动的智能检测系统</div>
<!-- Alternating Layout: 左图右文 -->
<div class="alternating-layout">
<div class="image-container">
<img data-src="images/检测背景主图.jpg" alt="检测背景" loading="lazy">
<div class="image-caption">AI驱动的智能检测系统</div>
</div>
<div class="content">
<h3 class="card-title"><i data-lucide="info"></i> 检测背景</h3>
<p style="color: var(--text-secondary); font-size: 15px; line-height: 1.8; margin-top: var(--spacing-md);">
本项目对单批次 <strong>300mm 硅晶圆 + 表面SiO₂薄膜</strong>开展一次性质量检测。检测的核心目标是在不打乱生产节拍的前提下,快速、客观地给出放行/拦截结论,并将证据图与关键数据同步打包,便于管理层与工艺同事直接引用。
</p>
<p style="color: var(--text-secondary); font-size: 15px; line-height: 1.8; margin-top: var(--spacing-sm);">
整套流程由<strong>AI引擎主导</strong>:它负责数据清洗(去噪、校正)、主判定(是否达标/进入观察/越界)与自动出具结构化报告;检测员只在低可信或越界时介入复核,最大化保障速度与一致性。
</p>
</div>
</div>
<div class="grid grid-2">
@@ -91,6 +98,49 @@
</div>
</div>
<!-- 检测目的详细说明 -->
<div class="card" style="grid-column: 1 / -1;">
<div class="card-header">
<h3 class="card-title"><i data-lucide="target"></i> 检测目的详细说明</h3>
</div>
<div class="card-body">
<div class="grid grid-2" style="gap: var(--spacing-lg);">
<div>
<h4 style="font-size: 16px; font-weight: 600; margin-bottom: var(--spacing-sm); color: var(--text-primary);">
<i data-lucide="eye" style="width: 18px; height: 18px;"></i> 1. 外观检测
</h4>
<p style="color: var(--text-secondary); font-size: 14px; line-height: 1.6;">
识别并量化颗粒、划痕、腐蚀等可见缺陷,输出数量、最大尺寸、位置分布与可信度;若出现同象限集中或边缘聚集,在报告中加注"需关注"提示,便于下批定位复测。
</p>
</div>
<div>
<h4 style="font-size: 16px; font-weight: 600; margin-bottom: var(--spacing-sm); color: var(--text-primary);">
<i data-lucide="layers" style="width: 18px; height: 18px;"></i> 2. 薄膜测量
</h4>
<p style="color: var(--text-secondary); font-size: 14px; line-height: 1.6;">
用9点法核对厚度均值与均匀性(3σ)是否满足目标窗口;当整体达标但边缘点偏离明显时,自动标记"边缘敏感",提示下批优先复查对应区域。
</p>
</div>
<div>
<h4 style="font-size: 16px; font-weight: 600; margin-bottom: var(--spacing-sm); color: var(--text-primary);">
<i data-lucide="zap" style="width: 18px; height: 18px;"></i> 3. 电学测试
</h4>
<p style="color: var(--text-secondary); font-size: 14px; line-height: 1.6;">
以"AI预测+少量点实测校准"的组合快速评估Rs当均值接近上/下限或离散度异常放大时,报告中会给出"观察或需复核"的明确结论与建议点位。
</p>
</div>
<div>
<h4 style="font-size: 16px; font-weight: 600; margin-bottom: var(--spacing-sm); color: var(--text-primary);">
<i data-lucide="atom" style="width: 18px; height: 18px;"></i> 4. 成分分析
</h4>
<p style="color: var(--text-secondary); font-size: 14px; line-height: 1.6;">
进行小样本XPS抽检确认O/Si比是否落在目标范围并筛查金属污染的可疑峰位若低于阈值但出现弱峰记为"可疑",建议同片位或邻近点复测。
</p>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h3 class="card-title">检测信息</h3>
@@ -156,14 +206,27 @@
</div>
<div class="section-content">
<div class="expert-intro">
<h3><i data-lucide="target"></i> 检测对象与项目</h3>
<p>样品类型:300mm硅晶圆+表面SiO₂薄膜。覆盖项目:外观(颗粒/划痕/腐蚀)、薄膜(厚度与均匀性)、电学(方块电阻Rs)、成分(XPS抽检)。</p>
</div>
<div class="image-container" style="margin-bottom: var(--spacing-xl);">
<img data-src="images/硅晶圆检测项目.jpg" alt="检测项目" loading="lazy">
<div class="image-caption">硅晶圆检测项目全景</div>
<!-- Alternating Layout: 右图左文 (自动反向) -->
<div class="alternating-layout">
<div class="image-container">
<img data-src="images/硅晶圆检测项目.jpg" alt="检测项目" loading="lazy">
<div class="image-caption">硅晶圆检测项目全景</div>
</div>
<div class="content">
<h3 class="card-title"><i data-lucide="target"></i> 检测对象与项目</h3>
<ul class="feature-list" style="margin-top: var(--spacing-md);">
<li><i data-lucide="circle-dot"></i> <strong>样品类型:</strong>300mm硅晶圆 + 表面SiO₂薄膜</li>
<li><i data-lucide="eye"></i> <strong>外观检测:</strong>颗粒、划痕、腐蚀等可见缺陷</li>
<li><i data-lucide="layers"></i> <strong>薄膜测量:</strong>厚度均值与均匀性(3σ)</li>
<li><i data-lucide="zap"></i> <strong>电学测试:</strong>方块电阻Rs(9点法)</li>
<li><i data-lucide="atom"></i> <strong>成分分析:</strong>XPS抽检(O/Si比、金属污染)</li>
<li><i data-lucide="shield-off"></i> <strong>不在范围:</strong>晶体位错、深层缺陷、应力拉曼</li>
</ul>
<p style="margin-top: var(--spacing-md); padding: var(--spacing-md); background: var(--bg-semi-dark); border-radius: var(--radius-md); border-left: 3px solid var(--accent-primary); font-size: 14px; color: var(--text-secondary);">
<i data-lucide="info" style="width: 16px; height: 16px;"></i>
<strong>结果使用:</strong>仅服务当批放行/拦截,不外推其他批次或不同工艺窗口。
</p>
</div>
</div>
<div class="table-container">
@@ -280,52 +343,73 @@
<div class="image-caption">光学镜头检测硅晶圆示意</div>
</div>
<!-- AI输出内容Featured Item 样式 -->
<div class="grid grid-4">
<div class="card">
<!-- 卡片1: 外观热力图 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/外观热力图(颗粒划痕腐蚀).jpg" alt="外观热力图" loading="lazy">
<img data-src="images/外观热力图颗粒划痕腐蚀.jpg" alt="外观热力图" loading="lazy">
<div class="image-caption">AI输出图表 1/4</div>
</div>
<div class="card-header">
<h3 class="card-title">外观热力图</h3>
<h3 class="card-title">
<i data-lucide="thermometer"></i>
外观热力图
</h3>
</div>
<div class="card-body">
<p>整片俯视图+网格热区,颗粒/划痕/腐蚀坑分类显示,颜色分级标注严重度。</p>
</div>
</div>
<div class="card">
<!-- 卡片2: 厚度分布图 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/厚度分布图.jpg" alt="厚度分布图" loading="lazy">
<div class="image-caption">AI输出图表 2/4</div>
</div>
<div class="card-header">
<h3 class="card-title">厚度分布图</h3>
<h3 class="card-title">
<i data-lucide="layers"></i>
厚度分布图
</h3>
</div>
<div class="card-body">
<p>9点热力格,均值、3σ、偏移率统计,边缘敏感性自动标注。</p>
</div>
</div>
<div class="card">
<!-- 卡片3: 电学对比图 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/电学对比图.jpg" alt="电学对比图" loading="lazy">
<div class="image-caption">AI输出图表 3/4</div>
</div>
<div class="card-header">
<h3 class="card-title">电学对比图</h3>
<h3 class="card-title">
<i data-lucide="zap"></i>
电学对比图
</h3>
</div>
<div class="card-body">
<p>AI预测vs实测散点图,误差统计,置信区间可视化展示。</p>
</div>
</div>
<div class="card">
<!-- 卡片4: 成分抽检 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/成分抽检卡片.jpg" alt="成分抽检" loading="lazy">
<div class="image-caption">AI输出图表 4/4</div>
</div>
<div class="card-header">
<h3 class="card-title">成分抽检卡片</h3>
<h3 class="card-title">
<i data-lucide="atom"></i>
成分抽检卡片
</h3>
</div>
<div class="card-body">
<p>O/Si比值、金属污染状态,峰位截图,采样位置追溯。</p>
<div class="card-body" style="order: 3; padding: 0 var(--spacing-lg) var(--spacing-lg); font-size: 14px;">
<p style="margin: 0; color: var(--text-secondary); line-height: 1.6;">O/Si比值、金属污染状态,峰位截图,采样位置追溯。</p>
</div>
</div>
</div>
@@ -341,43 +425,111 @@
<p>自动出报告并归档,无需人工处理。</p>
</div>
</div>
<!-- 测点最少化策略 -->
<div class="expert-intro" style="margin-top: var(--spacing-xl);">
<h3><i data-lucide="minimize-2"></i> 测点最少化策略</h3>
<div class="grid grid-2" style="margin-top: var(--spacing-md); gap: var(--spacing-lg);">
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title">0.80-0.90 → 观察</h4>
<h4 class="card-title">✅ 默认做法9点测量</h4>
</div>
<div class="card-body" style="order: 2;">
<p>自动生成备注与关注点,坐标放入下批复测清单</p>
<p style="margin-bottom: var(--spacing-sm);">厚度和Rs用9点中心1点+内环4点+外环4点能覆盖重点区域也不太费时</p>
<p style="font-size: 14px; color: var(--text-secondary);">💡 <strong>"少测点"方法:</strong>如果AI预测和前3点实测的差异<2%剩下6点可以用AI估算报告里必须标注这些点为"AI估计"同时随机抽查1-2点以确保靠谱</p>
</div>
</div>
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title"><0.80或超限 待复核</h4>
<h4 class="card-title">⚠️ 不能少测点的情况</h4>
</div>
<div class="card-body" style="order: 2;">
<p>自动通知检测员复核,复核前不建议放行。</p>
<ul class="feature-list" style="font-size: 14px;">
<li><i data-lucide="alert-triangle"></i> 某一象限的缺陷/颗粒明显偏多</li>
<li><i data-lucide="alert-triangle"></i> 边缘和中心差距异常(边缘普遍偏高或偏低)</li>
<li><i data-lucide="alert-triangle"></i> 前3点与AI预测差异≥2%</li>
</ul>
<p style="margin-top: var(--spacing-sm); font-size: 14px; color: var(--text-secondary);">遇到这些情况,系统会自动恢复<strong>完整9点</strong>;必要时建议升到<strong>13点</strong>外环再加4点再确认。</p>
</div>
</div>
</div>
</div>
<div class="stats" style="margin-top: var(--spacing-xl);">
<div class="stat-item">
<div class="stat-label">单片用时</div>
<div class="stat-value single-time">0分钟</div>
</div>
<div class="stat-item">
<div class="stat-label">批次用时(20片)</div>
<div class="stat-value batch-time">0小时</div>
</div>
<div class="stat-item">
<div class="stat-label">AI可信度</div>
<div class="stat-value ai-confidence">0%</div>
</div>
<div class="stat-item">
<div class="stat-label">异常复核</div>
<div class="stat-value">3-5分钟/片</div>
</div>
<!-- AI输出内容详解简洁卡片样式 -->
<div class="expert-intro" style="margin-top: var(--spacing-xl);">
<h3><i data-lucide="image"></i> AI输出内容详解</h3>
</div>
<!-- Grid 2x2 简洁卡片布局 -->
<div class="grid grid-2" style="margin-top: var(--spacing-lg); gap: var(--spacing-xl);">
<!-- 1. 外观热力图 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/外观热力图(颗粒划痕腐蚀).jpg" alt="外观热力图" loading="lazy">
</div>
<div class="card-header">
<h3 class="card-title">
<i data-lucide="thermometer"></i>
外观热力图
</h3>
</div>
<div class="card-body">
<p><strong>展示:</strong>整片俯视图+网格热区,颗粒/划痕/腐蚀分类显示,绿/橙/红颜色分级</p>
<p><strong>读图:</strong>①看红橙区是否集中 ②确认最大尺寸位置 ③判断分布随机性</p>
</div>
</div>
<!-- 2. 厚度分布图 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/厚度分布图.jpg" alt="厚度分布图" loading="lazy">
</div>
<div class="card-header">
<h3 class="card-title">
<i data-lucide="layers"></i>
厚度分布图
</h3>
</div>
<div class="card-body">
<p><strong>组成:</strong>9点热力格冷→暖=薄→厚),统计卡(均值/3σ/偏移率),达标徽记</p>
<p><strong>要点:</strong>3σ≤±3%且偏移率接近0为稳定边缘敏感标记提示复测</p>
</div>
</div>
<!-- 3. 电学对比图 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/电学对比图.jpg" alt="电学对比图" loading="lazy">
</div>
<div class="card-header">
<h3 class="card-title">
<i data-lucide="zap"></i>
电学对比图
</h3>
</div>
<div class="card-body">
<p><strong>元素:</strong>散点图AI预测vs实测45°参考线误差统计MAE/MAPE</p>
<p><strong>判读:</strong>靠近45°线=准确,上方偏多=低估,下方偏多=高估</p>
</div>
</div>
<!-- 4. 成分抽检卡片 -->
<div class="card featured-item">
<div class="image-container">
<img data-src="images/成分抽检卡片.jpg" alt="成分抽检" loading="lazy">
</div>
<div class="card-header">
<h3 class="card-title">
<i data-lucide="atom"></i>
成分抽检卡片
</h3>
</div>
<div class="card-body">
<p><strong>项目:</strong>O/Si比值2.00±0.05),金属污染(<1×10¹atoms/cm²峰位截图</p>
<p><strong>状态:</strong>正常(窗口内)、可疑(弱峰低于阈值)、异常(超出范围)</p>
</div>
</div>
</div>
</div>
</section>
@@ -401,9 +553,85 @@
<p>本批共20片晶圆,全部完成外观、厚度、Rs三项检测;随机抽取3片补做XPS成分核验。完成度100%,无漏测、无中断记录。总体判定:合格19片、观察1片、不合格0片。</p>
</div>
<div class="image-container" style="margin-bottom: var(--spacing-xl);">
<img data-src="images/检测结果主图.jpg" alt="检测结果" loading="lazy">
<div class="image-caption">检测结果主图</div>
<!-- 批次摘要详细说明 -->
<div class="grid grid-3" style="margin-top: var(--spacing-lg); gap: var(--spacing-md);">
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title"><i data-lucide="check-square"></i> 覆盖范围与完成度</h4>
</div>
<div class="card-body" style="order: 2; font-size: 14px;">
<p>本批共20片晶圆全部按计划完成<strong>外观、厚度、方块电阻(Rs)</strong>三项检测随机抽取3片补做XPS成分核验。</p>
<p style="margin-top: var(--spacing-xs); color: var(--text-secondary);">外观采用全片扫描单片分辨率约0.2-0.3μm/px厚度与Rs采用9点法中心+内环4点+外环4点与晶圆Notch对齐确保点位一致性。</p>
<p style="margin-top: var(--spacing-xs); color: var(--accent-primary); font-weight: 600;">✓ 完成度100%,无漏测、无中断记录。</p>
</div>
</div>
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title"><i data-lucide="bar-chart-2"></i> 统计口径与一致性</h4>
</div>
<div class="card-body" style="order: 2; font-size: 14px;">
<ul class="feature-list">
<li><i data-lucide="eye"></i> <strong>外观:</strong>每片"最大值"与"总数"呈现(便于快速对比风险峰值与整体水平)</li>
<li><i data-lucide="layers"></i> <strong>厚度与Rs</strong>9点"均值+3σ(离散)"呈现</li>
<li><i data-lucide="atom"></i> <strong>成分:</strong>按"正常/可疑/异常"分级并附O/Si比与金属峰提示</li>
</ul>
<p style="margin-top: var(--spacing-xs); color: var(--text-secondary);">各项统计口径与上一版报告保持一致,便于横向对比。</p>
</div>
</div>
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title"><i data-lucide="pie-chart"></i> 总体判定与分布</h4>
</div>
<div class="card-body" style="order: 2; font-size: 14px;">
<p>结果汇总:<strong style="color: var(--success-color);">合格19片</strong><strong style="color: var(--warning-color);">观察1片</strong><strong style="color: var(--error-color);">不合格0片</strong></p>
<p style="margin-top: var(--spacing-xs);">进入"观察"的样片原因为<strong>Rs略高但未越界</strong>其余19片全部在阈值内。</p>
<div class="stats" style="margin-top: var(--spacing-md);">
<div class="stat-item" style="flex: 1;">
<div class="stat-label">合格率</div>
<div class="stat-value" style="color: var(--success-color);">95%</div>
</div>
<div class="stat-item" style="flex: 1;">
<div class="stat-label">观察率</div>
<div class="stat-value" style="color: var(--warning-color);">5%</div>
</div>
</div>
</div>
</div>
</div>
<!-- Alternating Layout: 检测结果可视化 -->
<div class="alternating-layout">
<div class="image-container">
<img data-src="images/检测结果主图.jpg" alt="检测结果" loading="lazy">
<div class="image-caption">检测结果数据可视化</div>
</div>
<div class="content">
<h3 class="card-title"><i data-lucide="bar-chart-4"></i> 检测结果总览</h3>
<div class="grid grid-2" style="margin-top: var(--spacing-md); gap: var(--spacing-md);">
<div style="padding: var(--spacing-md); background: var(--bg-semi-dark); border-radius: var(--radius-md);">
<div style="font-size: 32px; font-weight: bold; color: var(--success-color);">95%</div>
<div style="font-size: 14px; color: var(--text-secondary); margin-top: 4px;">批次合格率</div>
</div>
<div style="padding: var(--spacing-md); background: var(--bg-semi-dark); border-radius: var(--radius-md);">
<div style="font-size: 32px; font-weight: bold; color: var(--primary);">0.94</div>
<div style="font-size: 14px; color: var(--text-secondary); margin-top: 4px;">AI可信度</div>
</div>
<div style="padding: var(--spacing-md); background: var(--bg-semi-dark); border-radius: var(--radius-md);">
<div style="font-size: 32px; font-weight: bold; color: var(--warning-color);">1片</div>
<div style="font-size: 14px; color: var(--text-secondary); margin-top: 4px;">观察片数</div>
</div>
<div style="padding: var(--spacing-md); background: var(--bg-semi-dark); border-radius: var(--radius-md);">
<div style="font-size: 32px; font-weight: bold; color: var(--text-gray);">0片</div>
<div style="font-size: 14px; color: var(--text-secondary); margin-top: 4px;">不合格片数</div>
</div>
</div>
<p style="margin-top: var(--spacing-md); padding: var(--spacing-sm); background: var(--success-bg, rgba(76, 175, 80, 0.1)); border-radius: var(--radius-md); border-left: 3px solid var(--success-color); font-size: 14px;">
<i data-lucide="check-circle" style="width: 16px; height: 16px;"></i>
<strong>总体评价:</strong>本批质量稳定仅1片进入观察带AI与人工判定结果100%一致。
</p>
</div>
</div>
<div class="table-container">
@@ -542,25 +770,195 @@
</div>
</div>
</div>
<!-- 观察项解释 -->
<div class="expert-intro" style="margin-top: var(--spacing-xl);">
<h3><i data-lucide="help-circle"></i> 观察项解释</h3>
<div class="grid grid-2" style="margin-top: var(--spacing-md); gap: var(--spacing-lg);">
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title">❓ 为何是"观察"而非"不合格"</h4>
</div>
<div class="card-body" style="order: 2; font-size: 14px;">
<p style="line-height: 1.8;">Rs仍在允许范围内只是接近上限离散度正常说明并非局部失控。</p>
<div style="background: var(--bg-semi-dark); padding: var(--spacing-md); border-radius: var(--radius-md); margin-top: var(--spacing-sm);">
<p style="margin: 0; color: var(--text-secondary);">
<i data-lucide="info" style="width: 16px; height: 16px; vertical-align: middle;"></i>
<strong>技术说明:</strong>Rs均值61.1Ω/□目标60±1.2Ω/□,偏差+1.1Ω/□约1.8%仍在规格窗口内。9点离散度2.9Ω/□属于正常工艺波动范围。
</p>
</div>
</div>
</div>
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title">📊 对良率和使用的影响</h4>
</div>
<div class="card-body" style="order: 2; font-size: 14px;">
<p style="line-height: 1.8;">在当前应用场景下属于可接受波动,不会成为直接的失效风险。</p>
<div style="background: var(--warning-bg, rgba(255, 193, 7, 0.1)); padding: var(--spacing-md); border-radius: var(--radius-md); margin-top: var(--spacing-sm); border-left: 3px solid var(--warning-color, #ffc107);">
<p style="margin: 0; color: var(--text-primary);">
<i data-lucide="alert-triangle" style="width: 16px; height: 16px; vertical-align: middle; color: var(--warning-color);"></i>
<strong>预警:</strong>若下批连续出现同样趋势,可能意味着工艺轻微偏移,需要小范围微调确认。
</p>
</div>
</div>
</div>
</div>
</div>
<div class="stats" style="margin-top: var(--spacing-xl);">
<div class="stat-item">
<div class="stat-label">批次合格率</div>
<div class="stat-value pass-rate">0%</div>
<!-- 复核与跟踪 -->
<div class="expert-intro" style="margin-top: var(--spacing-xl);">
<h3><i data-lucide="search-check"></i> 复核与跟踪</h3>
<div style="margin-top: var(--spacing-md);">
<div class="card" style="margin-bottom: var(--spacing-lg);">
<div class="card-header" style="order: 1;">
<h4 class="card-title">✅ 当班复核</h4>
</div>
<div class="card-body" style="order: 2; font-size: 14px;">
<p>观察片的重点点位已复测确认属轻微偏高AI与人工结论一致。</p>
<div class="stats" style="margin-top: var(--spacing-md); gap: var(--spacing-sm);">
<div class="stat-item">
<div class="stat-label">复核方式</div>
<div class="stat-value" style="font-size: 16px;">人工+AI双验证</div>
</div>
<div class="stat-item">
<div class="stat-label">结论一致性</div>
<div class="stat-value" style="font-size: 16px; color: var(--success-color);">100%</div>
</div>
<div class="stat-item">
<div class="stat-label">复核耗时</div>
<div class="stat-value" style="font-size: 16px;">3分钟</div>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header" style="order: 1;">
<h4 class="card-title">🔄 下批跟踪计划</h4>
</div>
<div class="card-body" style="order: 2;">
<div class="grid grid-2" style="gap: var(--spacing-lg);">
<div>
<h5 style="font-size: 15px; font-weight: 600; margin-bottom: var(--spacing-sm);">
<i data-lucide="map-pin" style="width: 18px; height: 18px;"></i> 优先点位
</h5>
<ul class="feature-list" style="font-size: 14px;">
<li><i data-lucide="crosshair"></i> 边缘外环3点NE、NW、SE</li>
<li><i data-lucide="crosshair"></i> 中心1点</li>
</ul>
<p style="margin-top: var(--spacing-xs); font-size: 13px; color: var(--text-gray);">
💡 AI已在报告中自动生成对应坐标
</p>
</div>
<div>
<h5 style="font-size: 15px; font-weight: 600; margin-bottom: var(--spacing-sm);">
<i data-lucide="git-branch" style="width: 18px; height: 18px;"></i> 顺序建议
</h5>
<ol style="font-size: 14px; color: var(--text-secondary); padding-left: 20px; line-height: 1.8;">
<li>先边缘后中心</li>
<li>若边缘回落而中心不变,优先考虑边缘效应</li>
<li>合格判据Rs均值回到60±1.2Ω/□内且9点离散≤上一批离散值+10%即可判定"趋稳"</li>
</ol>
</div>
</div>
<div style="background: var(--accent-bg, rgba(99, 102, 241, 0.1)); padding: var(--spacing-md); border-radius: var(--radius-md); margin-top: var(--spacing-md); border-left: 3px solid var(--accent-primary);">
<p style="margin: 0; font-size: 14px; line-height: 1.6;">
<i data-lucide="target" style="width: 16px; height: 16px; vertical-align: middle; color: var(--accent-primary);"></i>
<strong>跟踪目标:</strong>通过下批4个关键点位的数据变化快速判断工艺稳定性。若Rs回落且离散度稳定可维持当前工艺参数若无改善或继续上升需启动工艺分析会议评估是否调整沉积参数。
</p>
</div>
</div>
</div>
</div>
<div class="stat-item">
<div class="stat-label">AI可信度</div>
<div class="stat-value">0.94</div>
</div>
</div>
<div class="stats" style="margin-top: var(--spacing-xl); display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-lg); padding: var(--spacing-xl); background: var(--bg-semi-dark); border-radius: var(--radius-lg);">
<div class="stat-item" style="text-align: center; padding: var(--spacing-md); background: var(--bg-card); border-radius: var(--radius-md); border: 1px solid var(--border);">
<div class="stat-label" style="font-size: 14px; color: var(--text-gray); margin-bottom: var(--spacing-xs); text-transform: uppercase; letter-spacing: 0.05em;">批次合格率</div>
<div class="stat-value" style="font-size: var(--text-3xl); font-weight: var(--font-bold); color: var(--success-color, #4caf50); line-height: 1.2;">95%</div>
</div>
<div class="stat-item">
<div class="stat-label">观察片数</div>
<div class="stat-value">1片</div>
<div class="stat-item" style="text-align: center; padding: var(--spacing-md); background: var(--bg-card); border-radius: var(--radius-md); border: 1px solid var(--border);">
<div class="stat-label" style="font-size: 14px; color: var(--text-gray); margin-bottom: var(--spacing-xs); text-transform: uppercase; letter-spacing: 0.05em;">AI可信度</div>
<div class="stat-value" style="font-size: var(--text-3xl); font-weight: var(--font-bold); color: var(--primary); line-height: 1.2;">0.94</div>
</div>
<div class="stat-item">
<div class="stat-label">不合格片数</div>
<div class="stat-value">0</div>
<div class="stat-item" style="text-align: center; padding: var(--spacing-md); background: var(--bg-card); border-radius: var(--radius-md); border: 1px solid var(--border);">
<div class="stat-label" style="font-size: 14px; color: var(--text-gray); margin-bottom: var(--spacing-xs); text-transform: uppercase; letter-spacing: 0.05em;">观察片数</div>
<div class="stat-value" style="font-size: var(--text-3xl); font-weight: var(--font-bold); color: var(--warning-color, #ff9800); line-height: 1.2;">1</div>
</div>
<div class="stat-item" style="text-align: center; padding: var(--spacing-md); background: var(--bg-card); border-radius: var(--radius-md); border: 1px solid var(--border);">
<div class="stat-label" style="font-size: 14px; color: var(--text-gray); margin-bottom: var(--spacing-xs); text-transform: uppercase; letter-spacing: 0.05em;">不合格片数</div>
<div class="stat-value" style="font-size: var(--text-3xl); font-weight: var(--font-bold); color: var(--text-gray); line-height: 1.2;">0片</div>
</div>
</div>
</div>
</div>
</section>
<!-- AI核心能力展示 -->
<section class="section">
<div class="container">
<div class="expert-intro">
<h2 class="section-title text-center" style="margin-bottom: var(--spacing-md);">
<i data-lucide="cpu"></i> AI核心能力
</h2>
<p style="text-align: center; color: var(--text-secondary); max-width: 800px; margin: 0 auto;">
本项目采用先进的AI技术实现从数据采集到报告生成的全流程自动化大幅提升检测效率与准确性。
</p>
</div>
<!-- Icon Grid -->
<div class="icon-grid" style="margin-top: var(--spacing-2xl);">
<div class="icon-card">
<div class="icon-card-icon">🧹</div>
<h4 class="icon-card-title">自动数据清洗</h4>
<p class="icon-card-value">去噪、校正、标准化</p>
</div>
<div class="icon-card">
<div class="icon-card-icon">🧠</div>
<h4 class="icon-card-title">智能主判定</h4>
<p class="icon-card-value">合格/观察/不合格</p>
</div>
<div class="icon-card">
<div class="icon-card-icon">⚖️</div>
<h4 class="icon-card-title">阈值自动比对</h4>
<p class="icon-card-value">实时对标工艺窗口</p>
</div>
<div class="icon-card">
<div class="icon-card-icon">📊</div>
<h4 class="icon-card-title">可信度评估</h4>
<p class="icon-card-value">0.94平均可信度</p>
</div>
<div class="icon-card">
<div class="icon-card-icon">📈</div>
<h4 class="icon-card-title">趋势预测</h4>
<p class="icon-card-value">工艺偏移预警</p>
</div>
<div class="icon-card">
<div class="icon-card-icon">⚠️</div>
<h4 class="icon-card-title">异常自动预警</h4>
<p class="icon-card-value">低可信/越界提醒</p>
</div>
<div class="icon-card">
<div class="icon-card-icon">📄</div>
<h4 class="icon-card-title">报告一键生成</h4>
<p class="icon-card-value">≤2分钟出具PDF</p>
</div>
<div class="icon-card">
<div class="icon-card-icon">🔄</div>
<h4 class="icon-card-title">持续学习优化</h4>
<p class="icon-card-value">模型迭代升级</p>
</div>
</div>
</div>