Bläddra i källkod

그리드 병합처리 구현

isna 2 år sedan
förälder
incheckning
2cb03d301e
1 ändrade filer med 82 tillägg och 15 borttagningar
  1. 82 15
      src/main/webapp/js/app/pomng/ITP_POMNG03011.js

+ 82 - 15
src/main/webapp/js/app/pomng/ITP_POMNG03011.js

@@ -49,28 +49,41 @@ let API_DETAIL_PASSQTY 		    = '/api/stock/mng/whs-passqty-list';			// 창고선
49 49
 
50 50
 
51 51
 /*화면 Grid ColModel*/
52
+function arrtSetting(rowId, val, rawObject, cm) {
53
+	if(typeof rawObject.attr=='object' ) {
54
+		var attr = rawObject.attr[cm.name], result=null;
55
+		if(attr ) {
56
+			if (attr.rowspan) {
57
+				result = ' rowspan=' + '"' + attr.rowspan + '"';
58
+			} else if (attr.display) {
59
+				result = ' style="display:' + attr.display + '"';
60
+			}
61
+		}
62
+		return result;
63
+	}
64
+}
52 65
 const gridColModel = {
53 66
 	list: [
54 67
 		{
55 68
 			index: 'BRAND_NM', name: 'brandNm',
56 69
 			label: '브랜드',
57
-			width: '10', fixed: false, align: 'left',
58
-			minwidth: 120,
59
-			sortable: false, hidden: false, classes: 'ui-ellipsis'
60
-		},
61
-		{
62
-			index: 'BRAND_NM', name: 'brandNm',
63
-			label: '납품장소',
64
-			width: '10', fixed: false, align: 'left',
70
+			width: '10', fixed: false, align: 'center',
65 71
 			minwidth: 120,
66
-			sortable: false, hidden: false, classes: 'ui-ellipsis'
72
+			sortable: false, hidden: false, classes: 'ui-ellipsis', cellattr: arrtSetting
67 73
 		},
68 74
 		{
69 75
 			index: 'PCH_REQ_UNQ_NO', name: 'pchReqUnqNo',
70 76
 			label: '구매요청번호', 
71 77
 			width: '11', fixed: false, align: 'center',
72 78
 			minwidth: 180,
73
-			sortable: false, hidden: false
79
+			sortable: false, hidden: false, cellattr: arrtSetting
80
+		},
81
+		{
82
+			index: 'WHS_NM', name: 'whsNm',
83
+			label: '납품장소',
84
+			width: '10', fixed: false, align: 'left',
85
+			minwidth: 120,
86
+			sortable: false, hidden: false, classes: 'ui-ellipsis', cellattr: arrtSetting
74 87
 		},
75 88
 		{
76 89
 			index: 'ITEM_ID', name: 'itemId',
@@ -632,6 +645,7 @@ let pageObj = {
632 645
 };
633 646
 
634 647
 /*목록화면 Object*/
648
+
635 649
 let listObj = {
636 650
 	init: function () {
637 651
 		this.grid.init();
@@ -734,9 +748,9 @@ let listObj = {
734 748
 			this.load();
735 749
 		},
736 750
 		load: function() {
751
+
737 752
 			let param = $('#ITP_FORM_POMNG03011_SEARCH').serializeObject();
738
-			param.gridSize = $.jgrid.defaults.rowNum;
739
-			
753
+			// param.gridSize = $.jgrid.defaults.rowNum;
740 754
 			var option = {
741 755
 				multiselect: true,
742 756
 				autowidth: true,
@@ -744,10 +758,61 @@ let listObj = {
744 758
 				colModel: gridColModel.list,
745 759
 				param: param,
746 760
 				url: DOMAIN + API_DETAIL_GRID_LIST,
747
-				pager: POMNG03011_GRID_PAGER,
748
-				rownumbers: false,
749
-				loadComplete: function(data) {
761
+				// pager: POMNG03011_GRID_PAGER,
762
+				rownumbers: false, 
763
+				
764
+				beforeProcessing: function(data) { 
765
+					var rows=data.gridRows;
766
+					var cnt=rows.length, prev1='', prev2='', sp1=0, sp2=0;
767
+					var displayAttr=function(sp, ep, field) {
768
+						var rs=ep-sp;
769
+						if( rs>1 ) {
770
+							for(var n=sp; n<ep; n++) {
771
+								var cur=rows[n], attr=cur.attr;
772
+								if(!attr.hasOwnProperty(field) ) {
773
+									attr[field]={};
774
+								}
775
+								if(n==sp) {
776
+									attr[field].rowspan=rs;
777
+								} else {
778
+									attr[field].display='none';
779
+								}
780
+							}
781
+						}
782
+						//attr: {country: {display: "none"}, state: {display: "none"}} 
783
+					};
784
+					for(var n=0;n<=cnt; n++) {
785
+						if(n==cnt) {
786
+							displayAttr(sp1, n, 'pchReqUnqNo');
787
+							displayAttr(sp2, n, 'whsNm');
788
+							break;
789
+						} 
790
+						var cur=rows[n];
791
+						if(n==0) {
792
+							cur.attr={brandNm: {rowspan:cnt}};
793
+						} else {
794
+							cur.attr={brandNm: {display: "none"}};
795
+						}
796
+						if(prev2!=cur.whsNm) {							
797
+							displayAttr(sp2, n, 'whsNm');
798
+							sp2=n;
799
+							prev2=cur.whsNm;
800
+						}
801
+						if(prev1!=cur.pchReqUnqNo) {
802
+							displayAttr(sp1, n, 'pchReqUnqNo');
803
+							displayAttr(sp2, n, 'whsNm');
804
+							sp1=sp2=n;
805
+							prev2=cur.whsNm;
806
+							prev1=cur.pchReqUnqNo;
807
+						}
808
+						
809
+					}
810
+					console.log("load data==>", rows);
811
+
812
+				}, 
813
+				loadComplete: function(data) {  
750 814
 					itp_fn_grid_load_complete(data, POMNG03011_GRID_ID, true, 'number', 'POMNG03011', listObj.itp_POMNG03011_search, listObj.empty, true, data.gridRecords, true);
815
+					 
751 816
 					var ids = $(POMNG03011_GRID_ID).getDataIDs();
752 817
 					var css = {'background-color':'#FFCCCC'};
753 818
 					$.each(ids, function(idx, rowId) {
@@ -755,6 +820,7 @@ let listObj = {
755 820
 						$(POMNG03011_GRID_ID).jqGrid('setCell', rowId, 'dlvReqDt', '', css);
756 821
 						$(POMNG03011_GRID_ID).jqGrid('setCell', rowId, 'whsNm', '', css);
757 822
 					});
823
+					// $(POMNG03011_GRID_ID).trigger("reloadGrid");
758 824
 					$(POMNG03011_GRID_ID).setSelection(1, true);
759 825
 				},
760 826
 				onPaging: function(action) {
@@ -762,6 +828,7 @@ let listObj = {
762 828
 				}
763 829
 			};
764 830
 			itp_fn_grid_make_remote(option);
831
+			
765 832
 		},
766 833
 		button: {
767 834
 		},