|
@@ -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 };
|
|
|
}
|
|
|
|