Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r32794 -r32798 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 32794) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 32798) @@ -4634,38 +4634,75 @@ }else { var basketTree = Ext4.getCmp('basketTreeGrid'); var selNodes = basketTree.getView().getChecked(); - var selLength = selNodes.length; - if(selLength > 0){ - Ext4.each(selNodes, function(pNode){ - if(pNode.get('checked') == true){ - if(pNode.childNodes.length == 0){ - var amount = pNode.get('amount'); - var maxAmount = pNode.get('maxAmount'); - if(amount == maxAmount){ - pNode.remove(); - }else { - var newAmount = maxAmount - amount; - pNode.set('amount',newAmount); - pNode.set('maxAmount',newAmount); - pNode.set("checked", false); + var map = {},dest = []; + Ext4.each(selNodes, function(pNode){ + if(pNode.childNodes.length == 0){ + var ai = pNode; + if(!map[ai.get('tousseName')]){ + dest.push(ai.parentNode); + map[ai.get('tousseName')] = ai; + } + } + }); + if(dest.length > 0){ + Ext4.each(dest, function(pNode){ + var parentAmout = pNode.get('amount'); + var parentChecked = pNode.get('checked'); + var parentMaxAmount = pNode.get('maxAmount'); + if(parentChecked == true){ + var amountSum = 0; + for(var i=0;i= amountSum){ + pNode.remove(); + }else { + var removeArr = []; + for(var i=0;i parentAmout){ + var newAmount = maxAmount - parentAmout; + parentMaxAmount = parentMaxAmount - parentAmout; + pNode.childNodes[i].set('amount',newAmount); + pNode.childNodes[i].set('maxAmount',newAmount); + pNode.childNodes[i].set("checked", false); + for(var j=0;j