feat: 净菜内供和净菜外售发货流程

This commit is contained in:
fengpu
2026-08-03 13:52:20 +08:00
parent e8fd8fea5b
commit de20b8693c
2 changed files with 46 additions and 4 deletions
+8 -2
View File
@@ -268,7 +268,7 @@ textarea.form-control{height:auto;padding:8px 12px;resize:vertical;min-height:60
<div class="modal__header"><div class="modal__title">补全备货信息</div><button class="modal__close" onclick="closeModal('readyModal')">&times;</button></div>
<div class="modal__body">
<div style="background:var(--primary-light);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:20px;font-size:var(--font-sm);color:var(--primary);">
<span>订单号:<strong id="readyOrderNoExt"></strong> 菜品:<strong id="readyFoodNameExt"></strong></span>
<span>订单号:<strong id="readyOrderNoExt"></strong></span>
</div>
<div class="form-grid" style="grid-template-columns:1fr;">
<div class="form-group"><label class="form-label">包装批次号<span class="required">*</span></label>
@@ -404,7 +404,12 @@ function deleteExtOrder(no){if(!confirm('确认删除订单 '+no+' '))return;
var _extOp={};
function orderAction(no,action){
var o=extOrders.find(function(x){return x.orderNo===no;});if(!o)return;
if(action==='ready'){o.lines.forEach(function(l){l.status='待配送';});renderExtTable();}
if(action==='ready'){
_extOp={orderNo:no};
document.getElementById('readyOrderNoExt').textContent=no;
document.getElementById('readyBatchSelectExt').value='';
openModal('readyModal');
}
else if(action==='ship'){
_extOp={orderNo:no};
document.getElementById('shipInfo').textContent='订单号:'+no;
@@ -414,6 +419,7 @@ function orderAction(no,action){
}else if(action==='receive'){o.lines.forEach(function(l){l.status='已完成';});renderExtTable();}
}
function confirmShip(){var c=document.getElementById('shipCompany').value;var t=document.getElementById('shipTrackNo').value.trim();if(!c){alert('请选择物流公司');return;}if(!t){alert('请输入物流单号');return;}var o=extOrders.find(function(x){return x.orderNo===_extOp.orderNo;});if(o){o.lines.forEach(function(l){l.status='配送中';});o.logistics=t;}_extOp={};closeModal('shipModal');renderExtTable();}
function doReadyExt(){var b=document.getElementById('readyBatchSelectExt').value;if(!b){alert('请选择包装批次号');return;}var o=extOrders.find(function(x){return x.orderNo===_extOp.orderNo;});if(o){o.lines.forEach(function(l){if(l.status==='备货中')l.status='待配送';});}_extOp={};closeModal('readyModal');renderExtTable();}
/* ========== 新建订单 ========== */
var newExtOrderType='nc';
function updExtOrderType(v){newExtOrderType=v;renderExtLineBuilders();}
+38 -2
View File
@@ -277,6 +277,28 @@ tr.detail-row td.td-actions{background:#FAFBFC;box-shadow:-4px 0 8px rgba(0,0,0,
</div>
</div>
<!-- 弹窗:备货完成 -->
<div class="modal-mask" id="modal-ready">
<div class="modal" style="width:480px;">
<div class="modal__header"><div class="modal__title">补全备货信息</div><button class="modal__close" onclick="closeModal('modal-ready')"></button></div>
<div class="modal__body">
<div style="background:var(--primary-light);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:20px;font-size:var(--font-sm);color:var(--primary);">
<span>申领单号:<strong id="readyClaimNo"></strong></span>
</div>
<div class="form-grid" style="grid-template-columns:1fr;">
<div class="form-item"><div class="form-item__label">包装批次号<span class="required">*</span></div>
<select id="readyBatchNo"><option value="">请选择批次号</option><option>BATCH-DH-20260415-01</option><option>BATCH-DH-20260415-02</option><option>BATCH-DH-20260415-03</option><option>BATCH-DH-20260415-04</option></select>
</div>
</div>
<p style="font-size:var(--font-xs);color:var(--text-placeholder);margin-top:12px;">选择包装批次号后,所有备货中的菜品将变为「待配送」</p>
</div>
<div class="modal__footer">
<button class="btn btn-default" onclick="closeModal('modal-ready')">取消</button>
<button class="btn btn-primary" onclick="doClaimReady()">确认备货完成</button>
</div>
</div>
</div>
<script>
/* ========== 弹窗开关 ========== */
function openModal(id){
@@ -405,13 +427,16 @@ function deleteClaim(no){
/* ========== 订单级操作 ========== */
var _deliverClaimNo=null;
var _readyClaimNo=null;
function orderAction(claimNo,action){
var c=claims.find(function(x){return x.claimNo===claimNo;});
if(!c)return;
if(action==='ready'){
c.lines.forEach(function(l){if(l.status==='备货中')l.status='待配送';});
renderClaimTable();
_readyClaimNo=claimNo;
document.getElementById('readyClaimNo').textContent=claimNo;
document.getElementById('readyBatchNo').value='';
openModal('modal-ready');
}else if(action==='deliver'){
_deliverClaimNo=claimNo;
document.getElementById('deliverOrderNo').textContent=claimNo;
@@ -437,6 +462,17 @@ function doDeliver(){
renderClaimTable();
}
function doClaimReady(){
var batchNo=document.getElementById('readyBatchNo').value;
if(!batchNo){alert('请选择包装批次号');return;}
var c=claims.find(function(x){return x.claimNo===_readyClaimNo;});
if(!c)return;
c.lines.forEach(function(l){if(l.status==='备货中')l.status='待配送';});
_readyClaimNo=null;
closeModal('modal-ready');
renderClaimTable();
}
/* ========== 新建申领单 ========== */
var newClaimLines=[];
var claimLineIdCnt=0;