<h2>状态与操作映射规则</h2>
|
<p class="subtitle">定义哪些库存状态下允许执行哪些MES操作</p>
|
|
<div class="section">
|
<h3>库存信息页面 - 托盘级别</h3>
|
<p class="subtitle">进站/出站操作的触发条件</p>
|
|
<div class="mockup">
|
<div class="mockup-header">状态映射表(请在浏览器中选择)</div>
|
<div class="mockup-body">
|
<table class="mapping-table">
|
<thead>
|
<tr>
|
<th>库存状态</th>
|
<th>进站操作</th>
|
<th>出站操作</th>
|
</tr>
|
</thead>
|
<tbody>
|
<tr>
|
<td><span class="status-tag status-idle">待入库</span></td>
|
<td><input type="checkbox" checked> 允许</td>
|
<td><input type="checkbox"> 禁止</td>
|
</tr>
|
<tr>
|
<td><span class="status-tag status-instock">在库</span></td>
|
<td><input type="checkbox"> 禁止</td>
|
<td><input type="checkbox" checked> 允许</td>
|
</tr>
|
<tr>
|
<td><span class="status-tag status-outbound">出库中</span></td>
|
<td><input type="checkbox"> 禁止</td>
|
<td><input type="checkbox" checked> 允许</td>
|
</tr>
|
<tr>
|
<td><span class="status-tag status-lock">锁定</span></td>
|
<td><input type="checkbox"> 禁止</td>
|
<td><input type="checkbox"> 禁止</td>
|
</tr>
|
</tbody>
|
</table>
|
<p class="hint">提示:以上是默认建议,请在终端中告诉我需要调整的地方</p>
|
</div>
|
</div>
|
</div>
|
|
<div class="section">
|
<h3>库存明细页面 - 电芯级别</h3>
|
<p class="subtitle">绑定/解绑/NG上报操作的触发条件</p>
|
|
<div class="mockup">
|
<div class="mockup-header">状态映射表(请在浏览器中选择)</div>
|
<div class="mockup-body">
|
<table class="mapping-table">
|
<thead>
|
<tr>
|
<th>电芯状态</th>
|
<th>绑定操作</th>
|
<th>解绑操作</th>
|
<th>NG上报</th>
|
</tr>
|
</thead>
|
<tbody>
|
<tr>
|
<td><span class="status-tag status-normal">正常</span></td>
|
<td><input type="checkbox" checked> 允许</td>
|
<td><input type="checkbox" checked> 允许</td>
|
<td><input type="checkbox" checked> 允许</td>
|
</tr>
|
<tr>
|
<td><span class="status-tag status-exception">异常</span></td>
|
<td><input type="checkbox" checked> 允许</td>
|
<td><input type="checkbox" checked> 允许</td>
|
<td><input type="checkbox" checked> 允许</td>
|
</tr>
|
<tr>
|
<td><span class="status-tag status-locked">已锁定</span></td>
|
<td><input type="checkbox"> 禁止</td>
|
<td><input type="checkbox"> 禁止</td>
|
<td><input type="checkbox"> 禁止</td>
|
</tr>
|
</tbody>
|
</table>
|
<p class="hint">提示:以上是默认建议,请在终端中告诉我需要调整的地方</p>
|
</div>
|
</div>
|
</div>
|
|
<div class="section">
|
<h3>下一个问题</h3>
|
<p class="subtitle">是否需要记录MES接口调用日志?</p>
|
|
<div class="options">
|
<div class="option" data-choice="log-full" onclick="toggleSelect(this)">
|
<div class="letter">A</div>
|
<div class="content">
|
<h3>完整日志</h3>
|
<p>记录每次MES接口调用的完整信息(请求、响应、耗时、结果)</p>
|
<div class="pros-cons">
|
<div class="pros"><h4>优点</h4><ul><li>便于问题排查</li><li>支持审计追溯</li></ul></div>
|
</div>
|
</div>
|
</div>
|
<div class="option" data-choice="log-simple" onclick="toggleSelect(this)">
|
<div class="letter">B</div>
|
<div class="content">
|
<h3>简单日志</h3>
|
<p>仅记录调用成功/失败状态和错误信息</p>
|
<div class="pros-cons">
|
<div class="pros"><h4>优点</h4><ul><li>存储占用小</li><li>满足基本需求</li></ul></div>
|
</div>
|
</div>
|
</div>
|
<div class="option" data-choice="log-none" onclick="toggleSelect(this)">
|
<div class="letter">C</div>
|
<div class="content">
|
<h3>不记录</h3>
|
<p>不单独记录日志,仅依赖系统日志和MES系统日志</p>
|
<div class="pros-cons">
|
<div class="pros"><h4>优点</h4><ul><li>无额外存储</li><li>实现简单</li></ul></div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<style>
|
.mapping-table {
|
width: 100%;
|
border-collapse: collapse;
|
font-size: 13px;
|
}
|
.mapping-table th, .mapping-table td {
|
border: 1px solid #e0e0e0;
|
padding: 10px 12px;
|
text-align: center;
|
}
|
.mapping-table th {
|
background: #f5f5f5;
|
font-weight: 600;
|
color: #303133;
|
}
|
.mapping-table tbody tr:nth-child(even) {
|
background: #fafafa;
|
}
|
.mapping-table input[type="checkbox"] {
|
width: 16px;
|
height: 16px;
|
cursor: pointer;
|
}
|
.status-tag {
|
padding: 4px 10px;
|
border-radius: 4px;
|
font-size: 12px;
|
font-weight: 500;
|
}
|
.status-idle {
|
background: #e3f2fd;
|
color: #1976d2;
|
}
|
.status-instock {
|
background: #e8f5e9;
|
color: #388e3c;
|
}
|
.status-outbound {
|
background: #fff3e0;
|
color: #f57c00;
|
}
|
.status-lock {
|
background: #ffebee;
|
color: #d32f2f;
|
}
|
.status-normal {
|
background: #e8f5e9;
|
color: #388e3c;
|
}
|
.status-exception {
|
background: #fff3e0;
|
color: #f57c00;
|
}
|
.status-locked {
|
background: #ffebee;
|
color: #d32f2f;
|
}
|
.hint {
|
margin: 12px 0 0 0;
|
padding: 10px 12px;
|
background: #f0f7ff;
|
border-left: 3px solid #1f5eff;
|
font-size: 12px;
|
color: #606266;
|
}
|
.pros-cons {
|
display: flex;
|
gap: 16px;
|
margin-top: 12px;
|
}
|
.pros, .cons {
|
flex: 1;
|
font-size: 13px;
|
}
|
.pros h4 {
|
color: #4caf50;
|
margin: 0 0 6px 0;
|
}
|
.pros ul {
|
margin: 0;
|
padding-left: 16px;
|
}
|
.pros li {
|
margin-bottom: 4px;
|
}
|
</style>
|