Kaynağa Gözat

가맹점관리 스크립트 수정

juney 2 yıl önce
ebeveyn
işleme
caa438d41b
1 değiştirilmiş dosya ile 104 ekleme ve 137 silme
  1. 104 137
      src/main/webapp/js/app/oper/ITP_OPER03010.js

+ 104 - 137
src/main/webapp/js/app/oper/ITP_OPER03010.js

@@ -25,140 +25,107 @@ let COMPANY_CHECK_DUPLICATE = '/api/affl/check-duplicate';
25 25
 let USER_INTI_USERPW = '/api/user/inti-userpw';
26 26
 
27 27
 let kakaoMap = {
28
-	view: function(locate) {
29
-		kakao.maps.load(function() {
30
-
31
-			var mapContainer = document.getElementById('ITP_FORM_OPER03010_VIEW_MAP'), // 지도를 표시할 div
32
-				mapOption = {
33
-					center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
34
-					level: 3, // 지도의 확대 레벨
35
-					mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
36
-				};
37
-
38
-			// 지도를 생성한다
39
-			var map = new kakao.maps.Map(mapContainer, mapOption);
40
-
41
-			// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
42
-			map.setZoomable(false);
43
-
44
-			// 지도에 확대 축소 컨트롤을 생성한다
45
-			//var zoomControl = new kakao.maps.ZoomControl();
46
-
47
-			// 지도의 우측에 확대 축소 컨트롤을 추가한다
48
-			//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
49
-
50
-			// 주소-좌표 변환 객체를 생성합니다
51
-			var geocoder = new kakao.maps.services.Geocoder();
52
-			var map;
53
-
54
-			if( !locate || locate.length == 0 ) {
55
-				// 지도에 마커를 생성하고 표시한다
56
-				marker = new kakao.maps.Marker({
57
-					position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
58
-					map: map // 마커를 표시할 지도 객체
59
-				});
60
-			} else {
61
-				// 주소로 좌표를 검색합니다
62
-				geocoder.addressSearch(locate, function(result, status) {
63
-					// 정상적으로 검색이 완료됐으면
64
-					if (status === kakao.maps.services.Status.OK) {
65
-
66
-						var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
67
-
68
-						// 결과값으로 받은 위치를 마커로 표시합니다
69
-						marker = new kakao.maps.Marker({
70
-							map: map,
71
-							position: coords
72
-						});
73
-
74
-						// 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
75
-						map.setCenter(coords);
76
-					}
77
-				});
78
-			}
79
-		});
80
-	},
81
-	detail: function(locate) {
82
-		kakao.maps.load(function() {
83
-
84
-			var mapContainer = document.getElementById('ITP_FORM_OPER03010_DETAIL_MAP'), // 지도를 표시할 div
85
-				mapOption = {
86
-					center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
87
-					level: 3, // 지도의 확대 레벨
88
-					mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
89
-				};
90
-
91
-			// 지도를 생성한다
92
-			var map = new kakao.maps.Map(mapContainer, mapOption);
93
-
94
-			// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
95
-			map.setZoomable(false);
96
-
97
-			// 지도에 확대 축소 컨트롤을 생성한다
98
-			//var zoomControl = new kakao.maps.ZoomControl();
99
-
100
-			// 지도의 우측에 확대 축소 컨트롤을 추가한다
101
-			//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
102
-
103
-			function searchDetailAddrFromCoords(coords, callback) {
104
-				// 좌표로 법정동 상세 주소 정보를 요청합니다
105
-				geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
106
-			}
107
-
108
-			// 주소-좌표 변환 객체를 생성합니다
109
-			var geocoder = new kakao.maps.services.Geocoder();
110
-			var map;
111
-
112
-			if( !locate || locate.length == 0 ) {
113
-				// 지도에 마커를 생성하고 표시한다
114
-				marker = new kakao.maps.Marker({
115
-					position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
116
-					map: map // 마커를 표시할 지도 객체
117
-				});
118
-			} else {
119
-				// 주소로 좌표를 검색합니다
120
-				geocoder.addressSearch(locate, function(result, status) {
121
-					// 정상적으로 검색이 완료됐으면
122
-					if (status === kakao.maps.services.Status.OK) {
123
-
124
-						var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
125
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LAT').value = result[0].y;
126
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LNG').value = result[0].x;
127
-
128
-						// 결과값으로 받은 위치를 마커로 표시합니다
129
-						marker = new kakao.maps.Marker({
130
-							map: map,
131
-							position: coords
132
-						});
133
-
134
-						// 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
135
-						map.setCenter(coords);
136
-					}
137
-				});
138
-			}
139
-
140
-			// 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
141
-			kakao.maps.event.addListener(map, 'drag', function () {
142
-				searchDetailAddrFromCoords(map.getCenter(), function(result, status) {
143
-					if (status === kakao.maps.services.Status.OK) {
144
-
145
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
146
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
147
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').value = !!result[0].road_address ? result[0].road_address.address_name : $('#ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').val();
148
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').value = !!result[0].road_address ? result[0].road_address.zone_no : $('#ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').val() ;
149
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LAT').value = map.getCenter().getLat();
150
-						document.getElementById('ITP_FORM_OPER03010_DETAIL_LNG').value = map.getCenter().getLng();
151
-
152
-						// 마커를 클릭한 위치에 표시합니다
153
-						marker.setPosition(map.getCenter());
154
-						marker.setMap(map);
155
-					}
156
-				});
157
-				/* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
28
+    init: function(id, locate) {
29
+        this.load(id, locate);
30
+    },
31
+    geocoder: null,
32
+    schDetailAddrFromCoords: function(coords, callback) {
33
+        // 좌표로 법정동 상세 주소 정보를 요청합니다
34
+        if(this.geocoder) {
35
+            this.geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
36
+        }
37
+    },
38
+    getMap: function(id) {
39
+        var mapContainer = document.getElementById(id), // 지도를 표시할 div
40
+            mapOption = {
41
+                center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
42
+                level: 3, // 지도의 확대 레벨
43
+                mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
44
+            };
45
+
46
+        // 지도를 생성한다
47
+        var map = new kakao.maps.Map(mapContainer, mapOption);
48
+
49
+        // 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
50
+        map.setZoomable(false);
51
+
52
+        // 지도에 확대 축소 컨트롤을 생성한다
53
+        //var zoomControl = new kakao.maps.ZoomControl();
54
+
55
+        // 지도의 우측에 확대 축소 컨트롤을 추가한다
56
+        //map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
57
+
58
+        return map;
59
+    },
60
+    marker: function(map, coords) {
61
+        // 지도에 마커를 생성하고 표시한다
62
+        marker = new kakao.maps.Marker({
63
+            position: coords, // 마커의 좌표
64
+            map: map // 마커를 표시할 지도 객체
65
+        });
66
+    },
67
+    load: function(id, locate) {
68
+        var _this = this;
69
+        kakao.maps.load(function() {
70
+            var map = _this.getMap(id);
71
+            // 주소-좌표 변환 객체를 생성합니다
72
+            _this.geocoder = new kakao.maps.services.Geocoder();
73
+            if( !locate || locate.length == 0 ) {
74
+                // 지도에 마커를 생성하고 표시한다
75
+                _this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
76
+            } else {
77
+                // 주소로 좌표를 검색합니다
78
+                _this.geocoder.addressSearch(locate, function(result, status) {
79
+                    // 정상적으로 검색이 완료됐으면
80
+                    if (status === kakao.maps.services.Status.OK) {
81
+
82
+                        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
83
+                        if(id === 'ITP_FORM_OPER04010_DETAIL_MAP') {
84
+                            document.getElementById('ITP_FORM_OPER04010_DETAIL_LAT').value = result[0].y;
85
+                            document.getElementById('ITP_FORM_OPER04010_DETAIL_LNG').value = result[0].x;
86
+                        }
87
+
88
+                        // 결과값으로 받은 위치를 마커로 표시합니다
89
+                        _this.marker(map, coords);
90
+
91
+                        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
92
+                        map.setCenter(coords);
93
+                    } else {
94
+                        _this.marker(map, new kakao.maps.LatLng(37.56684, 126.97865));
95
+                    }
96
+                });
97
+            }
98
+
99
+            if(id === 'ITP_FORM_OPER04010_DETAIL_MAP') {
100
+                _this.listener.drag(map);
101
+            }
102
+        });
103
+    },
104
+    listener: {
105
+        drag: function(map) {
106
+            var _this = this;
107
+            // 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
108
+            kakao.maps.event.addListener(map, 'drag', function () {
109
+                kakaoMap.schDetailAddrFromCoords(map.getCenter(), function(result, status) {
110
+                    if (status === kakao.maps.services.Status.OK) {
111
+
112
+                        document.getElementById('ITP_FORM_OPER04010_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
113
+                        document.getElementById('ITP_FORM_OPER04010_DETAIL_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
114
+                        document.getElementById('ITP_FORM_OPER04010_DETAIL_STREET_ADDRESS').value = !!result[0].road_address ? result[0].road_address.address_name : $('#ITP_FORM_OPER04010_DETAIL_STREET_ADDRESS').val();
115
+                        document.getElementById('ITP_FORM_OPER04010_DETAIL_ZIPNO').value = !!result[0].road_address ? result[0].road_address.zone_no : $('#ITP_FORM_OPER04010_DETAIL_CMPY_ZIPNO').val() ;
116
+                        document.getElementById('ITP_FORM_OPER04010_DETAIL_LAT').value = map.getCenter().getLat();
117
+                        document.getElementById('ITP_FORM_OPER04010_DETAIL_LNG').value = map.getCenter().getLng();
118
+
119
+                        // 마커를 클릭한 위치에 표시합니다
120
+                        marker.setPosition(map.getCenter());
121
+                        marker.setMap(map);
122
+                    }
123
+                });
124
+                /* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
158 125
                 console.log(message); */
159
-			});
160
-		});
161
-	}
126
+            });
127
+        }
128
+    }
162 129
 };
163 130
 
164 131
 const gridColModel = {
@@ -526,7 +493,7 @@ let viewObj = {
526 493
 		$('#ITP_FORM_OPER03010_VIEW .fnAddDt').text(result.regDt);
527 494
 		$('#ITP_FORM_OPER03010_VIEW .fnChgDt').text(result.chgDt);
528 495
 
529
-		kakaoMap.view(result.cmpyAdres);
496
+		kakaoMap.init('ITP_FORM_OPER03010_VIEW_MAP', result.cmpyAdres);
530 497
 
531 498
 		// 영업담당자정보  리스트 조회
532 499
 		viewObj.grid.load(result.saleList);
@@ -603,7 +570,7 @@ let modifyObj = {
603 570
 		$('#ITP_FORM_OPER03010_DETAIL .fnAddDt').text(result.regDt);
604 571
 		$('#ITP_FORM_OPER03010_DETAIL .fnChgDt').text(result.chgDt);
605 572
 
606
-		kakaoMap.detail($('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val());
573
+		kakaoMap.init('ITP_FORM_OPER03010_DETAIL_MAP', $('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val());
607 574
 
608 575
 		// 영업담당자 리스트 조회
609 576
 		modifyObj.grid.load();
@@ -675,7 +642,7 @@ let createObj = {
675 642
 		this.load();
676 643
 	},
677 644
 	load: function() {
678
-		kakaoMap.detail($('#ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').val());
645
+		kakaoMap.init('ITP_FORM_OPER03010_DETAIL_MAP', $('#ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').val());
679 646
 
680 647
 		// 영업담당자 리스트 조회
681 648
 		createObj.grid.load();
@@ -725,7 +692,7 @@ let createObj = {
725 692
 					document.getElementById('ITP_FORM_OPER03010_DETAIL_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
726 693
 					document.getElementById('ITP_FORM_OPER03010_DETAIL_BJ_DONG').value = data.bname;
727 694
 
728
-					kakaoMap.detail(data.roadAddress);
695
+					kakaoMap.init('ITP_FORM_OPER03010_DETAIL_MAP', data.roadAddress);
729 696
 					document.getElementById('ITP_FORM_OPER03010_DETAIL_CMPY_ADRES_DTL').focus();
730 697
 				}
731 698
 			}).open();