|  | @@ -539,6 +539,25 @@ function getOptionalData(node, list = []) {
 | 
	
		
			
				|  |  |      return list;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    // 获取必填项下的ID和name的键值对
 | 
	
		
			
				|  |  | +    function getClassCodeStrData(nodes,data={}){
 | 
	
		
			
				|  |  | +        nodes.forEach(node=>{
 | 
	
		
			
				|  |  | +           if (isProcessNode(node)&&node.data.required) {
 | 
	
		
			
				|  |  | +               node.children.forEach(subNode=>{
 | 
	
		
			
				|  |  | +                   data[subNode.data.ID]=subNode.data.name;  
 | 
	
		
			
				|  |  | +               })
 | 
	
		
			
				|  |  | +           }
 | 
	
		
			
				|  |  | +           getClassCodeStrData(node.children,data);
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +       return data;
 | 
	
		
			
				|  |  | +   }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//获取定额数据
 | 
	
		
			
				|  |  | +    // requireRationData必套定额对象
 | 
	
		
			
				|  |  | +    // optionalRationData 选逃定额对象
 | 
	
		
			
				|  |  | +    // classGroups classCode文字和id键值对
 | 
	
		
			
				|  |  | +    // classCodeList 各个classCode的pID和ID的关系
 | 
	
		
			
				|  |  |  function getItemData(nodes, requireRationData = {}, optionalRationData = {}, classGroups = {}, prefixID = '', prefixSonID = '', IDData = {}) {
 | 
	
		
			
				|  |  |      const processNodes = nodes.filter(node => isProcessNode(node));
 | 
	
		
			
				|  |  |      // const classGroups = []; // 同层必填选项的数组(二维数组)
 | 
	
	
		
			
				|  | @@ -613,11 +632,14 @@ function getItemData(nodes, requireRationData = {}, optionalRationData = {}, cla
 | 
	
		
			
				|  |  |                              })
 | 
	
		
			
				|  |  |                          })
 | 
	
		
			
				|  |  |                      } else {
 | 
	
		
			
				|  |  | -                        let key = processNode.data.ID;
 | 
	
		
			
				|  |  | -                        if (prefixID) key = prefixID;
 | 
	
		
			
				|  |  | -                        if (prefixSonID) key = prefixSonID;
 | 
	
		
			
				|  |  | -                        if (!optionalRationData[key]) optionalRationData[key] = [];
 | 
	
		
			
				|  |  | -                        optionalRationData[key].push(...getOptionalData(processNode));
 | 
	
		
			
				|  |  | +                       // 全部选套就不用走循环了,直接按照选套执行
 | 
	
		
			
				|  |  | +                       let key = processNode.data.ID;
 | 
	
		
			
				|  |  | +                       if (prefixID) key = prefixID;
 | 
	
		
			
				|  |  | +                       if (prefixSonID) key = prefixSonID;
 | 
	
		
			
				|  |  | +                       if (!optionalRationData[key]) optionalRationData[key] = [];
 | 
	
		
			
				|  |  | +                       optionalRationData[key].push(...getOptionalData(processNode));
 | 
	
		
			
				|  |  | +                       // 因为这里没有按照走整个流程,所以文字和ID的关系需要获取补充
 | 
	
		
			
				|  |  | +                      if(hasRequireData(processNode))  Object.assign(classGroups,getClassCodeStrData(processNode.children)) ;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              } else {
 |