feat: 卫生供应模块8页面交互优化及功能说明文档补充
- 统一侧边栏菜单顺序(仓储管理前移) - 多页面新增弹窗表单(外售订单、内供申领、净菜包装、入库单等) - 表格列结构重构:溯源码前移、新增包装规格/申领份数 - 菜品名称统一为"食材名(加工规格)"格式 - 补充营养管理功能说明文档及调整记录 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -78,6 +78,29 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
thead th:last-child,tbody td.td-actions{position:sticky;right:0;background:#fff;box-shadow:-4px 0 8px rgba(0,0,0,0.04);z-index:2;white-space:nowrap;}
|
||||
thead th:last-child{background:#FAFAFA;}
|
||||
tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
/* 弹窗 */
|
||||
.modal-mask{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:1000;align-items:center;justify-content:center;}
|
||||
.modal-mask.show{display:flex;}
|
||||
.modal{background:#fff;border-radius:var(--radius-lg);width:720px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(0,0,0,0.15);}
|
||||
.modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);}
|
||||
.modal__title{font-size:var(--font-lg);font-weight:600;}
|
||||
.modal__close{width:32px;height:32px;border:none;background:none;font-size:20px;cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;}
|
||||
.modal__close:hover{background:#F5F5F5;color:var(--text-primary);}
|
||||
.modal__body{padding:24px;overflow-y:auto;flex:1;}
|
||||
.modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border);}
|
||||
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;}
|
||||
.form-group{display:flex;flex-direction:column;gap:6px;}
|
||||
.form-group.full{grid-column:1/-1;}
|
||||
.form-label{font-size:var(--font-sm);color:var(--text-secondary);}
|
||||
.form-label .required{color:var(--danger);margin-left:2px;}
|
||||
.form-control{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;width:100%;}
|
||||
.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(24,144,255,0.1);}
|
||||
select.form-control{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;padding-right:28px;cursor:pointer;}
|
||||
textarea.form-control{height:auto;padding:8px 12px;resize:vertical;min-height:60px;}
|
||||
/* 分隔线 */
|
||||
.form-divider{grid-column:1/-1;border:none;border-top:1px solid var(--border);margin:4px 0;}
|
||||
/* 只读字段 */
|
||||
.form-control[readonly]{background:#F5F5F5;color:var(--text-secondary);cursor:default;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -107,8 +130,8 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -151,7 +174,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="action-bar"><button class="btn btn-primary">➕ 新建订单</button> <button class="btn btn-default">📥 触发毛菜入库</button> <button class="btn btn-default">✅ 确认签收</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openCreateOrder()">➕ 新建订单</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">净菜外售</div>
|
||||
@@ -159,15 +182,15 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>订单号</th><th>客户名称</th><th>净菜名称</th><th>溯源码</th><th>食材分类</th><th>数量(kg)</th><th>单价(元/kg)</th><th>小计金额</th><th>出库区域</th><th>下单时间</th><th>物流单号</th><th>订单状态</th><th>操作</th>
|
||||
<th>订单号</th><th>溯源码</th><th>客户名称</th><th>净菜名称</th><th>包装规格</th><th>售卖份数</th><th>计量(kg)</th><th>单价(元/kg)</th><th>小计金额</th><th>出库区域</th><th>下单时间</th><th>物流单号</th><th>订单状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>EXT-001</td><td>社区便民超市</td><td>净菠菜</td><td>NC-INT-BOCA-20260422-01</td><td>蔬菜类</td><td>50</td><td>¥3.5</td><td>¥175</td><td>A仓-蔬菜区-01</td><td>08:00</td><td>SF1234567890</td><td><span class="tag tag-green">已签收</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-001</td><td>社区便民超市</td><td>净胡萝卜</td><td>NC-INT-HLUB-20260422-01</td><td>蔬菜类</td><td>30</td><td>¥3.5</td><td>¥105</td><td>A仓-蔬菜区-03</td><td>08:00</td><td>SF1234567890</td><td><span class="tag tag-green">已签收</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-002</td><td>周边餐饮企业</td><td>净猪里脊</td><td>NC-INT-ZLRJ-20260422-01</td><td>肉禽类</td><td>50</td><td>¥28</td><td>¥1,400</td><td>B仓-肉类区-01</td><td>09:30</td><td>SF9876543210</td><td><span class="tag tag-blue">配送中</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-003</td><td>学校食堂</td><td>净白菜</td><td>NC-INT-BCAI-20260422-01</td><td>蔬菜类</td><td>60</td><td>¥2.0</td><td>¥120</td><td>A仓-蔬菜区-02</td><td>10:00</td><td>—</td><td><span class="tag tag-orange">待发货</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-003</td><td>学校食堂</td><td>净西兰花</td><td>NC-INT-XLHU-20260422-01</td><td>蔬菜类</td><td>40</td><td>¥4.5</td><td>¥180</td><td>A仓-蔬菜区-04</td><td>10:00</td><td>—</td><td><span class="tag tag-orange">待发货</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-003</td><td>学校食堂</td><td>净胡萝卜</td><td>NC-INT-HLUB-20260422-02</td><td>蔬菜类</td><td>45</td><td>¥4.0</td><td>¥180</td><td>A仓-蔬菜区-03</td><td>10:00</td><td>—</td><td><span class="tag tag-orange">待发货</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-001</td><td>NC-INT-BOCA-20260422-01</td><td>社区便民超市</td><td>土豆(土豆丝)</td><td>5kg/箱</td><td>10</td><td>50</td><td>¥3.5</td><td>¥175</td><td>A仓-蔬菜区-01</td><td>2026-04-22 08:00:00</td><td>SF1234567890</td><td><span class="tag tag-green">已签收</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-001</td><td>NC-INT-HLUB-20260422-01</td><td>社区便民超市</td><td>土豆(土豆块)</td><td>5kg/箱</td><td>6</td><td>30</td><td>¥3.5</td><td>¥105</td><td>A仓-蔬菜区-03</td><td>2026-04-22 08:00:00</td><td>SF1234567890</td><td><span class="tag tag-green">已签收</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-002</td><td>NC-INT-ZLRJ-20260422-01</td><td>周边餐饮企业</td><td>净猪里脊</td><td>1kg/箱</td><td>5</td><td>50</td><td>¥28</td><td>¥1,400</td><td>B仓-肉类区-01</td><td>2026-04-22 09:30:00</td><td>SF9876543210</td><td><span class="tag tag-blue">配送中</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link btn-confirm-recv" style="color:var(--success)">确认签收</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-003</td><td>NC-INT-BCAI-20260422-01</td><td>学校食堂</td><td>鸡肉(鸡肉块)</td><td>1kg/箱</td><td>6</td><td>60</td><td>¥2.0</td><td>¥120</td><td>A仓-蔬菜区-02</td><td>2026-04-22 10:00:00</td><td>—</td><td><span class="tag tag-orange">待发货</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-003</td><td>NC-INT-XLHU-20260422-01</td><td>学校食堂</td><td>净西兰花</td><td>5kg/箱</td><td>8</td><td>40</td><td>¥4.5</td><td>¥180</td><td>A仓-蔬菜区-04</td><td>2026-04-22 10:00:00</td><td>—</td><td><span class="tag tag-orange">待发货</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>EXT-003</td><td>NC-INT-HLUB-20260422-02</td><td>学校食堂</td><td>净胡萝卜</td><td>5kg/箱</td><td>9</td><td>45</td><td>¥4.0</td><td>¥180</td><td>A仓-蔬菜区-03</td><td>2026-04-22 10:00:00</td><td>—</td><td><span class="tag tag-orange">待发货</span></td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -181,5 +204,167 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 新建订单弹窗 -->
|
||||
<div class="modal-mask" id="createOrderModal">
|
||||
<div class="modal">
|
||||
<div class="modal__header">
|
||||
<span class="modal__title">新建外售订单</span>
|
||||
<button class="modal__close" onclick="closeCreateOrder()">×</button>
|
||||
</div>
|
||||
<div class="modal__body">
|
||||
<div class="form-grid">
|
||||
<div class="form-group">
|
||||
<label class="form-label">溯源码<span class="required">*</span></label>
|
||||
<input class="form-control" id="orderTraceCode" placeholder="请输入溯源码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">客户名称<span class="required">*</span></label>
|
||||
<select class="form-control" id="orderCustomer">
|
||||
<option value="">请选择客户</option>
|
||||
<option>社区便民超市</option>
|
||||
<option>周边餐饮企业</option>
|
||||
<option>学校食堂</option>
|
||||
<option>职工家属区团购</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">联系人</label>
|
||||
<input class="form-control" placeholder="请输入联系人姓名">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">联系电话</label>
|
||||
<input class="form-control" placeholder="请输入联系电话">
|
||||
</div>
|
||||
<div class="form-group full">
|
||||
<label class="form-label">收货地址</label>
|
||||
<input class="form-control" placeholder="请输入收货地址">
|
||||
</div>
|
||||
|
||||
<hr class="form-divider">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label">净菜名称<span class="required">*</span></label>
|
||||
<select class="form-control" id="orderItem" onchange="onItemChange()">
|
||||
<option value="">请选择净菜</option>
|
||||
<option value="土豆(土豆丝)" data-price="3.5" data-pkg="5kg/箱">土豆(土豆丝)</option>
|
||||
<option value="土豆(土豆块)" data-price="3.5" data-pkg="5kg/箱">土豆(土豆块)</option>
|
||||
<option value="净猪里脊" data-price="28" data-pkg="1kg/箱">净猪里脊</option>
|
||||
<option value="鸡肉(鸡肉块)" data-price="2.0" data-pkg="1kg/箱">鸡肉(鸡肉块)</option>
|
||||
<option value="净西兰花" data-price="4.5" data-pkg="5kg/箱">净西兰花</option>
|
||||
<option value="净胡萝卜" data-price="4.0" data-pkg="5kg/箱">净胡萝卜</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">包装规格</label>
|
||||
<input class="form-control" id="orderPkg" readonly placeholder="选择净菜后自动填充">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">申领份数<span class="required">*</span></label>
|
||||
<input class="form-control" id="orderQty" type="number" min="1" value="1" oninput="calcOrder()">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">计量(kg)</label>
|
||||
<input class="form-control" id="orderWeight" readonly placeholder="自动计算">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">单价(元/kg)<span class="required">*</span></label>
|
||||
<input class="form-control" id="orderPrice" type="number" min="0" step="0.1" placeholder="请输入单价" oninput="calcOrder()">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">小计金额</label>
|
||||
<input class="form-control" id="orderSubtotal" readonly placeholder="自动计算">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">出库区域<span class="required">*</span></label>
|
||||
<select class="form-control" id="orderArea">
|
||||
<option value="">请选择出库区域</option>
|
||||
<option>A仓-蔬菜区-01</option>
|
||||
<option>A仓-蔬菜区-02</option>
|
||||
<option>A仓-蔬菜区-03</option>
|
||||
<option>A仓-蔬菜区-04</option>
|
||||
<option>B仓-肉类区-01</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<hr class="form-divider">
|
||||
|
||||
<div class="form-group full">
|
||||
<label class="form-label">备注</label>
|
||||
<textarea class="form-control" rows="2" placeholder="请输入订单备注(选填)"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal__footer">
|
||||
<button class="btn btn-default" onclick="closeCreateOrder()">取消</button>
|
||||
<button class="btn btn-primary" onclick="submitOrder()">确认提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/* 新建订单弹窗 */
|
||||
function openCreateOrder(){
|
||||
document.getElementById('createOrderModal').classList.add('show');
|
||||
}
|
||||
function closeCreateOrder(){
|
||||
document.getElementById('createOrderModal').classList.remove('show');
|
||||
}
|
||||
document.getElementById('createOrderModal').addEventListener('click',function(e){
|
||||
if(e.target===this) closeCreateOrder();
|
||||
});
|
||||
|
||||
/* 选择净菜后自动填充包装规格并计算 */
|
||||
function onItemChange(){
|
||||
var sel=document.getElementById('orderItem');
|
||||
var opt=sel.options[sel.selectedIndex];
|
||||
var pkg=opt.getAttribute('data-pkg')||'';
|
||||
document.getElementById('orderPkg').value=pkg;
|
||||
calcOrder();
|
||||
}
|
||||
|
||||
/* 计算计量和小计 */
|
||||
function calcOrder(){
|
||||
var sel=document.getElementById('orderItem');
|
||||
var opt=sel.options[sel.selectedIndex];
|
||||
var pkg=opt.getAttribute('data-pkg')||'';
|
||||
var pkgKg=parseFloat(pkg)||0;
|
||||
var qty=parseInt(document.getElementById('orderQty').value)||0;
|
||||
var price=parseFloat(document.getElementById('orderPrice').value)||0;
|
||||
var weight=pkgKg*qty;
|
||||
document.getElementById('orderWeight').value=weight>0?weight:'';
|
||||
var subtotal=price*weight;
|
||||
document.getElementById('orderSubtotal').value=subtotal>0?'¥'+subtotal.toFixed(2):'';
|
||||
}
|
||||
|
||||
/* 确认签收交互 */
|
||||
document.querySelectorAll('.btn-confirm-recv').forEach(function(btn){
|
||||
btn.addEventListener('click',function(){
|
||||
if(confirm('确认已签收该订单?')){
|
||||
var tr=this.closest('tr');
|
||||
var statusTd=tr.querySelector('.tag');
|
||||
statusTd.className='tag tag-green';
|
||||
statusTd.textContent='已签收';
|
||||
this.remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/* 提交订单 */
|
||||
function submitOrder(){
|
||||
var traceCode=document.getElementById('orderTraceCode').value.trim();
|
||||
if(!traceCode){alert('请输入溯源码');return;}
|
||||
var customer=document.getElementById('orderCustomer').value;
|
||||
if(!customer){alert('请选择客户名称');return;}
|
||||
var item=document.getElementById('orderItem').value;
|
||||
if(!item){alert('请选择净菜名称');return;}
|
||||
var price=document.getElementById('orderPrice').value;
|
||||
if(!price){alert('请输入单价');return;}
|
||||
var area=document.getElementById('orderArea').value;
|
||||
if(!area){alert('请选择出库区域');return;}
|
||||
alert('订单提交成功!');
|
||||
closeCreateOrder();
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -78,6 +78,24 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
thead th:last-child,tbody td.td-actions{position:sticky;right:0;background:#fff;box-shadow:-4px 0 8px rgba(0,0,0,0.04);z-index:2;white-space:nowrap;}
|
||||
thead th:last-child{background:#FAFAFA;}
|
||||
tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
/* 弹窗 */
|
||||
.modal-mask{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:200;align-items:center;justify-content:center;}
|
||||
.modal-mask.show{display:flex;}
|
||||
.modal{background:#fff;border-radius:var(--radius-lg);width:680px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(0,0,0,0.15);}
|
||||
.modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);}
|
||||
.modal__title{font-size:var(--font-lg);font-weight:600;}
|
||||
.modal__close{width:32px;height:32px;border:none;background:none;font-size:18px;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);}
|
||||
.modal__close:hover{background:#f5f5f5;color:var(--text-primary);}
|
||||
.modal__body{padding:24px;overflow-y:auto;flex:1;}
|
||||
.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border);}
|
||||
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;}
|
||||
.form-item{display:flex;flex-direction:column;gap:6px;}
|
||||
.form-item.full{grid-column:1/-1;}
|
||||
.form-item__label{font-size:var(--font-sm);color:var(--text-secondary);}
|
||||
.form-item__label .required{color:var(--danger);margin-left:2px;}
|
||||
.form-item input,.form-item select,.form-item textarea{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;}
|
||||
.form-item input:focus,.form-item select:focus{border-color:var(--primary);}
|
||||
.form-item select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;padding-right:28px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -107,8 +125,8 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -122,7 +140,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<!-- 筛选栏 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>申领单号/食材名称</label><input class="filter-input" placeholder="请输入申领单号或食材名称"></div>
|
||||
<div class="filter-item"><label>申领部门</label>
|
||||
<div class="filter-item"><label>申领食堂</label>
|
||||
<select class="filter-select"><option>全部</option><option>一号食堂厨房</option><option>二号食堂厨房</option><option>三号食堂厨房</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>配送状态</label>
|
||||
@@ -133,7 +151,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="action-bar"><button class="btn btn-primary">➕ 新建申领单</button> <button class="btn btn-default">📥 触发毛菜入库</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal('modal-claim')">➕ 新建申领单</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">净菜内供</div>
|
||||
@@ -141,14 +159,14 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>申领单号</th><th>申领部门</th><th>食材名称</th><th>溯源码</th><th>申领数量(kg)</th><th>库存状态</th><th>配送状态</th><th>关联仓库区域</th><th>申领时间</th><th>配送人</th><th>操作</th>
|
||||
<th>申领单号</th><th>溯源码</th><th>申领食堂</th><th>净菜名称</th><th>包装规格</th><th>申领份数</th><th>申领数量(kg)</th><th>配送状态</th><th>关联仓库区域</th><th>申领时间</th><th>配送人</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>INT-001</td><td>一号食堂厨房</td><td>菠菜</td><td>NC-INT-BOCA-20260422-01</td><td>25</td><td><span class="tag tag-green">库存充足</span></td><td><span class="tag tag-green">已配送</span></td><td>A仓-蔬菜区-01</td><td>07:30</td><td>李配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-001</td><td>一号食堂厨房</td><td>白菜</td><td>NC-INT-BCAI-20260422-01</td><td>20</td><td><span class="tag tag-green">库存充足</span></td><td><span class="tag tag-green">已配送</span></td><td>A仓-蔬菜区-02</td><td>07:30</td><td>李配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-002</td><td>二号食堂厨房</td><td>猪里脊</td><td>NC-INT-ZLRJ-20260422-01</td><td>40</td><td><span class="tag tag-green">库存充足</span></td><td><span class="tag tag-blue">配送中</span></td><td>B仓-肉类区-01</td><td>08:00</td><td>王配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-002</td><td>二号食堂厨房</td><td>鸡胸肉</td><td>NC-INT-JXRJ-20260422-01</td><td>20</td><td><span class="tag tag-green">库存充足</span></td><td><span class="tag tag-blue">配送中</span></td><td>B仓-肉类区-02</td><td>08:00</td><td>王配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-003</td><td>三号食堂厨房</td><td>草鱼</td><td>NC-INT-CAYO-20260422-01</td><td>40</td><td><span class="tag tag-red">库存不足</span></td><td><span class="tag tag-orange">待配送</span></td><td>C仓-水产区-01</td><td>08:30</td><td>—</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-001</td><td>NC-INT-BOCA-20260422-01</td><td>一号食堂厨房</td><td>菠菜</td><td>500g/袋</td><td>50</td><td>25</td><td><span class="tag tag-green">已配送</span></td><td>A仓-蔬菜区-01</td><td>2026-04-22 07:30</td><td>李配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-001</td><td>NC-INT-BCAI-20260422-01</td><td>一号食堂厨房</td><td>玉米(玉米粒)</td><td>1kg/盒</td><td>20</td><td>20</td><td><span class="tag tag-green">已配送</span></td><td>A仓-蔬菜区-02</td><td>2026-04-22 07:30</td><td>李配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-002</td><td>NC-INT-ZLRJ-20260422-01</td><td>二号食堂厨房</td><td>猪排骨</td><td>2kg/盘</td><td>20</td><td>40</td><td><span class="tag tag-blue">配送中</span></td><td>B仓-肉类区-01</td><td>2026-04-22 08:00</td><td>王配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-002</td><td>NC-INT-JXRJ-20260422-01</td><td>二号食堂厨房</td><td>鸡胸肉(鸡肉丝)</td><td>1kg/袋</td><td>20</td><td>20</td><td><span class="tag tag-blue">配送中</span></td><td>B仓-肉类区-02</td><td>2026-04-22 08:00</td><td>王配送</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>INT-003</td><td>NC-INT-CAYO-20260422-01</td><td>三号食堂厨房</td><td>草鱼(鱼片)</td><td>2kg/盘</td><td>20</td><td>40</td><td><span class="tag tag-orange">待配送</span></td><td>C仓-水产区-01</td><td>2026-04-22 08:30</td><td>—</td><td class="td-actions"><span class="link">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -164,5 +182,65 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 弹窗:新建申领单 -->
|
||||
<div class="modal-mask" id="modal-claim">
|
||||
<div class="modal">
|
||||
<div class="modal__header">
|
||||
<div class="modal__title">新建申领单</div>
|
||||
<button class="modal__close" onclick="closeModal('modal-claim')">✕</button>
|
||||
</div>
|
||||
<div class="modal__body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">溯源码<span class="required">*</span></div>
|
||||
<input placeholder="输入溯源码可带出净菜信息以及仓库信息">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">申领食堂<span class="required">*</span></div>
|
||||
<select><option value="">请选择</option><option>一号食堂厨房</option><option>二号食堂厨房</option><option>三号食堂厨房</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">净菜名称<span class="required">*</span></div>
|
||||
<select><option value="">请选择净菜</option><option>菠菜</option><option>玉米(玉米粒)</option><option>猪排骨</option><option>鸡胸肉(鸡肉丝)</option><option>草鱼(鱼片)</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装规格<span class="required">*</span></div>
|
||||
<input placeholder="如 500g/袋、1kg/盒">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">申领份数<span class="required">*</span></div>
|
||||
<input type="number" placeholder="请输入份数">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">申领数量(kg)<span class="required">*</span></div>
|
||||
<input type="number" placeholder="请输入数量">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">关联仓库区域</div>
|
||||
<select><option value="">请选择</option><option>A仓-蔬菜区-01</option><option>A仓-蔬菜区-02</option><option>B仓-肉类区-01</option><option>B仓-肉类区-02</option><option>C仓-水产区-01</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">配送人</div>
|
||||
<input placeholder="请输入配送人">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal__footer">
|
||||
<button class="btn btn-default" onclick="closeModal('modal-claim')">取消</button>
|
||||
<button class="btn btn-primary" onclick="closeModal('modal-claim')">确认提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// 弹窗打开/关闭
|
||||
function openModal(id){document.getElementById(id).classList.add('show');}
|
||||
function closeModal(id){document.getElementById(id).classList.remove('show');}
|
||||
// 点击遮罩关闭
|
||||
document.querySelectorAll('.modal-mask').forEach(m=>{
|
||||
m.addEventListener('click',e=>{if(e.target===m)m.classList.remove('show');});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -135,8 +135,8 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item active"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -148,6 +148,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<main class="main">
|
||||
<!-- 筛选栏 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>溯源码</label><input class="filter-input" type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="filter-item"><label>食材名称</label><input class="filter-input" type="text" placeholder="请输入食材名称"></div>
|
||||
<div class="filter-item"><label>检测项目</label>
|
||||
<select class="filter-select"><option>全部</option><option>农药残留</option><option>重金属</option><option>微生物</option><option>添加剂</option><option>瘦肉精</option><option>甲醛</option></select>
|
||||
@@ -164,7 +165,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 新增检测</button> <button class="btn btn-default">🚫 隔离处理</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 新增检测</button><button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">卫生检测</div>
|
||||
@@ -172,26 +173,26 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>检测单号</th><th>溯源码</th><th>食材名称(单品种)</th><th>检测项目</th><th>检测值</th><th>标准限值</th><th>检测日期</th><th>检测机构</th><th>检测员</th><th>数据来源类型</th><th>检测结果</th><th>报告编号</th><th>操作</th>
|
||||
<th>检测单号</th><th>溯源码</th><th>食材名称(单品种)</th><th>检测项目</th><th>检测结果</th><th>检测值</th><th>标准限值</th><th>检测日期</th><th>检测机构</th><th>检测员</th><th>数据来源类型</th><th>报告编号</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>HYG-20260415-001</td><td>ST-FH-FA01-VG-BOCA-286K-20260415-001</td><td>菠菜</td><td>农药残留</td><td>0.02mg/kg</td><td><0.1mg/kg</td><td>2026-04-15 10:00</td><td>内部检测室</td><td>李检测</td><td><span class="tag tag-blue">电子报告扫描</span></td><td><span class="tag tag-green">合格</span></td><td>RPT-20260415-001</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>HYG-20260415-001</td><td>ST-FH-FA01-VG-BOCA-286K-20260415-001</td><td>菠菜</td><td>农药残留</td><td><span class="tag tag-green">合格</span></td><td>0.02mg/kg</td><td><0.1mg/kg</td><td>2026-04-15 10:00</td><td>内部检测室</td><td>李检测</td><td><span class="tag tag-blue">电子报告扫描</span></td><td>RPT-20260415-001</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HYG-20260415-002</td><td>ST-EX-XR01-MT-ZLRJ-080K-20260415-005</td><td>猪里脊</td><td>瘦肉精</td><td>未检出</td><td>未检出</td><td>2026-04-15 10:30</td><td>内部检测室</td><td>王检测</td><td><span class="tag tag-gray">纸质OCR识别</span></td><td><span class="tag tag-green">合格</span></td><td>RPT-20260415-002</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>HYG-20260415-002</td><td>ST-EX-XR01-MT-ZLRJ-080K-20260415-005</td><td>猪里脊</td><td>瘦肉精</td><td><span class="tag tag-green">合格</span></td><td>未检出</td><td>未检出</td><td>2026-04-15 10:30</td><td>内部检测室</td><td>王检测</td><td><span class="tag tag-gray">纸质OCR识别</span></td><td>RPT-20260415-002</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HYG-20260415-003</td><td>ST-EX-HS01-SF-CAYO-060K-20260414-001</td><td>草鱼</td><td>甲醛</td><td>0.15mg/kg</td><td><0.05mg/kg</td><td>2026-04-15 11:00</td><td>第三方检测机构</td><td>外部检测员</td><td><span class="tag tag-blue">电子报告扫描</span></td><td><span class="tag tag-red">不合格</span></td><td>RPT-20260415-003</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>HYG-20260415-003</td><td>ST-EX-HS01-SF-CAYO-060K-20260414-001</td><td>草鱼</td><td>甲醛</td><td><span class="tag tag-red">不合格</span></td><td>0.15mg/kg</td><td><0.05mg/kg</td><td>2026-04-15 11:00</td><td>第三方检测机构</td><td>外部检测员</td><td><span class="tag tag-blue">电子报告扫描</span></td><td>RPT-20260415-003</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span><span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span> <span class="link" style="color:var(--danger)">隔离处理</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HYG-20260416-004</td><td>ST-FH-FB01-VG-HLUB-420K-20260415-002</td><td>胡萝卜</td><td>重金属(铅)</td><td>0.01mg/kg</td><td><0.1mg/kg</td><td>2026-04-16 09:00</td><td>内部检测室</td><td>李检测</td><td><span class="tag tag-orange">手动录入</span></td><td><span class="tag tag-green">合格</span></td><td>RPT-20260416-004</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>HYG-20260416-004</td><td>ST-FH-FB01-VG-HLUB-420K-20260415-002</td><td>胡萝卜</td><td>重金属(铅)</td><td><span class="tag tag-green">合格</span></td><td>0.01mg/kg</td><td><0.1mg/kg</td><td>2026-04-16 09:00</td><td>内部检测室</td><td>李检测</td><td><span class="tag tag-orange">手动录入</span></td><td>RPT-20260416-004</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HYG-20260416-005</td><td>ST-EX-LY01-VG-BOCA-050K-20260415-002</td><td>菠菜(外采批)</td><td>农药残留</td><td>0.03mg/kg</td><td><0.1mg/kg</td><td>2026-04-16 09:30</td><td>内部检测室</td><td>李检测</td><td><span class="tag tag-gray">纸质OCR识别</span></td><td><span class="tag tag-green">合格</span></td><td>RPT-20260416-005</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>HYG-20260416-005</td><td>ST-EX-LY01-VG-BOCA-050K-20260415-002</td><td>菠菜(外采批)</td><td>农药残留</td><td><span class="tag tag-green">合格</span></td><td>0.03mg/kg</td><td><0.1mg/kg</td><td>2026-04-16 09:30</td><td>内部检测室</td><td>李检测</td><td><span class="tag tag-gray">纸质OCR识别</span></td><td>RPT-20260416-005</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>HYG-20260416-006</td><td>ST-EX-XR01-MT-ZLRJ-080K-20260415-005</td><td>猪里脊</td><td>微生物(大肠杆菌)</td><td>未检出</td><td>未检出</td><td>2026-04-16 10:00</td><td>内部检测室</td><td>王检测</td><td><span class="tag tag-blue">电子报告扫描</span></td><td><span class="tag tag-green">合格</span></td><td>RPT-20260416-006</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>HYG-20260416-006</td><td>ST-EX-XR01-MT-ZLRJ-080K-20260415-005</td><td>猪里脊</td><td>微生物(大肠杆菌)</td><td><span class="tag tag-green">合格</span></td><td>未检出</td><td>未检出</td><td>2026-04-16 10:00</td><td>内部检测室</td><td>王检测</td><td><span class="tag tag-blue">电子报告扫描</span></td><td>RPT-20260416-006</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -241,9 +242,10 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item"><label>食材名称(单品种,不可跨品种)<span class="required">*</span></label><input type="text" placeholder="请输入食材名称"></div>
|
||||
<div class="form-item"><label>来源溯源码(关联入库单)<span class="required">*</span></label><input type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="form-item"><label>溯源码(关联采购单)<span class="required">*</span></label><input type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="form-item"><label>食材名称(单品)<span class="required">*</span></label><select><option>请选择采购单内食材</option><option>菠菜(ST-FH-FA01-VG-BOCA)</option><option>猪里脊(ST-EX-XR01-MT-ZLRJ)</option><option>草鱼(ST-EX-HS01-SF-CAYO)</option><option>胡萝卜(ST-FH-FB01-VG-HLUB)</option><option>西红柿(ST-FH-FA01-VG-XHSH)</option></select></div>
|
||||
<div class="form-item"><label>检测项目</label><select><option>请选择</option><option>农药残留</option><option>重金属(铅)</option><option>重金属(镉)</option><option>重金属(汞)</option><option>微生物(大肠杆菌)</option><option>添加剂</option><option>瘦肉精</option><option>甲醛</option></select></div>
|
||||
<div class="form-item"><label>检测结果<span class="required">*</span></label><select><option>请选择</option><option>合格</option><option>不合格</option></select></div>
|
||||
<div class="form-item"><label>数据来源类型<span class="required">*</span></label><select><option>请选择</option><option>电子报告扫描识别</option><option>纸质报告OCR识别</option><option>手动录入</option></select></div>
|
||||
<div class="form-item"><label>检测值</label><input type="text" placeholder="请输入检测值"></div>
|
||||
<div class="form-item"><label>标准限值</label><input type="text" placeholder="请输入标准限值"></div>
|
||||
|
||||
@@ -59,11 +59,11 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei
|
||||
.btn-primary{background:var(--primary);color:#fff;}.btn-primary:hover{background:#40a9ff;}
|
||||
.btn-default{background:#fff;color:var(--text-primary);border:1px solid var(--border);}.btn-default:hover{color:var(--primary);border-color:var(--primary);}
|
||||
/* 表格卡片 */
|
||||
.table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;}
|
||||
.table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);}
|
||||
.table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);}
|
||||
.table-card__title{font-size:var(--font-base);font-weight:600;}
|
||||
.table-card__actions{display:flex;gap:8px;align-items:center;}
|
||||
.table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
|
||||
.table-card__content{-webkit-overflow-scrolling:touch;}
|
||||
.table-card__content table{min-width:100%;white-space:nowrap;}
|
||||
table{width:100%;border-collapse:collapse;}
|
||||
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;}
|
||||
@@ -101,10 +101,18 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
.form-item input:focus,.form-item select:focus,.form-item textarea:focus{border-color:#1890FF;}
|
||||
.form-item textarea{height:80px;padding:8px 12px;resize:vertical;}
|
||||
.action-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px;}
|
||||
/* 操作列固定右侧 */
|
||||
thead th:last-child,tbody td.td-actions{position:sticky;right:0;background:#fff;box-shadow:-4px 0 8px rgba(0,0,0,0.04);z-index:2;white-space:nowrap;}
|
||||
thead th:last-child{background:#FAFAFA;}
|
||||
tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
/* 操作列 */
|
||||
tbody td.td-actions{white-space:nowrap;}
|
||||
/* 更多下拉菜单 */
|
||||
.action-more{position:relative;display:inline-block;}
|
||||
.action-more .more-btn{color:var(--primary);cursor:pointer;font-size:var(--font-sm);}
|
||||
.action-more .more-btn:hover{color:#40a9ff;}
|
||||
.action-more .dropdown{display:none;position:absolute;right:0;top:100%;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:99;min-width:80px;padding:4px 0;}
|
||||
.action-more:hover .dropdown{display:block;}
|
||||
.action-more .dropdown a{display:block;padding:6px 12px;font-size:var(--font-sm);color:var(--text-primary);text-decoration:none;white-space:nowrap;}
|
||||
.action-more .dropdown a:hover{background:var(--primary-light);color:var(--primary);}
|
||||
.action-more .dropdown a.danger{color:var(--danger);}
|
||||
.action-more .dropdown a.danger:hover{background:#FFF1F0;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -135,8 +143,8 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item active"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -149,12 +157,9 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<!-- 筛选栏 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>食材名称</label><input class="filter-input" type="text" placeholder="请输入食材名称"></div>
|
||||
<div class="filter-item"><label>加工类型</label>
|
||||
<div class="filter-item"><label>加工步骤</label>
|
||||
<select class="filter-select"><option>全部</option><option>清洗</option><option>去皮</option><option>切割</option><option>分拣</option><option>综合加工</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>加工规格</label>
|
||||
<select class="filter-select"><option>全部</option><option>整棵</option><option>整朵</option><option>段</option><option>丁</option><option>条</option><option>片</option><option>丝</option><option>末</option><option>块</option><option>滚刀块</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>加工状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>合格</option><option>待处理</option></select>
|
||||
</div>
|
||||
@@ -164,7 +169,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 新增加工批次</button> <button class="btn btn-default">📦 生成入库单</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 新增加工批次</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">净菜加工</div>
|
||||
@@ -172,29 +177,29 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>加工批次号</th><th>溯源码</th><th>食材名称</th><th>加工类型</th><th>加工规格</th><th>毛菜重量(kg)</th><th>净菜重量(kg)</th><th>出净率(%)</th><th>加工温度(℃)</th><th>加工人员</th><th>开始时间</th><th>结束时间</th><th>质检结果</th><th>操作</th>
|
||||
<th>加工批次号</th><th>溯源码</th><th>食材名称</th><th>净菜类型</th><th>加工步骤</th><th>毛菜重量(kg)</th><th>净菜重量(kg)</th><th>出净率(%)</th><th>加工人员</th><th>开始时间</th><th>结束时间</th><th>质检结果</th><th>入库状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>PROC-001</td><td>NC-PROC-BOCA-20260415-01</td><td>菠菜</td><td>清洗</td><td>整棵</td><td>100</td><td>86</td><td>86.0</td><td>18.2</td><td>李加工</td><td>2026-04-15 08:00</td><td>2026-04-15 08:45</td><td><span class="tag tag-green">合格</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>PROC-001</td><td>NC-PROC-BOCA-20260415-01</td><td>土豆</td><td>土豆丝</td><td>去皮/切割</td><td>100</td><td>86</td><td>86.0</td><td>李加工</td><td>2026-04-15 08:00</td><td>2026-04-15 08:45</td><td><span class="tag tag-green">合格</span></td><td><span class="tag tag-green">已入库</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PROC-002</td><td>NC-PROC-HLUB-20260415-01</td><td>胡萝卜</td><td>去皮/切割</td><td>滚刀块</td><td>140</td><td>120</td><td>85.7</td><td>17.8</td><td>王加工</td><td>2026-04-15 08:30</td><td>—</td><td><span class="tag tag-gray">—</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>PROC-002</td><td>NC-PROC-HLUB-20260415-01</td><td>土豆</td><td>土豆片</td><td>去皮/切割</td><td>140</td><td>120</td><td>85.7</td><td>王加工</td><td>2026-04-15 08:30</td><td>2026-04-15 09:20</td><td><span class="tag tag-green">合格</span></td><td><span class="tag tag-gray">未入库</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="confirmGenStock()">生成入库单</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PROC-003</td><td>NC-PROC-XGUO-20260415-01</td><td>香菇</td><td>分拣</td><td>整朵</td><td>56</td><td>48</td><td>85.7</td><td>18.0</td><td>李加工</td><td>2026-04-15 09:00</td><td>—</td><td><span class="tag tag-gray">—</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>PROC-003</td><td>NC-PROC-XGUO-20260415-01</td><td>土豆</td><td>土豆泥</td><td>去皮/切割</td><td>56</td><td>48</td><td>85.7</td><td>李加工</td><td>2026-04-15 09:00</td><td>2026-04-15 09:40</td><td><span class="tag tag-green">合格</span></td><td><span class="tag tag-gray">未入库</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="confirmGenStock()">生成入库单</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PROC-004</td><td>—</td><td>四季豆</td><td>清洗</td><td>段(5cm)</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td><span class="tag tag-orange">待处理</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>PROC-004</td><td>NC-PROC-SJDOU-20260415-01</td><td>四季豆</td><td>段(5cm)</td><td>清洗</td><td>60</td><td>52</td><td>86.7</td><td>张加工</td><td>2026-04-15 09:30</td><td>2026-04-15 10:00</td><td><span class="tag tag-orange">待处理</span></td><td><span class="tag tag-gray">未入库</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PROC-005</td><td>NC-PROC-BCAI-20260415-01</td><td>白菜</td><td>清洗</td><td>整棵</td><td>80</td><td>70</td><td>87.5</td><td>17.5</td><td>张加工</td><td>2026-04-15 07:30</td><td>2026-04-15 08:10</td><td><span class="tag tag-green">合格</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>PROC-005</td><td>NC-PROC-BCAI-20260415-01</td><td>白菜</td><td>整棵</td><td>清洗</td><td>80</td><td>70</td><td>87.5</td><td>张加工</td><td>2026-04-15 07:30</td><td>2026-04-15 08:10</td><td><span class="tag tag-green">合格</span></td><td><span class="tag tag-gray">未入库</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="confirmGenStock()">生成入库单</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PROC-006</td><td>NC-PROC-ZLRJ-20260415-01</td><td>猪里脊</td><td>切割</td><td>丁(1.5cm)</td><td>80</td><td>76</td><td>95.0</td><td>8.0</td><td>王加工</td><td>2026-04-15 09:30</td><td>2026-04-15 09:55</td><td><span class="tag tag-green">合格</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>PROC-006</td><td>NC-PROC-ZLRJ-20260415-01</td><td>猪里脊</td><td>丁(1.5cm)</td><td>切割</td><td>80</td><td>76</td><td>95.0</td><td>王加工</td><td>2026-04-15 09:30</td><td>2026-04-15 09:55</td><td><span class="tag tag-green">合格</span></td><td><span class="tag tag-gray">未入库</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="confirmGenStock()">生成入库单</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PROC-007</td><td>—</td><td>猪里脊</td><td>切割</td><td>条(4cm)</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td>—</td><td><span class="tag tag-orange">待处理</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link" onclick="openModal()">编辑</span> <span class="link" style="color:var(--danger)" onclick="if(confirm('确认删除该记录?')){}">删除</span></td>
|
||||
<td>PROC-007</td><td>NC-PROC-ZLRJ-20260415-02</td><td>猪里脊</td><td>条(4cm)</td><td>切割</td><td>90</td><td>85</td><td>94.4</td><td>李加工</td><td>2026-04-15 10:00</td><td>2026-04-15 10:30</td><td><span class="tag tag-orange">待处理</span></td><td><span class="tag tag-gray">未入库</span></td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -245,14 +250,14 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item"><label>食材名称<span class="required">*</span></label><input type="text" placeholder="请输入食材名称"></div>
|
||||
<div class="form-item"><label>溯源码</label><input type="text" placeholder="自动生成或手动输入"></div>
|
||||
<div class="form-item"><label>加工类型<span class="required">*</span></label><select><option>请选择</option><option>清洗</option><option>去皮</option><option>切割</option><option>分拣</option><option>综合加工</option></select></div>
|
||||
<div class="form-item"><label>加工规格<span class="required">*</span></label><select><option>请选择</option><option>整棵</option><option>整朵</option><option>段</option><option>丁</option><option>条</option><option>片</option><option>丝</option><option>末</option><option>块</option><option>滚刀块</option><option>其他(备注说明)</option></select></div>
|
||||
<!-- 交互说明:先输入/选择溯源码 → 根据溯源码自动带出食材名称(只读)→ 根据食材名称带出净菜类型(下拉选择) -->
|
||||
<div class="form-item"><label>溯源码<span class="required">*</span></label><input type="text" placeholder="请输入或扫描溯源码"></div>
|
||||
<div class="form-item"><label>食材名称</label><input type="text" placeholder="由溯源码自动带出" readonly style="background:#f5f5f5;"></div>
|
||||
<div class="form-item"><label>净菜类型<span class="required">*</span></label><select><option>由食材名称带出</option><option>整棵</option><option>整朵</option><option>段</option><option>丁</option><option>条</option><option>片</option><option>丝</option><option>末</option><option>块</option><option>滚刀块</option><option>其他(备注说明)</option></select></div>
|
||||
<div class="form-item"><label>加工步骤<span class="required">*</span></label><select><option>请选择</option><option>清洗</option><option>去皮</option><option>切割</option><option>分拣</option><option>综合加工</option></select></div>
|
||||
<div class="form-item"><label>毛菜重量(kg)<span class="required">*</span></label><input type="number" placeholder="请输入毛菜重量"></div>
|
||||
<div class="form-item"><label>净菜重量(kg)</label><input type="number" placeholder="加工完成后填写"></div>
|
||||
<div class="form-item"><label>出净率(%)</label><input type="text" placeholder="自动计算" readonly></div>
|
||||
<div class="form-item"><label>加工温度(℃)</label><input type="number" placeholder="请输入加工温度"></div>
|
||||
<div class="form-item"><label>加工人员<span class="required">*</span></label><input type="text" placeholder="请输入加工人员"></div>
|
||||
<div class="form-item"><label>开始时间<span class="required">*</span></label><input type="datetime-local"></div>
|
||||
<div class="form-item"><label>结束时间</label><input type="datetime-local"></div>
|
||||
@@ -267,6 +272,25 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 生成入库单二次确认弹窗 -->
|
||||
<div class="modal-overlay" id="confirmStockModal" style="display:none;">
|
||||
<div class="modal" style="width:420px;">
|
||||
<div class="modal-header">
|
||||
<span class="modal-title">确认生成入库单</span>
|
||||
<span class="modal-close" onclick="closeConfirmStock()">×</span>
|
||||
</div>
|
||||
<div class="modal-body" style="text-align:center;padding:32px 24px;">
|
||||
<div style="font-size:40px;margin-bottom:12px;">📦</div>
|
||||
<p style="font-size:15px;color:#333;margin-bottom:8px;">确认将该加工批次生成净菜入库单?</p>
|
||||
<p style="font-size:13px;color:#999;">生成后将自动同步至净菜入库模块</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" onclick="closeConfirmStock()">取消</button>
|
||||
<button class="btn btn-primary" onclick="closeConfirmStock();alert('入库单已生成');">确认生成</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function openVideoModal(){document.getElementById('videoModal').style.display='flex';}
|
||||
function closeVideoModal(){document.getElementById('videoModal').style.display='none';}
|
||||
@@ -274,6 +298,9 @@ document.getElementById('videoModal').addEventListener('click',function(e){if(e.
|
||||
function openModal(){document.getElementById('modalOverlay').style.display='flex';}
|
||||
function closeModal(){document.getElementById('modalOverlay').style.display='none';}
|
||||
document.getElementById('modalOverlay').addEventListener('click',function(e){if(e.target===this)closeModal();});
|
||||
function confirmGenStock(){document.getElementById('confirmStockModal').style.display='flex';}
|
||||
function closeConfirmStock(){document.getElementById('confirmStockModal').style.display='none';}
|
||||
document.getElementById('confirmStockModal').addEventListener('click',function(e){if(e.target===this)closeConfirmStock();});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -63,7 +63,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei
|
||||
.table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);}
|
||||
.table-card__title{font-size:var(--font-base);font-weight:600;}
|
||||
.table-card__actions{display:flex;gap:8px;align-items:center;}
|
||||
.table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
|
||||
.table-card__content{overflow-x:auto;-webkit-overflow-scrolling:touch;}
|
||||
.table-card__content table{min-width:100%;white-space:nowrap;}
|
||||
table{width:100%;border-collapse:collapse;}
|
||||
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;}
|
||||
@@ -101,10 +101,18 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
.form-item input:focus,.form-item select:focus,.form-item textarea:focus{border-color:#1890FF;}
|
||||
.form-item textarea{height:80px;padding:8px 12px;resize:vertical;}
|
||||
.action-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px;}
|
||||
/* 操作列固定右侧 */
|
||||
thead th:last-child,tbody td.td-actions{position:sticky;right:0;background:#fff;box-shadow:-4px 0 8px rgba(0,0,0,0.04);z-index:2;white-space:nowrap;}
|
||||
thead th:last-child{background:#FAFAFA;}
|
||||
tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
/* 操作列 */
|
||||
tbody td.td-actions{white-space:nowrap;}
|
||||
/* 更多下拉菜单 */
|
||||
.action-more{position:relative;display:inline-block;}
|
||||
.action-more .more-btn{color:var(--primary);cursor:pointer;font-size:var(--font-sm);}
|
||||
.action-more .more-btn:hover{color:#40a9ff;}
|
||||
.action-more .dropdown{display:none;position:absolute;right:0;bottom:100%;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:99;min-width:80px;padding:4px 0;}
|
||||
.action-more:hover .dropdown{display:block;}
|
||||
.action-more .dropdown a{display:block;padding:6px 12px;font-size:var(--font-sm);color:var(--text-primary);text-decoration:none;white-space:nowrap;}
|
||||
.action-more .dropdown a:hover{background:var(--primary-light);color:var(--primary);}
|
||||
.action-more .dropdown a.danger{color:var(--danger);}
|
||||
.action-more .dropdown a.danger:hover{background:#FFF1F0;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -135,8 +143,8 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item active"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -150,19 +158,14 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<!-- 筛选栏 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>食材名称</label><input class="filter-input" type="text" placeholder="请输入食材名称"></div>
|
||||
<div class="filter-item"><label>操作类型</label>
|
||||
<select class="filter-select"><option>全部</option><option>入库</option><option>出库</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>去向</label>
|
||||
<select class="filter-select"><option>全部</option><option>内供</option><option>外售</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>溯源码</label><input class="filter-input" type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="filter-item"><label>日期范围</label><input class="filter-input" type="date"></div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 新增入库</button> <button class="btn btn-default">📤 出库登记</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 新增入库</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">净菜入库</div>
|
||||
@@ -170,23 +173,23 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>净菜编号</th><th>溯源码</th><th>净菜名称</th><th>操作类型</th><th>去向</th><th>数量(kg)</th><th>操作时间</th><th>保质期至</th><th>存放区域</th><th>存放温度(℃)</th><th>经办人</th><th>操作</th>
|
||||
<th>入库单号</th><th>溯源码</th><th>食材名称</th><th>净菜类型</th><th>入库规格</th><th>入库数量</th><th>入库重量(kg)</th><th>当前库存(kg)</th><th>操作时间</th><th>保质期至</th><th>存放区域</th><th>存放温度(℃)</th><th>操作人</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>NC-IN-001</td><td>NC-PROC-BOCA-20260415-01</td><td>净菠菜</td><td><span class="tag tag-green">入库</span></td><td><span class="tag tag-blue">内供</span></td><td>86</td><td>2026-04-15 09:15</td><td>2026-04-17 09:15</td><td>A仓-蔬菜区-01</td><td>4.1</td><td>李入库</td><td class="td-actions"><span class="link">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>NC-IN-001</td><td>NC-PROC-BOCA-20260415-01</td><td>土豆</td><td>土豆丝</td><td>袋装/500g</td><td>86</td><td>43.0</td><td>31.0</td><td>2026-04-15 09:15</td><td>2026-04-17 09:15</td><td>A仓-蔬菜区-01</td><td>4.1</td><td>李入库</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openOutModal('NC-IN-001')">出库明细</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>NC-IN-002</td><td>NC-PROC-HLUB-20260415-01</td><td>净胡萝卜</td><td><span class="tag tag-green">入库</span></td><td><span class="tag tag-blue">内供</span></td><td>120</td><td>2026-04-15 09:45</td><td>2026-04-18 09:45</td><td>A仓-蔬菜区-02</td><td>4.2</td><td>王入库</td><td class="td-actions"><span class="link">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>NC-IN-002</td><td>NC-PROC-HLUB-20260415-01</td><td>土豆</td><td>土豆片</td><td>袋装/500g</td><td>120</td><td>60.0</td><td>47.5</td><td>2026-04-15 09:45</td><td>2026-04-18 09:45</td><td>A仓-蔬菜区-02</td><td>4.2</td><td>王入库</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openOutModal('NC-IN-002')">出库明细</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>NC-OUT-001</td><td>NC-PROC-BOCA-20260415-01</td><td>净菠菜</td><td><span class="tag tag-blue">出库</span></td><td>—</td><td>45</td><td>2026-04-15 10:30</td><td>—</td><td>A区厨房</td><td>—</td><td>张出库</td><td class="td-actions"><span class="link">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>NC-IN-003</td><td>NC-PROC-XGUO-20260415-01</td><td>土豆</td><td>土豆泥</td><td>盒装/300g</td><td>48</td><td>14.4</td><td>9.0</td><td>2026-04-15 11:00</td><td>2026-04-17 11:00</td><td>A仓-蔬菜区-03</td><td>4.0</td><td>李入库</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openOutModal('NC-IN-003')">出库明细</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>NC-OUT-002</td><td>NC-PROC-HLUB-20260415-01</td><td>净胡萝卜</td><td><span class="tag tag-blue">出库</span></td><td>—</td><td>60</td><td>2026-04-15 10:45</td><td>—</td><td>B区厨房</td><td>—</td><td>张出库</td><td class="td-actions"><span class="link">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>NC-IN-004</td><td>NC-PROC-BCAI-20260415-01</td><td>白菜</td><td>整棵</td><td>散装/整棵</td><td>70</td><td>35.0</td><td>22.5</td><td>2026-04-15 11:30</td><td>2026-04-18 11:30</td><td>A仓-蔬菜区-04</td><td>3.8</td><td>张入库</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openOutModal('NC-IN-004')">出库明细</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>NC-IN-003</td><td>NC-PROC-XGUO-20260415-01</td><td>净香菇</td><td><span class="tag tag-green">入库</span></td><td><span class="tag tag-orange">外售</span></td><td>48</td><td>2026-04-15 11:00</td><td>2026-04-17 11:00</td><td>A仓-蔬菜区-03</td><td>4.0</td><td>李入库</td><td class="td-actions"><span class="link">查看视频</span> <span class="link" onclick="openModal()">详情</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>NC-IN-005</td><td>NC-PROC-ZLRJ-20260415-01</td><td>猪里脊</td><td>丁(1.5cm)</td><td>袋装/400g</td><td>76</td><td>30.4</td><td>18.8</td><td>2026-04-15 12:00</td><td>2026-04-16 12:00</td><td>B仓-肉类区-01</td><td>-2.0</td><td>王入库</td><td class="td-actions"><span class="link" onclick="openVideoModal()">查看视频</span> <span class="link" onclick="openOutModal('NC-IN-005')">出库明细</span> <span class="action-more"><span class="more-btn">更多 ▾</span><div class="dropdown"><a href="javascript:;" onclick="openModal()">详情</a><a href="javascript:;" onclick="openModal()">编辑</a><a href="javascript:;" class="danger" onclick="if(confirm('确认删除该记录?')){}">删除</a></div></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -211,17 +214,17 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item"><label>净菜编号<span class="required">*</span></label><input type="text" placeholder="系统自动生成" disabled></div>
|
||||
<div class="form-item"><label>关联溯源码</label><input type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="form-item"><label>净菜名称<span class="required">*</span></label><input type="text" placeholder="请输入净菜名称"></div>
|
||||
<div class="form-item"><label>操作类型<span class="required">*</span></label><select><option>请选择</option><option>入库</option><option>出库</option></select></div>
|
||||
<div class="form-item"><label>去向<span class="required">*</span></label><select><option>请选择</option><option>内供</option><option>外售</option></select></div>
|
||||
<div class="form-item"><label>数量(kg)<span class="required">*</span></label><input type="number" placeholder="请输入数量"></div>
|
||||
<div class="form-item"><label>溯源码<span class="required">*</span></label><input type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="form-item"><label>食材名称</label><input type="text" placeholder="由溯源码自动带出" readonly style="background:#f5f5f5;"></div>
|
||||
<div class="form-item"><label>净菜类型</label><input type="text" placeholder="由溯源码自动带出" readonly style="background:#f5f5f5;"></div>
|
||||
<div class="form-item"><label>入库规格<span class="required">*</span></label><select><option>请选择</option><option>袋装/500g</option><option>袋装/400g</option><option>盒装/300g</option><option>散装/整棵</option><option>其他</option></select></div>
|
||||
<div class="form-item"><label>入库数量<span class="required">*</span></label><input type="number" placeholder="请输入入库数量"></div>
|
||||
<div class="form-item"><label>入库重量(kg)<span class="required">*</span></label><input type="number" step="0.1" placeholder="请输入入库重量"></div>
|
||||
<div class="form-item"><label>操作时间<span class="required">*</span></label><input type="datetime-local"></div>
|
||||
<div class="form-item"><label>保质期至</label><input type="datetime-local"></div>
|
||||
<div class="form-item"><label>存放区域<span class="required">*</span></label><input type="text" placeholder="请输入存放区域"></div>
|
||||
<div class="form-item"><label>存放温度(℃)</label><input type="number" step="0.1" placeholder="请输入温度"></div>
|
||||
<div class="form-item"><label>经办人<span class="required">*</span></label><input type="text" placeholder="请输入经办人"></div>
|
||||
<div class="form-item"><label>操作人<span class="required">*</span></label><input type="text" placeholder="请输入操作人"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
@@ -231,10 +234,37 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 出库明细弹窗 -->
|
||||
<div class="modal-overlay" id="outModalOverlay" style="display:none;">
|
||||
<div class="modal" style="width:860px;">
|
||||
<div class="modal-header">
|
||||
<span class="modal-title">出库明细</span>
|
||||
<span class="modal-close" onclick="closeOutModal()">×</span>
|
||||
</div>
|
||||
<div class="modal-body" style="padding:16px 24px;">
|
||||
<table>
|
||||
<thead><tr><th>出库单号</th><th>售卖类型</th><th>出库数量</th><th>出库重量(kg)</th><th>接收方</th><th>出库时间</th><th>操作人</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>OUT-20260415-001</td><td><span class="tag tag-blue">内供</span></td><td>20</td><td>10.0</td><td>第一食堂</td><td>2026-04-15 14:30</td><td>赵出库</td></tr>
|
||||
<tr><td>OUT-20260415-002</td><td><span class="tag tag-green">外售</span></td><td>8</td><td>4.0</td><td>鲜达超市</td><td>2026-04-15 16:00</td><td>赵出库</td></tr>
|
||||
<tr><td>OUT-20260416-001</td><td><span class="tag tag-blue">内供</span></td><td>15</td><td>7.5</td><td>第二食堂</td><td>2026-04-16 09:20</td><td>钱出库</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" onclick="closeOutModal()">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function openModal(){document.getElementById('modalOverlay').style.display='flex';}
|
||||
function closeModal(){document.getElementById('modalOverlay').style.display='none';}
|
||||
function openVideoModal(){alert('播放入库操作视频(原型演示)');}
|
||||
function openOutModal(id){document.getElementById('outModalOverlay').style.display='flex';}
|
||||
function closeOutModal(){document.getElementById('outModalOverlay').style.display='none';}
|
||||
document.getElementById('modalOverlay').addEventListener('click',function(e){if(e.target===this)closeModal();});
|
||||
document.getElementById('outModalOverlay').addEventListener('click',function(e){if(e.target===this)closeOutModal();});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -138,8 +138,8 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item active"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item active"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -151,6 +151,7 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
<main class="main">
|
||||
<!-- 筛选栏 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>溯源码</label><input class="filter-input" type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="filter-item"><label>食材名称</label><input class="filter-input" type="text" placeholder="请输入食材名称"></div>
|
||||
<div class="filter-item"><label>操作类型</label>
|
||||
<select class="filter-select"><option>全部</option><option>设备自动</option><option>人工录入</option></select>
|
||||
@@ -158,17 +159,16 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
<div class="filter-item"><label>来源类型</label>
|
||||
<select class="filter-select"><option>全部</option><option>自产</option><option>外采</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>供应商/地块</label><input class="filter-input" type="text" placeholder="请输入供应商/地块"></div>
|
||||
<div class="filter-item"><label>入库日期</label><input class="filter-input" type="date"></div>
|
||||
<div class="filter-item"><label>检验状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>合格</option><option>已隔离</option></select>
|
||||
<div class="filter-item"><label>供应商</label>
|
||||
<select class="filter-select"><option>全部</option><option>A区蔬菜基地</option><option>B区根茎基地</option><option>绿源蔬菜配送</option><option>鲜肉直供公司</option><option>海鲜水产配送</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>入库日期</label><input class="filter-input" type="date"></div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
|
||||
<!-- 数据表格 -->
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 手动录入</button> <button class="btn btn-default">📋 触发采供管理</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 手动入库</button><button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">毛菜入库</div>
|
||||
@@ -176,23 +176,23 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>入库单号</th><th>操作类型</th><th>溯源码</th><th>来源类型</th><th>食材名称</th><th>供应商/来源地块</th><th>入库规格</th><th>入库数量</th><th>入库重量(kg)</th><th>入库时间</th><th>存放区域</th><th>验收人</th><th>卫生检测报告编号</th><th>检验状态</th><th>操作</th>
|
||||
<th>入库单号</th><th>操作类型</th><th>溯源码</th><th>来源类型</th><th>食材名称</th><th>供应商</th><th>入库规格</th><th>入库数量</th><th>入库重量(kg)</th><th>入库时间</th><th>存放区域</th><th>操作人</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>IN-20260415-001</td><td><span class="tag tag-green">设备自动</span></td><td>ST-FH-FA01-VG-BOCA-286K-20260415-001</td><td><span class="tag tag-blue">自产</span></td><td>菠菜</td><td>A区蔬菜基地</td><td>25kg/件</td><td>12件</td><td>286</td><td>2026-04-15 10:30</td><td>A仓-蔬菜区-01</td><td>张验收</td><td>RPT-20260415-001</td><td><span class="tag tag-green">合格</span></td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>IN-20260415-001</td><td><span class="tag tag-green">设备自动</span></td><td>ST-FH-FA01-VG-BOCA-286K-20260415-001</td><td><span class="tag tag-blue">自产</span></td><td>菠菜</td><td>A区蔬菜基地</td><td>25kg/件</td><td>12件</td><td>286</td><td>2026-04-15 10:30</td><td>A仓-蔬菜区-01</td><td>张三丰</td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IN-20260415-002</td><td><span class="tag tag-green">设备自动</span></td><td>ST-EX-LY01-VG-BOCA-050K-20260415-002</td><td><span class="tag tag-gray">外采</span></td><td>菠菜</td><td>绿源蔬菜配送</td><td>10kg/筐</td><td>5筐</td><td>50</td><td>2026-04-15 08:30</td><td>A仓-蔬菜区-02</td><td>李验收</td><td>RPT-20260415-002</td><td><span class="tag tag-green">合格</span></td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>IN-20260415-002</td><td><span class="tag tag-green">设备自动</span></td><td>ST-EX-LY01-VG-BOCA-050K-20260415-002</td><td><span class="tag tag-gray">外采</span></td><td>菠菜</td><td>绿源蔬菜配送</td><td>10kg/筐</td><td>5筐</td><td>50</td><td>2026-04-15 08:30</td><td>A仓-蔬菜区-02</td><td>李三丰</td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IN-20260415-003</td><td><span class="tag tag-orange">人工录入</span></td><td>ST-EX-XR01-MT-ZLRJ-080K-20260415-005</td><td><span class="tag tag-gray">外采</span></td><td>猪里脊</td><td>鲜肉直供公司</td><td>20kg/箱</td><td>4箱</td><td>80</td><td>2026-04-15 09:15</td><td>B仓-肉类区-01</td><td>王验收</td><td>RPT-20260415-003</td><td><span class="tag tag-green">合格</span></td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>IN-20260415-003</td><td><span class="tag tag-orange">人工录入</span></td><td>ST-EX-XR01-MT-ZLRJ-080K-20260415-005</td><td><span class="tag tag-gray">外采</span></td><td>猪里脊</td><td>鲜肉直供公司</td><td>20kg/箱</td><td>4箱</td><td>80</td><td>2026-04-15 09:15</td><td>B仓-肉类区-01</td><td>王三丰</td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IN-20260415-004</td><td><span class="tag tag-orange">人工录入</span></td><td>ST-EX-HS01-SF-CAYO-060K-20260414-001</td><td><span class="tag tag-gray">外采</span></td><td>草鱼</td><td>海鲜水产配送</td><td>散装(kg)</td><td>60kg</td><td>60</td><td>2026-04-15 09:45</td><td>C仓-水产区-01</td><td>李验收</td><td>—</td><td><span class="tag tag-red">已隔离</span></td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>IN-20260415-004</td><td><span class="tag tag-orange">人工录入</span></td><td>ST-EX-HS01-SF-CAYO-060K-20260414-001</td><td><span class="tag tag-gray">外采</span></td><td>草鱼</td><td>海鲜水产配送</td><td>散装(kg)</td><td>60kg</td><td>60</td><td>2026-04-15 09:45</td><td>C仓-水产区-01</td><td>李三丰</td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IN-20260416-005</td><td><span class="tag tag-green">设备自动</span></td><td>ST-FH-FB01-VG-HLUB-420K-20260415-002</td><td><span class="tag tag-blue">自产</span></td><td>胡萝卜</td><td>B区根茎基地</td><td>25kg/件</td><td>17件</td><td>420</td><td>2026-04-16 11:00</td><td>A仓-蔬菜区-03</td><td>张验收</td><td>RPT-20260415-004</td><td><span class="tag tag-green">合格</span></td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
<td>IN-20260416-005</td><td><span class="tag tag-green">设备自动</span></td><td>ST-FH-FB01-VG-HLUB-420K-20260415-002</td><td><span class="tag tag-blue">自产</span></td><td>胡萝卜</td><td>B区根茎基地</td><td>25kg/件</td><td>17件</td><td>420</td><td>2026-04-16 11:00</td><td>A仓-蔬菜区-03</td><td>张三丰</td><td class="td-actions"><span class="link" onclick="openVideo()">查看视频</span> <span class="link">编辑</span> <span class="link">详情</span> <span class="link" style="color:var(--danger)">删除</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -217,18 +217,16 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item"><label>操作类型<span class="required">*</span></label><select><option>请选择</option><option>设备自动入库(地磅/传感器采集)</option><option>人工手动录入</option></select></div>
|
||||
<div class="form-item"><label>来源类型<span class="required">*</span></label><select><option>请选择</option><option>外采(关联采购单)</option><option>自产(关联收成入库)</option></select></div>
|
||||
<div class="form-item"><label>溯源码<span class="required">*</span></label><input type="text" placeholder="请输入溯源码"></div>
|
||||
<div class="form-item"><label>来源类型<span class="required">*</span></label><select><option>请选择</option><option>外采</option><option>自产</option></select></div>
|
||||
<div class="form-item"><label>食材名称<span class="required">*</span></label><input type="text" placeholder="请输入食材名称"></div>
|
||||
<div class="form-item"><label>供应商/来源地块</label><input type="text" placeholder="请输入供应商或来源地块"></div>
|
||||
<div class="form-item"><label>供应商<span class="required">*</span></label><select><option>请选择</option><option>A区蔬菜基地</option><option>B区根茎基地</option><option>绿源蔬菜配送</option><option>鲜肉直供公司</option><option>海鲜水产配送</option></select></div>
|
||||
<div class="form-item"><label>入库规格<span class="required">*</span></label><select><option>请选择</option><option>25kg/件</option><option>20kg/箱</option><option>15kg/箱</option><option>10kg/筐</option><option>5kg/袋</option><option>1kg/包</option><option>散装(kg)</option></select></div>
|
||||
<div class="form-item"><label>入库数量<span class="required">*</span></label><input type="text" placeholder="请输入入库数量"></div>
|
||||
<div class="form-item"><label>入库重量(kg)<span class="required">*</span></label><input type="number" placeholder="请输入入库重量"></div>
|
||||
<div class="form-item"><label>入库时间</label><input type="date"></div>
|
||||
<div class="form-item"><label>存放区域<span class="required">*</span></label><select><option>请选择</option><option>A仓-蔬菜区-01</option><option>A仓-蔬菜区-02</option><option>A仓-蔬菜区-03</option><option>A仓-蔬菜区-04</option><option>B仓-肉类区-01</option><option>B仓-肉类区-02</option><option>B仓-肉类区-03</option><option>C仓-水产区-01</option><option>C仓-水产区-02</option></select></div>
|
||||
<div class="form-item"><label>卫生检测报告编号</label><input type="text" placeholder="请输入报告编号"></div>
|
||||
<div class="form-item"><label>验收人<span class="required">*</span></label><input type="text" placeholder="请输入验收人"></div>
|
||||
<div class="form-item"></div>
|
||||
<div class="form-item"><label>操作人<span class="required">*</span></label><input type="text" placeholder="请输入操作人"></div>
|
||||
<div class="form-item full"><label>备注</label><textarea placeholder="请输入备注信息"></textarea></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -84,6 +84,34 @@ tbody tr:hover{background:#F8FBFF;}
|
||||
thead th:last-child,tbody td.td-actions{position:sticky;right:0;background:#fff;box-shadow:-4px 0 8px rgba(0,0,0,0.04);z-index:2;white-space:nowrap;}
|
||||
thead th:last-child{background:#FAFAFA;}
|
||||
tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
/* 弹窗 */
|
||||
.modal-mask{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:200;align-items:center;justify-content:center;}
|
||||
.modal-mask.show{display:flex;}
|
||||
.modal{background:#fff;border-radius:var(--radius-lg);width:680px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(0,0,0,0.15);}
|
||||
.modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);}
|
||||
.modal__title{font-size:var(--font-lg);font-weight:600;}
|
||||
.modal__close{width:32px;height:32px;border:none;background:none;font-size:18px;cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);}
|
||||
.modal__close:hover{background:#f5f5f5;color:var(--text-primary);}
|
||||
.modal__body{padding:24px;overflow-y:auto;flex:1;}
|
||||
.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border);}
|
||||
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;}
|
||||
.form-item{display:flex;flex-direction:column;gap:6px;}
|
||||
.form-item.full{grid-column:1/-1;}
|
||||
.form-item__label{font-size:var(--font-sm);color:var(--text-secondary);}
|
||||
.form-item__label .required{color:var(--danger);margin-left:2px;}
|
||||
.form-item input,.form-item select,.form-item textarea{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;}
|
||||
.form-item textarea{height:auto;min-height:36px;padding:8px 12px;resize:vertical;}
|
||||
.form-item input:focus,.form-item select:focus,.form-item textarea:focus{border-color:var(--primary);}
|
||||
.form-item select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;padding-right:28px;}
|
||||
/* 食材动态行 */
|
||||
.ingredient-list{display:flex;flex-direction:column;gap:8px;}
|
||||
.ingredient-row{display:flex;gap:8px;align-items:center;}
|
||||
.ingredient-row input{flex:1;}
|
||||
.ingredient-row .btn-icon{width:32px;height:32px;min-width:32px;padding:0;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-secondary);transition:all .2s;}
|
||||
.ingredient-row .btn-icon:hover{color:var(--primary);border-color:var(--primary);}
|
||||
.ingredient-row .btn-icon.btn-del:hover{color:var(--danger);border-color:var(--danger);}
|
||||
.btn-add-row{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-sm);color:var(--primary);cursor:pointer;border:none;background:none;padding:4px 0;margin-top:4px;}
|
||||
.btn-add-row:hover{color:#40a9ff;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -113,8 +141,8 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item active"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -154,19 +182,16 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<!-- Tab1: 净菜包 -->
|
||||
<div class="tab-panel active">
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>包装编号/溯源码</label><input class="filter-input" placeholder="请输入包装编号或溯源码"></div>
|
||||
<div class="filter-item"><label>包装批次号/溯源码</label><input class="filter-input" placeholder="请输入包装批次号或溯源码"></div>
|
||||
<div class="filter-item"><label>净菜名称</label><input class="filter-input" placeholder="请输入净菜名称"></div>
|
||||
<div class="filter-item"><label>包装方式</label>
|
||||
<select class="filter-select"><option>全部</option><option>真空袋 500g</option><option>保鲜盒 1kg</option><option>散装托盘 2kg</option><option>真空袋 1kg</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>去向</label>
|
||||
<select class="filter-select"><option>全部</option><option>内供</option><option>外售</option></select>
|
||||
<select class="filter-select"><option>全部</option><option>真空袋</option><option>保鲜盒</option><option>散装托盘</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>日期</label><input class="filter-input" type="date"></div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button> <button class="btn btn-default">🖨️ 批量打印标签</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal('modal-nc')">➕ 新增净菜包</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button> <button class="btn btn-default">🖨️ 批量打印标签</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">净菜包</div>
|
||||
@@ -174,15 +199,15 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>包装编号</th><th>溯源码</th><th>净菜名称</th><th>包装方式</th><th>净重(g)</th><th>包装时间</th><th>保质期至</th><th>存放温度(℃)</th><th>去向</th><th>关联单号</th><th>包装人</th><th>终端设备</th><th>操作</th>
|
||||
<th>包装批次号</th><th>溯源码</th><th>净菜名称</th><th>包装方式</th><th>包装规格</th><th>包装份数</th><th>包装日期</th><th>保质期至</th><th>存放温度(℃)</th><th>关联单号</th><th>包装人</th><th>终端设备</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>PKG-NC-001</td><td>NC-PROC-BOCA-20260415-01</td><td>净菠菜</td><td><span class="tag tag-gray">真空袋 500g</span></td><td>500</td><td>2026-04-15 09:10</td><td>2026-04-17 09:10</td><td>4.1</td><td><span class="tag tag-blue">内供</span></td><td>INT-001</td><td>李包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-NC-002</td><td>NC-PROC-BOCA-20260415-01</td><td>净菠菜</td><td><span class="tag tag-gray">真空袋 500g</span></td><td>500</td><td>2026-04-15 09:11</td><td>2026-04-17 09:11</td><td>4.1</td><td><span class="tag tag-blue">内供</span></td><td>INT-001</td><td>李包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-NC-003</td><td>NC-PROC-HLUB-20260415-01</td><td>净胡萝卜</td><td><span class="tag tag-gray">保鲜盒 1kg</span></td><td>1000</td><td>2026-04-15 09:42</td><td>2026-04-18 09:42</td><td>4.2</td><td><span class="tag tag-blue">内供</span></td><td>INT-002</td><td>王包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-NC-004</td><td>NC-PROC-HLUB-20260415-01</td><td>净胡萝卜</td><td><span class="tag tag-gray">保鲜盒 1kg</span></td><td>1000</td><td>2026-04-15 09:43</td><td>2026-04-18 09:43</td><td>4.2</td><td><span class="tag tag-blue">内供</span></td><td>INT-002</td><td>王包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-NC-005</td><td>NC-PROC-XGUO-20260415-01</td><td>净香菇</td><td><span class="tag tag-gray">散装托盘 2kg</span></td><td>2000</td><td>2026-04-15 10:58</td><td>2026-04-17 10:58</td><td>4.0</td><td><span class="tag tag-orange">外售</span></td><td>EXT-001</td><td>张包装</td><td>PKG-T02</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-NC-006</td><td>NC-PROC-LAJP-20260415-01</td><td>净辣椒</td><td><span class="tag tag-gray">真空袋 1kg</span></td><td>1000</td><td>2026-04-15 11:20</td><td>2026-04-17 11:20</td><td>4.3</td><td><span class="tag tag-blue">内供</span></td><td>INT-003</td><td>李包装</td><td>PKG-T02</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>BATCH-NC-20260415-01</td><td>NC-PROC-BOCA-20260415-01</td><td>土豆(土豆丝)</td><td><span class="tag tag-gray">真空袋</span></td><td>500g/袋</td><td>20</td><td>2026-04-15</td><td>2026-04-17</td><td>4.1</td><td>INT-001</td><td>李包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-NC-20260415-01</td><td>NC-PROC-BOCA-20260415-01</td><td>土豆(土豆泥)</td><td><span class="tag tag-gray">真空袋</span></td><td>500g/袋</td><td>20</td><td>2026-04-15</td><td>2026-04-17</td><td>4.1</td><td>INT-001</td><td>李包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-NC-20260415-02</td><td>NC-PROC-HLUB-20260415-01</td><td>鸡肉(鸡爪)</td><td><span class="tag tag-gray">保鲜盒</span></td><td>1kg/盒</td><td>15</td><td>2026-04-15</td><td>2026-04-18</td><td>4.2</td><td>INT-002</td><td>王包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-NC-20260415-02</td><td>NC-PROC-HLUB-20260415-01</td><td>鸡肉(鸡肉块)</td><td><span class="tag tag-gray">保鲜盒</span></td><td>1kg/盒</td><td>15</td><td>2026-04-15</td><td>2026-04-18</td><td>4.2</td><td>INT-002</td><td>王包装</td><td>PKG-T01</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-NC-20260415-03</td><td>NC-PROC-XGUO-20260415-01</td><td>菠菜</td><td><span class="tag tag-gray">散装托盘</span></td><td>2kg/盘</td><td>8</td><td>2026-04-15</td><td>2026-04-17</td><td>4.0</td><td>EXT-001</td><td>张包装</td><td>PKG-T02</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-NC-20260415-04</td><td>NC-PROC-LAJP-20260415-01</td><td>豆腐(豆腐块)</td><td><span class="tag tag-gray">真空袋</span></td><td>1kg/袋</td><td>12</td><td>2026-04-15</td><td>2026-04-17</td><td>4.3</td><td>INT-003</td><td>李包装</td><td>PKG-T02</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -202,19 +227,16 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<!-- Tab2: 餐品净菜包 -->
|
||||
<div class="tab-panel">
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>包装编号/溯源码</label><input class="filter-input" placeholder="请输入包装编号或溯源码"></div>
|
||||
<div class="filter-item"><label>绑定菜品</label><input class="filter-input" placeholder="请输入绑定菜品"></div>
|
||||
<div class="filter-item"><label>规格</label>
|
||||
<div class="filter-item"><label>包装批次号/溯源码</label><input class="filter-input" placeholder="请输入包装批次号或溯源码"></div>
|
||||
<div class="filter-item"><label>包装餐品</label><input class="filter-input" placeholder="请输入包装餐品"></div>
|
||||
<div class="filter-item"><label>包装规格</label>
|
||||
<select class="filter-select"><option>全部</option><option>标准份</option><option>大份</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>去向</label>
|
||||
<select class="filter-select"><option>全部</option><option>内供</option><option>外售</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>日期</label><input class="filter-input" type="date"></div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button> <button class="btn btn-default">🖨️ 批量打印标签</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal('modal-dh')">➕ 新增餐品净菜包</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button> <button class="btn btn-default">🖨️ 批量打印标签</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">餐品净菜包</div>
|
||||
@@ -222,14 +244,14 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>包装编号</th><th>溯源码</th><th>绑定菜品</th><th>规格</th><th>包装方式</th><th>净重(g)</th><th>包含食材</th><th>包装时间</th><th>保质期至</th><th>存放温度(℃)</th><th>去向</th><th>关联单号</th><th>包装人</th><th>终端设备</th><th>操作</th>
|
||||
<th>包装批次号</th><th>溯源码</th><th>包装餐品</th><th>包装规格</th><th>包装方式</th><th>包装份数</th><th>包含食材</th><th>包装日期</th><th>保质期至</th><th>存放温度(℃)</th><th>关联单号</th><th>包装人</th><th>终端设备</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>PKG-DH-001</td><td>NC-PROC-JXRJ-20260415-01</td><td>宫保鸡丁</td><td><span class="tag tag-green">标准份</span></td><td><span class="tag tag-gray">冷鲜袋 200g</span></td><td>200</td><td>鸡胸肉120g+花生20g+干辣椒5g</td><td>2026-04-15 10:20</td><td>2026-04-17 10:20</td><td>3.8</td><td><span class="tag tag-blue">内供</span></td><td>INT-001</td><td>赵配餐</td><td>PKG-T03</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-DH-002</td><td>NC-PROC-JXRJ-20260415-01</td><td>宫保鸡丁</td><td><span class="tag tag-green">标准份</span></td><td><span class="tag tag-gray">冷鲜袋 200g</span></td><td>200</td><td>鸡胸肉120g+花生20g+干辣椒5g</td><td>2026-04-15 10:21</td><td>2026-04-17 10:21</td><td>3.8</td><td><span class="tag tag-blue">内供</span></td><td>INT-001</td><td>赵配餐</td><td>PKG-T03</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-DH-003</td><td>NC-PROC-CAYO-20260415-01</td><td>清蒸鱼</td><td><span class="tag tag-green">标准份</span></td><td><span class="tag tag-gray">保鲜盒 250g</span></td><td>250</td><td>草鱼100g+姜片适量</td><td>2026-04-15 10:35</td><td>2026-04-17 10:35</td><td>3.5</td><td><span class="tag tag-blue">内供</span></td><td>INT-002</td><td>陈配餐</td><td>PKG-T03</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-DH-004</td><td>NC-PROC-BOCA-20260415-01</td><td>蒜蓉菠菜</td><td><span class="tag tag-green">标准份</span></td><td><span class="tag tag-gray">冷鲜袋 180g</span></td><td>180</td><td>净菠菜120g+大蒜8g</td><td>2026-04-15 10:50</td><td>2026-04-17 10:50</td><td>4.0</td><td><span class="tag tag-orange">外售</span></td><td>EXT-001</td><td>陈配餐</td><td>PKG-T04</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>PKG-DH-005</td><td>NC-PROC-HLUB-20260415-01</td><td>炒胡萝卜</td><td><span class="tag tag-blue">大份</span></td><td><span class="tag tag-gray">保鲜盒 320g</span></td><td>320</td><td>净胡萝卜260g+葱姜适量</td><td>2026-04-15 11:05</td><td>2026-04-17 11:05</td><td>4.2</td><td><span class="tag tag-blue">内供</span></td><td>INT-003</td><td>赵配餐</td><td>PKG-T04</td><td class="td-actions"><span class="link">查看视频</span></td></tr>
|
||||
<tr><td>BATCH-DH-20260415-01</td><td>NC-PROC-JXRJ-20260415-01</td><td>宫保鸡丁</td><td><span class="tag tag-green">标准份(500g)</span></td><td><span class="tag tag-gray">冷鲜袋</span></td><td>10</td><td>鸡胸肉 120g<br>花生 20g<br>干辣椒 5g</td><td>2026-04-15</td><td>2026-04-17</td><td>3.8</td><td>INT-001</td><td>赵配餐</td><td>PKG-T03</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-DH-20260415-01</td><td>NC-PROC-JXRJ-20260415-01</td><td>宫保鸡丁</td><td><span class="tag tag-green">标准份(500g)</span></td><td><span class="tag tag-gray">冷鲜袋</span></td><td>10</td><td>鸡胸肉 120g<br>花生 20g<br>干辣椒 5g</td><td>2026-04-15</td><td>2026-04-17</td><td>3.8</td><td>INT-001</td><td>赵配餐</td><td>PKG-T03</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-DH-20260415-02</td><td>NC-PROC-CAYO-20260415-01</td><td>清蒸鱼</td><td><span class="tag tag-green">标准份(500g)</span></td><td><span class="tag tag-gray">保鲜盒</span></td><td>8</td><td>草鱼 100g<br>姜片适量</td><td>2026-04-15</td><td>2026-04-17</td><td>3.5</td><td>INT-002</td><td>陈配餐</td><td>PKG-T03</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-DH-20260415-03</td><td>NC-PROC-BOCA-20260415-01</td><td>蒜蓉菠菜</td><td><span class="tag tag-green">标准份(500g)</span></td><td><span class="tag tag-gray">冷鲜袋</span></td><td>12</td><td>净菠菜 120g<br>大蒜 8g</td><td>2026-04-15</td><td>2026-04-17</td><td>4.0</td><td>EXT-001</td><td>陈配餐</td><td>PKG-T04</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>BATCH-DH-20260415-04</td><td>NC-PROC-HLUB-20260415-01</td><td>炒胡萝卜</td><td><span class="tag tag-blue">大份(800g)</span></td><td><span class="tag tag-gray">保鲜盒</span></td><td>6</td><td>净胡萝卜 260g<br>葱姜适量</td><td>2026-04-15</td><td>2026-04-17</td><td>4.2</td><td>INT-003</td><td>赵配餐</td><td>PKG-T04</td><td class="td-actions"><span class="link">查看视频</span> <span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -256,7 +278,7 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal('modal-dev')">➕ 新增包装设备</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">包装设备</div>
|
||||
@@ -267,10 +289,10 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<th>设备编号</th><th>设备名称</th><th>安装位置</th><th>今日净菜包(个)</th><th>今日餐品包(个)</th><th>今日合计(个)</th><th>最后操作时间</th><th>设备状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>PKG-T01</td><td>包装终端-1号</td><td>A区净菜加工线</td><td>186</td><td>0</td><td>186</td><td>2026-04-15 11:45</td><td><span class="tag tag-green">在线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>PKG-T02</td><td>包装终端-2号</td><td>B区净菜加工线</td><td>62</td><td>0</td><td>62</td><td>2026-04-15 11:30</td><td><span class="tag tag-green">在线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>PKG-T03</td><td>配餐终端-1号</td><td>A区组配工作台</td><td>0</td><td>86</td><td>86</td><td>2026-04-15 11:50</td><td><span class="tag tag-green">在线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>PKG-T04</td><td>配餐终端-2号</td><td>B区组配工作台</td><td>0</td><td>52</td><td>52</td><td>2026-04-15 11:20</td><td><span class="tag tag-gray">离线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>PKG-T01</td><td>真空机-1号</td><td>A区净菜加工线</td><td>186</td><td>0</td><td>186</td><td>2026-04-15 11:45</td><td><span class="tag tag-green">在线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>PKG-T02</td><td>真空机-2号</td><td>B区净菜加工线</td><td>62</td><td>0</td><td>62</td><td>2026-04-15 11:30</td><td><span class="tag tag-green">在线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>PKG-T03</td><td>封口机-1号</td><td>A区组配工作台</td><td>0</td><td>86</td><td>86</td><td>2026-04-15 11:50</td><td><span class="tag tag-green">在线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
<tr><td>PKG-T04</td><td>封口机-2号</td><td>B区组配工作台</td><td>0</td><td>52</td><td>52</td><td>2026-04-15 11:20</td><td><span class="tag tag-gray">离线</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" style="color:var(--danger)">删除</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -282,12 +304,192 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<!-- 弹窗:新增净菜包 -->
|
||||
<div class="modal-mask" id="modal-nc">
|
||||
<div class="modal">
|
||||
<div class="modal__header">
|
||||
<div class="modal__title">新增净菜包</div>
|
||||
<button class="modal__close" onclick="closeModal('modal-nc')">✕</button>
|
||||
</div>
|
||||
<div class="modal__body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">溯源码<span class="required">*</span></div>
|
||||
<input placeholder="输入溯源码可带出净菜名称">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">净菜名称<span class="required">*</span></div>
|
||||
<select><option value="">请选择净菜</option><option>土豆(土豆丝)</option><option>土豆(土豆泥)</option><option>鸡肉(鸡爪)</option><option>鸡肉(鸡肉块)</option><option>菠菜</option><option>豆腐(豆腐块)</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装方式<span class="required">*</span></div>
|
||||
<select><option value="">请选择</option><option>真空袋</option><option>保鲜盒</option><option>散装托盘</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装规格<span class="required">*</span></div>
|
||||
<input placeholder="如 500g/袋、1kg/盒">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装份数<span class="required">*</span></div>
|
||||
<input type="number" placeholder="请输入份数">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装日期<span class="required">*</span></div>
|
||||
<input type="date">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">保质期至<span class="required">*</span></div>
|
||||
<input type="date">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">存放温度(℃)</div>
|
||||
<input type="number" step="0.1" placeholder="如 4.0">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装人</div>
|
||||
<input placeholder="请输入包装人">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">终端设备</div>
|
||||
<select><option value="">请选择</option><option>PKG-T01</option><option>PKG-T02</option><option>PKG-T03</option><option>PKG-T04</option></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal__footer">
|
||||
<button class="btn btn-default" onclick="closeModal('modal-nc')">取消</button>
|
||||
<button class="btn btn-primary" onclick="closeModal('modal-nc')">确认提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 弹窗:新增餐品净菜包 -->
|
||||
<div class="modal-mask" id="modal-dh">
|
||||
<div class="modal">
|
||||
<div class="modal__header">
|
||||
<div class="modal__title">新增餐品净菜包</div>
|
||||
<button class="modal__close" onclick="closeModal('modal-dh')">✕</button>
|
||||
</div>
|
||||
<div class="modal__body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">溯源码<span class="required">*</span></div>
|
||||
<input placeholder="请输入溯源码">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装餐品<span class="required">*</span></div>
|
||||
<select><option value="">请选择餐品</option><option>宫保鸡丁</option><option>清蒸鱼</option><option>蒜蓉菠菜</option><option>炒胡萝卜</option><option>红烧排骨</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装规格<span class="required">*</span></div>
|
||||
<select><option value="">请选择</option><option>标准份(500g)</option><option>大份(800g)</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装方式<span class="required">*</span></div>
|
||||
<select><option value="">请选择</option><option>冷鲜袋</option><option>保鲜盒</option></select>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装份数<span class="required">*</span></div>
|
||||
<input type="number" placeholder="请输入份数">
|
||||
</div>
|
||||
<div class="form-item full">
|
||||
<div class="form-item__label">包含食材<span class="required">*</span></div>
|
||||
<div class="ingredient-list" id="ingredientList">
|
||||
<div class="ingredient-row">
|
||||
<input placeholder="食材名称及用量,如:鸡胸肉 120g">
|
||||
<button class="btn-icon btn-del" onclick="removeIngredient(this)" title="删除">✕</button>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-add-row" onclick="addIngredient()">+ 添加食材</button>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装日期<span class="required">*</span></div>
|
||||
<input type="date">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">保质期至<span class="required">*</span></div>
|
||||
<input type="date">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">存放温度(℃)</div>
|
||||
<input type="number" step="0.1" placeholder="如 3.8">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">包装人</div>
|
||||
<input placeholder="请输入包装人">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">终端设备</div>
|
||||
<select><option value="">请选择</option><option>PKG-T01</option><option>PKG-T02</option><option>PKG-T03</option><option>PKG-T04</option></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal__footer">
|
||||
<button class="btn btn-default" onclick="closeModal('modal-dh')">取消</button>
|
||||
<button class="btn btn-primary" onclick="closeModal('modal-dh')">确认提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 弹窗:新增包装设备 -->
|
||||
<div class="modal-mask" id="modal-dev">
|
||||
<div class="modal" style="width:480px;">
|
||||
<div class="modal__header">
|
||||
<div class="modal__title">新增包装设备</div>
|
||||
<button class="modal__close" onclick="closeModal('modal-dev')">✕</button>
|
||||
</div>
|
||||
<div class="modal__body">
|
||||
<div class="form-grid" style="grid-template-columns:1fr;">
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">设备编号<span class="required">*</span></div>
|
||||
<input placeholder="如 PKG-T05">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">设备名称<span class="required">*</span></div>
|
||||
<input placeholder="如 真空机-3号">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">安装位置<span class="required">*</span></div>
|
||||
<input placeholder="如 C区净菜加工线">
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item__label">设备状态</div>
|
||||
<select><option>在线</option><option>离线</option></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal__footer">
|
||||
<button class="btn btn-default" onclick="closeModal('modal-dev')">取消</button>
|
||||
<button class="btn btn-primary" onclick="closeModal('modal-dev')">确认提交</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Tab 切换
|
||||
function switchTab(idx){
|
||||
document.querySelectorAll('.page-tab').forEach((t,i)=>t.classList.toggle('active',i===idx));
|
||||
document.querySelectorAll('.tab-panel').forEach((p,i)=>p.classList.toggle('active',i===idx));
|
||||
}
|
||||
// 弹窗打开/关闭
|
||||
function openModal(id){document.getElementById(id).classList.add('show');}
|
||||
function closeModal(id){document.getElementById(id).classList.remove('show');}
|
||||
// 点击遮罩关闭
|
||||
document.querySelectorAll('.modal-mask').forEach(m=>{
|
||||
m.addEventListener('click',e=>{if(e.target===m)m.classList.remove('show');});
|
||||
});
|
||||
// 食材动态行:添加
|
||||
function addIngredient(){
|
||||
var list=document.getElementById('ingredientList');
|
||||
var row=document.createElement('div');
|
||||
row.className='ingredient-row';
|
||||
row.innerHTML='<input placeholder="食材名称及用量,如:花生 20g"><button class="btn-icon btn-del" onclick="removeIngredient(this)" title="删除">✕</button>';
|
||||
list.appendChild(row);
|
||||
}
|
||||
// 食材动态行:删除(至少保留一行)
|
||||
function removeIngredient(btn){
|
||||
var list=document.getElementById('ingredientList');
|
||||
if(list.children.length>1)btn.parentElement.remove();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -130,8 +130,8 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">卫生供应</div>
|
||||
<a href="sup-hygiene-check.html" class="sidebar-item"><span class="mi">🔬</span>卫生检测</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-warehouse.html" class="sidebar-item active"><span class="mi">🏭</span>仓储管理</a>
|
||||
<a href="sup-in-raw.html" class="sidebar-item"><span class="mi">📥</span>毛菜入库</a>
|
||||
<a href="sup-in-clean.html" class="sidebar-item"><span class="mi">🥬</span>净菜加工</a>
|
||||
<a href="sup-in-cleanin.html" class="sidebar-item"><span class="mi">📦</span>净菜入库</a>
|
||||
<a href="sup-pkg-label.html" class="sidebar-item"><span class="mi">🏷️</span>净菜包装</a>
|
||||
@@ -163,115 +163,32 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
|
||||
<!-- Tab 切换栏 -->
|
||||
<div class="page-tabs">
|
||||
<div class="page-tab active" onclick="switchTab(0)">🏭 仓库档案</div>
|
||||
<div class="page-tab" onclick="switchTab(1)">📦 区域管理</div>
|
||||
<div class="page-tab" onclick="switchTab(2)">🥬 在库库存</div>
|
||||
<div class="page-tab active" onclick="switchTab(0)">🥬 在库库存</div>
|
||||
<div class="page-tab" onclick="switchTab(1)">🏭 仓库档案</div>
|
||||
<div class="page-tab" onclick="switchTab(2)">📦 区域管理</div>
|
||||
</div>
|
||||
|
||||
<!-- Tab1: 仓库档案 -->
|
||||
<!-- Tab1: 在库库存 -->
|
||||
<div class="tab-panel active">
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>仓库编号/名称</label><input class="filter-input" placeholder="请输入仓库编号或名称"></div>
|
||||
<div class="filter-item"><label>温区类型</label>
|
||||
<select class="filter-select"><option>全部</option><option>常温</option><option>冷藏(0~4℃)</option><option>冷冻(-18℃)</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>正常</option><option>停用</option></select>
|
||||
</div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openModal()">➕ 新增仓库</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">仓库档案</div>
|
||||
</div>
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>仓库编号</th><th>仓库名称</th><th>位置</th><th>温区类型</th><th>总容量(㎥)</th><th>已用容量(㎥)</th><th>占用率</th><th>状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>WH-A</td><td>A仓-蔬菜常温库</td><td>加工中心一楼北侧</td><td><span class="tag tag-gray">常温</span></td><td>500</td><td>312</td><td><span class="tag tag-green">62.4%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>WH-B</td><td>B仓-肉类冷藏库</td><td>加工中心一楼南侧</td><td><span class="tag tag-blue">冷藏(0~4℃)</span></td><td>200</td><td>148</td><td><span class="tag tag-orange">74.0%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>WH-C</td><td>C仓-水产冷冻库</td><td>加工中心地下一层</td><td><span class="tag tag-blue">冷冻(-18℃)</span></td><td>150</td><td>60</td><td><span class="tag tag-green">40.0%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>显示 3 条,共 3 条</span>
|
||||
<button class="page-btn active">1</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tab2: 区域管理 -->
|
||||
<div class="tab-panel">
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>区域编号/名称</label><input class="filter-input" placeholder="请输入区域编号或名称"></div>
|
||||
<div class="filter-item"><label>所属仓库</label>
|
||||
<select class="filter-select"><option>全部</option><option>A仓-蔬菜常温库</option><option>B仓-肉类冷藏库</option><option>C仓-水产冷冻库</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>适存品类</label>
|
||||
<select class="filter-select"><option>全部</option><option>叶菜类</option><option>根茎类</option><option>瓜果类</option><option>猪肉类</option><option>禽肉类</option><option>蛋品类</option><option>淡水鱼类</option><option>海水产类</option></select>
|
||||
</div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary">➕ 新增区域</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">区域管理</div>
|
||||
</div>
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>区域编号</th><th>区域名称</th><th>所属仓库</th><th>适存品类</th><th>容量(㎥)</th><th>当前占用率</th><th>状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>WH-A-01</td><td>A仓-蔬菜区-01</td><td>A仓-蔬菜常温库</td><td>叶菜类</td><td>80</td><td><span class="tag tag-orange">71%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-A-02</td><td>A仓-蔬菜区-02</td><td>A仓-蔬菜常温库</td><td>叶菜类</td><td>80</td><td><span class="tag tag-green">45%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-A-03</td><td>A仓-蔬菜区-03</td><td>A仓-蔬菜常温库</td><td>根茎类</td><td>100</td><td><span class="tag tag-orange">82%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-A-04</td><td>A仓-蔬菜区-04</td><td>A仓-蔬菜常温库</td><td>瓜果类</td><td>80</td><td><span class="tag tag-green">30%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-B-01</td><td>B仓-肉类区-01</td><td>B仓-肉类冷藏库</td><td>猪肉类</td><td>60</td><td><span class="tag tag-red">88%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-B-02</td><td>B仓-肉类区-02</td><td>B仓-肉类冷藏库</td><td>禽肉类</td><td>60</td><td><span class="tag tag-green">55%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-B-03</td><td>B仓-肉类区-03</td><td>B仓-肉类冷藏库</td><td>蛋品类</td><td>40</td><td><span class="tag tag-green">62%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-C-01</td><td>C仓-水产区-01</td><td>C仓-水产冷冻库</td><td>淡水鱼类</td><td>80</td><td><span class="tag tag-green">50%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
<tr><td>WH-C-02</td><td>C仓-水产区-02</td><td>C仓-水产冷冻库</td><td>海水产类</td><td>70</td><td><span class="tag tag-green">25%</span></td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link" onclick="openModal()">详情</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>显示 9 条,共 12 条</span>
|
||||
<button class="page-btn">‹</button>
|
||||
<button class="page-btn active">1</button>
|
||||
<button class="page-btn">2</button>
|
||||
<button class="page-btn">›</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tab3: 在库库存 -->
|
||||
<div class="tab-panel">
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>食材名称</label><input class="filter-input" placeholder="请输入食材名称"></div>
|
||||
<div class="filter-item"><label>物品类型</label>
|
||||
<select class="filter-select"><option>全部</option><option>毛菜</option><option>净菜</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>所在区域</label>
|
||||
<select class="filter-select"><option>全部</option><option>A仓-蔬菜区-01</option><option>A仓-蔬菜区-02</option><option>A仓-蔬菜区-03</option><option>A仓-蔬菜区-04</option><option>B仓-肉类区-01</option><option>B仓-肉类区-02</option><option>B仓-肉类区-03</option><option>C仓-水产区-01</option><option>C仓-水产区-02</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>库存状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>正常</option><option>偏低</option><option>已隔离</option></select>
|
||||
<select class="filter-select"><option>全部</option><option>充足</option><option>不足</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>临期预警</label>
|
||||
<select class="filter-select"><option>全部</option><option>正常</option><option>临期</option><option>已过期</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>入库日期</label><input class="filter-input" type="date"></div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary">🔄 刷新库存</button> <button class="btn btn-default">⚠️ 临期预警</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="action-bar"><button class="btn btn-primary">🔄 刷新库存</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">在库库存</div>
|
||||
@@ -279,14 +196,14 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>食材名称</th><th>来源批次</th><th>所在区域</th><th>入库量(kg)</th><th>已出量(kg)</th><th>在库量(kg)</th><th>入库时间</th><th>保质期至</th><th>库存状态</th><th>操作</th>
|
||||
<th>食材名称</th><th>物品类型</th><th>入库单号</th><th>所在区域</th><th>入库量(kg)</th><th>已出量(kg)</th><th>在库量(kg)</th><th>入库时间</th><th>保质期至</th><th>临期预警</th><th>库存状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>菠菜</td><td>IN-20260415-001</td><td>A仓-蔬菜区-01</td><td>286</td><td>61</td><td><span class="tag tag-green">225</span></td><td>2026-04-15 10:30</td><td>2026-04-18</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>菠菜</td><td>IN-20260415-002</td><td>A仓-蔬菜区-02</td><td>50</td><td>20</td><td><span class="tag tag-green">30</span></td><td>2026-04-15 08:30</td><td>2026-04-18</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>猪里脊</td><td>IN-20260415-003</td><td>B仓-肉类区-01</td><td>80</td><td>40</td><td><span class="tag tag-orange">40</span></td><td>2026-04-15 09:15</td><td>2026-04-19</td><td><span class="tag tag-orange">偏低</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>草鱼</td><td>IN-20260415-004</td><td>C仓-水产区-01</td><td>60</td><td>0</td><td><span class="tag tag-red">60</span></td><td>2026-04-15 09:45</td><td>2026-04-15</td><td><span class="tag tag-red">已隔离</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>胡萝卜</td><td>IN-20260416-005</td><td>A仓-蔬菜区-03</td><td>420</td><td>0</td><td><span class="tag tag-green">420</span></td><td>2026-04-16 11:00</td><td>2026-04-23</td><td><span class="tag tag-green">正常</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>菠菜</td><td><span class="tag tag-green">毛菜</span></td><td>IN-20260415-001</td><td>A仓-蔬菜区-01</td><td>286</td><td>61</td><td>225</td><td>2026-04-15 10:30</td><td>2026-04-18</td><td><span class="tag tag-green">正常</span></td><td><span class="tag tag-green">充足</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>菠菜</td><td><span class="tag tag-green">毛菜</span></td><td>IN-20260415-002</td><td>A仓-蔬菜区-02</td><td>50</td><td>20</td><td>30</td><td>2026-04-15 08:30</td><td>2026-04-18</td><td><span class="tag tag-green">正常</span></td><td><span class="tag tag-green">充足</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>猪里脊</td><td><span class="tag tag-blue">净菜</span></td><td>IN-20260415-003</td><td>B仓-肉类区-01</td><td>80</td><td>40</td><td>40</td><td>2026-04-15 09:15</td><td>2026-04-19</td><td><span class="tag tag-orange">临期</span></td><td><span class="tag tag-orange">不足</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>草鱼</td><td><span class="tag tag-green">毛菜</span></td><td>IN-20260415-004</td><td>C仓-水产区-01</td><td>60</td><td>0</td><td>60</td><td>2026-04-15 09:45</td><td>2026-04-15</td><td><span class="tag tag-red">已过期</span></td><td><span class="tag tag-orange">不足</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
<tr><td>胡萝卜</td><td><span class="tag tag-green">毛菜</span></td><td>IN-20260416-005</td><td>A仓-蔬菜区-03</td><td>420</td><td>0</td><td>420</td><td>2026-04-16 11:00</td><td>2026-04-23</td><td><span class="tag tag-green">正常</span></td><td><span class="tag tag-green">充足</span></td><td class="td-actions"><span class="link">编辑</span> <span class="link">详情</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -301,6 +218,98 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tab2: 仓库档案 -->
|
||||
<div class="tab-panel">
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>仓库编号/名称</label><input class="filter-input" placeholder="请输入仓库编号或名称"></div>
|
||||
<div class="filter-item"><label>温区类型</label>
|
||||
<select class="filter-select"><option>全部</option><option>常温</option><option>冷藏(0~4℃)</option><option>冷冻(-18℃)</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>使用中</option><option>空置中</option></select>
|
||||
</div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openWhModal()">➕ 新增仓库</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">仓库档案</div>
|
||||
</div>
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>仓库编号</th><th>仓库名称</th><th>位置</th><th>温区类型</th><th>总容量(㎥)</th><th>负责人</th><th>负责人电话</th><th>状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>WH-A</td><td>A仓-蔬菜常温库</td><td>加工中心一楼北侧</td><td><span class="tag tag-gray">常温</span></td><td>500</td><td>张仓管</td><td>138-0000-1001</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openWhModal()">编辑</span> <span class="link" onclick="openWhModal()">详情</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>WH-B</td><td>B仓-肉类冷藏库</td><td>加工中心一楼南侧</td><td><span class="tag tag-blue">冷藏(0~4℃)</span></td><td>200</td><td>王仓管</td><td>138-0000-1002</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openWhModal()">编辑</span> <span class="link" onclick="openWhModal()">详情</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>WH-C</td><td>C仓-水产冷冻库</td><td>加工中心地下一层</td><td><span class="tag tag-blue">冷冻(-18℃)</span></td><td>150</td><td>李仓管</td><td>138-0000-1003</td><td><span class="tag tag-gray">空置中</span></td><td class="td-actions"><span class="link" onclick="openWhModal()">编辑</span> <span class="link" onclick="openWhModal()">详情</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>显示 3 条,共 3 条</span>
|
||||
<button class="page-btn active">1</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tab3: 区域管理 -->
|
||||
<div class="tab-panel">
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item"><label>区域编号/名称</label><input class="filter-input" placeholder="请输入区域编号或名称"></div>
|
||||
<div class="filter-item"><label>所属仓库</label>
|
||||
<select class="filter-select"><option>全部</option><option>A仓-蔬菜常温库</option><option>B仓-肉类冷藏库</option><option>C仓-水产冷冻库</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>适存品类</label>
|
||||
<select class="filter-select"><option>全部</option><option>叶菜类</option><option>根茎类</option><option>瓜果类</option><option>猪肉类</option><option>禽肉类</option><option>蛋品类</option><option>淡水鱼类</option><option>海水产类</option></select>
|
||||
</div>
|
||||
<div class="filter-item"><label>状态</label>
|
||||
<select class="filter-select"><option>全部</option><option>使用中</option><option>空置中</option></select>
|
||||
</div>
|
||||
<button class="btn btn-primary">查询</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
<div class="action-bar"><button class="btn btn-primary" onclick="openZoneModal()">➕ 新增区域</button> <button class="btn btn-primary"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M2 10v2h10v-2M7 2v7M4.5 6.5L7 9l2.5-2.5" stroke="#fff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg>导出列表数据</button> <button class="btn btn-default"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><rect x="2" y="2" width="10" height="10" rx="1.5" stroke="currentColor" stroke-width="1.4"/><path d="M4 5h6M4 7.5h4" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>查看导出任务</button></div>
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">区域管理</div>
|
||||
</div>
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead><tr>
|
||||
<th>区域编号</th><th>区域名称</th><th>所属仓库</th><th>适存品类</th><th>容量(㎥)</th><th>状态</th><th>操作</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td>WH-A-01</td><td>A仓-蔬菜区-01</td><td>A仓-蔬菜常温库</td><td>叶菜类</td><td>80</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-A-02</td><td>A仓-蔬菜区-02</td><td>A仓-蔬菜常温库</td><td>叶菜类</td><td>80</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-A-03</td><td>A仓-蔬菜区-03</td><td>A仓-蔬菜常温库</td><td>根茎类</td><td>100</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-A-04</td><td>A仓-蔬菜区-04</td><td>A仓-蔬菜常温库</td><td>瓜果类</td><td>80</td><td><span class="tag tag-gray">空置中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-B-01</td><td>B仓-肉类区-01</td><td>B仓-肉类冷藏库</td><td>猪肉类</td><td>60</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-B-02</td><td>B仓-肉类区-02</td><td>B仓-肉类冷藏库</td><td>禽肉类</td><td>60</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-B-03</td><td>B仓-肉类区-03</td><td>B仓-肉类冷藏库</td><td>蛋品类</td><td>40</td><td><span class="tag tag-gray">空置中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-C-01</td><td>C仓-水产区-01</td><td>C仓-水产冷冻库</td><td>淡水鱼类</td><td>80</td><td><span class="tag tag-green">使用中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
<tr><td>WH-C-02</td><td>C仓-水产区-02</td><td>C仓-水产冷冻库</td><td>海水产类</td><td>70</td><td><span class="tag tag-gray">空置中</span></td><td class="td-actions"><span class="link" onclick="openZoneModal()">编辑</span> <span class="link" onclick="openZoneModal()">详情</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>显示 9 条,共 12 条</span>
|
||||
<button class="page-btn">‹</button>
|
||||
<button class="page-btn active">1</button>
|
||||
<button class="page-btn">2</button>
|
||||
<button class="page-btn">›</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
@@ -309,17 +318,22 @@ function switchTab(idx){
|
||||
document.querySelectorAll('.page-tab').forEach((t,i)=>t.classList.toggle('active',i===idx));
|
||||
document.querySelectorAll('.tab-panel').forEach((p,i)=>p.classList.toggle('active',i===idx));
|
||||
}
|
||||
function openModal(){document.getElementById('modalOverlay').style.display='flex';}
|
||||
function closeModal(){document.getElementById('modalOverlay').style.display='none';}
|
||||
document.getElementById('modalOverlay').addEventListener('click',function(e){if(e.target===this)closeModal();});
|
||||
// 仓库档案弹窗
|
||||
function openWhModal(){document.getElementById('whModal').style.display='flex';}
|
||||
function closeWhModal(){document.getElementById('whModal').style.display='none';}
|
||||
document.getElementById('whModal').addEventListener('click',function(e){if(e.target===this)closeWhModal();});
|
||||
// 区域管理弹窗
|
||||
function openZoneModal(){document.getElementById('zoneModal').style.display='flex';}
|
||||
function closeZoneModal(){document.getElementById('zoneModal').style.display='none';}
|
||||
document.getElementById('zoneModal').addEventListener('click',function(e){if(e.target===this)closeZoneModal();});
|
||||
</script>
|
||||
|
||||
<!-- 新增仓库/区域弹窗 -->
|
||||
<div class="modal-overlay" id="modalOverlay" style="display:none;">
|
||||
<!-- 仓库档案弹窗 -->
|
||||
<div class="modal-overlay" id="whModal" style="display:none;">
|
||||
<div class="modal">
|
||||
<div class="modal-header">
|
||||
<span class="modal-title">新增仓库/区域</span>
|
||||
<span class="modal-close" onclick="closeModal()">×</span>
|
||||
<span class="modal-title">新增/编辑仓库</span>
|
||||
<span class="modal-close" onclick="closeWhModal()">×</span>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-grid">
|
||||
@@ -328,12 +342,39 @@ document.getElementById('modalOverlay').addEventListener('click',function(e){if(
|
||||
<div class="form-item"><label>位置<span class="required">*</span></label><input type="text" placeholder="请输入仓库位置"></div>
|
||||
<div class="form-item"><label>温区类型<span class="required">*</span></label><select><option>请选择</option><option>常温</option><option>冷藏(0~4℃)</option><option>冷冻(-18℃)</option></select></div>
|
||||
<div class="form-item"><label>总容量(㎥)<span class="required">*</span></label><input type="number" placeholder="请输入总容量"></div>
|
||||
<div class="form-item"></div>
|
||||
<div class="form-item"><label>负责人<span class="required">*</span></label><input type="text" placeholder="请输入负责人"></div>
|
||||
<div class="form-item"><label>负责人电话<span class="required">*</span></label><input type="text" placeholder="请输入负责人电话"></div>
|
||||
<div class="form-item"><label>状态<span class="required">*</span></label><select><option>请选择</option><option>使用中</option><option>空置中</option></select></div>
|
||||
<div class="form-item full"><label>备注</label><textarea placeholder="请输入备注信息"></textarea></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" onclick="closeModal()">取消</button>
|
||||
<button class="btn btn-default" onclick="closeWhModal()">取消</button>
|
||||
<button class="btn btn-primary">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 区域管理弹窗 -->
|
||||
<div class="modal-overlay" id="zoneModal" style="display:none;">
|
||||
<div class="modal">
|
||||
<div class="modal-header">
|
||||
<span class="modal-title">新增/编辑区域</span>
|
||||
<span class="modal-close" onclick="closeZoneModal()">×</span>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-grid">
|
||||
<div class="form-item"><label>区域编号<span class="required">*</span></label><input type="text" placeholder="请输入区域编号"></div>
|
||||
<div class="form-item"><label>区域名称<span class="required">*</span></label><input type="text" placeholder="请输入区域名称"></div>
|
||||
<div class="form-item"><label>所属仓库<span class="required">*</span></label><select><option>请选择</option><option>A仓-蔬菜常温库</option><option>B仓-肉类冷藏库</option><option>C仓-水产冷冻库</option></select></div>
|
||||
<div class="form-item"><label>适存品类<span class="required">*</span></label><select><option>请选择</option><option>叶菜类</option><option>根茎类</option><option>瓜果类</option><option>猪肉类</option><option>禽肉类</option><option>蛋品类</option><option>淡水鱼类</option><option>海水产类</option></select></div>
|
||||
<div class="form-item"><label>容量(㎥)<span class="required">*</span></label><input type="number" placeholder="请输入容量"></div>
|
||||
<div class="form-item"><label>状态<span class="required">*</span></label><select><option>请选择</option><option>使用中</option><option>空置中</option></select></div>
|
||||
<div class="form-item full"><label>备注</label><textarea placeholder="请输入备注信息"></textarea></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" onclick="closeZoneModal()">取消</button>
|
||||
<button class="btn btn-primary">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user