huangsijun
2025-09-22 a78c011de350b188afb03beb2f26a73f35f71986
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*判断哪些规格可以选*/
export const judgeSelect = (list,_index,productSpecArr,productSku) => {
    
    /*大类*/
    for (let i = 0, count = list.length; i < count; i++) {
        /*小类*/
        for (let j = 0; j < list[i].spec_items.length; j++) {
            let item = list[i].spec_items[j];
            if(i!=_index){
                item.disabled = hasSpecId(i,item.item_id,productSpecArr,productSku);
            }
        }
    }
}
 
/*判断有没有规格ID*/
function hasSpecId(index,id,productSpecArr,productSku){
    let disabled=false;
    let reg='';
    for(let p=0;p<productSpecArr.length;p++){
        if(p!=index){
            if(productSpecArr[p]!=null){
                reg+=productSpecArr[p]+'_';
            }else{
                reg+='[0-9]*_';
            }
        }else{
            reg+=id+'_';
        }
    }
    reg=reg.substr(0,reg.length-1);
    let re=new RegExp(reg,'g');
    for (let s = 0; s < productSku.length; s++) {
        let ids=productSku[s].join('_');
        disabled=re.test(ids);
        if(disabled){
            break;
        }
    }
    return !disabled;
}