Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js =================================================================== diff -u -r14513 -r14528 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js (.../goodsTemplateApplicationView.js) (revision 14513) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsTemplateApplicationView.js (.../goodsTemplateApplicationView.js) (revision 14528) @@ -37,28 +37,35 @@ // 更新消毒物品的父节点信息,即文件夹节点保存的信息 /** - * 从旧的节点里读取数量设置到新的节点那里,用于已经有非整包清洗的货物,但某些选项设置成0了,然后又点了添加了相同的货物, - * 这时新货物模板已经设定好的数量会重新填充到之前模板那里 + * 从旧的节点里读取数量设置到新的节点那里,用于已经有非整包清洗的货物,如果该科室配置了模板,点击添加后会将模板配置好的 + * 数量填充到数量为0的地方 * @param oldNode 之前的数据存在于data.children里 * @param newNode * @returns {*} 返回设定好的数量 */ function setOldCount(oldNode,newNode) { for (var i = 0;i< oldNode.length;i++){ if (oldNode[i].name == newNode.get('name')){ - try{ - newNode.count = oldNode[i].amount; -// newNode.set('count',oldNode[i].amount); - }catch(e){ - } + newNode.set('count',oldNode[i].amount); break; } } return newNode.get('count'); } +/** + * + * @param node + * @param para 封装了一些参数,以便以后扩展方法时用,目前para有behavior属性 + * 这个属性是用来判断是点击添加按钮还是提交按钮触发的 + */ +function updateDisinfectParentNode(node,para){ + var me; + var behavior; + if (!isUndefinedOrNullOrEmpty(para)){ + me = node; + behavior = para.behavior; + } -function updateDisinfectParentNode(node){ - var me = node; var nullAmount = 0; // 节点不是叶子节点,即为包节点,则取其子节点 if (!node.get('leaf')){ @@ -83,8 +90,9 @@ // obj.urgentAmount = children[i].get('urgentAmount'); obj.tousseType = children[i].get('tousseType'); obj.groupNum = children[i].get('groupNum'); - if (obj.count <= 0){ - obj.count = setOldCount(me.data.children,children[i]); + //如果behavior里面有内容,则是点击添加按钮触发的 + if (obj.count <= 0 && !isUndefinedOrNullOrEmpty(behavior) && !isUndefinedOrNullOrEmpty(me.data.children)){ + obj.count = setOldCount(me.data.children,children[i]); } if(obj.count <= 0){ nullAmount++; @@ -606,7 +614,7 @@ } //TODO 5 取消科室申请模板 -function addItems(tousseDefinitionID,name,count,diposable,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount){ +function addItems(tousseDefinitionID,name,count,diposable,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para){ var foundNode = null; if('是' == diposable){ foundNode = getExsistNode(rightTemplateStore, name); @@ -618,7 +626,7 @@ if (foundNode != null){ updateNode('tousseTreeGrid', foundNode, count, price,urgentAmount); if(tousseType == tousseType_disinfectGoods){ - updateDisinfectParentNode(foundNode); + updateDisinfectParentNode(foundNode,para); updateDisinfectGoodsChildNodes(foundNode); } @@ -692,7 +700,7 @@ var appendNode = leftTemplateStore.getRootNode().appendChild(tousseInstance); updateNode('tousseTreeGrid', appendNode, count, price,urgentAmount,urgentAmount); if(tousseType == tousseType_disinfectGoods){ - updateDisinfectParentNode(appendNode); + updateDisinfectParentNode(appendNode,para); } }else{ @@ -787,6 +795,10 @@ var unit = top.Ext4.getCmp('unit').getValue(); var packageSpec = top.Ext4.getCmp('packageSpec').getValue(); var isApplyEntireTousse = top.Ext4.getCmp('isApplyEntireTousse').getValue(); + //para对象,里面可以有多钟属性,方便以后扩展addItems用 + var para = { + behavior : 'add' + }; if(Ext4.isEmpty(name)){ var alertTips = "请输入器械包!"; showResult(alertTips); @@ -819,21 +831,21 @@ clearCount(); return false; }else{ - addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount); + addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para); } }); } else if(!isUndefinedOrNullOrEmpty(maxApplyAmount) && count > maxApplyAmount){ top.Ext4.Msg.alert("提示消息","申请数量大于最大可申请数量"); //showResult("申请数量大于最大可申请数量"); clearCount(); - addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount); + addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para); } else{ - addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount); + addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para); } }else{ - addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount); + addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para); } top.Ext4.getCmp('urgentAmount').setValue('');