web/jquery

주문 번호가 같은 row 병합

카시에르 2020. 4. 1. 08:56

주문번호가 같을때 rowspan 되게 하는건데 막코딩해서 버그가 많을듯 예상

 

좀더 수정필요

 

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//주문번호가 같은 row병합
    function mergeCell(){
        var spanArr = []; //같은 row갯수
        var delArr = []; //삭제할 row
        var flag = true; //삭제 flag
        var stdCnt = 0; //기준갯수
        $('.orderNum').each(function(oindex, ovalue){
            var cnt = 0;
            var htmlOri = $(ovalue).html();
            
            var i = oindex;
            while(ovalue){
                
                var htmlNext = $('.orderNum').eq(i).html();
                //console.log('ovalue : ' + ovalue + "  i: " + i + "  htmlNext : " + htmlNext + "  htmlOri : " + htmlOri);
                if(htmlOri == htmlNext && flag){
                    cnt++;
                }else{
                    break;
                }
                
                i++;
                
            }
            
            /* $('.orderNum').each(function(nindex, nvalue){
                var htmlNext = $(nvalue).html();
                
                if(htmlOri == htmlNext && flag){
                    cnt++;    
                }
            }); */
            if(!flag){ //병합할 셀 다음셀인지 확인하여 flag 설정
                stdCnt--;
                if(stdCnt == 1){
                    flag = true;
                }
            }
            
            
            if(cnt > 1){ //병합할셀이 여러개일 경우 갯수만큼 다음 셀 카운트 안함
                stdCnt = cnt;
                flag = false;
            }
            
        });
        
        //삭제할 row 배열에 담기
        $('.orderNum').each(function(oindex, ovalue){
            var cnt = spanArr[oindex];
            if(cnt > 1){
                $(ovalue).attr('rowspan', cnt);
                var ncnt = cnt - 1;
                $('.orderNum').each(function(nindex, nvalue){
                    if(oindex < nindex && ncnt > 0){
                        //$(nvalue).remove();
                        delArr.push(nindex);
                        ncnt--;
                    }
                })
            }
        });
        
        //삭제하면 index가 줄기 때문에 거꾸로 삭제 해온다
        for(var j=delArr.length ; j>=1 ; j--){
            $('.orderNum').each(function(oindex, ovalue){
                if(oindex == delArr[j-1]){
                    
                    $(ovalue).remove();
                }
            });
        }
    }
 
 
 
<c:choose>
    <c:when test="${fn:length(resultList) > 0}">
        <c:forEach var="list" items="${resultList}" varStatus="status">
                <tr>
                    <td class="tdl">
                        <c:if test="${list.fidx ne null && list.fidx ne '' }">
                            <p class="checkbox-02">
                                <input type="checkbox" name="checkId" id="chk_${list.fidx}" value="${list.fidx }"/>
                                  <label for="chk_${list.fidx}"></label>
                              </p>
                          </c:if>
                    </td>
                    <td class="tdl listNum">${list.listNum }</td>
                    <td class="registTimestamp">${list.crdatetime }</td>
                    <td class="orderNum word_allbreak">
                        <c:choose>
                            <c:when test="${list.orderSt eq '0010' }">
                                <a href="#none" onclick="moveModi('${list.orderNum}', '${list.orderSt }');">${list.orderNum}</a>
                            </c:when>
                            <c:otherwise>
                                <a href="#none" onclick="moveModi('${list.orderNum}', '');">${list.orderNum}</a>
                            </c:otherwise>
                        </c:choose>
                    </td>
                    <td class="word_allbreak">
                        <a href="#none" onclick="moveModiSub('${list.orderSubNum}', '${list.orderSt }');">${list.orderSubNum}</a>
                    </td>
                    
                    <td>${list.partnerName }</td>
                    <td>${list.vendorNm }</td>
                    <td class="custprice"><fmt:formatNumber  pattern="#,###"  value="${list.orderPrice }"/></td>
                    <!--<td class="custprice"><fmt:formatNumber  pattern="#,###"  value="${list.orderVat }"/></td>  -->
                    <td class="custprice"><fmt:formatNumber  pattern="#,###"  value="${list.orderAmt }"/></td>
                    <td>${list.bkCustName }</td>
                    <td class="prtnrChargerNm">${list.empName }</td>
                    <td class="tl"><span class="web_step${list.orderSt }">${list.orderStNm }</span></td>
                    <td>
                        <c:if test="${list.fidx ne null && list.fidx ne '' }">
                            <a href="#" onclick="javascript:fileDown('${list.fidx}'); return false;"><img src="/cmmImg/content/list_file_icon.png" alt="첨부파일 있음"></a>
                        </c:if>
                    </td>
                    <!-- pws 숨김처리
                    <td>
                        <span class="pws_ing">P</span>
                        <span class="pws_end">P</span>
                        <span class="pws_stop">P</span>
                        
                    </td>
                      -->
                </tr>
        </c:forEach>
    </c:when>
    <c:otherwise>
                <tr>
                      <td class="lt_text3" colspan="13"><spring:message code="common.nodata.msg" /></td>
                  </tr>
    </c:otherwise>
</c:choose>        
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs