|  | @@ -746,9 +746,11 @@ function getItemClassData(nodes, prefix,
 | 
	
		
			
				|  |  |  // 获取选套定额:把所有分类数据的必套定额确定好了先。选套定额就是清单下所有定额除了必套的
 | 
	
		
			
				|  |  |  function getOptionalRationIDs(optionalRationData) {
 | 
	
		
			
				|  |  |      const optionalRationIDs = [];
 | 
	
		
			
				|  |  | -    Object.values(optionalRationData).forEach(optionalRation => {
 | 
	
		
			
				|  |  | -        if (optionalRation.length) optionalRationIDs.push(...optionalRation);
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | +    if(optionalRationData){
 | 
	
		
			
				|  |  | +        Object.values(optionalRationData).forEach(optionalRation => {
 | 
	
		
			
				|  |  | +            if (optionalRation.length) optionalRationIDs.push(...optionalRation);
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      return [...new Set(optionalRationIDs)];
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -806,19 +808,21 @@ function combineData(codeData, requireRationData, optionalRationData, classGroup
 | 
	
		
			
				|  |  |                  };
 | 
	
		
			
				|  |  |                  // 一组的必套定额,先去重
 | 
	
		
			
				|  |  |                  const unitRation = [];
 | 
	
		
			
				|  |  | -                if (requireRationData[classCodeID]) {
 | 
	
		
			
				|  |  | +              
 | 
	
		
			
				|  |  | +                // 这里是必填选项下绑定必套定额
 | 
	
		
			
				|  |  | +                if (requireRationData[classCodeID] && requireRationData[classCodeID].length) {
 | 
	
		
			
				|  |  |                      requireRationData[classCodeID].forEach(subItem => {
 | 
	
		
			
				|  |  |                          unitRation.push(...new Set(subItem));
 | 
	
		
			
				|  |  |                      })
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                // 这里是必填选项下绑定必套定额
 | 
	
		
			
				|  |  | -                if (requireRationData[classCodeID] && requireRationData[classCodeID].length) {
 | 
	
		
			
				|  |  |                      requiredRationIDs.push(unitRation);
 | 
	
		
			
				|  |  | +                    // 这里也要把用过的必套定额先存起来
 | 
	
		
			
				|  |  | +                    matchRationList.push(...unitRation);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  //这里是必填选项下绑定在蓝色节点下的必套定额
 | 
	
		
			
				|  |  |                  if (requireCombineData[classCodeID] && requireCombineData[classCodeID].size) {
 | 
	
		
			
				|  |  |                      requiredRationIDs.push([...requireCombineData[classCodeID]]);
 | 
	
		
			
				|  |  | +                    // 这里也要把用过的必套定额先存起来
 | 
	
		
			
				|  |  | +                    matchRationList.push(...requireCombineData[classCodeID]);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  // 这里是必填选项下绑定选套定额
 | 
	
	
		
			
				|  | @@ -837,13 +841,20 @@ function combineData(codeData, requireRationData, optionalRationData, classGroup
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              const unitRation = [];
 | 
	
		
			
				|  |  |              name = classGroups[classCodeIDs];
 | 
	
		
			
				|  |  | -            if (requireRationData[classCodeIDs] && requireRationData[classCodeIDs].length) {
 | 
	
		
			
				|  |  | +            if (requireRationData[classCodeIDs] && requireRationData[classCodeIDs].length){
 | 
	
		
			
				|  |  |                  requireRationData[classCodeIDs].forEach(subItem => {
 | 
	
		
			
				|  |  |                      unitRation.push(...new Set(subItem));
 | 
	
		
			
				|  |  |                  })
 | 
	
		
			
				|  |  | -                requiredRationIDs.push(unitRation);
 | 
	
		
			
				|  |  | +                requiredRationIDs.push(unitRation); 
 | 
	
		
			
				|  |  | +                // 这里也要把用过的必套定额先存起来
 | 
	
		
			
				|  |  | +                matchRationList.push(...unitRation);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if (requireCombineData[classCodeIDs] && requireCombineData[classCodeIDs].size) requiredRationIDs.push([...requireCombineData[classCodeIDs]]);
 | 
	
		
			
				|  |  | +          
 | 
	
		
			
				|  |  | +            if (requireCombineData[classCodeIDs] && requireCombineData[classCodeIDs].size) {
 | 
	
		
			
				|  |  | +                requiredRationIDs.push([...requireCombineData[classCodeIDs]])
 | 
	
		
			
				|  |  | +                 // 这里也要把用过的必套定额先存起来
 | 
	
		
			
				|  |  | +                 matchRationList.push(...requireCombineData[classCodeIDs]);
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              if (optionalRationData[classCodeIDs] && optionalRationData[classCodeIDs].length) {
 | 
	
		
			
				|  |  |                  optionalRationIDs.push(...optionalRationData[classCodeIDs]);
 | 
	
	
		
			
				|  | @@ -864,6 +875,16 @@ function combineData(codeData, requireRationData, optionalRationData, classGroup
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  | +    // 这里把没有使用过的必套定额也丢到了选套里面
 | 
	
		
			
				|  |  | +    Object.values(requireRationData).forEach(data => {
 | 
	
		
			
				|  |  | +        data.forEach((rationData) => {
 | 
	
		
			
				|  |  | +            rationData.forEach(rationID=>{
 | 
	
		
			
				|  |  | +                if (!matchRationList.includes(rationID)) {
 | 
	
		
			
				|  |  | +                    unMatchRation.push(rationID);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  |      return { itemClassData: finData, unMatchRation };
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |