Quellcode durchsuchen

메뉴 수정본

whakdo963 vor 2 Jahren
Ursprung
Commit
d0366aa013

+ 204 - 0
bin/src/main/webapp/app/koper/KOPER05010.html

@@ -0,0 +1,204 @@
1
+<section id="ITP_TAB_KOPER05010" class="tab-pane active itp_sec">
2
+	<div class="itp_cont">
3
+		<article class="itp_detail">
4
+			<div class="itp_det_head fix">
5
+				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>VAN관리</strong></h2>
6
+				<div class="pull-right itp_cicon">
7
+					<button type="button" id="ITP_BTN_KOPER05010_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
8
+					<button type="button" id="ITP_BTN_KOPER05010_MODIFY" class="btn btn-success btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-ok"></i> 수정</button>
9
+					<button type="button" id="ITP_BTN_KOPER05010_NEWREG" class="btn btn-primary btn-sm NEB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 신규등록</button>
10
+					<button type="button" id="ITP_BTN_KOPER05010_DELETE" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>
11
+					<button type="button" id="ITP_BTN_KOPER05010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon glyphicon-minus"></i> 취소/목록</button>
12
+					<button type="button" id="ITP_BTN_KOPER05010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon glyphicon-ok"></i> 저장</button>
13
+				</div>				
14
+			</div>
15
+			<div class="itp_det_in">
16
+				<div id="ITP_AJAX_KOPER05010_LIST_CONTAINER">
17
+					<div class="itp_table fix">
18
+						<div id="ITP_KOPER05010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
19
+							<div id="ITP_KOPER05010_jqGridView" class="itp_views fix"></div>
20
+							<table id="ITP_KOPER05010_jqGrid"></table>
21
+							<div id="ITP_KOPER05010_jqGridPager"></div>
22
+							<div id="ITP_KOPER05010_jqGridEmpty" class="itp_no_data"></div>
23
+						</div>
24
+					</div>
25
+				</div>
26
+				<div id="ITP_AJAX_KOPER05010_DETAIL_CONTAINER">
27
+					<div class="itp_form itp_type1 fix">
28
+						<div class="col-xs-12">
29
+							<form id="ITP_FORM_KOPER05010_DETAIL" class="form-horizontal">
30
+								<input type="hidden" id="ITP_FORM_KOPER05010_DETAIL_VIEW_CD" name="viewCd" value="C">
31
+								
32
+								<section class="itp_form_sec">
33
+									<h4 class="itp_form_tit">VAN 정보</h4>
34
+									<div class="itp_form_in">
35
+										<div class="form-group">
36
+											<label class="col-xs-2 itp_lb">VAN 코드(*)</label>
37
+											<div class="col-xs-4 itp_ip">
38
+												<div class="col-xs-5 itp_in">
39
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_CD" class="form-control itp_input" name="vanCd" value="" maxlength="10" readonly>
40
+													<span class="input-group-btn">
41
+														<button id="ITP_FORM_KOPER05010_DETAIL_DUP" class="btn btn-default btn-sm itp_btn SHOW" type="button" disabled><i class="glyphicon glyphicon-ok"></i></button>
42
+													</span>
43
+												</div>
44
+											</div>
45
+											<label class="col-xs-2 itp_lb">VAN 명(*)</label>
46
+											<div class="col-xs-4 itp_ip">
47
+												<div class="col-xs-5 itp_in">
48
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_NM" class="form-control itp_input" name="vanNm" value="">
49
+												</div>
50
+											</div>
51
+										</div>
52
+										<div class="form-group">
53
+											<label class="col-xs-2 itp_lb">VAN IP(*)</label>
54
+											<div class="col-xs-4 itp_ip">
55
+												<div class="col-xs-5 itp_in">
56
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_IP" class="form-control itp_input" name="vanIp" value="">
57
+												</div>
58
+											</div>
59
+											<label class="col-xs-2 itp_lb">VAN PORT(*)</label>
60
+											<div class="col-xs-4 itp_ip">
61
+												<div class="col-xs-5 itp_in">
62
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_PORT" class="form-control itp_input" name="vanPort" value="">
63
+												</div>
64
+											</div>
65
+										</div>
66
+										</div>
67
+										<div class="itp_form_in">
68
+											<div class="form-group">
69
+												<label class="col-xs-2 itp_lb">VAN 데이타(라이브러리)</label>
70
+												<div class="col-xs-10 itp_ip">
71
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_DATA1" class="form-control itp_input" name="vanData1" value="">
72
+												</div>
73
+											</div>
74
+										</div>
75
+										<div class="itp_form_in">
76
+									
77
+										<div class="form-group">
78
+											<label class="col-xs-2 itp_lb">VAN DATA 1</label>
79
+											<div class="col-xs-4 itp_ip">
80
+												<div class="col-xs-5 itp_in">
81
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_DATA2" class="form-control itp_input" name="vanData2" value="">
82
+												</div>
83
+											</div>
84
+											<label class="col-xs-2 itp_lb">VAN DATA 2</label>
85
+											<div class="col-xs-4 itp_ip">
86
+												<div class="col-xs-5 itp_in">
87
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_DATA3" class="form-control itp_input" name="vanData3" value="">
88
+												</div>
89
+											</div>
90
+										</div>
91
+										<div class="form-group">
92
+											<label class="col-xs-2 itp_lb">VAN DATA 3</label>
93
+											<div class="col-xs-4 itp_ip">
94
+												<div class="col-xs-5 itp_in">
95
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_DATA4" class="form-control itp_input" name="vanData4" value="">
96
+												</div>
97
+											</div>
98
+											<label class="col-xs-2 itp_lb">VAN DATA 4</label>
99
+											<div class="col-xs-4 itp_ip">
100
+												<div class="col-xs-5 itp_in">
101
+													<input type="text" id="ITP_FORM_KOPER05010_DETAIL_VAN_DATA5" class="form-control itp_input" name="vanData5" value="">
102
+												</div>
103
+											</div>										
104
+										</div>
105
+										<div class="form-group">
106
+											<label class="col-xs-2 itp_lb">등록일자</label>
107
+											<div class="col-xs-4 itp_ip">
108
+												<div class="col-xs-10 itp_in fnAddDt"></div>
109
+											</div>
110
+											<label class="col-xs-2 itp_lb">최종수정일자</label>
111
+											<div class="col-xs-4 itp_ip">
112
+												<div class="col-xs-10 itp_in fnChgDt"></div>
113
+											</div>
114
+										</div>
115
+									</div>	
116
+								</section>								
117
+							</form>
118
+						</div>
119
+					</div>					
120
+				</div>
121
+				<div id="ITP_AJAX_KOPER05010_VIEW_CONTAINER">
122
+					<div class="itp_form itp_type1 fix">
123
+						<div class="col-xs-12">
124
+							<form id="ITP_FORM_KOPER05010_VIEW" class="form-horizontal">
125
+								<input type="hidden" id="ITP_FORM_KOPER05010_VIEW_VIEW_CD" name="viewCd" value="R">
126
+								<input type="hidden" id="ITP_FORM_KOPER05010_VIEW_VAN_CD" name="vanCd" value="">
127
+					
128
+								<section class="itp_form_sec">
129
+									<h4 class="itp_form_tit">VAN 정보</h4>
130
+									<div class="itp_form_in">
131
+										<div class="form-group">
132
+											<label class="col-xs-2 itp_lb">VAN 코드</label>
133
+											<div class="col-xs-4 itp_ip">
134
+												<div class="col-xs-5 itp_in fnVanCd"></div>
135
+											</div>
136
+											<label class="col-xs-2 itp_lb">VAN 명</label>
137
+											<div class="col-xs-4 itp_ip">
138
+												<div class="col-xs-5 itp_in fnVanNm"></div>
139
+											</div>
140
+										</div>
141
+										<div class="form-group">
142
+											<label class="col-xs-2 itp_lb">VAN IP</label>
143
+											<div class="col-xs-4 itp_ip">
144
+												<div class="col-xs-5 itp_in fnVanIp"></div>
145
+											</div>
146
+											<label class="col-xs-2 itp_lb">VAN Port</label>
147
+											<div class="col-xs-4 itp_ip">
148
+												<div class="col-xs-5 itp_in fnVanPort"></div>
149
+											</div>
150
+										</div>
151
+									</div>
152
+										<div class="itp_form_in">
153
+											<div class="form-group">
154
+												<label class="col-xs-2 itp_lb">VAN 데이타(라이브러리)</label>
155
+												<div class="col-xs-10 itp_ip">
156
+													<div class="col-xs-5 itp_in fnVanData1"></div>
157
+												</div>
158
+											</div>
159
+										</div>
160
+									<div class="itp_form_in">
161
+										<div class="form-group">
162
+											<label class="col-xs-2 itp_lb">VAN DATA 1</label>
163
+											<div class="col-xs-4 itp_ip">
164
+												<div class="col-xs-5 itp_in fnVanData2"></div>
165
+											</div>
166
+											<label class="col-xs-2 itp_lb">VAN DATA 2</label>
167
+											<div class="col-xs-4 itp_ip">
168
+												<div class="col-xs-5 itp_in fnVanData3"></div>
169
+											</div>
170
+										</div>
171
+										<div class="form-group">
172
+											<label class="col-xs-2 itp_lb">VAN DATA 3</label>
173
+											<div class="col-xs-4 itp_ip">
174
+												<div class="col-xs-5 itp_in fnVanData4"></div>
175
+											</div>
176
+											<label class="col-xs-2 itp_lb">VAN DATA 4</label>
177
+											<div class="col-xs-4 itp_ip">
178
+												<div class="col-xs-5 itp_in fnVanData5"></div>
179
+											</div>
180
+										</div>
181
+									</div>
182
+									<div class="itp_form_in">
183
+										<div class="form-group border">
184
+											<label class="col-xs-2 itp_lb">등록일자</label>
185
+											<div class="col-xs-4 itp_ip">
186
+												<div class="col-xs-10 itp_in fnAddDt"></div>
187
+											</div>
188
+											<label class="col-xs-2 itp_lb">최종수정일자</label>
189
+											<div class="col-xs-4 itp_ip">
190
+												<div class="col-xs-10 itp_in fnChgDt"></div>
191
+											</div>
192
+										</div>
193
+									</div>
194
+								</section>								
195
+							</form>
196
+						</div>
197
+					</div>						
198
+				</div>
199
+			</div>
200
+		</article>
201
+	</div>
202
+	
203
+	<div id="ITP_TAP_JS"></div>	
204
+</section>

+ 57 - 0
bin/src/main/webapp/app/koper/KOPER07010.html

@@ -0,0 +1,57 @@
1
+<section id="ITP_TAB_KOPER07010" class="tab-pane active itp_sec">
2
+	<div class="itp_cont">
3
+		<article class="itp_detail">
4
+			<div class="itp_det_head fix">
5
+				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>장비 환경기본값 설정</strong></h2>
6
+				<div class="pull-right itp_cicon">
7
+					<button type="button" id="ITP_BTN_KOPER07010_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
8
+					<button type="button" id="ITP_BTN_KOPER07010_SAVE" class="btn btn-warning btn-sm SAB"><i class="glyphicon glyphicon-ok"></i> 저장</button>
9
+				</div>
10
+			</div>
11
+			<div class="itp_det_in">
12
+				<div id="ITP_AJAX_KOPER07010_LIST_CONTAINER">
13
+					<div class="itp_lg_form itp_type1 fix" style="margin-bottom: 5px;">
14
+						<div class="itp_srh_border fix">
15
+							<div class="col-xs-12">
16
+								<form id="ITP_FORM_KOPER07010_SAVE">
17
+								<input type="hidden" id="ITP_FORM_KOPER07010_SAVE_VIEW_CD" name="viewCd" value="C">
18
+								<input type="hidden" id="ITP_FORM_KOPER07010_SAVE_APP_TYPE_CD" name="appTypeCd" value="">
19
+								<input type="hidden" id="ITP_FORM_KOPER07010_SAVE_CFG_TYPE_CD" name="cfgTypeCd" value="">
20
+								</form>
21
+								<form id="ITP_FORM_KOPER07010_SEARCH" class="form-horizontal">
22
+								<input type="hidden" id="ITP_FORM_KOPER07010_SEARCH_YN" value="">
23
+									
24
+									<div class="form-group">
25
+										<div class="col-xs-2 itp_ip itp_noMar">
26
+											<select id="ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD" class="form-control itp_input" name="sappTypeCd"></select>
27
+										</div>
28
+										<div class="col-xs-2 itp_ip itp_noMar">	
29
+											<select id="ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD" class="form-control itp_input" name="scfgTypeCd"></select>
30
+										</div>									
31
+									</div>
32
+								</form>
33
+							</div>
34
+						</div>
35
+					</div>
36
+					<div class="itp_table fix">
37
+						<div class="itp_table_head fix">
38
+							<div class="pull-right itp_cicon">
39
+								<button type="button" id="ITP_BTN_KOPER07010_ADD" class="btn btn-primary btn-sm ADB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 추가</button>
40
+								<button type="button" id="ITP_BTN_KOPER07010_DEL" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>
41
+							</div>
42
+						</div>
43
+					
44
+						<div id="ITP_KOPER07010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
45
+							<div id="ITP_KOPER07010_jqGridView" class="itp_views fix"></div>
46
+							<table id="ITP_KOPER07010_jqGrid"></table>
47
+							<div id="ITP_KOPER07010_jqGridPager"></div>
48
+							<div id="ITP_KOPER07010_jqGridEmpty" class="itp_no_data"></div>
49
+						</div>
50
+					</div>
51
+				</div>				
52
+			</div>
53
+		</article>
54
+	</div>
55
+
56
+	<div id="ITP_TAP_JS"></div>
57
+</section>

+ 218 - 0
bin/src/main/webapp/app/oper/OPER01010.html

@@ -1,3 +1,4 @@
1
+<<<<<<< HEAD
1 2
 <section id="ITP_TAB_STINFO01010" class="tab-pane active itp_sec">
2 3
 	<div class="itp_cont">
3 4
 		<article class="itp_detail">
@@ -33,12 +34,54 @@
33 34
 										<input type="text" id="ITP_FORM_STINFO01010_SEARCH_USER_NM" class="form-control itp_input" name="BRAND_NM" placeholder="브랜드명" />
34 35
 										</div>
35 36
 															
37
+=======
38
+<section id="ITP_TAB_OPER01010" class="tab-pane active itp_sec">
39
+	<div class="itp_cont">
40
+		<article class="itp_detail">
41
+			<div class="itp_det_head fix">
42
+				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>사용자관리</strong></h2>
43
+				<div class="pull-right itp_cicon">
44
+					<button type="button" id="ITP_BTN_OPER01010_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
45
+					<button type="button" id="ITP_BTN_OPER01010_MODIFY" class="btn btn-success btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-ok"></i> 수정</button>
46
+					<button type="button" id="ITP_BTN_OPER01010_NEWREG" class="btn btn-primary btn-sm NEB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 신규등록</button>
47
+					<button type="button" id="ITP_BTN_OPER01010_DELETE" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>
48
+					<button type="button" id="ITP_BTN_OPER01010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon glyphicon-minus"></i> 취소/목록</button>
49
+					<button type="button" id="ITP_BTN_OPER01010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon glyphicon-ok"></i> 저장</button>
50
+				</div>				
51
+			</div>
52
+			<div class="itp_det_in">
53
+				<div id="ITP_AJAX_OPER01010_LIST_CONTAINER">
54
+					<div class="itp_lg_form itp_type1 fix">
55
+						<div class="itp_srh_border fix">
56
+							<div class="col-xs-12">
57
+								<form id="ITP_FORM_OPER01010_SEARCH" class="form-horizontal">
58
+									<div class="form-group">
59
+										<div class="col-xs-2 itp_ip itp_noMar">
60
+											<select id="ITP_FORM_OPER01010_SERVICE_ST_DT" class="form-control itp_input" name="serviceStDt">
61
+												<option value="">가입일</option>											
62
+											</select>
63
+										</div>
64
+										<div class="col-xs-3 itp_ip">
65
+											<div class="input-daterange input-group date">
66
+												<input type="text" id="ITP_FORM_OPER01010_SEARCH_FROM_DT" class="form-control itp_input" name="fromDt" value="" readonly>
67
+												<span class="input-group-addon itp_date_to">~</span>
68
+												<input type="text" id="ITP_FORM_OPER01010_SEARCH_TO_DT" class="form-control itp_input" name="toDt" value="" readonly>
69
+											</div>
70
+										</div>
71
+										<div class="col-xs-2 itp_ip">
72
+										<input type="text" id="ITP_FORM_OPER01010_SEARCH_USER_NM" class="form-control itp_input" name="suserNm" placeholder="아이디/성명 검색" />
73
+										</div>
74
+										<div class="col-xs-2 itp_ip itp_noMar">
75
+											<select id="ITP_FORM_OPER01010_SEARCH_USER_STAT_CD" class="form-control itp_input" name="suserStatCd"></select>
76
+										</div>									
77
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
36 78
 									</div>
37 79
 								</form>
38 80
 							</div>
39 81
 						</div>
40 82
 					</div>
41 83
 					<div class="itp_table fix">
84
+<<<<<<< HEAD
42 85
 						<div id="ITP_STINFO01010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
43 86
 							<div id="ITP_STINFO01010_jqGridView" class="itp_views fix"></div>
44 87
 							<table id="ITP_STINFO01010_jqGrid"></table>
@@ -68,11 +111,43 @@
68 111
 												<div class="col-xs-8 itp_in">
69 112
 													<select id="ITP_FORM_STINFO01010_DETAIL_USER_STAT_CD" class="form-control itp_input" name="ST_CD">
70 113
 													<option value="">사용</option>
114
+=======
115
+						<div id="ITP_OPER01010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
116
+							<div id="ITP_OPER01010_jqGridView" class="itp_views fix"></div>
117
+							<table id="ITP_OPER01010_jqGrid"></table>
118
+							<div id="ITP_OPER01010_jqGridPager"></div>
119
+							<div id="ITP_OPER01010_jqGridEmpty" class="itp_no_data"></div>
120
+						</div>
121
+					</div>
122
+				</div>
123
+				
124
+				<div id="ITP_AJAX_OPER01010_DETAIL_CONTAINER">
125
+					<div class="itp_form itp_type1 fix">
126
+						<div class="col-xs-12">
127
+							<form id="ITP_FORM_OPER01010_DETAIL" class="form-horizontal">
128
+								<input type="hidden" id="ITP_FORM_OPER01010_DETAIL_VIEW_CD" name="viewCd" value="C">
129
+								<section class="itp_form_sec">
130
+									<!-- <h4 class="itp_form_tit">사용자정보 현재 테스트중</h4> -->
131
+									<div class="itp_form_in">
132
+										<div class="form-group">
133
+											<label class="col-xs-2 itp_lb">사용자명</label>
134
+											<div class="col-xs-4 itp_ip">
135
+												<div class="col-xs-5 itp_in">
136
+													<input type="text" id="ITP_FORM_OPER01010_DETAIL_USER_NM" class="form-control itp_input" name="userNm" value="" maxlength="40">
137
+												</div>
138
+											</div>
139
+											<label class="col-xs-2 itp_lb">상태</label>
140
+											<div class="col-xs-4 itp_ip">
141
+												<div class="col-xs-5 itp_in">
142
+													<select id="ITP_FORM_OPER01010_DETAIL_USER_STAT_CD" class="form-control itp_input" name="userStatCd">
143
+													<option value=""></option>
144
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
71 145
 													</select>
72 146
 												</div>
73 147
 											</div>
74 148
 										</div>
75 149
 										<div class="form-group">
150
+<<<<<<< HEAD
76 151
 											<label class="col-xs-2 itp_lb">브랜드 명* </label>
77 152
 											<div class="col-xs-4 itp_ip">
78 153
 												<div class="col-xs-10 itp_in">
@@ -115,10 +190,41 @@
115 190
 												</div>
116 191
 												<div class="col-xs-7 itp_in">
117 192
 													<input type="password" id="ITP_FORM_STINFO01010_DETAIL_USER_PW_CONFIRM" class="form-control itp_input" name="BRAND_LOGO" value="">
193
+=======
194
+											<label class="col-xs-2 itp_lb">사용자ID</label>
195
+											<div class="col-xs-4 itp_ip">
196
+												<div class="col-xs-6 itp_in">
197
+													<div class="input-group">
198
+													<input type="text" id="ITP_FORM_OPER01010_DETAIL_USER_ID" class="form-control itp_input" name="userId" value="" maxlength="20" readonly>
199
+													<span class="input-group-btn">
200
+														<button id="ITP_FORM_OPER01010_DETAIL_DUP" class="btn btn-default btn-sm itp_btn SHOW" type="button" disabled><i class="glyphicon glyphicon-ok"></i></button>
201
+													</span>
202
+													</div>
203
+												</div>
204
+											</div>
205
+											<label class="col-xs-2 itp_lb">상태 일시</label>
206
+											<div class="col-xs-4 itp_ip">
207
+												<div class="col-xs-5 itp_in fnUserStatDt"></div>
208
+											</div>
209
+										</div>
210
+										<div class="form-group">
211
+											<label class="col-xs-2 itp_lb">비밀번호</label>
212
+											<div class="col-xs-4 itp_ip">
213
+												<div class="col-xs-5 itp_in">
214
+													<input type="password" id="ITP_FORM_OPER01010_DETAIL_USER_PW" class="form-control itp_input" name="userPw" value="">																								
215
+												</div>
216
+												<button type="button" id="ITP_BTN_OPER01010_RESET_PW" class="btn btn-danger btn-xs PWC" style="margin: 3px 0px 0px 3px;">비밀번호 초기화</button>
217
+											</div>
218
+											<label class="col-xs-2 itp_lb">핸드폰번호</label>
219
+											<div class="col-xs-4 itp_ip">
220
+												<div class="col-xs-5 itp_in">
221
+													<input type="text" id="ITP_FORM_OPER01010_DETAIL_TEL_NO" class="form-control itp_input" name="telNo" value="">
222
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
118 223
 												</div>
119 224
 											</div>
120 225
 										</div>
121 226
 										<div class="form-group">
227
+<<<<<<< HEAD
122 228
 											<label class="col-xs-2 itp_lb">이메일</label>
123 229
 											<div class="col-xs-4 itp_ip">
124 230
 												<div class="col-xs-7 itp_in">
@@ -173,10 +279,37 @@
173 279
 												</div>
174 280
 											</div>	
175 281
 										</div>	
282
+=======
283
+											<label class="col-xs-2 itp_lb">비밀번호 확인</label>
284
+											<div class="col-xs-4 itp_ip">
285
+												<div class="col-xs-5 itp_in">
286
+													<input type="password" id="ITP_FORM_OPER01010_DETAIL_USER_PW_CONFIRM" class="form-control itp_input" value="">
287
+												</div>
288
+											</div>
289
+											<label class="col-xs-2 itp_lb">이메일</label>
290
+											<div class="col-xs-4 itp_ip">
291
+												<div class="col-xs-5 itp_in">
292
+													<input type="text" id="ITP_FORM_OPER01010_DETAIL_EMAIL" class="form-control itp_input" name="email" value="">
293
+												</div>
294
+											</div>
295
+										</div>
296
+										<div class="form-group border">
297
+											<label class="col-xs-2 itp_lb">등록일</label>
298
+											<div class="col-xs-4 itp_ip">
299
+												<div class="col-xs-5 itp_in fnAddDt"></div>
300
+											</div>
301
+											<label class="col-xs-2 itp_lb">마지막 로그인</label>
302
+											<div class="col-xs-4 itp_ip">
303
+												<div class="col-xs-5 itp_in fnLastLoginDt"></div>
304
+											</div>
305
+										</div>									
306
+									</div>
307
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
176 308
 								</section>								
177 309
 							</form>
178 310
 						</div>
179 311
 					</div>
312
+<<<<<<< HEAD
180 313
 				</div>
181 314
 				<div id="ITP_AJAX_STINFO01010_DETAIL_CONTAINER">
182 315
 					<div class="itp_form itp_type1 fix">
@@ -243,11 +376,60 @@
243 376
 												<div class="col-xs-7 itp_in">
244 377
 													<input type="password" id="ITP_FORM_STINFO01010_DETAIL_USER_PW_CONFIRM" style="border:none;" class="itp_input" name="BRAND_LOGO" value="">
245 378
 												</div>
379
+=======
380
+					
381
+					<div class="itp_table fix">
382
+						<div class="itp_table_head fix">
383
+							<!-- <h4 class="itp_table_tit">* 권한정보</h4> -->
384
+							<div class="pull-right itp_cicon">
385
+								<button type="button" id="ITP_BTN_OPER01010_DETAIL_ADDROW" class="btn btn-primary btn-sm ADB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 추가</button>
386
+								<button type="button" id="ITP_BTN_OPER01010_DETAIL_DELROW" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>									
387
+							</div>
388
+						</div>
389
+						
390
+						<div id="ITP_OPER01010_DETAIL_jqGrid_list" class="itp_tb_list">
391
+							<div id="ITP_OPER01010_DETAIL_jqGridView" class="itp_views fix"></div>
392
+							<table id="ITP_OPER01010_DETAIL_jqGrid"></table>
393
+							<div id="ITP_OPER01010_DETAIL_jqGridPager"></div>
394
+							<div id="ITP_OPER01010_DETAIL_jqGridEmpty" class="itp_no_data"></div>
395
+						</div>
396
+					</div>
397
+				</div>
398
+				<div id="ITP_AJAX_OPER01010_VIEW_CONTAINER">
399
+					<div class="itp_form itp_type1 fix">
400
+						<div class="col-xs-12">
401
+							<form id="ITP_FORM_OPER01010_VIEW" class="form-horizontal">
402
+								<input type="hidden" id="ITP_FORM_OPER01010_VIEW_VIEW_CD" name="viewCd" value="R">
403
+								<input type="hidden" id="ITP_FORM_OPER01010_VIEW_USER_ID" name="userId" value="">
404
+					
405
+								<section class="itp_form_sec">
406
+									<h4 class="itp_form_tit">사용자정보</h4>
407
+									<div class="itp_form_in">
408
+										<div class="form-group">
409
+											<label class="col-xs-2 itp_lb">사용자명</label>
410
+											<div class="col-xs-4 itp_ip">
411
+												<div class="col-xs-5 itp_in fnUserNm"></div>
412
+											</div>
413
+											<label class="col-xs-2 itp_lb">상태</label>
414
+											<div class="col-xs-4 itp_ip">
415
+												<div class="col-xs-5 itp_in fnUserStatNm"></div>
416
+											</div>
417
+										</div>
418
+										<div class="form-group">
419
+											<label class="col-xs-2 itp_lb">사용자ID</label>
420
+											<div class="col-xs-4 itp_ip">
421
+												<div class="col-xs-5 itp_in fnUserId"></div>
422
+											</div>
423
+											<label class="col-xs-2 itp_lb">상태 일시</label>
424
+											<div class="col-xs-4 itp_ip">
425
+												<div class="col-xs-5 itp_in fnUserStatDt"></div>
426
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
246 427
 											</div>
247 428
 										</div>
248 429
 										<div class="form-group">
249 430
 											<label class="col-xs-2 itp_lb">이메일</label>
250 431
 											<div class="col-xs-4 itp_ip">
432
+<<<<<<< HEAD
251 433
 												<div class="col-xs-5 itp_in">
252 434
 													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border:none;" class="itp_input" name="EMAL_ADDR" value="aaaa@test.co.kr">
253 435
 												</div>
@@ -318,10 +500,46 @@
318 500
 												</div>
319 501
 											</div>
320 502
 										</div>							
503
+=======
504
+												<div class="col-xs-5 itp_in fnEmail"></div>
505
+											</div>
506
+											<label class="col-xs-2 itp_lb">핸드폰번호</label>
507
+											<div class="col-xs-4 itp_ip">
508
+												<div class="col-xs-5 itp_in fnTelNo"></div>
509
+											</div>
510
+										</div>
511
+										<div class="form-group border">
512
+											<label class="col-xs-2 itp_lb">등록일</label>
513
+											<div class="col-xs-4 itp_ip">
514
+												<div class="col-xs-5 itp_in fnAddDt"></div>
515
+											</div>
516
+											<label class="col-xs-2 itp_lb">마지막 로그인</label>
517
+											<div class="col-xs-4 itp_ip">
518
+												<div class="col-xs-5 itp_in fnLastLoginDt"></div>
519
+											</div>
520
+										</div>									
521
+									</div>
522
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
321 523
 								</section>								
322 524
 							</form>
323 525
 						</div>
324 526
 					</div>
527
+<<<<<<< HEAD
528
+=======
529
+					
530
+					<div class="itp_table fix">
531
+						<div class="itp_table_head fix">
532
+							<h4 class="itp_table_tit">*권한정보</h4>
533
+						</div>
534
+						
535
+						<div id="ITP_OPER01010_VIEW_jqGrid_list" class="itp_tb_list">
536
+							<div id="ITP_OPER01010_VIEW_jqGridView" class="itp_views fix"></div>
537
+							<table id="ITP_OPER01010_VIEW_jqGrid"></table>
538
+							<div id="ITP_OPER01010_VIEW_jqGridPager"></div>
539
+							<div id="ITP_OPER01010_VIEW_jqGridEmpty" class="itp_no_data"></div>
540
+						</div>
541
+					</div>					
542
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
325 543
 				</div>
326 544
 			</div>
327 545
 		</article>

+ 213 - 0
bin/src/main/webapp/app/oper/OPER02010.html

@@ -0,0 +1,213 @@
1
+<section id="ITP_TAB_OPER02010" class="tab-pane active itp_sec">
2
+	<div class="itp_cont">
3
+		<article class="itp_detail">
4
+			<div class="itp_det_head fix">
5
+				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>공지사항관리</strong></h2>
6
+				<div class="pull-right itp_cicon">
7
+					<button type="button" id="ITP_BTN_OPER02010_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
8
+					<button type="button" id="ITP_BTN_OPER02010_MODIFY" class="btn btn-success btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-ok"></i> 수정</button>
9
+					<button type="button" id="ITP_BTN_OPER02010_NEWREG" class="btn btn-primary btn-sm NEB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 신규등록</button>
10
+					<button type="button" id="ITP_BTN_OPER02010_DELETE" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>
11
+					<button type="button" id="ITP_BTN_OPER02010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon glyphicon-minus"></i> 취소/목록</button>
12
+					<button type="button" id="ITP_BTN_OPER02010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon glyphicon-ok"></i> 저장</button>
13
+				</div>
14
+			</div>
15
+			<div class="itp_det_in">
16
+				<div id="ITP_AJAX_OPER02010_LIST_CONTAINER">
17
+					<div class="itp_lg_form itp_type1 fix">
18
+						<div class="itp_srh_border fix">
19
+							<div class="col-xs-12">
20
+								<form id="ITP_FORM_OPER02010_SEARCH" class="form-horizontal">
21
+									<div class="form-group">
22
+										<div class="col-xs-2 itp_ip itp_noMar">
23
+											<select id="ITP_FORM_OPER02010_SERVICE_ST_DT" class="form-control itp_input">
24
+												<option value="">노출일</option>
25
+											</select>
26
+										</div>
27
+										<div class="col-xs-3 itp_ip">
28
+											<div class="input-daterange input-group date">
29
+												<input type="text" id="ITP_FORM_OPER02010_SEARCH_FROM_DT" class="form-control itp_input" name="fromDt" value="" readonly>
30
+												<span class="input-group-addon itp_date_to">~</span>
31
+												<input type="text" id="ITP_FORM_OPER02010_SEARCH_TO_DT" class="form-control itp_input" name="toDt" value="" readonly>
32
+											</div>
33
+										</div>
34
+										<div class="col-xs-4 itp_ip">
35
+										<input type="text" id="ITP_FORM_OPER02010_SEARCH_SNTICE_TKTL" class="form-control itp_input" name="sNticeTitl" placeholder="공지제목 검색" />
36
+										</div>
37
+										<!--
38
+										<div class="col-xs-2 itp_ip itp_noMar">
39
+											<select id="ITP_FORM_OPER02010_SEARCH_NTICE_STAT_CD" class="form-control itp_input" name="snticeStatCd"></select>
40
+										</div>
41
+										-->
42
+									</div>
43
+								</form>
44
+							</div>
45
+						</div>
46
+					</div>
47
+					<div class="itp_table fix">
48
+						<div id="ITP_OPER02010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
49
+							<div id="ITP_OPER02010_jqGridView" class="itp_views fix"></div>
50
+							<table id="ITP_OPER02010_jqGrid"></table>
51
+							<div id="ITP_OPER02010_jqGridPager"></div>
52
+							<div id="ITP_OPER02010_jqGridEmpty" class="itp_no_data"></div>
53
+						</div>
54
+					</div>
55
+				</div>
56
+				<div id="ITP_AJAX_OPER02010_DETAIL_CONTAINER">
57
+					<div class="itp_form itp_type1 fix">
58
+						<div class="col-xs-12">
59
+							<form id="ITP_FORM_OPER02010_DETAIL" class="form-horizontal">
60
+								<input type="hidden" id="ITP_FORM_OPER02010_DETAIL_VIEW_CD" name="viewCd" value="C">
61
+								<input type="hidden" id="ITP_FORM_OPER02010_DETAIL_NTICE_NO" name="nticeNo" value="">
62
+								<input type="hidden" id="ITP_FORM_OPER02010_DETAIL_FILE_NO" name="fileNo" value="">
63
+
64
+								<section class="itp_form_sec">
65
+									<!-- <h4 class="itp_form_tit">공지정보</h4> -->
66
+									<div class="itp_form_in">
67
+										<div class="form-group colspan">
68
+											<label class="col-xs-2 itp_lb">공지제목</label>
69
+											<div class="col-xs-10 itp_ip">
70
+												<input type="text" id="ITP_FORM_OPER02010_DETAIL_NTICE_TITL" class="form-control itp_input" name="nticeTitl" value="">
71
+											</div>
72
+										</div>
73
+									</div>
74
+									<div class="itp_form_in">
75
+										<div class="form-group">
76
+											<label class="col-xs-2 itp_lb">공지일자</label>
77
+											<div class="col-xs-5 itp_ip">
78
+												<div class="col-xs-10 itp_in">
79
+									                <div class="input-daterange input-group date">
80
+														<input type="text" id="ITP_FORM_OPER02010_FROM_DT" class="form-control itp_input" name="notiStDay" readonly>
81
+														<span class="input-group-addon itp_date_to">~</span>
82
+														<input type="text" id="ITP_FORM_OPER02010_TO_DT" class="form-control itp_input" name="notiEdDay" readonly>
83
+													</div>
84
+												</div>
85
+											</div>
86
+											<label class="col-xs-2 itp_lb">삭제여부</label>
87
+											<div class="col-xs-5 itp_ip">
88
+												<div class="col-xs-5 itp_in">
89
+								                <select id="ITP_FORM_OPER02010_DEL_YN" class="form-control itp_input" name="delYn">
90
+												<option value="N">N</option>
91
+												<option value="Y">Y</option>
92
+												</select>
93
+												</div>
94
+											</div>
95
+										</div>
96
+									</div>
97
+									<div class="itp_form_in">	
98
+										<div class="form-group colspan">
99
+											<label class="col-xs-2 itp_lb">공지내용</label>
100
+											<div class="col-xs-10 itp_ip">
101
+												<textarea id="ITP_FORM_OPER02010_DETAIL_NTICE_DESC" class="form-control" rows="8" name="nticeDesc" maxlength="200"></textarea>
102
+											</div>
103
+										</div>
104
+										<div class="form-group colspan">
105
+											<label class="col-xs-2 itp_lb">첨부파일</label>
106
+											<div class="col-xs-10 itp_ip">
107
+												<div class="col-xs-6 itp_in">
108
+													<div class="fileupload-wrapper">
109
+														<!-- data-show-yn: 파일업로드를 할 수 있는 권한이 있는지 없는지.. -->
110
+														<div id="ITP_OPER02010_DETAIL_UPLOAD" data-show-yn="Y"></div>
111
+													</div>
112
+												</div>
113
+											</div>
114
+										</div>
115
+										<div class="form-group border">
116
+											<label class="col-xs-2 itp_lb">공지대상</label>
117
+											<div class="col-xs-10 itp_ip">
118
+												<div class="col-xs-2 itp_in">
119
+												<select id="ITP_FORM_OPER02010_DETAIL_TARGET_CD" class="form-control itp_input" name="targetCd"></select>
120
+												</div>
121
+											</div>
122
+										</div>
123
+									</div>
124
+								</section>
125
+							</form>
126
+						</div>
127
+					</div>
128
+
129
+					<div class="itp_table fix">
130
+						<div class="itp_table_head fix">
131
+							<h4 class="itp_table_tit">* 공지대상이 특정 대상일 경구 추가 버큰을 통해 사용자  등록 함</h4>
132
+							<div class="pull-right itp_cicon">
133
+								<button type="button" id="ITP_BTN_OPER02010_DETAIL_ADDROW" class="btn btn-primary btn-sm ADB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 추가</button>
134
+								<button type="button" id="ITP_BTN_OPER02010_DETAIL_DELROW" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>
135
+							</div>
136
+						</div>
137
+
138
+						<div id="ITP_OPER02010_DETAIL_jqGrid_list" class="itp_tb_list">
139
+							<div id="ITP_OPER02010_DETAIL_jqGridView" class="itp_views fix"></div>
140
+							<table id="ITP_OPER02010_DETAIL_jqGrid"></table>
141
+							<div id="ITP_OPER02010_DETAIL_jqGridPager"></div>
142
+							<div id="ITP_OPER02010_DETAIL_jqGridEmpty" class="itp_no_data"></div>
143
+						</div>
144
+					</div>
145
+				</div>
146
+				<div id="ITP_AJAX_OPER02010_VIEW_CONTAINER">
147
+					<div class="itp_form itp_type1 fix">
148
+						<div class="col-xs-12">
149
+							<form id="ITP_FORM_OPER02010_VIEW" class="form-horizontal">
150
+								<input type="hidden" id="ITP_FORM_OPER02010_VIEW_VIEW_CD" name="viewCd" value="R">
151
+								<input type="hidden" id="ITP_FORM_OPER02010_VIEW_USER_ID" name="nticeNo" value="">
152
+								<input type="hidden" id="ITP_FORM_OPER02010_VIEW_FILE_NO" name="fileNo" value="">
153
+
154
+								<section class="itp_form_sec">
155
+									<h4 class="itp_form_tit">공지정보</h4>
156
+									<div class="itp_form_in">
157
+										<div class="form-group colspan">
158
+											<label class="col-xs-2 itp_lb">공지제목</label>
159
+											<div class="col-xs-10 itp_ip fnNticeTitl"></div>
160
+										</div>
161
+									</div>	
162
+									<div class="itp_form_in">
163
+										<div class="form-group">
164
+											<label class="col-xs-2 itp_lb">공지일자</label>
165
+											<div class="col-xs-5 itp_ip fnNotiDay"></div>
166
+											<label class="col-xs-2 itp_lb">삭제여부</label>
167
+											<div class="col-xs-5 itp_ip fnDelYn"></div>
168
+										</div>
169
+									</div>
170
+									<div class="itp_form_in">	
171
+										<div class="form-group colspan">
172
+											<label class="col-xs-2 itp_lb">공지내용</label>
173
+											<div class="col-xs-10 itp_ip fnNticeDesc"></div>
174
+										</div>
175
+										<div class="form-group colspan">
176
+											<label class="col-xs-2 itp_lb">첨부파일</label>
177
+											<div class="col-xs-10 itp_ip">
178
+												<div class="col-xs-6 itp_in">
179
+													<div class="fileupload-wrapper">
180
+														<div id="ITP_OPER02010_VIEW_UPLOAD"></div>
181
+													</div>
182
+												</div>
183
+											</div>
184
+										</div>
185
+										<div class="form-group border">
186
+											<label class="col-xs-2 itp_lb">공지대상</label>
187
+											<div class="col-xs-10 itp_ip fnTargetNm"></div>
188
+										</div>
189
+									</div>
190
+								</section>
191
+							</form>
192
+						</div>
193
+					</div>
194
+
195
+					<div class="itp_table fix">
196
+						<div class="itp_table_head fix">
197
+							<h4 class="itp_table_tit">* 공지대상이 특정 대상일 경구 추가 버큰을 통해 사용자  등록 함</h4>
198
+						</div>
199
+
200
+						<div id="ITP_OPER02010_VIEW_jqGrid_list" class="itp_tb_list">
201
+							<div id="ITP_OPER02010_VIEW_jqGridView" class="itp_views fix"></div>
202
+							<table id="ITP_OPER02010_VIEW_jqGrid"></table>
203
+							<div id="ITP_OPER02010_VIEW_jqGridPager"></div>
204
+							<div id="ITP_OPER02010_VIEW_jqGridEmpty" class="itp_no_data"></div>
205
+						</div>
206
+					</div>
207
+				</div>
208
+			</div>
209
+		</article>
210
+	</div>
211
+
212
+	<div id="ITP_TAP_JS"></div>
213
+</section>

+ 361 - 0
bin/src/main/webapp/app/oper/OPER03010.html

@@ -0,0 +1,361 @@
1
+<section id="ITP_TAB_OPER03010" class="tab-pane active itp_sec">
2
+	<div class="itp_cont">
3
+		<article class="itp_detail">
4
+			<div class="itp_det_head fix">
5
+				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>가맹점관리</strong></h2>
6
+				<div class="pull-right itp_cicon">
7
+					<button type="button" id="ITP_BTN_OPER03010_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
8
+					<button type="button" id="ITP_BTN_OPER03010_MODIFY" class="btn btn-success btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-ok"></i> 수정</button>
9
+					<button type="button" id="ITP_BTN_OPER03010_NEWREG" class="btn btn-primary btn-sm NEB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 신규등록</button>
10
+					<button type="button" id="ITP_BTN_OPER03010_DELETE" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>
11
+					<button type="button" id="ITP_BTN_OPER03010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon glyphicon-minus"></i> 취소/목록</button>
12
+					<button type="button" id="ITP_BTN_OPER03010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon glyphicon-ok"></i> 저장</button>
13
+				</div>				
14
+			</div>
15
+			<div class="itp_det_in">
16
+				<div id="ITP_AJAX_OPER03010_LIST_CONTAINER">
17
+					<div class="itp_lg_form itp_type1 fix">
18
+						<div class="itp_srh_border fix">
19
+							<div class="col-xs-12">
20
+								<form id="ITP_FORM_OPER03010_SEARCH" class="form-horizontal">
21
+									<div class="form-group">
22
+										<div class="col-xs-2 itp_ip itp_noMar">
23
+											<select id="ITP_FORM_OPER03010_SEARCH_TYPE" class="form-control itp_input">
24
+												<option value="">가입일자</option>											
25
+											</select>
26
+										</div>
27
+										<div class="col-xs-3 itp_ip itp_noMar">
28
+											<div class="input-daterange input-group date">
29
+												<input type="text" id="ITP_FORM_OPER03010_SEARCH_FROM_DT" class="form-control itp_input" name="fromDt" value="" readonly>
30
+												<span class="input-group-addon itp_date_to">~</span>
31
+												<input type="text" id="ITP_FORM_OPER03010_SEARCH_TO_DT" class="form-control itp_input" name="toDt" value="" readonly>
32
+											</div>
33
+										</div>
34
+										<div class="col-xs-2 itp_ip itp_noMar">
35
+										<input type="text" id="ITP_FORM_OPER03010_SEARCH_CMPY_NM" class="form-control itp_input" name="scmpyNm" placeholder="가입자명 검색" />
36
+										</div>
37
+										<div class="col-xs-2 itp_ip itp_noMar">
38
+											<select id="ITP_FORM_OPER03010_SEARCH_CMPY_STAT_CD" class="form-control itp_input" name="scmpyStatCd"></select>
39
+										</div>									
40
+									</div>
41
+								</form>
42
+							</div>
43
+						</div>
44
+					</div>
45
+					<div class="itp_table fix">
46
+						<div id="ITP_OPER03010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
47
+							<div id="ITP_OPER03010_jqGridView" class="itp_views fix"></div>
48
+							<table id="ITP_OPER03010_jqGrid"></table>
49
+							<div id="ITP_OPER03010_jqGridPager"></div>
50
+							<div id="ITP_OPER03010_jqGridEmpty" class="itp_no_data"></div>
51
+						</div>
52
+					</div>
53
+				</div>
54
+				<div id="ITP_AJAX_OPER03010_DETAIL_CONTAINER">
55
+					<div class="itp_form itp_type1 fix">
56
+						<div class="col-xs-12">
57
+							<form id="ITP_FORM_OPER03010_DETAIL" class="form-horizontal">
58
+								<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_VIEW_CD" name="viewCd" value="C">
59
+								<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_CMPY_LOCATION" name="cmpyLocation" value="">
60
+					
61
+								<section class="itp_form_sec">
62
+									<!-- <h4 class="itp_form_tit">가맹점정보</h4> -->
63
+									<div class="itp_form_in">
64
+										<div class="form-group">
65
+											<label class="col-xs-2 itp_lb">가맹점명(*)</label>
66
+											<div class="col-xs-4 itp_ip">
67
+												<div class="col-xs-5 itp_in">
68
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_CMPY_NM" class="form-control itp_input" name="cmpyNm" value="" maxlength="40">
69
+												</div>
70
+											</div>
71
+											<label class="col-xs-2 itp_lb">상태(*)</label>
72
+											<div class="col-xs-4 itp_ip">
73
+												<div class="col-xs-5 itp_in">
74
+													<select id="ITP_FORM_OPER03010_DETAIL_CMPY_STAT_CD" class="form-control itp_input" name="cmpyStatCd"></select>
75
+												</div>
76
+											</div>
77
+										</div>
78
+										<div class="form-group">
79
+											<label class="col-xs-2 itp_lb">가맹점코드(가맹ID)</label>
80
+											<div class="col-xs-4 itp_ip">
81
+												<div class="col-xs-6 itp_in">
82
+													<div class="input-group">
83
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_CMPY_CD" class="form-control itp_input" name="cmpyCd" value="" maxlength="10" readonly>
84
+													<span class="input-group-btn">
85
+														<button id="ITP_FORM_OPER03010_DETAIL_DUP" class="btn btn-default btn-sm itp_btn SHOW" type="button" disabled><i class="glyphicon glyphicon-ok"></i></button>
86
+													</span>
87
+													</div>
88
+												</div>
89
+											</div>
90
+											<label class="col-xs-2 itp_lb">기업형태</label>
91
+											<div class="col-xs-4 itp_ip">
92
+												<div class="col-xs-5 itp_in">
93
+													<select id="ITP_FORM_OPER03010_DETAIL_CMPY_TYPE_CD" class="form-control itp_input" name="cmpyTypeCd"></select>
94
+												</div>
95
+											</div>
96
+										</div>
97
+										<div class="form-group">
98
+											<label class="col-xs-2 itp_lb">사업자등록번호(*)</label>
99
+											<div class="col-xs-4 itp_ip">
100
+												<div class="col-xs-5 itp_in">
101
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_CMPY_REG_NUM" class="form-control itp_input" name="cmpyRegNum" value="">
102
+												</div>
103
+											</div>
104
+											<label class="col-xs-2 itp_lb">법인번호</label>
105
+											<div class="col-xs-4 itp_ip">
106
+												<div class="col-xs-5 itp_in">
107
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_COPT_NUM" class="form-control itp_input" name="coptNum" value="">
108
+												</div>
109
+											</div>
110
+										</div>
111
+										<div class="form-group">
112
+											<label class="col-xs-2 itp_lb">권한정보(*)</label>
113
+											<div class="col-xs-4 itp_ip">
114
+												<div class="col-xs-5 itp_in">
115
+													<select id="ITP_FORM_OPER03010_DETAIL_FRCOMP_AUTH_CD" class="form-control itp_input" name="frcompAuthCd"></select>
116
+												</div>
117
+											</div>
118
+											<label class="col-xs-2 itp_lb">업태</label>
119
+											<div class="col-xs-4 itp_ip">
120
+												<div class="col-xs-5 itp_in">
121
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_BIZ_CATE" class="form-control itp_input" name="bizCate" value="">
122
+												</div>
123
+											</div>
124
+										</div>
125
+										<div class="form-group">
126
+											<label class="col-xs-2 itp_lb">비밀번호(초기-전화번호)</label>
127
+											<div class="col-xs-4 itp_ip">
128
+												<div class="col-xs-5 itp_in">
129
+													<input type="password" id="ITP_FORM_OPER03010_DETAIL_USER_PW" class="form-control itp_input" name="userPw" value="" disabled>
130
+												</div>
131
+												<button type="button" id="ITP_BTN_OPER03010_RESET_PW" class="btn btn-danger btn-xs PWC" style="margin: 3px 0px 0px 3px;">비밀번호 초기화</button>
132
+											</div>
133
+											<label class="col-xs-2 itp_lb">업종</label>
134
+											<div class="col-xs-4 itp_ip">
135
+												<div class="col-xs-5 itp_in">
136
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_BIZ_TYPE" class="form-control itp_input" name="bizType" value="">
137
+												</div>
138
+											</div>
139
+										</div>
140
+										<div class="form-group">
141
+											<label class="col-xs-2 itp_lb">대표자명(*)</label>
142
+											<div class="col-xs-4 itp_ip">
143
+												<div class="col-xs-5 itp_in">
144
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_BOSS_NM" class="form-control itp_input" name="bossNm" value="">
145
+												</div>
146
+											</div>
147
+											<label class="col-xs-2 itp_lb">대표연락처(*)</label>
148
+											<div class="col-xs-4 itp_ip">
149
+												<div class="col-xs-5 itp_in">
150
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_MAIN_TEL" class="form-control itp_input" name="mainTel" value="">
151
+												</div>
152
+											</div>											
153
+										</div>
154
+										<div class="form-group">
155
+											<label class="col-xs-2 itp_lb">대표FAX</label>
156
+											<div class="col-xs-4 itp_ip">
157
+												<div class="col-xs-5 itp_in">
158
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_MAIN_FAX" class="form-control itp_input" name="mainFax" value="">
159
+												</div>
160
+											</div>
161
+											<label class="col-xs-2 itp_lb">대표이메일(*)</label>
162
+											<div class="col-xs-4 itp_ip">
163
+												<div class="col-xs-5 itp_in">
164
+													<input type="text" id="ITP_FORM_OPER03010_DETAIL_MAIN_EMAIL" class="form-control itp_input" name="mainEmail" value="">
165
+												</div>
166
+											</div>											
167
+										</div>					
168
+									</div>									
169
+									<div class="itp_form_in">
170
+										<div class="form-group">
171
+											<label class="col-xs-2 itp_lb">가맹점회사주소(*)</label>
172
+											<div class="col-xs-10 itp_ip">
173
+												<div class="col-xs-1 itp_in">
174
+												<input type="text" id="ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="cmpyZipno" value="" maxlength="6" readonly placeholder="우편번호">													
175
+												</div>
176
+												<div class="col-xs-1 itp_in">
177
+												<button type="button" id="ITP_FORM_OPER03010_DETAIL_ADRES_SCH" class="btn btn-primary btn-xs SHOW" style="margin: 3px 0px 0px 3px;">&nbsp;&nbsp;주소검색&nbsp;&nbsp;</button>
178
+												</div>
179
+												<div class="col-xs-4 itp_in" style="margin-right: 5px;">
180
+												<input type="text" id="ITP_FORM_OPER03010_DETAIL_CMPY_ADRES" class="form-control itp_input" name="cmpyAdres" value="" readonly placeholder="기본주소">													
181
+												</div>
182
+												<div class="col-xs-4 itp_in">
183
+												<input type="text" id="ITP_FORM_OPER03010_DETAIL_CMPY_ADRES_DTL" class="form-control itp_input" name="cmpyAdresDtl" value="" placeholder="상세주소">													
184
+												</div>
185
+												
186
+												<!-- 주소 맵 -->
187
+												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS" value="" />
188
+												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS" value="" />
189
+												<input type="hidden" name="cmpyLat" id="ITP_FORM_OPER03010_DETAIL_LAT" value="" />
190
+												<input type="hidden" name="cmpyLng" id="ITP_FORM_OPER03010_DETAIL_LNG" value="" />
191
+												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_HJ_DONG" value="" />
192
+												<input type="hidden" id="ITP_FORM_OPER03010_DETAIL_BJ_DONG" value="" />
193
+												<div id="ITP_FORM_OPER03010_DETAIL_MAP" style="width:700px; height:400px; margin-top:35px;"></div>
194
+											</div>
195
+										</div>
196
+									</div>
197
+									<div class="itp_form_in">
198
+										<div class="form-group border">
199
+											<label class="col-xs-2 itp_lb">등록일시</label>
200
+											<div class="col-xs-4 itp_ip">
201
+												<div class="col-xs-5 itp_in fnAddDt"></div>
202
+											</div>
203
+											<label class="col-xs-2 itp_lb">최종수정일시</label>
204
+											<div class="col-xs-4 itp_ip">
205
+												<div class="col-xs-5 itp_in fnChgDt"></div>
206
+											</div>
207
+										</div>
208
+									</div>
209
+								</section>								
210
+							</form>
211
+						</div>
212
+					</div>	
213
+					<div class="itp_table fix">
214
+						<div class="itp_table_head fix">
215
+							<h4 class="itp_table_tit">* 영업담당자정보</h4>
216
+							<div class="pull-right itp_cicon">
217
+								<button type="button" id="ITP_BTN_OPER03010_DETAIL_ADDROW" class="btn btn-primary btn-sm ARB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 행추가</button>
218
+								<button type="button" id="ITP_BTN_OPER03010_DETAIL_DELROW" class="btn btn-danger btn-sm DRB"><i class="glyphicon glyphicon-remove"></i> 행삭제</button>									
219
+							</div>
220
+						</div>
221
+						
222
+						<div id="ITP_OPER03010_DETAIL_jqGrid_list" class="itp_tb_list">
223
+							<div id="ITP_OPER03010_DETAIL_jqGridView" class="itp_views fix"></div>
224
+							<table id="ITP_OPER03010_DETAIL_jqGrid"></table>
225
+							<div id="ITP_OPER03010_DETAIL_jqGridPager"></div>
226
+							<div id="ITP_OPER03010_DETAIL_jqGridEmpty" class="itp_no_data"></div>
227
+						</div>
228
+					</div>				
229
+				</div>
230
+				<div id="ITP_AJAX_OPER03010_VIEW_CONTAINER">
231
+					<div class="itp_form itp_type1 fix">
232
+						<div class="col-xs-12">
233
+							<form id="ITP_FORM_OPER03010_VIEW" class="form-horizontal">
234
+								<input type="hidden" id="ITP_FORM_OPER03010_VIEW_VIEW_CD" name="viewCd" value="R">
235
+								<input type="hidden" id="ITP_FORM_OPER03010_VIEW_CMPY_CD" name="cmpyCd" value="">
236
+					
237
+								<section class="itp_form_sec">
238
+									<h4 class="itp_form_tit">가맹점정보</h4>
239
+									<div class="itp_form_in">
240
+										<div class="form-group">
241
+											<label class="col-xs-2 itp_lb">가맹점명(*)</label>
242
+											<div class="col-xs-4 itp_ip">
243
+												<div class="col-xs-5 itp_in fnCmpyNm"></div>
244
+											</div>
245
+											<label class="col-xs-2 itp_lb">상태</label>
246
+											<div class="col-xs-4 itp_ip">
247
+												<div class="col-xs-5 itp_in fnCmpyStatCd"></div>
248
+											</div>
249
+										</div>
250
+										<div class="form-group">
251
+											<label class="col-xs-2 itp_lb">가맹점코드</label>
252
+											<div class="col-xs-4 itp_ip">
253
+												<div class="col-xs-5 itp_in fnCmpyCd"></div>
254
+											</div>
255
+											<label class="col-xs-2 itp_lb">기업형태</label>
256
+											<div class="col-xs-4 itp_ip">
257
+												<div class="col-xs-5 itp_in fnCmpyTypeCd"></div>
258
+											</div>
259
+										</div>
260
+										<div class="form-group">
261
+											<label class="col-xs-2 itp_lb">사업자등록번호(*)</label>
262
+											<div class="col-xs-4 itp_ip">
263
+												<div class="col-xs-5 itp_in fnCmpyRegNum"></div>
264
+											</div>
265
+											<label class="col-xs-2 itp_lb">법인번호</label>
266
+											<div class="col-xs-4 itp_ip">
267
+												<div class="col-xs-5 itp_in fnCoptNum"></div>
268
+											</div>
269
+										</div>
270
+										
271
+										<div class="form-group">
272
+											<label class="col-xs-2 itp_lb">권한정보(*)</label>
273
+											<div class="col-xs-4 itp_ip">
274
+												<div class="col-xs-5 itp_in fnFrcompAuthCd"></div>
275
+											</div>
276
+											<label class="col-xs-2 itp_lb">업태</label>
277
+											<div class="col-xs-4 itp_ip">
278
+												<div class="col-xs-5 itp_in fnBizCate"></div>
279
+											</div>
280
+										</div>
281
+									</div>
282
+									<div class="itp_form_in">
283
+											<div class="form-group">
284
+												<div class="col-xs-6 itp_ip">
285
+												</div>
286
+												<label class="col-xs-2 itp_lb">업종</label>
287
+												<div class="col-xs-4 itp_ip">
288
+													<div class="col-xs-5 itp_in fnBizType"></div>
289
+												</div>
290
+											</div>
291
+									</div>
292
+									<div class="itp_form_in">
293
+										<div class="form-group">
294
+											<label class="col-xs-2 itp_lb">대표자명(*)</label>
295
+											<div class="col-xs-4 itp_ip">
296
+												<div class="col-xs-5 itp_in fnBossNm"></div>
297
+											</div>
298
+											<label class="col-xs-2 itp_lb">대표연락처(*)</label>
299
+											<div class="col-xs-4 itp_ip">
300
+												<div class="col-xs-5 itp_in fnMainTel"></div>
301
+											</div>											
302
+										</div>
303
+										<div class="form-group">
304
+											<label class="col-xs-2 itp_lb">대표FAX</label>
305
+											<div class="col-xs-4 itp_ip">
306
+												<div class="col-xs-5 itp_in fnMainFax"></div>
307
+											</div>
308
+											<label class="col-xs-2 itp_lb">대표이메일(*)</label>
309
+											<div class="col-xs-4 itp_ip">
310
+												<div class="col-xs-5 itp_in fnMainEmail"></div>
311
+											</div>											
312
+										</div>					
313
+									</div>									
314
+									<div class="itp_form_in">
315
+										<div class="form-group">
316
+											<label class="col-xs-2 itp_lb">가맹점회사주소(*)</label>
317
+											<div class="col-xs-10 itp_ip">
318
+												<div class="col-xs-10 itp_in fnCmpyAddress"></div>
319
+												
320
+												<!-- 주소 맵 -->
321
+												<div id="ITP_FORM_OPER03010_VIEW_MAP" style="width:700px; height:400px; margin-top:27px;"></div>
322
+											</div>
323
+										</div>
324
+									</div>
325
+									<div class="itp_form_in">
326
+										<div class="form-group border">
327
+											<label class="col-xs-2 itp_lb">등록일시</label>
328
+											<div class="col-xs-4 itp_ip">
329
+												<div class="col-xs-5 itp_in fnAddDt"></div>
330
+											</div>
331
+											<label class="col-xs-2 itp_lb">최종수정일시</label>
332
+											<div class="col-xs-4 itp_ip">
333
+												<div class="col-xs-5 itp_in fnChgDt"></div>
334
+											</div>
335
+										</div>
336
+									</div>
337
+								</section>								
338
+							</form>
339
+						</div>
340
+					</div>	
341
+					
342
+					<div class="itp_table fix">
343
+						<div class="itp_table_head fix">
344
+							<h4 class="itp_table_tit">* 영업담당자정보</h4>
345
+						</div>
346
+						
347
+						<div id="ITP_OPER03010_VIEW_jqGrid_list" class="itp_tb_list">
348
+							<div id="ITP_OPER03010_VIEW_jqGridView" class="itp_views fix"></div>
349
+							<table id="ITP_OPER03010_VIEW_jqGrid"></table>
350
+							<div id="ITP_OPER03010_VIEW_jqGridPager"></div>
351
+							<div id="ITP_OPER03010_VIEW_jqGridEmpty" class="itp_no_data"></div>
352
+						</div>
353
+					</div>	
354
+										
355
+				</div>
356
+			</div>
357
+		</article>
358
+	</div>
359
+	
360
+	<div id="ITP_TAP_JS"></div>	
361
+</section>

+ 259 - 0
bin/src/main/webapp/app/oper/OPER04010.html

@@ -0,0 +1,259 @@
1
+<section id="ITP_TAB_OPER04010" class="tab-pane active itp_sec">
2
+	<div class="itp_cont">
3
+		<article class="itp_detail">
4
+			<div class="itp_det_head fix">
5
+				<h2 class="pull-left itp_det_tit"><i class="glyphicon glyphicon-chevron-right"></i> <strong>영업담당자관리</strong></h2>
6
+				<div class="pull-right itp_cicon">
7
+					<button type="button" id="ITP_BTN_OPER04010_SRH" class="btn btn-success btn-sm SEB" style="display: inline-block;"><i class="glyphicon glyphicon-search"></i> 조회</button>
8
+					<button type="button" id="ITP_BTN_OPER04010_MODIFY" class="btn btn-success btn-sm UPB" style="display: inline-block;"><i class="glyphicon glyphicon-ok"></i> 수정</button>
9
+					<button type="button" id="ITP_BTN_OPER04010_NEWREG" class="btn btn-primary btn-sm NEB" style="display: inline-block;"><i class="glyphicon glyphicon-plus"></i> 신규등록</button>
10
+					<button type="button" id="ITP_BTN_OPER04010_DELETE" class="btn btn-danger btn-sm DEB"><i class="glyphicon glyphicon-remove"></i> 삭제</button>
11
+					<button type="button" id="ITP_BTN_OPER04010_CANCELLIST" class="btn btn-warning btn-sm PRB"><i class="glyphicon glyphicon-minus"></i> 취소/목록</button>
12
+					<button type="button" id="ITP_BTN_OPER04010_SAVE" class="btn btn-success btn-sm SAB"><i class="glyphicon glyphicon-ok"></i> 저장</button>
13
+				</div>				
14
+			</div>
15
+			<div class="itp_det_in">
16
+				<div id="ITP_AJAX_OPER04010_LIST_CONTAINER">
17
+					<div class="itp_lg_form itp_type1 fix">
18
+						<div class="itp_srh_border fix">
19
+							<div class="col-xs-12">
20
+								<form id="ITP_FORM_OPER04010_SEARCH" class="form-horizontal">
21
+									<div class="form-group">
22
+										<div class="col-xs-2 itp_ip itp_noMar">
23
+											<select id="ITP_FORM_OPER04010_SEARCH_TYPE" class="form-control itp_input">
24
+												<option value="">등록일자</option>											
25
+											</select>
26
+										</div>
27
+										<div class="col-xs-3 itp_ip itp_noMar">
28
+											<div class="input-daterange input-group date">
29
+												<input type="text" id="ITP_FORM_OPER04010_SEARCH_FROM_DT" class="form-control itp_input" name="fromDt" value="" readonly>
30
+												<span class="input-group-addon itp_date_to">~</span>
31
+												<input type="text" id="ITP_FORM_OPER04010_SEARCH_TO_DT" class="form-control itp_input" name="toDt" value="" readonly>
32
+											</div>
33
+										</div>
34
+										<div class="col-xs-2 itp_ip itp_noMar">
35
+										<input type="text" id="ITP_FORM_OPER04010_SEARCH_SALES_USER_NM" class="form-control itp_input" name="ssalesUserNm" placeholder="영업담당자 검색" />
36
+										</div>
37
+										<div class="col-xs-2 itp_ip itp_noMar">
38
+											<select id="ITP_FORM_OPER04010_SEARCH_USE_STAT_CD" class="form-control itp_input" name="suseStatCd"></select>
39
+										</div>									
40
+									</div>
41
+								</form>
42
+							</div>
43
+						</div>
44
+					</div>
45
+					<div class="itp_table fix">
46
+						<div id="ITP_OPER04010_jqGrid_list" class="itp_tb_list itp_gType1" data-total-cnt="${totalCnt}">
47
+							<div id="ITP_OPER04010_jqGridView" class="itp_views fix"></div>
48
+							<table id="ITP_OPER04010_jqGrid"></table>
49
+							<div id="ITP_OPER04010_jqGridPager"></div>
50
+							<div id="ITP_OPER04010_jqGridEmpty" class="itp_no_data"></div>
51
+						</div>
52
+					</div>
53
+				</div>
54
+				<div id="ITP_AJAX_OPER04010_DETAIL_CONTAINER">
55
+					<div class="itp_form itp_type1 fix">
56
+						<div class="col-xs-12">
57
+							<form id="ITP_FORM_OPER04010_DETAIL" class="form-horizontal">
58
+								<input type="hidden" id="ITP_FORM_OPER04010_DETAIL_VIEW_CD" name="viewCd" value="C">
59
+								<input type="hidden" id="ITP_FORM_OPER04010_DETAIL_LOCATION" name="location" value="">
60
+					
61
+								<section class="itp_form_sec">
62
+									<!-- <h4 class="itp_form_tit">영업담당자정보</h4> -->
63
+									<div class="itp_form_in">
64
+										<div class="form-group">
65
+											<label class="col-xs-2 itp_lb">영업담당자명(*)</label>
66
+											<div class="col-xs-4 itp_ip">
67
+												<div class="col-xs-5 itp_in">
68
+													<input type="text" id="ITP_FORM_OPER04010_DETAIL_SALES_USER_NM" class="form-control itp_input" name="salesUserNm" value="" maxlength="40">
69
+												</div>
70
+											</div>
71
+											<label class="col-xs-2 itp_lb">상태(*)</label>
72
+											<div class="col-xs-4 itp_ip">
73
+												<div class="col-xs-5 itp_in">
74
+													<select id="ITP_FORM_OPER04010_DETAIL_USE_STAT_CD" class="form-control itp_input" name="useStatCd"></select>
75
+												</div>
76
+											</div>
77
+										</div>
78
+										<div class="form-group">
79
+											<label class="col-xs-2 itp_lb">영업담당자ID</label>
80
+											<div class="col-xs-4 itp_ip">
81
+												<div class="col-xs-6 itp_in">
82
+													<div class="input-group">
83
+													<input type="text" id="ITP_FORM_OPER04010_DETAIL_SALES_USER_ID" class="form-control itp_input" name="salesUserId" value="" maxlength="10" >
84
+													<span class="input-group-btn">
85
+														<button id="ITP_FORM_OPER04010_DETAIL_DUP" class="btn btn-default btn-sm itp_btn SHOW" type="button" disabled><i class="glyphicon glyphicon-ok"></i></button>
86
+													</span>
87
+													</div>
88
+												</div>
89
+											</div>
90
+											<label class="col-xs-2 itp_lb">영업타입</label>
91
+											<div class="col-xs-4 itp_ip">
92
+												<div class="col-xs-5 itp_in">
93
+													<select id="ITP_FORM_OPER04010_DETAIL_SALES_TYPE_CD" class="form-control itp_input" name="salesTypeCd"></select>
94
+												</div>
95
+											</div>
96
+										</div>
97
+										
98
+										<div class="form-group">
99
+											<label class="col-xs-2 itp_lb">비밀번호(초기-전화번호)</label>
100
+											<div class="col-xs-4 itp_ip">
101
+												<div class="col-xs-5 itp_in">
102
+													<input type="password" id="ITP_FORM_OPER04010_DETAIL_USER_PW" class="form-control itp_input" name="userPw" value="" disabled>
103
+												</div>
104
+												<button type="button" id="ITP_BTN_OPER04010_RESET_PW" class="btn btn-danger btn-xs PWC" style="margin: 3px 0px 0px 3px;">비밀번호 초기화</button>
105
+											</div>
106
+											<label class="col-xs-2 itp_lb">대표연락처(*)</label>
107
+											<div class="col-xs-4 itp_ip">
108
+												<div class="col-xs-5 itp_in">
109
+													<input type="text" id="ITP_FORM_OPER04010_DETAIL_TEL_NO" class="form-control itp_input" name="telNo" value="">
110
+												</div>
111
+											</div>		
112
+										</div>
113
+										<div class="form-group">
114
+											<label class="col-xs-2 itp_lb">FAX</label>
115
+											<div class="col-xs-4 itp_ip">
116
+												<div class="col-xs-5 itp_in">
117
+													<input type="text" id="ITP_FORM_OPER04010_DETAIL_FAX_NO" class="form-control itp_input" name="faxNo" value="">
118
+												</div>
119
+											</div>
120
+											<label class="col-xs-2 itp_lb">이메일(*)</label>
121
+											<div class="col-xs-4 itp_ip">
122
+												<div class="col-xs-5 itp_in">
123
+													<input type="text" id="ITP_FORM_OPER04010_DETAIL_EMAIL" class="form-control itp_input" name="email" value="">
124
+												</div>
125
+											</div>											
126
+										</div>					
127
+									</div>									
128
+									<div class="itp_form_in">
129
+										<div class="form-group">
130
+											<label class="col-xs-2 itp_lb">주소(*)</label>
131
+											<div class="col-xs-10 itp_ip">
132
+												<div class="col-xs-1 itp_in">
133
+												<input type="text" id="ITP_FORM_OPER04010_DETAIL_ZIPNO" class="form-control itp_input" name="zipno" value="" maxlength="6" readonly placeholder="우편번호">													
134
+												</div>
135
+												<div class="col-xs-1 itp_in">
136
+												<button type="button" id="ITP_FORM_OPER04010_DETAIL_ADRES_SCH" class="btn btn-primary btn-xs SHOW" style="margin: 3px 0px 0px 3px;">&nbsp;&nbsp;주소검색&nbsp;&nbsp;</button>
137
+												</div>
138
+												<div class="col-xs-4 itp_in" style="margin-right: 5px;">
139
+												<input type="text" id="ITP_FORM_OPER04010_DETAIL_ADRES" class="form-control itp_input" name="adres" value="" readonly placeholder="기본주소">													
140
+												</div>
141
+												<div class="col-xs-4 itp_in">
142
+												<input type="text" id="ITP_FORM_OPER04010_DETAIL_ADRES_DTL" class="form-control itp_input" name="adresDtl" value="" placeholder="상세주소">													
143
+												</div>
144
+												
145
+												<!-- 주소 맵 -->
146
+												<input type="hidden" id="ITP_FORM_OPER04010_DETAIL_LOTS_ADDRESS" value="" />
147
+												<input type="hidden" id="ITP_FORM_OPER04010_DETAIL_STREET_ADDRESS" value="" />
148
+												<input type="hidden" name="salesUserLat" id="ITP_FORM_OPER04010_DETAIL_LAT" value="" />
149
+												<input type="hidden" name="salesUserLng" id="ITP_FORM_OPER04010_DETAIL_LNG" value="" />
150
+												<input type="hidden" id="ITP_FORM_OPER04010_DETAIL_HJ_DONG" value="" />
151
+												<input type="hidden" id="ITP_FORM_OPER04010_DETAIL_BJ_DONG" value="" />
152
+												<div id="ITP_FORM_OPER04010_DETAIL_MAP" style="width:700px; height:400px; margin-top:35px;"></div>
153
+											</div>
154
+										</div>
155
+									</div>
156
+									<div class="itp_form_in">
157
+										<div class="form-group border">
158
+											<label class="col-xs-2 itp_lb">등록일시</label>
159
+											<div class="col-xs-4 itp_ip">
160
+												<div class="col-xs-5 itp_in fnAddDt"></div>
161
+											</div>
162
+											<label class="col-xs-2 itp_lb">최종수정일시</label>
163
+											<div class="col-xs-4 itp_ip">
164
+												<div class="col-xs-5 itp_in fnChgDt"></div>
165
+											</div>
166
+										</div>
167
+									</div>
168
+								</section>								
169
+							</form>
170
+						</div>
171
+					</div>					
172
+				</div>
173
+				<div id="ITP_AJAX_OPER04010_VIEW_CONTAINER">
174
+					<div class="itp_form itp_type1 fix">
175
+						<div class="col-xs-12">
176
+							<form id="ITP_FORM_OPER04010_VIEW" class="form-horizontal">
177
+								<input type="hidden" id="ITP_FORM_OPER04010_VIEW_VIEW_CD" name="viewCd" value="R">
178
+								<input type="hidden" id="ITP_FORM_OPER04010_VIEW_SALES_USER_ID" name="salesUserId" value="">
179
+					
180
+								<section class="itp_form_sec">
181
+									<h4 class="itp_form_tit">영업담당자정보</h4>
182
+									<div class="itp_form_in">
183
+										<div class="form-group">
184
+											<label class="col-xs-2 itp_lb">영업담당자명(*)</label>
185
+											<div class="col-xs-4 itp_ip">
186
+												<div class="col-xs-5 itp_in fnSalesUserNm"></div>
187
+											</div>
188
+											<label class="col-xs-2 itp_lb">상태</label>
189
+											<div class="col-xs-4 itp_ip">
190
+												<div class="col-xs-5 itp_in fnUseStatNm"></div>
191
+											</div>
192
+										</div>
193
+										<div class="form-group">
194
+											<label class="col-xs-2 itp_lb">영업담당자ID</label>
195
+											<div class="col-xs-4 itp_ip">
196
+												<div class="col-xs-5 itp_in fnSalesUserId"></div>
197
+											</div>
198
+											<label class="col-xs-2 itp_lb">형태</label>
199
+											<div class="col-xs-4 itp_ip">
200
+												<div class="col-xs-5 itp_in fnSalesTypeNm"></div>
201
+											</div>
202
+										</div>
203
+									</div>
204
+									<div class="itp_form_in">
205
+											<div class="form-group">
206
+												<div class="col-xs-6 itp_ip">
207
+												</div>
208
+												<label class="col-xs-2 itp_lb">연락처</label>
209
+												<div class="col-xs-4 itp_ip">
210
+													<div class="col-xs-5 itp_in fnTelNo"></div>
211
+												</div>
212
+											</div>
213
+									</div>
214
+									<div class="itp_form_in">
215
+										<div class="form-group">
216
+											<label class="col-xs-2 itp_lb">FAX</label>
217
+											<div class="col-xs-4 itp_ip">
218
+												<div class="col-xs-5 itp_in fnFaxNo"></div>
219
+											</div>
220
+											<label class="col-xs-2 itp_lb">이메일(*)</label>
221
+											<div class="col-xs-4 itp_ip">
222
+												<div class="col-xs-5 itp_in fnEmail"></div>
223
+											</div>											
224
+										</div>					
225
+									</div>									
226
+									<div class="itp_form_in">
227
+										<div class="form-group">
228
+											<label class="col-xs-2 itp_lb">주소(*)</label>
229
+											<div class="col-xs-10 itp_ip">
230
+												<div class="col-xs-10 itp_in fnAddress"></div>
231
+												
232
+												<!-- 주소 맵 -->
233
+												<div id="ITP_FORM_OPER04010_VIEW_MAP" style="width:700px; height:400px; margin-top:27px;"></div>
234
+											</div>
235
+										</div>
236
+									</div>
237
+									<div class="itp_form_in">
238
+										<div class="form-group border">
239
+											<label class="col-xs-2 itp_lb">등록일시</label>
240
+											<div class="col-xs-4 itp_ip">
241
+												<div class="col-xs-5 itp_in fnAddDt"></div>
242
+											</div>
243
+											<label class="col-xs-2 itp_lb">최종수정일시</label>
244
+											<div class="col-xs-4 itp_ip">
245
+												<div class="col-xs-5 itp_in fnChgDt"></div>
246
+											</div>
247
+										</div>
248
+									</div>
249
+								</section>								
250
+							</form>
251
+						</div>
252
+					</div>						
253
+				</div>
254
+			</div>
255
+		</article>
256
+	</div>
257
+	
258
+	<div id="ITP_TAP_JS"></div>	
259
+</section>

+ 11 - 11
bin/src/main/webapp/app/stinfo/STINFO01010.html

@@ -20,7 +20,7 @@
20 20
 								<form id="ITP_FORM_STINFO01010_SEARCH" class="form-horizontal">
21 21
 									<div class="form-group">
22 22
 										<div class="col-xs-2 itp_ip itp_noMar">
23
-											<select id="ITP_FORM_STINFO01010_DETAIL_USER_STAT_CD" class="form-control itp_input" name="ST_CD"></select>
23
+											<select id="ITP_FORM_STINFO01010_SEARCH_USER_STAT_CD" class="form-control itp_input" name="ST_CD"></select>
24 24
 										</div>
25 25
 										<div class="col-xs-2 itp_ip itp_noMar">
26 26
 											<select id="ITP_FORM_STINFO01010_SEARCH_USER_STAT_CD" class="form-control itp_input" name="ST_CD"></select>
@@ -117,7 +117,7 @@
117 117
 											<label class="col-xs-2 itp_lb">이메일</label>
118 118
 											<div class="col-xs-4 itp_ip">
119 119
 												<div class="col-xs-7 itp_in">
120
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" class="form-control itp_input" name="EMAL_ADDR" value="">
120
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAL_ADDR" class="form-control itp_input" name="EMAL_ADDR" value="">
121 121
 												</div>
122 122
 											</div>
123 123
 											<label class="col-xs-2 itp_lb"style="border-top:none;"></label>
@@ -126,7 +126,7 @@
126 126
 													<label class="col-xs-12"></label>
127 127
 												</div>
128 128
 												<div class="col-xs-5 itp_in">
129
-													<button type="button" id="ITP_BTN_STINFO01010_DETAIL_ADDROW" class="btn btn-primary btn-sm FFB" style="display: inline-block;"><i class="glyphicon"></i>파일선택</button>
129
+													<button type="button" id="ITP_BTN_STINFO01010_DETAIL_FILE_SEARCH" class="btn btn-primary btn-sm FFB" style="display: inline-block;"><i class="glyphicon"></i>파일선택</button>
130 130
 												</div>
131 131
 											</div>
132 132
 										</div>
@@ -141,10 +141,10 @@
141 141
 														</select>
142 142
 													</div>
143 143
 													<div class="col-xs-4 itp_in">
144
-														<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="RCV_ACCT_NO" value="" placeholder="계좌번호">													
144
+														<input type="text" id="ITP_FORM_STINFO01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="RCV_ACCT_NO" value="" placeholder="계좌번호">													
145 145
 													</div>
146 146
 													<div class="col-xs-2 itp_in">
147
-														<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="OWAC_NM" value="" placeholder="예금주명">													
147
+														<input type="text" id="ITP_FORM_STNFO01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="OWAC_NM" value="" placeholder="예금주명">													
148 148
 													</div>										
149 149
 												</div>
150 150
 											</div>
@@ -154,16 +154,16 @@
154 154
 												<label class="col-xs-2 itp_lb">주소</label>
155 155
 												<div class="col-xs-10 itp_ip">
156 156
 													<div class="col-xs-2 itp_in">
157
-													<input type="text" id="ITP_FORM_KOPER01010_DETAIL_ZIPNO" class="form-control itp_input" name="ZIP_NO" value="" maxlength="6" readonly placeholder="우편번호">													
157
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_ZIPNO" class="form-control itp_input" name="ZIP_NO" value="" maxlength="6" readonly placeholder="우편번호">													
158 158
 													</div>
159 159
 													<div class="col-xs-1 itp_in">
160
-													<button type="button" id="ITP_FORM_KOPER01010_DETAIL_ADRES_SCH" class="btn btn-primary btn-xs SHOW" style="margin: 3px 0px 0px 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
160
+													<button type="button" id="ITP_FORM_STINFO01010_DETAIL_ADRES_SCH" class="btn btn-primary btn-xs SHOW" style="margin: 3px 0px 0px 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
161 161
 													</div>
162 162
 													<div class="col-xs-4 itp_in" style="margin-right: 5px;">
163
-													<input type="text" id="ITP_FORM_KOPER01010_DETAIL_LOAD_ADDR" class="form-control itp_input" name="LOAD_ADDR" value="" readonly placeholder="기본주소">													
163
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_LOAD_ADDR" class="form-control itp_input" name="LOAD_ADDR" value="" readonly placeholder="기본주소">													
164 164
 													</div>
165 165
 													<div class="col-xs-4 itp_in">
166
-													<input type="text" id="ITP_FORM_KOPER01010_DETAIL_DTL_ADDR" class="form-control itp_input" name="DTL_ADDR" value="" placeholder="상세주소">													
166
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_DTL_ADDR" class="form-control itp_input" name="DTL_ADDR" value="" placeholder="상세주소">													
167 167
 													</div>
168 168
 												</div>
169 169
 											</div>	
@@ -177,8 +177,8 @@
177 177
 					<div class="itp_form itp_type1 fix">
178 178
 						<div class="col-xs-12">
179 179
 							<form id="ITP_FORM_STINFO01010_VIEW" class="form-horizontal">
180
- 								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_VIEW_CD" name="viewCd" value="R">
181
- 								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_USER_ID" name="userId" value="">
180
+ 								<input type="hidden" id="ITP_FORM_STINFO01010_VIEW_VIEW_CD" name="viewCd" value="R">
181
+ 								<input type="hidden" id="ITP_FORM_STINFO01010_VIEW_USER_ID" name="userId" value="">
182 182
 								
183 183
 								<section class="itp_form_sec">
184 184
 									<h4 class="itp_form_tit">브랜드 정보-상세</h4>

+ 39 - 92
bin/src/main/webapp/app/stinfo/STINFO02010.html

@@ -35,22 +35,22 @@
35 35
 									</div>
36 36
 									<div class="form-group">
37 37
 										<div class="col-xs-2 itp_ip itp_noMar">
38
-											<select id="ITP_FORM_STINFO02010_STORE_DVSN" class="form-control itp_input">
39
-												<option value="">매장타입</option>
38
+											<select id="ITP_FORM_STINFO02010_SERVICE_STORE_DVSN" class="form-control itp_input" name="STORE_DVSN">
39
+												<option value="">매장구분</option>
40 40
 											</select>
41 41
 										</div>
42 42
 										<div class="col-xs-2 itp_ip itp_noMar">
43
-											<select id="ITP_FORM_STINFO02010_SERVICE_ST_DT" class="form-control itp_input">
43
+											<select id="ITP_FORM_STINFO02010_SERVICE_STORE_ST_CD" class="form-control itp_input" name="STORE_ST_CD">
44 44
 												<option value="">매장상태</option>
45 45
 											</select>
46 46
 										</div>
47 47
 										<div class="col-xs-2 itp_ip itp_noMar">
48
-											<select id="ITP_FORM_STINFO02010_SERVICE_ST_DT" class="form-control itp_input">
48
+											<select id="ITP_FORM_STINFO02010_SERVICE_LOAN_DVSN" class="form-control itp_input" name="LOAN_DVSN">
49 49
 												<option value="">정산타입</option>
50 50
 											</select>
51 51
 										</div>
52 52
 										<div class="col-xs-4 itp_ip itp_noMar">
53
-											<input type="text" id="ITP_FORM_STINFO02010_STORE_NM" class="form-control itp_input" name="STORE_NM" placeholder="매장 명" />
53
+											<input type="text" id="ITP_FORM_STINFO02010_SERVICE_STORE_NM" class="form-control itp_input" name="STORE_NM" placeholder="매장 명" />
54 54
 										</div>
55 55
 									</div>
56 56
 								</form>
@@ -234,12 +234,12 @@
234 234
 										<div class="form-group border">
235 235
 											<label class="col-xs-2 itp_lb">브랜드 계좌정보</label>
236 236
 											<div class="col-xs-4 itp_ip">
237
-												<div class="col-xs-12 itp_in RCV_ACCT_NO"></div>
237
+												<div class="col-xs-12 itp_in BRAND_ACCT_INFO"></div>
238 238
 											</div>
239 239
 											<label class="col-xs-2 itp_lb">정산타입*</label>
240 240
 											<div class="col-xs-4 itp_ip">
241 241
 												<div class="col-xs-7 itp_in">
242
-									                <select id="ITP_FORM_STINFO02010_DEL_YN" class="form-control itp_input" name="delYn">
242
+									                <select id="ITP_FORM_STINFO02010_DETAIL_LOAN_DVSN" class="form-control itp_input" name="delYn">
243 243
 														<option value="N">선입금/후불(신용)</option>
244 244
 													</select>
245 245
 												</div>
@@ -258,24 +258,19 @@
258 258
 					<div class="itp_form itp_type1 fix">
259 259
 						<div class="col-xs-12">
260 260
 							<form id="ITP_FORM_STINFO02010_VIEW" class="form-horizontal">
261
-								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_VIEW_CD" name="viewCd" value="C">
262
-								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_NTICE_NO" name="nticeNo" value="">
263
-								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_FILE_NO" name="fileNo" value="">
264
-				
261
+								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_VIEW_CD" name="viewCd" value="R">
262
+								 <input type="hidden" id="ITP_FORM_STINFO02010_VIEW_USER_ID" name="userId" value="">
265 263
 								<section class="itp_form_sec">
266 264
 									<h4 class="itp_form_tit">매장정보-상세</h4>
267 265
 									<div class="itp_form_in">
268 266
 										<div class="form-group">
269 267
 											<label class="col-xs-2 itp_lb">브랜드 *</label>
270 268
 											<div class="col-xs-4 itp_ip">
271
-												<div class="col-xs-10 itp_in">
272
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL" style="border:none;" class="itp_input" name="STORE_NM" placeholder="테스트 브랜드">
273
-												</div>
269
+												<div class="col-xs-10 itp_in BRAND_NM"></div>
274 270
 											</div>
275 271
 											<label class="col-xs-2 itp_lb">상태 *</label>
276 272
 											<div class="col-xs-4 itp_ip">
277
-												<div class="col-xs-7 itp_in">
278
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL" style="border:none;" class="itp_input" name="ST_CD" placeholder="">
273
+												<div class="col-xs-7 itp_in ST_CD">
279 274
 												</div>
280 275
 											</div>
281 276
 										</div>
@@ -284,14 +279,11 @@
284 279
 										<div class="form-group">
285 280
 											<label class="col-xs-2 itp_lb">매장번호</label>
286 281
 											<div class="col-xs-4 itp_ip">
287
-												<div class="col-xs-10 itp_in">
288
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL"style="border:none;" class="itp_input" name="STORE_NM" value="SH202201">
289
-												</div>
282
+												<div class="col-xs-10 itp_in STORE_NM"></div>
290 283
 											</div>
291 284
 											<label class="col-xs-2 itp_lb">매장구분 *</label>
292 285
 											<div class="col-xs-4 itp_ip">
293
-												<div class="col-xs-7 itp_in">
294
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL"style="border:none;" class="itp_input" name="STORE_NM" value="체인가맹">
286
+												<div class="col-xs-7 itp_in STORE_DVSN">
295 287
 												</div>
296 288
 											</div>
297 289
 										</div>
@@ -300,14 +292,12 @@
300 292
 										<div class="form-group">
301 293
 											<label class="col-xs-2 itp_lb">매장명 *</label>
302 294
 											<div class="col-xs-4 itp_ip">
303
-												<div class="col-xs-9 itp_in">
304
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="STORE_NM" value="문정 1호점">
295
+												<div class="col-xs-9 itp_in STORE_NM">
305 296
 												</div>
306 297
 											</div>
307 298
 											<label class="col-xs-2 itp_lb">업태</label>
308 299
 											<div class="col-xs-4 itp_ip">
309
-												<div class="col-xs-7 itp_in">
310
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="BSNS_CNDT" value="식음료">
300
+												<div class="col-xs-7 itp_in BSNS_CNDT">
311 301
 												</div>
312 302
 											</div>
313 303
 										</div>
@@ -316,14 +306,12 @@
316 306
 										<div class="form-group">
317 307
 											<label class="col-xs-2 itp_lb">사업자번호 *</label>
318 308
 											<div class="col-xs-4 itp_ip">
319
-												<div class="col-xs-6 itp_in">
320
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="BSNS_REG_NO" value="123-45-7896">
309
+												<div class="col-xs-6 itp_in BSNS_REG_NO">
321 310
 												</div>
322 311
 											</div>
323 312
 											<label class="col-xs-2 itp_lb">업종</label>
324 313
 											<div class="col-xs-4 itp_ip">
325
-												<div class="col-xs-7 itp_in">
326
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="CTGR_BSNS" value="음식점">
314
+												<div class="col-xs-7 itp_in CTGR_BSNS">
327 315
 												</div>
328 316
 											</div>
329 317
 										</div>
@@ -332,14 +320,12 @@
332 320
 										<div class="form-group">
333 321
 											<label class="col-xs-2 itp_lb">법인번호</label>
334 322
 											<div class="col-xs-4 itp_ip">
335
-												<div class="col-xs-6 itp_in">
336
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="CORP_REG_NO" value="">
323
+												<div class="col-xs-6 itp_in CORP_REG_NO">
337 324
 												</div>
338 325
 											</div>
339 326
 											<label class="col-xs-2 itp_lb">전화번호 *</label>
340 327
 											<div class="col-xs-4 itp_ip">
341
-												<div class="col-xs-7 itp_in">
342
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="TEL_NO" value="02-1458-5847">
328
+												<div class="col-xs-7 itp_in TEL_NO">
343 329
 												</div>
344 330
 											</div>
345 331
 										</div>
@@ -348,14 +334,12 @@
348 334
 										<div class="form-group">
349 335
 											<label class="col-xs-2 itp_lb">점주/대표자명*</label>
350 336
 											<div class="col-xs-4 itp_ip">
351
-												<div class="col-xs-6 itp_in">
352
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_NUM" style="border: none;" class="itp_input" name="OWNER_NM" value="홍길동">
337
+												<div class="col-xs-6 itp_in OWNER_NM">
353 338
 												</div>
354 339
 											</div>
355 340
 											<label class="col-xs-2 itp_lb">FAX</label>
356 341
 											<div class="col-xs-4 itp_ip">
357
-												<div class="col-xs-7 itp_in">
358
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="FAX_NO" value="02-1234-1458">
342
+												<div class="col-xs-7 itp_in FAX_NO">
359 343
 												</div>
360 344
 											</div>
361 345
 										</div>
@@ -364,14 +348,12 @@
364 348
 										<div class="form-group">
365 349
 											<label class="col-xs-2 itp_lb">핸드폰</label>
366 350
 											<div class="col-xs-4 itp_ip">
367
-												<div class="col-xs-6 itp_in">
368
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="MBL_NO" value="010-6574-4758">
351
+												<div class="col-xs-6 itp_in MBL_NO">
369 352
 												</div>
370 353
 											</div>
371 354
 											<label class="col-xs-2 itp_lb">이메일</label>
372 355
 											<div class="col-xs-4 itp_ip">
373
-												<div class="col-xs-7 itp_in">
374
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="EMAL_ADDR" value="aa@bb.co.kr">
356
+												<div class="col-xs-7 itp_in EMAL_ADDR">
375 357
 												</div>
376 358
 											</div>
377 359
 										</div>
@@ -380,16 +362,14 @@
380 362
 										<div class="form-group">
381 363
 											<label class="col-xs-2 itp_lb">지역 *</label>
382 364
 											<div class="col-xs-4 itp_ip">
383
-												<div class="col-xs-6 itp_in">
384
-													<input type="text" id="ITP_FORM_STINFO02010_SEARCH_FROM_DT" style="border: none;" class="itp_input" name="AREA_CD" value="서울" readonly>
365
+												<div class="col-xs-6 itp_in AREA_CD">
385 366
 												</div>
386 367
 											</div>
387 368
 											<label class="col-xs-2 itp_lb">오픈일</label>
388 369
 											<div class="col-xs-5 itp_ip">
389
-												<div class="col-xs-7 itp_in">
390
-												<div class=" input-group date">
391
-													<input type="text" id="ITP_FORM_STINFO02010_SEARCH_FROM_DT" style="border: none;" class="itp_input" name="REG_DT" value="2022.08.10" readonly>
392
-												</div>
370
+												<div class="col-xs-7 itp_in FROM_DT">
371
+													<div class="input-daterange input-group date itp_in">
372
+													</div>
393 373
 												</div>
394 374
 											</div>
395 375
 										</div>
@@ -398,14 +378,10 @@
398 378
 										<div class="form-group">
399 379
 											<label class="col-xs-2 itp_lb">주소 *</label>
400 380
 											<div class="col-xs-10 itp_ip">
401
-												<div class="col-xs-1 itp_in">
402
-												<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO" style="border: none;" class="itp_input" name="cmpyZipno" value="02145" maxlength="6" readonly placeholder="">													
403
-												</div>
404
-												<div class="col-xs-2 itp_in" style="margin-right: 5px;">
405
-												<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES" style="border: none;" class="itp_input" name="cmpyAdres" value="서울시 송파구 문정동" readonly placeholder="">													
406
-												</div>
407
-												<div class="col-xs-2 itp_in">
408
-												<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES_DTL" style="border: none;" class="itp_input" name="cmpyAdresDtl" value="125" placeholder="">													
381
+												<div class="col-xs-7 itp_in">
382
+													<input type="text" id="ITP_FORM_STINFO02010_VIEW_ZIP_NO" class="form-control itp_input" name="ZIP_NO" value="" maxlength="6" placeholder="우편번호">													
383
+													<input type="text" id="ITP_FORM_STINFO02010_VIEW_LOAD_ADDR" class="form-control itp_input" name="LOAD_ADDR" value="" placeholder="기본주소">													
384
+													<input type="text" id="ITP_FORM_STINFO02010_VIEW_DTL_ADDR" class="form-control itp_input" name="DTL_ADDR" value="" placeholder="상세주소">													
409 385
 												</div>
410 386
 											</div>
411 387
 										</div>
@@ -414,53 +390,24 @@
414 390
 										<div class="form-group">
415 391
 											<label class="col-xs-2 itp_lb"></label>
416 392
 											<div class="col-xs-10 itp_ip">
417
-												 <iframe src="https://www.google.com/maps/embed?pb=!1m22!1m12!1m3!1d664.8353436219965!2d126.97778946338448!3d37.56666132876259!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!4m7!3e6!4m4!2z7ISc7Jq47Iuc7LKtIOuzuOyyrQ!3m2!1d37.566634!2d126.9783621!4m0!5e0!3m2!1sko!2skr!4v1663562234284!5m2!1sko!2skr" width="600" height="300" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
393
+												 <iframe src="https://www.google.com/maps/embed?pb=!1m22!1m12!1m3!1d664.8353436219965!2d126.97778946338448!3d37.56666132876259!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!4m7!3e6!4m4!2z7ISc7Jq47Iuc7LKtIOuzuOyyrQ!3m2!1d37.566634!2d126.9783621!4m0!5e0!3m2!1sko!2skr!4v1663562234284!5m2!1sko!2skr" width="600" height="400" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
418 394
 											</div>
419
-											
420 395
 										</div>
421 396
 									</div>
422
-										
423 397
 									<div class="itp_form_in">
424
-										<div class="form-group ">
425
-											<label class="col-xs-2 itp_lb">입금 계좌정보</label>
398
+										<div class="form-group border">
399
+											<label class="col-xs-2 itp_lb">브랜드 계좌정보</label>
426 400
 											<div class="col-xs-4 itp_ip">
427
-												<input type="text" id="ITP_FORM_STINFO01010_DETAIL_RCV_ACCT_NO" style="border:none;" class="col-xs-10 itp_input" name="RCV_ACCT_NO" value="AAA브랜드 기업은행 123-1234-12345">
401
+												<div class="col-xs-12 itp_in BRAND_ACCT_INFO"></div>
428 402
 											</div>
429 403
 											<label class="col-xs-2 itp_lb">정산타입*</label>
430 404
 											<div class="col-xs-4 itp_ip">
431 405
 												<div class="col-xs-7 itp_in">
432
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border:none;" class="col-xs-10 itp_input" name="STORE_NM" value="후불(신용)-한도:  ">
433
-												</div>
434
-												<div class="col-xs-2 itp_in" style="left:-60px;">
435
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="CREDT_LIMIT_AMT" value="1,000,000">
436
-												</div>
437
-											</div>
438
-										</div>
439
-									</div>
440
-									<div class="itp_form_in">
441
-										<div class="form-group ">
442
-											<label class="col-xs-2 itp_lb">가수금액</label>
443
-											<div class="col-xs-4 itp_ip">
444
-												<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border:none;" class="col-xs-10 itp_input" name="STORE_NM" value="1,000,000(선입금일때 존재)">
445
-											</div>
446
-											<label class="col-xs-2 itp_lb">현 잔여한도</label>
447
-											<div class="col-xs-4 itp_ip">
448
-												<div class="col-xs-7 itp_in">
449
-												<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border:none;" class="col-xs-10 itp_input" name="STORE_NM" value="500,000">
450
-												</div>
451
-											</div>
452
-										</div>
453
-									</div>
454
-									<div class="itp_form_in">
455
-										<div class="form-group border">
456
-											<label class="col-xs-2 itp_lb">등록일</label>
457
-												<div class="col-xs-4 itp_ip">
458
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_REG_DT" style="border:none;" class="col-xs-10 itp_input" name="REG_DT" value="2022.08.10">
406
+													<select id="ITP_FORM_STINFO02010_VIEW_YN" class="form-control itp_input" name="delYn">
407
+														<option value="N">선입금/후불(신용)</option>
408
+													</select>
459 409
 												</div>
460
-											<label class="col-xs-2 itp_lb">폐점일</label>
461
-											<div class="col-xs-4 itp_ip">
462
-												<div class="col-xs-7 itp_in">
463
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_CLOSE_DT" style="border:none;" class="col-xs-10 itp_input" name="CLOSE_DT" value="-">
410
+												<div class="col-xs-4 itp_in CREDT_LIMIT_AMT">
464 411
 												</div>
465 412
 											</div>
466 413
 										</div>

+ 860 - 0
bin/src/main/webapp/js/app/koper/ITP_KOPER01010.js

@@ -0,0 +1,860 @@
1
+
2
+const KOPER01010_GRID_ID = '#ITP_KOPER01010_jqGrid';
3
+const KOPER01010_GRID_LIST = '#ITP_KOPER01010_jqGrid_list';
4
+const KOPER01010_GRID_PAGER = '#ITP_KOPER01010_jqGridPager';
5
+const KOPER01010_GRID_EMPTY = '#ITP_KOPER01010_jqGridEmpty';
6
+
7
+const KOPER01010_VIEW_GRID_ID = '#ITP_KOPER01010_VIEW_jqGrid';
8
+const KOPER01010_VIEW_GRID_LIST = '#ITP_KOPER01010_VIEW_jqGrid_list';
9
+const KOPER01010_VIEW_GRID_PAGER = '#ITP_KOPER01010_VIEW_jqGridPager';
10
+const KOPER01010_VIEW_GRID_EMPTY = '#ITP_KOPER01010_VIEW_jqGridEmpty';
11
+
12
+const KOPER01010_DETAIL_GRID_ID = '#ITP_KOPER01010_DETAIL_jqGrid';
13
+const KOPER01010_DETAIL_GRID_LIST = '#ITP_KOPER01010_DETAIL_jqGrid_list';
14
+const KOPER01010_DETAIL_GRID_PAGER = '#ITP_KOPER01010_DETAIL_jqGridPager';
15
+const KOPER01010_DETAIL_GRID_EMPTY = '#ITP_KOPER01010_DETAIL_jqGridEmpty';
16
+
17
+
18
+let ITP_FORM_KOPER01010_DETAIL_IS_DUPLICATE = false;
19
+let ITP_FORM_KOPER01010_DETAIL_IS_WRITING = false;
20
+
21
+let COMPANY_GRID_LIST = '/api/frcomp/grid-list';
22
+let USER_SALESUSER_GRID_LIST = '/api/frcomp/cmpy-saleusers-list'; 
23
+let COMPANY_INFO_COMPANY = '/api/frcomp/info-frcomp';
24
+let COMPANY_SAVE_COMPANY = '/api/frcomp/save-frcomp';
25
+let COMPANY_CHECK_DUPLICATE = '/api/frcomp/check-duplicate';
26
+let USER_INTI_USERPW = '/api/user/inti-userpw';
27
+
28
+require(['config'], function() {
29
+	require([
30
+		'jquery', 
31
+		'kakao.postcode', 
32
+		'kakao.maps'
33
+	], function($) {
34
+		// 버튼 권한설정
35
+		fn_proc_btn_auth('KOPER01010');
36
+		// 공통코드 표시
37
+		fn_make_select(CODE_LIST, 'CMPY_STAT_CD', 'ITP_FORM_KOPER01010_SEARCH_CMPY_STAT_CD');
38
+		fn_make_select(CODE_LIST, 'CMPY_STAT_CD', 'ITP_FORM_KOPER01010_DETAIL_CMPY_STAT_CD', true, '선택');
39
+		fn_make_select(CODE_LIST, 'CMPY_TYPE_CD', 'ITP_FORM_KOPER01010_DETAIL_CMPY_TYPE_CD', true, '선택');
40
+		fn_make_select(CODE_LIST, 'FRCOMP_AUTH_CD', 'ITP_FORM_KOPER01010_DETAIL_FRCOMP_AUTH_CD', true, '선택');
41
+		
42
+		// 조회일자 지정
43
+		// var now = new Date();
44
+		$('#ITP_TAB_KOPER01010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
45
+		// $('#ITP_FORM_KOPER01010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
46
+		// $('#ITP_FORM_KOPER01010_SEARCH_TO_DT').datepicker('setDate', new Date());
47
+				
48
+		// 그리드				
49
+		itp_fn_jqgrid_resize(KOPER01010_GRID_ID, KOPER01010_GRID_LIST, 'lg');
50
+		itp_fn_KOPER01010_grid.init();
51
+    	itp_fn_fire_window_resize();
52
+
53
+		// 조회    	
54
+    	itp_fn_KOPER01010_search();
55
+    	
56
+		// 조회 버튼 클릭
57
+		$('#ITP_BTN_KOPER01010_SRH').on('click', function() {
58
+			itp_KOPER01010_search = true;
59
+			let param = $('#ITP_FORM_KOPER01010_SEARCH').serializeObject();
60
+			param.gridSize = $.jgrid.defaults.rowNum;
61
+			param.gridPage = $.jgrid.defaults.page;
62
+			$(KOPER01010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
63
+		});
64
+		
65
+		// 수정 버튼
66
+		$('#ITP_BTN_KOPER01010_MODIFY').on('click', function() {
67
+			itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER01010_DETAIL');			
68
+			const cmpyCdVal = $('#ITP_FORM_KOPER01010_VIEW_CMPY_CD').val();
69
+			const key = {cmpyCd: cmpyCdVal, viewCd: 'R'};
70
+			var param = $.param(key);
71
+			itp_fn_KOPER01010_detail(param);	
72
+		});
73
+		
74
+		// 신규등록 버튼
75
+		$('#ITP_BTN_KOPER01010_NEWREG').on('click', function() {
76
+			itp_fn_KOPER01010_switch_screen('ADD');			
77
+			itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER01010_DETAIL');
78
+			itp_fn_KOPER01010_detail_map($('#ITP_FORM_KOPER01010_DETAIL_STREET_ADDRESS').val());	
79
+			
80
+			// 영업담당자 리스트 조회		
81
+			itp_fn_KOPER01010_detail_grid.unload();
82
+			itp_fn_KOPER01010_detail_grid.callBack();	
83
+		});
84
+		
85
+		// 취소/목록 버튼
86
+		$('#ITP_BTN_KOPER01010_CANCELLIST').on('click', function() {
87
+			itp_fn_KOPER01010_search();
88
+    	});
89
+		
90
+		// 삭제 버튼
91
+		$('#ITP_BTN_KOPER01010_DELETE').on('click', function() {
92
+			
93
+		});
94
+		
95
+		// 저장 버튼
96
+		$('#ITP_BTN_KOPER01010_SAVE').on('click', function() {			
97
+			const formId = '#ITP_FORM_KOPER01010_DETAIL';
98
+			itp_fn_form_clear_validate(null, formId);			
99
+			var vali_cmpyCd = itp_fn_form_validate(formId, formId + '_CMPY_CD', ['empty'], undefined);
100
+			var vali_cmpyStatCd = itp_fn_form_validate(formId, formId + '_CMPY_STAT_CD', ['empty'], undefined);
101
+			var vali_cmpyTypeCd = itp_fn_form_validate(formId, formId + '_CMPY_TYPE_CD', ['empty'], undefined);
102
+			var vali_cmpyNm = itp_fn_form_validate(formId, formId + '_CMPY_NM', ['empty'], undefined);			
103
+			var vali_bossNm = itp_fn_form_validate(formId, formId + '_BOSS_NM', ['empty'], undefined);
104
+			var vali_mainTel = itp_fn_form_validate(formId, formId + '_MAIN_TEL', ['empty'], undefined);
105
+			var vali_mainEmail = itp_fn_form_validate(formId, formId + 'MAIN_EMAIL', ['empty'], undefined);
106
+			
107
+			if (vali_cmpyCd && vali_cmpyStatCd && vali_cmpyTypeCd && vali_cmpyNm && vali_bossNm && vali_mainTel && vali_mainEmail) {
108
+				
109
+				if($('#ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO').val() == '' || $('#ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES').val() == '') {
110
+					itp_fn_modal_alert('주소 검색을 통해 회사 주소를 입력하세요.');
111
+					return;
112
+				}
113
+				
114
+				if (ITP_FORM_KOPER01010_DETAIL_IS_DUPLICATE) {
115
+					itp_fn_modal_duplicate('회사코드 중복체크를 해주세요.', formId + '_CMPY_CD');
116
+				} else {
117
+					let gridInsertData = [];
118
+					let gridUpdateData = [];
119
+					let gridDeleteData = [];
120
+					const rowData = $(KOPER01010_DETAIL_GRID_ID).getRowData();
121
+					const keyValue = $(formId + '_CMPY_CD').val();
122
+					$.each(rowData, function(key, value) {
123
+						if (value.viewCd != 'R') {
124
+							value.userId = keyValue;
125
+							if (value.viewCd == 'C') {
126
+								gridInsertData.push(value);
127
+							} else if (value.viewCd == 'U') {
128
+								gridUpdateData.push(value);
129
+							} else if (value.viewCd == 'D') {
130
+								gridDeleteData.push(value);
131
+							}
132
+						}
133
+					});
134
+					
135
+					let param = $(formId).serializeObject();
136
+					param.gridInsertData = gridInsertData;
137
+					param.gridUpdateData = gridUpdateData;
138
+					param.gridDeleteData = gridDeleteData;
139
+					var searhFn = function() {
140
+						ITP_FORM_KOPER01010_DETAIL_IS_WRITING = false;
141
+						itp_fn_KOPER01010_search();
142
+					};
143
+					console.log(JSON.stringify(param));
144
+					fn_ajax_call(COMPANY_SAVE_COMPANY, JSON.stringify(param), searhFn, 'POST');	
145
+				}
146
+			}
147
+		});		
148
+		
149
+		// 중복체크
150
+		$('#ITP_FORM_KOPER01010_DETAIL_DUP').on('click', function() {
151
+			const formId = '#ITP_FORM_KOPER01010_DETAIL';
152
+			itp_fn_form_clear_validate(null, formId + '_DETAIL');
153
+			var vali_cmpyCd = itp_fn_form_validate(formId + '_DETAIL', formId + '_CMPY_CD', ['empty'], undefined);
154
+			if (vali_cmpyCd) {
155
+				var dupFn = function(result) {
156
+					if (result.code == 'N') {
157
+						ITP_FORM_KOPER01010_DETAIL_IS_DUPLICATE = false;
158
+					} else {
159
+						ITP_FORM_KOPER01010_DETAIL_IS_DUPLICATE = true;
160
+					}
161
+				};
162
+				const key = {'cmpyCd':  $(formId + '_CMPY_CD').val()};
163
+				const param = $.param(key);
164
+				fn_ajax_call(COMPANY_CHECK_DUPLICATE, param, dupFn, 'GET');
165
+			}
166
+		});
167
+		
168
+		// 상세:비밀번호 초기화
169
+		$('#ITP_BTN_KOPER01010_RESET_PW').on('click', function() {
170
+			var resetPwFn = {
171
+				callBack: function(args) {
172
+					const key = {'userId':  $('#ITP_FORM_KOPER01010_DETAIL_CMPY_CD').val()};
173
+					const param = $.param(key);
174
+					fn_ajax_call(USER_INTI_USERPW, param, undefined, 'GET');					
175
+				}
176
+			};
177
+			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);		
178
+		});
179
+		
180
+		$('#ITP_FORM_KOPER01010_DETAIL_ADRES_SCH').on('click', function() {
181
+			new daum.Postcode({
182
+		    	oncomplete: function(data) {
183
+					// 전체주소 리턴
184
+					document.getElementById('ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO').value = data.zonecode;
185
+					document.getElementById('ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES').value = data.roadAddress;
186
+					document.getElementById('ITP_FORM_KOPER01010_DETAIL_LOTS_ADDRESS').value = !!data.autoJibunAddress ? data.autoJibunAddress : data.jibunAddress;
187
+					document.getElementById('ITP_FORM_KOPER01010_DETAIL_STREET_ADDRESS').value = data.roadAddress;
188
+					document.getElementById('ITP_FORM_KOPER01010_DETAIL_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
189
+					document.getElementById('ITP_FORM_KOPER01010_DETAIL_BJ_DONG').value = data.bname;
190
+					
191
+					itp_fn_KOPER01010_detail_map(data.roadAddress);
192
+					document.getElementById('ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES_DTL').focus();		  
193
+		        }
194
+			}).open();
195
+		});
196
+		
197
+		
198
+		$('#ITP_BTN_KOPER01010_DETAIL_ADDROW').on('click', function() {
199
+			// 팝업
200
+			var popFn = function(rowDataPop) {
201
+				// 기존등록 데이터 
202
+				var exists = '';				
203
+				const rowData = $(KOPER01010_DETAIL_GRID_ID).getRowData();
204
+				$.each(rowData, function(key, value) {
205
+					exists = exists + value.salesUserId + ';';
206
+				});
207
+				
208
+				$.each(rowDataPop, function(key, value) {
209
+					if(exists.indexOf(value.salesUserId) < 0) {
210
+						// 행추가
211
+						$(KOPER01010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
212
+						var rids = $(KOPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
213
+						var last_row_id = rids[rids.length - 1];
214
+						$(KOPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
215
+						$(KOPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'salesUserId', value.salesUserId);
216
+						$(KOPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'salesUserNm', value.salesUserNm);
217
+						$(KOPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'useStatCd', value.useStatCd);
218
+						$(KOPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'useStatNm', value.useStatNm);
219
+						$(KOPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'cmpyCd', '');	
220
+					}
221
+				});
222
+				$(KOPER01010_DETAIL_GRID_EMPTY).hide();
223
+			};
224
+			fn_call_popup('biz', 'BIZPOP_NK_SALES_USER_SCH', '#ITP_ASIDE', popFn, null, 'S');  //=====================================================================================
225
+		});
226
+		// 상세:삭제버튼
227
+		$('#ITP_BTN_KOPER01010_DETAIL_DELROW').on('click', function() {
228
+			itp_fn_grid_del_row(KOPER01010_DETAIL_GRID_ID);
229
+		});
230
+		
231
+		$('body').on('click', function(e) {
232
+			var gridId = KOPER01010_DETAIL_GRID_ID.replace('#', '');
233
+			var rids = $(KOPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
234
+			var last_row_id = rids[rids.length - 1];			
235
+			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'KOPER01010_DETAIL');
236
+		});
237
+		
238
+	});
239
+});
240
+
241
+var itp_fn_KOPER01010_detail_map = function(locate) {
242
+	
243
+	kakao.maps.load(function() {
244
+				
245
+		var mapContainer = document.getElementById('ITP_FORM_KOPER01010_DETAIL_MAP'), // 지도를 표시할 div 
246
+		    mapOption = {
247
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
248
+		        level: 3, // 지도의 확대 레벨
249
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
250
+		    }; 
251
+	
252
+		// 지도를 생성한다 
253
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
254
+		
255
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
256
+		map.setZoomable(false);   
257
+	
258
+		// 지도에 확대 축소 컨트롤을 생성한다
259
+		//var zoomControl = new kakao.maps.ZoomControl();
260
+	
261
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
262
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
263
+	
264
+		function searchDetailAddrFromCoords(coords, callback) {
265
+		    // 좌표로 법정동 상세 주소 정보를 요청합니다
266
+		    geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
267
+		}
268
+		
269
+		// 주소-좌표 변환 객체를 생성합니다
270
+		var geocoder = new kakao.maps.services.Geocoder();	
271
+		var map;
272
+		
273
+		if( !locate || locate.length == 0 ) {
274
+			// 지도에 마커를 생성하고 표시한다
275
+		    	marker = new kakao.maps.Marker({
276
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
277
+		   	    map: map // 마커를 표시할 지도 객체
278
+	    	});
279
+		} else {
280
+			// 주소로 좌표를 검색합니다
281
+			geocoder.addressSearch(locate, function(result, status) {
282
+			    // 정상적으로 검색이 완료됐으면 
283
+			     if (status === kakao.maps.services.Status.OK) {
284
+		
285
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
286
+			        document.getElementById('ITP_FORM_KOPER01010_DETAIL_LAT').value = result[0].y;
287
+			        document.getElementById('ITP_FORM_KOPER01010_DETAIL_LNG').value = result[0].x;
288
+			        
289
+			        // 결과값으로 받은 위치를 마커로 표시합니다
290
+			        	marker = new kakao.maps.Marker({
291
+			            map: map,
292
+			            position: coords
293
+			        });
294
+		
295
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
296
+			        map.setCenter(coords);
297
+			    }
298
+			});    
299
+		}
300
+		
301
+		// 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
302
+		kakao.maps.event.addListener(map, 'drag', function () {
303
+		    searchDetailAddrFromCoords(map.getCenter(), function(result, status) {
304
+		        if (status === kakao.maps.services.Status.OK) {
305
+	
306
+	   		        document.getElementById('ITP_FORM_KOPER01010_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
307
+	   		        document.getElementById('ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
308
+	   		        document.getElementById('ITP_FORM_KOPER01010_DETAIL_STREET_ADDRESS').value = !!result[0].road_address ? result[0].road_address.address_name : $('#ITP_FORM_KOPER01010_DETAIL_STREET_ADDRESS').val();
309
+	   		        document.getElementById('ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO').value = !!result[0].road_address ? result[0].road_address.zone_no : $('#ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO').val() ;
310
+			        document.getElementById('ITP_FORM_KOPER01010_DETAIL_LAT').value = map.getCenter().getLat();
311
+			        document.getElementById('ITP_FORM_KOPER01010_DETAIL_LNG').value = map.getCenter().getLng();
312
+		                        
313
+		            // 마커를 클릭한 위치에 표시합니다
314
+		            marker.setPosition(map.getCenter());
315
+		            marker.setMap(map);
316
+		        }   
317
+		    });
318
+			/* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
319
+			console.log(message); */
320
+		});
321
+	});
322
+};
323
+
324
+var itp_fn_KOPER01010_view_map = function(locate) {
325
+	
326
+	kakao.maps.load(function() {
327
+				
328
+		var mapContainer = document.getElementById('ITP_FORM_KOPER01010_VIEW_MAP'), // 지도를 표시할 div 
329
+		    mapOption = {
330
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
331
+		        level: 3, // 지도의 확대 레벨
332
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
333
+		    }; 
334
+	
335
+		// 지도를 생성한다 
336
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
337
+		
338
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
339
+		map.setZoomable(false);   
340
+	
341
+		// 지도에 확대 축소 컨트롤을 생성한다
342
+		//var zoomControl = new kakao.maps.ZoomControl();
343
+	
344
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
345
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
346
+		
347
+		// 주소-좌표 변환 객체를 생성합니다
348
+		var geocoder = new kakao.maps.services.Geocoder();	
349
+		var map;
350
+		
351
+		if( !locate || locate.length == 0 ) {
352
+			// 지도에 마커를 생성하고 표시한다
353
+		    	marker = new kakao.maps.Marker({
354
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
355
+		   	    map: map // 마커를 표시할 지도 객체
356
+	    	});
357
+		} else {
358
+			// 주소로 좌표를 검색합니다
359
+			geocoder.addressSearch(locate, function(result, status) {
360
+			    // 정상적으로 검색이 완료됐으면 
361
+			     if (status === kakao.maps.services.Status.OK) {
362
+		
363
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
364
+			        
365
+			        // 결과값으로 받은 위치를 마커로 표시합니다
366
+			        marker = new kakao.maps.Marker({
367
+			            map: map,
368
+			            position: coords
369
+			        });
370
+		
371
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
372
+			        map.setCenter(coords);
373
+			    }
374
+			});    
375
+		}
376
+	});
377
+};
378
+	
379
+var itp_fn_KOPER01010_switch_screen = function(mode) {
380
+	if(mode == 'LIST') { // 목록
381
+		$('#ITP_BTN_KOPER01010_MODIFY').hide();
382
+		$('#ITP_BTN_KOPER01010_CANCELLIST').hide();
383
+		$('#ITP_BTN_KOPER01010_DELETE').hide();
384
+		$('#ITP_BTN_KOPER01010_SAVE').hide();
385
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_SRH');
386
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_NEWREG');
387
+		
388
+		$('#ITP_AJAX_KOPER01010_LIST_CONTAINER').show();
389
+		$('#ITP_AJAX_KOPER01010_DETAIL_CONTAINER').hide();		
390
+		$('#ITP_AJAX_KOPER01010_VIEW_CONTAINER').hide();
391
+	} else if(mode == 'ADD') { // 등록
392
+		ITP_FORM_KOPER01010_DETAIL_IS_DUPLICATE = true;
393
+	
394
+		$('#ITP_BTN_KOPER01010_SRH').hide();
395
+		$('#ITP_BTN_KOPER01010_MODIFY').hide();
396
+		$('#ITP_BTN_KOPER01010_NEWREG').hide();
397
+		$('#ITP_BTN_KOPER01010_DELETE').hide();
398
+		$('#ITP_BTN_KOPER01010_RESET_PW').hide();
399
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_CANCELLIST');
400
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_SAVE');
401
+		
402
+		$('#ITP_AJAX_KOPER01010_LIST_CONTAINER').hide();
403
+		$('#ITP_AJAX_KOPER01010_DETAIL_CONTAINER').show();
404
+		$('#ITP_AJAX_KOPER01010_VIEW_CONTAINER').hide();		
405
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_CD').removeAttr('readonly');
406
+		$('#ITP_FORM_KOPER01010_DETAIL_DUP').removeAttr('disabled');
407
+		
408
+		$('#ITP_FORM_KOPER01010_DETAIL_VIEW_CD').val('C');
409
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_NM').val('');
410
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_STAT_CD').val('');
411
+		$('#ITP_FORM_KOPER01010_DETAIL_FRCOMP_AUTH_CD').val('');
412
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_CD').val('');
413
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_TYPE_CD').val('');
414
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_REG_NUM').val('');
415
+		$('#ITP_FORM_KOPER01010_DETAIL_COPT_NUM').val('');
416
+		$('#ITP_FORM_KOPER01010_DETAIL_BIZ_CATE').val('');
417
+		$('#ITP_FORM_KOPER01010_DETAIL_BIZ_TYPE').val('');
418
+		$('#ITP_FORM_KOPER01010_DETAIL_BOSS_NM').val('');
419
+		$('#ITP_FORM_KOPER01010_DETAIL_MAIN_TEL').val('');
420
+		$('#ITP_FORM_KOPER01010_DETAIL_MAIN_FAX').val('');
421
+		$('#ITP_FORM_KOPER01010_DETAIL_MAIN_EMAIL').val('');
422
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO').val('');
423
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES').val('');
424
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES_DTL').val('');
425
+		$('#ITP_FORM_KOPER01010_DETAIL_LOTS_ADDRESS').val('');
426
+		$('#ITP_FORM_KOPER01010_DETAIL_STREET_ADDRESS').val('');
427
+		$('#ITP_FORM_KOPER01010_DETAIL_LAT').val('');
428
+		$('#ITP_FORM_KOPER01010_DETAIL_LNG').val('');
429
+		$('#ITP_FORM_KOPER01010_DETAIL_HJ_DONG').val('');
430
+		$('#ITP_FORM_KOPER01010_DETAIL_BJ_DONG').val('');
431
+		
432
+	} else if(mode == 'MODIFY') { // 수정
433
+		$('#ITP_BTN_KOPER01010_SRH').hide();
434
+		$('#ITP_BTN_KOPER01010_MODIFY').hide();
435
+		$('#ITP_BTN_KOPER01010_NEWREG').hide();		
436
+		$('#ITP_BTN_KOPER01010_DELETE').hide();
437
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_RESET_PW');
438
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_CANCELLIST');
439
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_SAVE');
440
+		
441
+		$('#ITP_AJAX_KOPER01010_LIST_CONTAINER').hide();
442
+		$('#ITP_AJAX_KOPER01010_DETAIL_CONTAINER').show();
443
+		$('#ITP_AJAX_KOPER01010_VIEW_CONTAINER').hide();
444
+		$('#ITP_FORM_KOPER01010_DETAIL_CMPY_CD').attr('readonly', true);
445
+		$('#ITP_FORM_KOPER01010_DETAIL_DUP').attr('disabled', true);
446
+	} else if(mode == 'VIEW') { // 보기
447
+		$('#ITP_BTN_KOPER01010_SRH').hide();
448
+		$('#ITP_BTN_KOPER01010_NEWREG').hide();		
449
+		$('#ITP_BTN_KOPER01010_DELETE').hide();
450
+		$('#ITP_BTN_KOPER01010_SAVE').hide();
451
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_MODIFY');
452
+		fn_show_btn_auth('#ITP_BTN_KOPER01010_CANCELLIST');
453
+		
454
+		$('#ITP_AJAX_KOPER01010_LIST_CONTAINER').hide();
455
+		$('#ITP_AJAX_KOPER01010_DETAIL_CONTAINER').hide();
456
+		$('#ITP_AJAX_KOPER01010_VIEW_CONTAINER').show();
457
+	}	
458
+};
459
+
460
+var itp_fn_KOPER01010_grid = {
461
+	init: function() {
462
+		// 데이터 없을때
463
+		itp_fn_KOPER01010_empty.push();
464
+		$(KOPER01010_GRID_EMPTY).on('click', function() {
465
+			itp_fn_KOPER01010_empty.back();
466
+			itp_KOPER01010_param.gridSize = $.jgrid.defaults.rowNum;
467
+			$(KOPER01010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_KOPER01010_param)}).trigger('reloadGrid');
468
+		});	
469
+	},
470
+	callBack: function() {
471
+		let param = $('#ITP_FORM_KOPER01010_SEARCH').serializeObject();
472
+		param.gridSize = $.jgrid.defaults.rowNum;	
473
+		$(KOPER01010_GRID_ID).jqGrid({
474
+			colModel: [
475
+				{
476
+					index: 'CMPY_CD', name: 'cmpyCd',
477
+					label: '가입자코드', 
478
+					width: '6', fixed: false, align: 'center',
479
+					sortable: false, hidden: false
480
+				},
481
+				{
482
+					index: 'CMPY_NM', name: 'cmpyNm',
483
+					label: '가입자명', 
484
+					width: '10', fixed: false, align: 'center',
485
+					sortable: false, hidden: false
486
+				},
487
+				{
488
+					index: 'CMPY_TYPE_NM', name: 'cmpyTypeNm',
489
+					label: '기업형태', 
490
+					width: '6', fixed: false, align: 'center',
491
+					sortable: false, hidden: false
492
+				},
493
+				{
494
+					index: 'CMPY_STAT_NM', name: 'cmpyStatNm',
495
+					label: '기업상태', 
496
+					width: '6', fixed: false, align: 'center',
497
+					sortable: false, hidden: false
498
+				},
499
+				{
500
+					index: 'BOSS_NM', name: 'bossNm',
501
+					label: '대표자명', 
502
+					width: '6', fixed: false, align: 'center',
503
+					sortable: false, hidden: false
504
+				},
505
+				{
506
+					index: 'MAIN_TEL', name: 'mainTel',
507
+					label: '대표연락처', 
508
+					width: '6', fixed: false, align: 'center',
509
+					sortable: false, hidden: false
510
+				},
511
+				{
512
+					index: 'ADD_DT', name: 'addDt',
513
+					label: '가입일자', 
514
+					width: '8', fixed: false, align: 'center',
515
+					sortable: false, hidden: false
516
+				}
517
+			],
518
+			loadBeforeSend: function(jqXHR) {
519
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
520
+			},
521
+			postData: JSON.stringify(param),
522
+			url: DOMAIN + COMPANY_GRID_LIST,
523
+			pager: KOPER01010_GRID_PAGER,
524
+			multiselect: false,
525
+			rownumbers: true, 
526
+			onCellSelect: function(rowId, cellIdx, cellValue) {
527
+				var cm = $(this).jqGrid('getGridParam', 'colModel');
528
+				var colNm = cm[cellIdx].name;
529
+				if (colNm == 'cmpyNm') {
530
+					const cmpyCdVal = $(this).jqGrid('getCell', rowId, 'cmpyCd');
531
+					const key = {cmpyCd: cmpyCdVal, viewCd: 'R'};
532
+					var param = $.param(key);
533
+					itp_fn_KOPER01010_view(param);
534
+				}
535
+		   	},
536
+			loadComplete: function(data) {
537
+				console.log(JSON.stringify(data));
538
+				itp_fn_grid_load_complete(data, KOPER01010_GRID_ID, true, 'number', 'KOPER01010', itp_KOPER01010_search, itp_fn_KOPER01010_empty, true, data.gridRecords, true);
539
+				var ids = $(KOPER01010_GRID_ID).getDataIDs();
540
+				$.each(ids, function(idx, rowId) {
541
+					$(KOPER01010_GRID_ID).jqGrid('setCell', rowId, 'cmpyNm', '', ITP_GRID_COL_STYLE.link);
542
+				});	
543
+		    },
544
+		    loadError: function(jqXHR, textStatus, errorThrown) {
545
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
546
+		    },
547
+		    onPaging: function(action) {
548
+		    	itp_fn_grid_paging(KOPER01010_GRID_ID, action, param);
549
+		    }
550
+		}).navGrid(KOPER01010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
551
+	},
552
+	clearData : function() {
553
+		$(KOPER01010_GRID_ID).jqGrid('clearGridData', true);
554
+		$(KOPER01010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
555
+		$(KOPER01010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
556
+		$(KOPER01010_GRID_EMPTY).show();
557
+	}, 
558
+	unload : function() {
559
+		$.jgrid.gridUnload(KOPER01010_GRID_ID); 
560
+	}
561
+};
562
+
563
+var itp_fn_KOPER01010_search = function() {
564
+	itp_fn_KOPER01010_switch_screen('LIST');	
565
+	itp_fn_KOPER01010_grid.unload();
566
+	itp_fn_KOPER01010_grid.callBack();
567
+};
568
+
569
+let itp_KOPER01010_param = {};
570
+let itp_KOPER01010_search = false;
571
+var itp_fn_KOPER01010_empty = {
572
+	push: function() {
573
+		let param = $('#ITP_FORM_KOPER01010_SEARCH').serializeObject();
574
+		itp_KOPER01010_param = param;
575
+	},
576
+	back: function() {
577
+		$('#ITP_FORM_KOPER01010_DEVI_TP_CD').val(itp_KOPER01010_param.deviTpCd);
578
+		$('#ITP_FORM_KOPER01010_ORDER_YN').val(itp_KOPER01010_param.orderYn);
579
+		$('#ITP_FORM_KOPER01010_ADT_AUTH_CD').val(itp_KOPER01010_param.adtAuthCd);
580
+		$('#ITP_FORM_KOPER01010_EMAIL_RCV_YN').val(itp_KOPER01010_param.emailRcvYn);
581
+		$('#ITP_FORM_KOPER01010_SMS_RCV_YN').val(itp_KOPER01010_param.smsRcvYn);
582
+		$('#ITP_FORM_KOPER01010_MEMB_EXIT_DT').val(itp_KOPER01010_param.membExitDt);
583
+		$('#ITP_FORM_KOPER01010_FROM_DT').val(itp_KOPER01010_param.fromDt);
584
+		$('#ITP_FORM_KOPER01010_TO_DT').val(itp_KOPER01010_param.toDt);
585
+		$('#ITP_FORM_KOPER01010_KEYWORD').val(itp_KOPER01010_param.keyword);
586
+	}
587
+};
588
+
589
+var itp_fn_KOPER01010_view = function(param) {
590
+	fn_ajax_call(COMPANY_INFO_COMPANY, param, itp_fn_KOPER01010_view_callback, 'GET');
591
+};
592
+
593
+var itp_fn_KOPER01010_view_callback = function(result) {
594
+	// console.log(result);
595
+	itp_fn_KOPER01010_switch_screen('VIEW');
596
+	$('#ITP_FORM_KOPER01010_VIEW #ITP_FORM_KOPER01010_VIEW_CMPY_CD').val(result.cmpyCd);
597
+	
598
+	$('#ITP_FORM_KOPER01010_VIEW .fnCmpyNm').text(result.cmpyNm);
599
+	$('#ITP_FORM_KOPER01010_VIEW .fnCmpyStatCd').text(result.cmpyStatNm);
600
+	$('#ITP_FORM_KOPER01010_VIEW .fnCmpyCd').text(result.cmpyCd);
601
+	$('#ITP_FORM_KOPER01010_VIEW .fnCmpyTypeCd').text(result.cmpyTypeNm);
602
+	$('#ITP_FORM_KOPER01010_VIEW .fnCmpyRegNum').text(result.cmpyRegNum);
603
+	$('#ITP_FORM_KOPER01010_VIEW .fnFrcompAuthCd').text(result.frcompAuthNm);
604
+	$('#ITP_FORM_KOPER01010_VIEW .fnCoptNum').text(result.coptNum);
605
+	$('#ITP_FORM_KOPER01010_VIEW .fnBizCate').text(result.bizCate);
606
+	$('#ITP_FORM_KOPER01010_VIEW .fnBizType').text(result.bizType);
607
+	$('#ITP_FORM_KOPER01010_VIEW .fnBossNm').text(result.bossNm);
608
+	$('#ITP_FORM_KOPER01010_VIEW .fnMainTel').text(result.mainTel);
609
+	$('#ITP_FORM_KOPER01010_VIEW .fnMainFax').text(result.mainFax);
610
+	$('#ITP_FORM_KOPER01010_VIEW .fnMainEmail').text(result.mainEmail);
611
+	$('#ITP_FORM_KOPER01010_VIEW .fnCmpyAddress').text('('+ result.cmpyZipno + ') ' + result.cmpyAdres + ' ' + result.cmpyAdresDtl);
612
+	
613
+	$('#ITP_FORM_KOPER01010_VIEW .fnAddDt').text(result.addDt);
614
+	$('#ITP_FORM_KOPER01010_VIEW .fnChgDt').text(result.chgDt);
615
+	
616
+	itp_fn_KOPER01010_view_map(result.cmpyAdres);	
617
+	
618
+	// 영업담당자정보  리스트 조회
619
+	itp_fn_KOPER01010_view_grid.unload();
620
+	itp_fn_KOPER01010_view_grid.callBack();
621
+};
622
+
623
+var itp_fn_KOPER01010_view_grid = {
624
+	init: function() {
625
+	},
626
+	callBack: function() {
627
+		let param = $('#ITP_FORM_KOPER01010_VIEW').serializeObject();
628
+		param.gridSize = $.jgrid.defaults.rowNum; 
629
+		param.pagingYn = false; // 페이징안함
630
+		
631
+		$(KOPER01010_VIEW_GRID_ID).jqGrid({
632
+			colModel: [
633
+				{
634
+					index: 'VIEW_CD', name: 'viewCd',
635
+					label: ITP_MSG_LOCALE.label.viewCd,
636
+					width: '10', fixed: false, align: 'center',
637
+					sortable: false, hidden: true
638
+				},
639
+				{
640
+					index: 'SALES_USER_ID', name: 'salesUserId',
641
+					label: '영업담당자ID',
642
+					width: '20', fixed: false, align: 'center',
643
+					sortable: false, editable: false, edittype: 'text',
644
+					editrules: {required: true}
645
+				},
646
+				{
647
+					index: 'SALES_USER_NM', name: 'salesUserNm',
648
+					label: '영업담당자명',
649
+					width: '30', fixed: false, align: 'center',
650
+					sortable: true, editable: false, edittype: 'text',
651
+					editrules: {required: true}
652
+				},
653
+				{
654
+					index: 'USE_STAT_CD', name: 'useStatCd',
655
+					label: ITP_MSG_LOCALE.label.status,
656
+					width: '10', fixed: false, align: 'center',
657
+					sortable: false, editable: false, edittype: 'text', hidden: true
658
+				},
659
+				{
660
+					index: 'USE_STAT_NM', name: 'useStatNm',
661
+					label: ITP_MSG_LOCALE.label.status,
662
+					width: '10', fixed: false, align: 'center',
663
+					sortable: false, editable: false, edittype: 'text'
664
+				},
665
+				{
666
+					index: 'CMPY_CD', name: 'cmpyCd',
667
+					label: '가맹점코드',
668
+					width: '10', fixed: false, align: 'center',
669
+					sortable: false, editable: false, edittype: 'text', hidden: true
670
+				}
671
+			],
672
+			loadBeforeSend: function(jqXHR) {
673
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
674
+			},
675
+			postData: JSON.stringify(param),
676
+			url: DOMAIN + USER_SALESUSER_GRID_LIST,
677
+			pager: KOPER01010_VIEW_GRID_PAGER,
678
+			multiselect: false,
679
+			loadComplete: function(data) {				
680
+				itp_fn_grid_load_complete(data, KOPER01010_VIEW_GRID_ID, true, undefined, 'KOPER01010_VIEW');
681
+		    },
682
+		    loadError: function(jqXHR, textStatus, errorThrown) {
683
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
684
+		    },
685
+		    onPaging: function(action) {
686
+		    	var pagingFn = {
687
+	    			callBack: function(args) {
688
+	    				$(args).trigger('reloadGrid');
689
+	    			}
690
+	    		};
691
+		    	if (itp_fn_check_grid_is_writing(KOPER01010_VIEW_GRID_ID)) {
692
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, KOPER01010_VIEW_GRID_ID);
693
+		    		return 'stop';
694
+		    	} else {
695
+		    		itp_fn_grid_paging(KOPER01010_VIEW_GRID_ID, action, param);
696
+		    	}
697
+		    },
698
+		    onSortCol: function(index, columnIndex, sortOrder) {
699
+		    	var sortingFn = {
700
+	    			callBack: function(args) {
701
+	    				$(args).trigger('reloadGrid');
702
+	    			}
703
+	    		};
704
+		    	if (itp_fn_check_grid_is_writing(KOPER01010_VIEW_GRID_ID)) {
705
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, KOPER01010_VIEW_GRID_ID);
706
+		    		return 'stop';
707
+		    	} else {
708
+		    		itp_fn_grid_sorting(KOPER01010_VIEW_GRID_ID, index, sortOrder);
709
+		    	}
710
+		    }
711
+		}).navGrid(KOPER01010_VIEW_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
712
+	},
713
+	clearData : function() {
714
+		$(KOPER01010_VIEW_GRID_ID).jqGrid('clearGridData', true);
715
+		$(KOPER01010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
716
+		$(KOPER01010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
717
+		$(KOPER01010_VIEW_GRID_EMPTY).show();
718
+	}, 
719
+	unload : function() {
720
+		$.jgrid.gridUnload(KOPER01010_VIEW_GRID_ID); 
721
+	}
722
+};
723
+
724
+var itp_fn_KOPER01010_detail = function(param) {
725
+	fn_ajax_call(COMPANY_INFO_COMPANY, param, itp_fn_KOPER01010_detail_callback, 'GET');
726
+};
727
+
728
+var itp_fn_KOPER01010_detail_callback = function(result) {
729
+	// console.log(result);
730
+	itp_fn_KOPER01010_switch_screen('MODIFY');
731
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_VIEW_CD').val('U');
732
+	
733
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_NM').val(result.cmpyNm);
734
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_STAT_CD').val(result.cmpyStatCd);
735
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_FRCOMP_AUTH_CD').val(result.frcompAuthCd);
736
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_CD').val(result.cmpyCd);	
737
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_TYPE_CD').val(result.cmpyTypeCd);
738
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_REG_NUM').val(result.cmpyRegNum);
739
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_COPT_NUM').val(result.coptNum);
740
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_BIZ_CATE').val(result.bizCate);
741
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_BIZ_TYPE').val(result.bizType);
742
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_BOSS_NM').val(result.bossNm);
743
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_MAIN_TEL').val(result.mainTel);
744
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_MAIN_FAX').val(result.mainFax);
745
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_MAIN_EMAIL').val(result.mainEmail);
746
+		
747
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO').val(result.cmpyZipno);	
748
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES').val(result.cmpyAdres);	
749
+	$('#ITP_FORM_KOPER01010_DETAIL #ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES_DTL').val(result.cmpyAdresDtl);		
750
+	
751
+	$('#ITP_FORM_KOPER01010_DETAIL .fnAddDt').text(result.addDt);
752
+	$('#ITP_FORM_KOPER01010_DETAIL .fnChgDt').text(result.chgDt);
753
+	
754
+	itp_fn_KOPER01010_detail_map($('#ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES').val());
755
+	
756
+	// 영업담당자 리스트 조회
757
+	itp_fn_KOPER01010_detail_grid.unload();
758
+	itp_fn_KOPER01010_detail_grid.callBack();
759
+};
760
+
761
+
762
+var itp_fn_KOPER01010_detail_grid = {
763
+	init: function() {
764
+	},
765
+	callBack: function() {
766
+		let param = $('#ITP_FORM_KOPER01010_DETAIL').serializeObject();
767
+		param.gridSize = $.jgrid.defaults.rowNum; 
768
+		param.pagingYn = false; // 페이지안함 
769
+		
770
+		$(KOPER01010_DETAIL_GRID_ID).jqGrid({
771
+			colModel: [
772
+				{
773
+					index: 'VIEW_CD', name: 'viewCd',
774
+					label: ITP_MSG_LOCALE.label.viewCd,
775
+					width: '10', fixed: false, align: 'center',
776
+					sortable: false, hidden: true
777
+				},
778
+				{
779
+					index: 'SALES_USER_ID', name: 'salesUserId',
780
+					label: '영업담당자ID',
781
+					width: '20', fixed: false, align: 'center',
782
+					sortable: false, editable: false, edittype: 'text',
783
+					editrules: {required: true}
784
+				},
785
+				{
786
+					index: 'SALES_USER_NM', name: 'salesUserNm',
787
+					label: '영업담당자명',
788
+					width: '30', fixed: false, align: 'center',
789
+					sortable: true, editable: false, edittype: 'text',
790
+					editrules: {required: true}
791
+				},
792
+				{
793
+					index: 'USE_STAT_CD', name: 'useStatCd',
794
+					label: ITP_MSG_LOCALE.label.status,
795
+					width: '10', fixed: false, align: 'center',
796
+					sortable: false, editable: false, edittype: 'text', hidden: true
797
+				},
798
+				{
799
+					index: 'USE_STAT_NM', name: 'useStatNm',
800
+					label: ITP_MSG_LOCALE.label.status,
801
+					width: '10', fixed: false, align: 'center',
802
+					sortable: false, editable: false, edittype: 'text'
803
+				},
804
+				{
805
+					index: 'CMPY_CD', name: 'cmpyCd',
806
+					label: '가맹점코드',
807
+					width: '10', fixed: false, align: 'center',
808
+					sortable: false, editable: false, edittype: 'text', hidden: true
809
+				}
810
+			],
811
+			loadBeforeSend: function(jqXHR) {
812
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
813
+			},
814
+			postData: JSON.stringify(param),
815
+			url: DOMAIN + USER_SALESUSER_GRID_LIST,
816
+			pager: KOPER01010_DETAIL_GRID_PAGER,
817
+			loadComplete: function(data) {				
818
+				itp_fn_grid_load_complete(data, KOPER01010_DETAIL_GRID_ID, true, undefined, 'KOPER01010_DETAIL');
819
+		    },
820
+		    loadError: function(jqXHR, textStatus, errorThrown) {
821
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
822
+		    },
823
+		    onPaging: function(action) {
824
+		    	var pagingFn = {
825
+	    			callBack: function(args) {
826
+	    				$(args).trigger('reloadGrid');
827
+	    			}
828
+	    		};
829
+		    	if (itp_fn_check_grid_is_writing(KOPER01010_DETAIL_GRID_ID)) {
830
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, KOPER01010_DETAIL_GRID_ID);
831
+		    		return 'stop';
832
+		    	} else {
833
+		    		itp_fn_grid_paging(KOPER01010_DETAIL_GRID_ID, action, param);
834
+		    	}
835
+		    },
836
+		    onSortCol: function(index, columnIndex, sortOrder) {
837
+		    	var sortingFn = {
838
+	    			callBack: function(args) {
839
+	    				$(args).trigger('reloadGrid');
840
+	    			}
841
+	    		};
842
+		    	if (itp_fn_check_grid_is_writing(KOPER01010_DETAIL_GRID_ID)) {
843
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, KOPER01010_DETAIL_GRID_ID);
844
+		    		return 'stop';
845
+		    	} else {
846
+		    		itp_fn_grid_sorting(KOPER01010_DETAIL_GRID_ID, index, sortOrder);
847
+		    	}
848
+		    }
849
+		}).navGrid(KOPER01010_DETAIL_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
850
+	},
851
+	clearData : function() {
852
+		$(KOPER01010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
853
+		$(KOPER01010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
854
+		$(KOPER01010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
855
+		$(KOPER01010_DETAIL_GRID_EMPTY).show();
856
+	}, 
857
+	unload : function() {
858
+		$.jgrid.gridUnload(KOPER01010_DETAIL_GRID_ID); 
859
+	}
860
+};

+ 555 - 0
bin/src/main/webapp/js/app/koper/ITP_KOPER02010.js

@@ -0,0 +1,555 @@
1
+
2
+const KOPER02010_GRID_ID = '#ITP_KOPER02010_jqGrid';
3
+const KOPER02010_GRID_LIST = '#ITP_KOPER02010_jqGrid_list';
4
+const KOPER02010_GRID_PAGER = '#ITP_KOPER02010_jqGridPager';
5
+const KOPER02010_GRID_EMPTY = '#ITP_KOPER02010_jqGridEmpty';
6
+
7
+let ITP_FORM_KOPER02010_DETAIL_IS_DUPLICATE = false;
8
+let ITP_FORM_KOPER02010_DETAIL_IS_WRITING = false;
9
+
10
+let SALES_USER_GRID_LIST = '/api/sauser/grid-list';
11
+let SALES_USER_INFO = '/api/sauser/info-salesuser';
12
+let SALES_USER_SAVE = '/api/sauser/save-salesusesr';
13
+let SALES_USER_CHECK_DUPLICATE = '/api/sauser/check-duplicate';
14
+let USER_INTI_USERPW = '/api/user/inti-userpw';
15
+
16
+require(['config'], function() {
17
+	require([
18
+		'jquery', 
19
+		'kakao.postcode', 
20
+		'kakao.maps'
21
+	], function($) {
22
+		// 버튼 권한설정
23
+		fn_proc_btn_auth('KOPER02010');
24
+		// 공통코드 표시
25
+		fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_KOPER02010_SEARCH_USE_STAT_CD');
26
+		fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_KOPER02010_DETAIL_USE_STAT_CD', true, '선택');
27
+		fn_make_select(CODE_LIST, 'SALES_TYPE_CD', 'ITP_FORM_KOPER02010_DETAIL_SALES_TYPE_CD', true, '선택');
28
+		
29
+		// 조회일자 지정
30
+		// var now = new Date();
31
+		$('#ITP_TAB_KOPER02010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
32
+		// $('#ITP_FORM_KOPER02010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
33
+		// $('#ITP_FORM_KOPER02010_SEARCH_TO_DT').datepicker('setDate', new Date());
34
+				
35
+		// 그리드				
36
+		itp_fn_jqgrid_resize(KOPER02010_GRID_ID, KOPER02010_GRID_LIST, 'lg');
37
+		itp_fn_KOPER02010_grid.init();
38
+    	itp_fn_fire_window_resize();
39
+
40
+		// 조회    	
41
+    	itp_fn_KOPER02010_search();
42
+    	
43
+		// 조회 버튼 클릭
44
+		$('#ITP_BTN_KOPER02010_SRH').on('click', function() {
45
+			itp_KOPER02010_search = true;
46
+			let param = $('#ITP_FORM_KOPER02010_SEARCH').serializeObject();
47
+			param.gridSize = $.jgrid.defaults.rowNum;
48
+			param.gridPage = $.jgrid.defaults.page;
49
+			$(KOPER02010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
50
+		});
51
+		
52
+		// 수정 버튼
53
+		$('#ITP_BTN_KOPER02010_MODIFY').on('click', function() {
54
+			itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER02010_DETAIL');			
55
+			const salesUserIdVal = $('#ITP_FORM_KOPER02010_VIEW_SALES_USER_ID').val();
56
+			const key = {salesUserId: salesUserIdVal, viewCd: 'R'};
57
+			var param = $.param(key);
58
+			itp_fn_KOPER02010_detail(param);	
59
+		});
60
+		
61
+		// 신규등록 버튼
62
+		$('#ITP_BTN_KOPER02010_NEWREG').on('click', function() {
63
+			itp_fn_KOPER02010_switch_screen('ADD');			
64
+			itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER02010_DETAIL');
65
+			itp_fn_KOPER02010_detail_map($('#ITP_FORM_KOPER02010_DETAIL_STREET_ADDRESS').val());				
66
+		});
67
+		
68
+		// 취소/목록 버튼
69
+		$('#ITP_BTN_KOPER02010_CANCELLIST').on('click', function() {
70
+			itp_fn_KOPER02010_search();
71
+    	});
72
+		
73
+		// 삭제 버튼
74
+		$('#ITP_BTN_KOPER02010_DELETE').on('click', function() {
75
+			
76
+		});
77
+		
78
+		// 저장 버튼
79
+		$('#ITP_BTN_KOPER02010_SAVE').on('click', function() {			
80
+			const formId = '#ITP_FORM_KOPER02010_DETAIL';
81
+			itp_fn_form_clear_validate(null, formId);			
82
+			var vali_salesUserId = itp_fn_form_validate(formId, formId + '_SALES_USER_ID', ['empty'], undefined);
83
+			var vali_salesTypeCd = itp_fn_form_validate(formId, formId + '_SALES_TYPE_CD', ['empty'], undefined);
84
+			var vali_useStatCd = itp_fn_form_validate(formId, formId + '_USE_STAT_CD', ['empty'], undefined);
85
+			var vali_salesUserNm = itp_fn_form_validate(formId, formId + '_SALES_USER_NM', ['empty'], undefined);			
86
+			var vali_telNo = itp_fn_form_validate(formId, formId + '_TEL_NO', ['empty'], undefined);
87
+			var vali_email = itp_fn_form_validate(formId, formId + 'EMAIL', ['empty'], undefined);
88
+			
89
+			if (vali_salesUserId && vali_salesTypeCd && vali_useStatCd && vali_salesUserNm && vali_telNo && vali_email) {
90
+				
91
+				if($('#ITP_FORM_KOPER02010_DETAIL_ZIPNO').val() == '' || $('#ITP_FORM_KOPER02010_DETAIL_ADRES').val() == '') {
92
+					itp_fn_modal_alert('주소 검색을 통해 회사 주소를 입력하세요.');
93
+					return;
94
+				}
95
+				
96
+				if (ITP_FORM_KOPER02010_DETAIL_IS_DUPLICATE) {
97
+					itp_fn_modal_duplicate('영업담당자 ID 중복체크를 해주세요.', formId + '_SALES_USER_ID');
98
+				} else {
99
+					let param = $(formId).serializeObject();
100
+					var searhFn = function() {
101
+						ITP_FORM_KOPER02010_DETAIL_IS_WRITING = false;
102
+						itp_fn_KOPER02010_search();
103
+					};
104
+					console.log(JSON.stringify(param));
105
+					fn_ajax_call(SALES_USER_SAVE, JSON.stringify(param), searhFn, 'POST');	
106
+				}
107
+			}
108
+		});		
109
+		
110
+		// 중복체크
111
+		$('#ITP_FORM_KOPER02010_DETAIL_DUP').on('click', function() {
112
+			const formId = '#ITP_FORM_KOPER02010_DETAIL';
113
+			itp_fn_form_clear_validate(null, formId + '_DETAIL');
114
+			var vali_salesUserId = itp_fn_form_validate(formId + '_DETAIL', formId + '_SALES_USER_ID', ['empty'], undefined);
115
+			if (vali_salesUserId) {
116
+				var dupFn = function(result) {
117
+					if (result.code == 'N') {
118
+						ITP_FORM_KOPER02010_DETAIL_IS_DUPLICATE = false;
119
+					} else {
120
+						ITP_FORM_KOPER02010_DETAIL_IS_DUPLICATE = true;
121
+					}
122
+				};
123
+				const key = {'salesUserId':  $(formId + '_SALES_USER_ID').val()};
124
+				const param = $.param(key);
125
+				fn_ajax_call(SALES_USER_CHECK_DUPLICATE, param, dupFn, 'GET');
126
+			}
127
+		});
128
+		
129
+		// 상세:비밀번호 초기화
130
+		$('#ITP_BTN_KOPER02010_RESET_PW').on('click', function() {
131
+			var resetPwFn = {
132
+				callBack: function(args) {
133
+					const key = {'userId':  $('#ITP_FORM_KOPER02010_DETAIL_SALES_USER_ID').val()};
134
+					const param = $.param(key);
135
+					fn_ajax_call(USER_INTI_USERPW, param, undefined, 'GET');					
136
+				}
137
+			};
138
+			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);		
139
+		});
140
+		
141
+		$('#ITP_FORM_KOPER02010_DETAIL_ADRES_SCH').on('click', function() {
142
+			new daum.Postcode({
143
+		    	oncomplete: function(data) {
144
+					// 전체주소 리턴
145
+					document.getElementById('ITP_FORM_KOPER02010_DETAIL_ZIPNO').value = data.zonecode;
146
+					document.getElementById('ITP_FORM_KOPER02010_DETAIL_ADRES').value = data.roadAddress;
147
+					document.getElementById('ITP_FORM_KOPER02010_DETAIL_LOTS_ADDRESS').value = !!data.autoJibunAddress ? data.autoJibunAddress : data.jibunAddress;
148
+					document.getElementById('ITP_FORM_KOPER02010_DETAIL_STREET_ADDRESS').value = data.roadAddress;
149
+					document.getElementById('ITP_FORM_KOPER02010_DETAIL_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
150
+					document.getElementById('ITP_FORM_KOPER02010_DETAIL_BJ_DONG').value = data.bname;
151
+					
152
+					itp_fn_KOPER02010_detail_map(data.roadAddress);
153
+					document.getElementById('ITP_FORM_KOPER02010_DETAIL_ADRES_DTL').focus();		  
154
+		        }
155
+			}).open();
156
+		});
157
+		
158
+	});
159
+});
160
+
161
+var itp_fn_KOPER02010_detail_map = function(locate) {
162
+	
163
+	kakao.maps.load(function() {
164
+				
165
+		var mapContainer = document.getElementById('ITP_FORM_KOPER02010_DETAIL_MAP'), // 지도를 표시할 div 
166
+		    mapOption = {
167
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
168
+		        level: 3, // 지도의 확대 레벨
169
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
170
+		    }; 
171
+	
172
+		// 지도를 생성한다 
173
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
174
+		
175
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
176
+		map.setZoomable(false);   
177
+	
178
+		// 지도에 확대 축소 컨트롤을 생성한다
179
+		//var zoomControl = new kakao.maps.ZoomControl();
180
+	
181
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
182
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
183
+	
184
+		function searchDetailAddrFromCoords(coords, callback) {
185
+		    // 좌표로 법정동 상세 주소 정보를 요청합니다
186
+		    geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
187
+		}
188
+		
189
+		// 주소-좌표 변환 객체를 생성합니다
190
+		var geocoder = new kakao.maps.services.Geocoder();	
191
+		var map;
192
+		
193
+		if( !locate || locate.length == 0 ) {
194
+			// 지도에 마커를 생성하고 표시한다
195
+		    	marker = new kakao.maps.Marker({
196
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
197
+		   	    map: map // 마커를 표시할 지도 객체
198
+	    	});
199
+		} else {
200
+			// 주소로 좌표를 검색합니다
201
+			geocoder.addressSearch(locate, function(result, status) {
202
+			    // 정상적으로 검색이 완료됐으면 
203
+			     if (status === kakao.maps.services.Status.OK) {
204
+		
205
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
206
+			        document.getElementById('ITP_FORM_KOPER02010_DETAIL_LAT').value = result[0].y;
207
+			        document.getElementById('ITP_FORM_KOPER02010_DETAIL_LNG').value = result[0].x;
208
+			        
209
+			        // 결과값으로 받은 위치를 마커로 표시합니다
210
+			        	marker = new kakao.maps.Marker({
211
+			            map: map,
212
+			            position: coords
213
+			        });
214
+		
215
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
216
+			        map.setCenter(coords);
217
+			    }
218
+			});    
219
+		}
220
+		
221
+		// 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
222
+		kakao.maps.event.addListener(map, 'drag', function () {
223
+		    searchDetailAddrFromCoords(map.getCenter(), function(result, status) {
224
+		        if (status === kakao.maps.services.Status.OK) {
225
+	
226
+	   		        document.getElementById('ITP_FORM_KOPER02010_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
227
+	   		        document.getElementById('ITP_FORM_KOPER02010_DETAIL_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
228
+	   		        document.getElementById('ITP_FORM_KOPER02010_DETAIL_STREET_ADDRESS').value = !!result[0].road_address ? result[0].road_address.address_name : $('#ITP_FORM_KOPER02010_DETAIL_STREET_ADDRESS').val();
229
+	   		        document.getElementById('ITP_FORM_KOPER02010_DETAIL_ZIPNO').value = !!result[0].road_address ? result[0].road_address.zone_no : $('#ITP_FORM_KOPER02010_DETAIL_CMPY_ZIPNO').val() ;
230
+			        document.getElementById('ITP_FORM_KOPER02010_DETAIL_LAT').value = map.getCenter().getLat();
231
+			        document.getElementById('ITP_FORM_KOPER02010_DETAIL_LNG').value = map.getCenter().getLng();
232
+		                        
233
+		            // 마커를 클릭한 위치에 표시합니다
234
+		            marker.setPosition(map.getCenter());
235
+		            marker.setMap(map);
236
+		        }   
237
+		    });
238
+			/* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
239
+			console.log(message); */
240
+		});
241
+	});
242
+};
243
+
244
+var itp_fn_KOPER02010_view_map = function(locate) {
245
+	
246
+	kakao.maps.load(function() {
247
+				
248
+		var mapContainer = document.getElementById('ITP_FORM_KOPER02010_VIEW_MAP'), // 지도를 표시할 div 
249
+		    mapOption = {
250
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
251
+		        level: 3, // 지도의 확대 레벨
252
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
253
+		    }; 
254
+	
255
+		// 지도를 생성한다 
256
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
257
+		
258
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
259
+		map.setZoomable(false);   
260
+	
261
+		// 지도에 확대 축소 컨트롤을 생성한다
262
+		//var zoomControl = new kakao.maps.ZoomControl();
263
+	
264
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
265
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
266
+		
267
+		// 주소-좌표 변환 객체를 생성합니다
268
+		var geocoder = new kakao.maps.services.Geocoder();	
269
+		var map;
270
+		
271
+		if( !locate || locate.length == 0 ) {
272
+			// 지도에 마커를 생성하고 표시한다
273
+		    	marker = new kakao.maps.Marker({
274
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
275
+		   	    map: map // 마커를 표시할 지도 객체
276
+	    	});
277
+		} else {
278
+			// 주소로 좌표를 검색합니다
279
+			geocoder.addressSearch(locate, function(result, status) {
280
+			    // 정상적으로 검색이 완료됐으면 
281
+			     if (status === kakao.maps.services.Status.OK) {
282
+		
283
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
284
+			        
285
+			        // 결과값으로 받은 위치를 마커로 표시합니다
286
+			        marker = new kakao.maps.Marker({
287
+			            map: map,
288
+			            position: coords
289
+			        });
290
+		
291
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
292
+			        map.setCenter(coords);
293
+			    }
294
+			});    
295
+		}
296
+	});
297
+};
298
+	
299
+var itp_fn_KOPER02010_switch_screen = function(mode) {
300
+	if(mode == 'LIST') { // 목록
301
+		$('#ITP_BTN_KOPER02010_MODIFY').hide();
302
+		$('#ITP_BTN_KOPER02010_CANCELLIST').hide();
303
+		$('#ITP_BTN_KOPER02010_DELETE').hide();
304
+		$('#ITP_BTN_KOPER02010_SAVE').hide();
305
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_SRH');
306
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_NEWREG');
307
+		
308
+		$('#ITP_AJAX_KOPER02010_LIST_CONTAINER').show();
309
+		$('#ITP_AJAX_KOPER02010_DETAIL_CONTAINER').hide();		
310
+		$('#ITP_AJAX_KOPER02010_VIEW_CONTAINER').hide();
311
+	} else if(mode == 'ADD') { // 등록
312
+		ITP_FORM_KOPER02010_DETAIL_IS_DUPLICATE = true;
313
+	
314
+		$('#ITP_BTN_KOPER02010_SRH').hide();
315
+		$('#ITP_BTN_KOPER02010_MODIFY').hide();
316
+		$('#ITP_BTN_KOPER02010_NEWREG').hide();
317
+		$('#ITP_BTN_KOPER02010_DELETE').hide();
318
+		$('#ITP_BTN_KOPER02010_RESET_PW').hide();
319
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_CANCELLIST');
320
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_SAVE');
321
+		
322
+		$('#ITP_AJAX_KOPER02010_LIST_CONTAINER').hide();
323
+		$('#ITP_AJAX_KOPER02010_DETAIL_CONTAINER').show();
324
+		$('#ITP_AJAX_KOPER02010_VIEW_CONTAINER').hide();		
325
+		$('#ITP_FORM_KOPER02010_DETAIL_SALES_USER_ID').removeAttr('readonly');
326
+		$('#ITP_FORM_KOPER02010_DETAIL_DUP').removeAttr('disabled');
327
+		
328
+		$('#ITP_FORM_KOPER02010_DETAIL_VIEW_CD').val('C');
329
+		$('#ITP_FORM_KOPER02010_DETAIL_SALES_USER_NM').val('');
330
+		$('#ITP_FORM_KOPER02010_DETAIL_SALES_TYPE_CD').val('');
331
+		$('#ITP_FORM_KOPER02010_DETAIL_USE_STAT_CD').val('');
332
+		$('#ITP_FORM_KOPER02010_DETAIL_SALES_USER_ID').val('');
333
+		$('#ITP_FORM_KOPER02010_DETAIL_TEL_NO').val('');
334
+		$('#ITP_FORM_KOPER02010_DETAIL_FAX_NO').val('');
335
+		$('#ITP_FORM_KOPER02010_DETAIL_EMAIL').val('');
336
+		$('#ITP_FORM_KOPER02010_DETAIL_ZIPNO').val('');
337
+		$('#ITP_FORM_KOPER02010_DETAIL_ADRES').val('');
338
+		$('#ITP_FORM_KOPER02010_DETAIL_ADRES_DTL').val('');
339
+		$('#ITP_FORM_KOPER02010_DETAIL_LOTS_ADDRESS').val('');
340
+		$('#ITP_FORM_KOPER02010_DETAIL_STREET_ADDRESS').val('');
341
+		$('#ITP_FORM_KOPER02010_DETAIL_LAT').val('');
342
+		$('#ITP_FORM_KOPER02010_DETAIL_LNG').val('');
343
+		$('#ITP_FORM_KOPER02010_DETAIL_HJ_DONG').val('');
344
+		$('#ITP_FORM_KOPER02010_DETAIL_BJ_DONG').val('');
345
+		
346
+	} else if(mode == 'MODIFY') { // 수정
347
+		$('#ITP_BTN_KOPER02010_SRH').hide();
348
+		$('#ITP_BTN_KOPER02010_MODIFY').hide();
349
+		$('#ITP_BTN_KOPER02010_NEWREG').hide();		
350
+		$('#ITP_BTN_KOPER02010_DELETE').hide();
351
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_RESET_PW');
352
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_CANCELLIST');
353
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_SAVE');
354
+		
355
+		$('#ITP_AJAX_KOPER02010_LIST_CONTAINER').hide();
356
+		$('#ITP_AJAX_KOPER02010_DETAIL_CONTAINER').show();
357
+		$('#ITP_AJAX_KOPER02010_VIEW_CONTAINER').hide();
358
+		$('#ITP_FORM_KOPER02010_DETAIL_SALES_USER_ID').attr('readonly', true);
359
+		$('#ITP_FORM_KOPER02010_DETAIL_DUP').attr('disabled', true);
360
+	} else if(mode == 'VIEW') { // 보기
361
+		$('#ITP_BTN_KOPER02010_SRH').hide();
362
+		$('#ITP_BTN_KOPER02010_NEWREG').hide();		
363
+		$('#ITP_BTN_KOPER02010_DELETE').hide();
364
+		$('#ITP_BTN_KOPER02010_SAVE').hide();
365
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_MODIFY');
366
+		fn_show_btn_auth('#ITP_BTN_KOPER02010_CANCELLIST');
367
+		
368
+		$('#ITP_AJAX_KOPER02010_LIST_CONTAINER').hide();
369
+		$('#ITP_AJAX_KOPER02010_DETAIL_CONTAINER').hide();
370
+		$('#ITP_AJAX_KOPER02010_VIEW_CONTAINER').show();
371
+	}	
372
+};
373
+
374
+var itp_fn_KOPER02010_grid = {
375
+	init: function() {
376
+		// 데이터 없을때
377
+		itp_fn_KOPER02010_empty.push();
378
+		$(KOPER02010_GRID_EMPTY).on('click', function() {
379
+			itp_fn_KOPER02010_empty.back();
380
+			itp_KOPER02010_param.gridSize = $.jgrid.defaults.rowNum;
381
+			$(KOPER02010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_KOPER02010_param)}).trigger('reloadGrid');
382
+		});	
383
+	},
384
+	callBack: function() {
385
+		let param = $('#ITP_FORM_KOPER02010_SEARCH').serializeObject();
386
+		param.gridSize = $.jgrid.defaults.rowNum;	
387
+		$(KOPER02010_GRID_ID).jqGrid({
388
+			colModel: [
389
+				{
390
+					index: 'SALES_USER_ID', name: 'salesUserId',
391
+					label: '영업담당자ID', 
392
+					width: '6', fixed: false, align: 'center',
393
+					sortable: false, hidden: false
394
+				},
395
+				{
396
+					index: 'SALES_USER_NM', name: 'salesUserNm',
397
+					label: '영업담당자명', 
398
+					width: '10', fixed: false, align: 'center',
399
+					sortable: false, hidden: false
400
+				},
401
+				{
402
+					index: 'SALES_TYPE_NM', name: 'salesTypeNm',
403
+					label: '영업타입', 
404
+					width: '6', fixed: false, align: 'center',
405
+					sortable: false, hidden: false
406
+				},
407
+				{
408
+					index: 'USE_STAT_NM', name: 'useStatNm',
409
+					label: '상태', 
410
+					width: '6', fixed: false, align: 'center',
411
+					sortable: false, hidden: false
412
+				},
413
+				{
414
+					index: 'ADD_DT', name: 'addDt',
415
+					label: '가입일자', 
416
+					width: '8', fixed: false, align: 'center',
417
+					sortable: false, hidden: false
418
+				}
419
+			],
420
+			loadBeforeSend: function(jqXHR) {
421
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
422
+			},
423
+			postData: JSON.stringify(param),
424
+			url: DOMAIN + SALES_USER_GRID_LIST,
425
+			pager: KOPER02010_GRID_PAGER,
426
+			multiselect: false,
427
+			rownumbers: true, 
428
+			onCellSelect: function(rowId, cellIdx, cellValue) {
429
+				var cm = $(this).jqGrid('getGridParam', 'colModel');
430
+				var colNm = cm[cellIdx].name;
431
+				if (colNm == 'salesUserId') {
432
+					const salesUserIdVal = $(this).jqGrid('getCell', rowId, 'salesUserId');
433
+					const key = {salesUserId: salesUserIdVal, viewCd: 'R'};
434
+					var param = $.param(key);
435
+					itp_fn_KOPER02010_view(param);
436
+				}
437
+		   	},
438
+			loadComplete: function(data) {
439
+				console.log(JSON.stringify(data));
440
+				itp_fn_grid_load_complete(data, KOPER02010_GRID_ID, true, 'number', 'KOPER02010', itp_KOPER02010_search, itp_fn_KOPER02010_empty, true, data.gridRecords, true);
441
+				var ids = $(KOPER02010_GRID_ID).getDataIDs();
442
+				$.each(ids, function(idx, rowId) {
443
+					$(KOPER02010_GRID_ID).jqGrid('setCell', rowId, 'salesUserId', '', ITP_GRID_COL_STYLE.link);
444
+				});	
445
+		    },
446
+		    loadError: function(jqXHR, textStatus, errorThrown) {
447
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
448
+		    },
449
+		    onPaging: function(action) {
450
+		    	itp_fn_grid_paging(KOPER02010_GRID_ID, action, param);
451
+		    }
452
+		}).navGrid(KOPER02010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
453
+	},
454
+	clearData : function() {
455
+		$(KOPER02010_GRID_ID).jqGrid('clearGridData', true);
456
+		$(KOPER02010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
457
+		$(KOPER02010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
458
+		$(KOPER02010_GRID_EMPTY).show();
459
+	}, 
460
+	unload : function() {
461
+		$.jgrid.gridUnload(KOPER02010_GRID_ID); 
462
+	}
463
+};
464
+
465
+var itp_fn_KOPER02010_search = function() {
466
+	itp_fn_KOPER02010_switch_screen('LIST');	
467
+	itp_fn_KOPER02010_grid.unload();
468
+	itp_fn_KOPER02010_grid.callBack();
469
+};
470
+
471
+let itp_KOPER02010_param = {};
472
+let itp_KOPER02010_search = false;
473
+var itp_fn_KOPER02010_empty = {
474
+	push: function() {
475
+		let param = $('#ITP_FORM_KOPER02010_SEARCH').serializeObject();
476
+		itp_KOPER02010_param = param;
477
+	},
478
+	back: function() {
479
+		$('#ITP_FORM_KOPER02010_DEVI_TP_CD').val(itp_KOPER02010_param.deviTpCd);
480
+		$('#ITP_FORM_KOPER02010_ORDER_YN').val(itp_KOPER02010_param.orderYn);
481
+		$('#ITP_FORM_KOPER02010_ADT_AUTH_CD').val(itp_KOPER02010_param.adtAuthCd);
482
+		$('#ITP_FORM_KOPER02010_EMAIL_RCV_YN').val(itp_KOPER02010_param.emailRcvYn);
483
+		$('#ITP_FORM_KOPER02010_SMS_RCV_YN').val(itp_KOPER02010_param.smsRcvYn);
484
+		$('#ITP_FORM_KOPER02010_MEMB_EXIT_DT').val(itp_KOPER02010_param.membExitDt);
485
+		$('#ITP_FORM_KOPER02010_FROM_DT').val(itp_KOPER02010_param.fromDt);
486
+		$('#ITP_FORM_KOPER02010_TO_DT').val(itp_KOPER02010_param.toDt);
487
+		$('#ITP_FORM_KOPER02010_KEYWORD').val(itp_KOPER02010_param.keyword);
488
+	}
489
+};
490
+
491
+var itp_fn_KOPER02010_view = function(param) {
492
+	fn_ajax_call(SALES_USER_INFO, param, itp_fn_KOPER02010_view_callback, 'GET');
493
+};
494
+
495
+var itp_fn_KOPER02010_view_callback = function(result) {
496
+	// console.log(result);
497
+	itp_fn_KOPER02010_switch_screen('VIEW');
498
+	$('#ITP_FORM_KOPER02010_VIEW #ITP_FORM_KOPER02010_VIEW_SALES_USER_ID').val(result.salesUserId);
499
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesUserId').text(result.salesUserId);
500
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesUserNm').text(result.salesUserNm);
501
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesTypeCd').text(result.salesTypeCd);
502
+	$('#ITP_FORM_KOPER02010_VIEW .fnUseStatCd').text(result.useStatCd);
503
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesTypeNm').text(result.salesTypeNm);
504
+	$('#ITP_FORM_KOPER02010_VIEW .fnUseStatNm').text(result.useStatNm);
505
+	$('#ITP_FORM_KOPER02010_VIEW .fnTelNo').text(result.telNo);
506
+	$('#ITP_FORM_KOPER02010_VIEW .fnFaxNo').text(result.faxNo);
507
+	$('#ITP_FORM_KOPER02010_VIEW .fnEmail').text(result.email);
508
+	$('#ITP_FORM_KOPER02010_VIEW .fnCmpyAddress').text('('+ result.zipno + ') ' + result.adres + ' ' + result.adresDtl);
509
+	
510
+	$('#ITP_FORM_KOPER02010_VIEW .fnAddDt').text(result.addDt);
511
+	$('#ITP_FORM_KOPER02010_VIEW .fnChgDt').text(result.chgDt);
512
+	
513
+	itp_fn_KOPER02010_view_map(result.adres);	
514
+};
515
+
516
+var itp_fn_KOPER02010_detail = function(param) {
517
+	fn_ajax_call(SALES_USER_INFO, param, itp_fn_KOPER02010_detail_callback, 'GET');
518
+};
519
+
520
+var itp_fn_KOPER02010_detail_callback = function(result) {
521
+	 console.log(result);
522
+	itp_fn_KOPER02010_switch_screen('MODIFY');
523
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_VIEW_CD').val('U');
524
+	
525
+	$('#ITP_FORM_KOPER02010_VIEW #ITP_FORM_KOPER02010_VIEW_SALES_USER_ID').val(result.salesUserId);
526
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesUserId').text(result.salesUserId);
527
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesUserNm').text(result.salesUserNm);
528
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesTypeCd').text(result.salesTypeCd);
529
+	$('#ITP_FORM_KOPER02010_VIEW .fnUseStatCd').text(result.useStatCd);
530
+	$('#ITP_FORM_KOPER02010_VIEW .fnSalesTypeNm').text(result.salesTypeNm);
531
+	$('#ITP_FORM_KOPER02010_VIEW .fnUseStatNm').text(result.useStatNm);
532
+	$('#ITP_FORM_KOPER02010_VIEW .fnTelNo').text(result.telNo);
533
+	$('#ITP_FORM_KOPER02010_VIEW .fnFaxNo').text(result.faxNo);
534
+	$('#ITP_FORM_KOPER02010_VIEW .fnEmail').text(result.email);
535
+	
536
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_SALES_USER_NM').val(result.salesUserNm);
537
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_SALES_TYPE_CD').val(result.salesTypeCd);
538
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_USE_STAT_CD').val(result.useStatCd);
539
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_SALES_USER_ID').val(result.salesUserId);	
540
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_SALES_TYPE_NM').val(result.salesTypeNm);
541
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_USE_STAT_NM').val(result.useStatNm);
542
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_TEL_NO').val(result.telNo);
543
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_FAX_NO').val(result.faxNo);
544
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_EMAIL').val(result.email);
545
+		
546
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_ZIPNO').val(result.zipno);	
547
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_ADRES').val(result.adres);	
548
+	$('#ITP_FORM_KOPER02010_DETAIL #ITP_FORM_KOPER02010_DETAIL_ADRES_DTL').val(result.adresDtl);		
549
+	
550
+	$('#ITP_FORM_KOPER02010_DETAIL .fnAddDt').text(result.addDt);
551
+	$('#ITP_FORM_KOPER02010_DETAIL .fnChgDt').text(result.chgDt);
552
+	
553
+	itp_fn_KOPER02010_detail_map($('#ITP_FORM_KOPER02010_DETAIL_ADRES').val());
554
+	
555
+};

+ 352 - 0
bin/src/main/webapp/js/app/koper/ITP_KOPER05010.js

@@ -0,0 +1,352 @@
1
+
2
+const KOPER05010_GRID_ID = '#ITP_KOPER05010_jqGrid';
3
+const KOPER05010_GRID_LIST = '#ITP_KOPER05010_jqGrid_list';
4
+const KOPER05010_GRID_PAGER = '#ITP_KOPER05010_jqGridPager';
5
+const KOPER05010_GRID_EMPTY = '#ITP_KOPER05010_jqGridEmpty';
6
+
7
+let ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = false;
8
+let ITP_FORM_KOPER05010_DETAIL_IS_WRITING = false;
9
+
10
+let VAN_GRID_LIST = '/api/vanInfo/grid-list';
11
+let VAN_INFO = '/api/vanInfo/info-vaninfo';
12
+let VAN_SAVE = '/api/vanInfo/save-vaninfo';
13
+let VAN_CHECK_DUPLICATE = '/api/vanInfo/check-duplicate';
14
+
15
+require(['config'], function() {
16
+	require([
17
+		'jquery'
18
+	], function($) {
19
+		// 버튼 권한설정
20
+		fn_proc_btn_auth('KOPER05010');
21
+		// 공통코드 표시
22
+		//fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_KOPER05010_SEARCH_USE_STAT_CD');
23
+		//fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_KOPER05010_DETAIL_USE_STAT_CD', true, '선택');
24
+		//fn_make_select(CODE_LIST, 'SALES_TYPE_CD', 'ITP_FORM_KOPER05010_DETAIL_SALES_TYPE_CD', true, '선택');
25
+		
26
+		// 조회일자 지정
27
+		// var now = new Date();
28
+		//$('#ITP_TAB_KOPER05010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
29
+		// $('#ITP_FORM_KOPER05010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
30
+		// $('#ITP_FORM_KOPER05010_SEARCH_TO_DT').datepicker('setDate', new Date());
31
+				
32
+		// 그리드				
33
+		itp_fn_jqgrid_resize(KOPER05010_GRID_ID, KOPER05010_GRID_LIST, 'lg');
34
+		itp_fn_KOPER05010_grid.init();
35
+    	itp_fn_fire_window_resize();
36
+
37
+		// 조회    	
38
+    	itp_fn_KOPER05010_search();
39
+    	
40
+		// 조회 버튼 클릭
41
+		$('#ITP_BTN_KOPER05010_SRH').on('click', function() {
42
+			itp_KOPER05010_search = true;
43
+			let param = $('#ITP_FORM_KOPER05010_SEARCH').serializeObject();
44
+			param.gridSize = $.jgrid.defaults.rowNum;
45
+			param.gridPage = $.jgrid.defaults.page;
46
+			$(KOPER05010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
47
+		});
48
+		
49
+		// 수정 버튼
50
+		$('#ITP_BTN_KOPER05010_MODIFY').on('click', function() {
51
+			itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER05010_DETAIL');			
52
+			const vanCdVal = $('#ITP_FORM_KOPER05010_VIEW_VAN_CD').val();
53
+			const key = {vanCd: vanCdVal, viewCd: 'R'};
54
+			var param = $.param(key);
55
+			itp_fn_KOPER05010_detail(param);	
56
+		});
57
+		
58
+		// 신규등록 버튼
59
+		$('#ITP_BTN_KOPER05010_NEWREG').on('click', function() {
60
+			itp_fn_KOPER05010_switch_screen('ADD');			
61
+			itp_fn_form_clear_validate(null, '#ITP_FORM_KOPER05010_DETAIL');		
62
+		});
63
+		
64
+		// 취소/목록 버튼
65
+		$('#ITP_BTN_KOPER05010_CANCELLIST').on('click', function() {
66
+			itp_fn_KOPER05010_search();
67
+    	});
68
+		
69
+		// 삭제 버튼
70
+		$('#ITP_BTN_KOPER05010_DELETE').on('click', function() {
71
+			
72
+		});
73
+		
74
+		// 저장 버튼
75
+		$('#ITP_BTN_KOPER05010_SAVE').on('click', function() {			
76
+			const formId = '#ITP_FORM_KOPER05010_DETAIL';
77
+			itp_fn_form_clear_validate(null, formId);			
78
+			var vali_vanCd = itp_fn_form_validate(formId, formId + '_VAN_CD', ['empty'], undefined);
79
+			var vali_vanNm = itp_fn_form_validate(formId, formId + '_VAN_NM', ['empty'], undefined);
80
+			var vali_vanIp = itp_fn_form_validate(formId, formId + '_VAN_IP', ['empty'], undefined);
81
+			var vali_vanPort = itp_fn_form_validate(formId, formId + '_VAN_PORT', ['empty'], undefined);		
82
+			
83
+			if (vali_vanCd && vali_vanNm && vali_vanIp && vali_vanPort) {
84
+				
85
+				if (ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE) {
86
+					itp_fn_modal_duplicate('VAN코드 중복체크를 해주세요.', formId + '_VAN_CD');
87
+				} else {
88
+				
89
+					let param = $(formId).serializeObject();
90
+					var searhFn = function() {
91
+						ITP_FORM_KOPER05010_DETAIL_IS_WRITING = false;
92
+						itp_fn_KOPER05010_search();
93
+					};
94
+					console.log(JSON.stringify(param));
95
+					fn_ajax_call(VAN_SAVE, JSON.stringify(param), searhFn, 'POST');	
96
+				}
97
+			}
98
+		});
99
+		
100
+		// 중복체크
101
+		$('#ITP_FORM_KOPER05010_DETAIL_DUP').on('click', function() {
102
+			const formId = '#ITP_FORM_KOPER05010_DETAIL';
103
+			itp_fn_form_clear_validate(null, formId + '_DETAIL');
104
+			var vali_vanCd = itp_fn_form_validate(formId + '_DETAIL', formId + '_VAN_CD', ['empty'], undefined);
105
+			if (vali_vanCd) {
106
+				var dupFn = function(result) {
107
+					if (result.code == 'N') {
108
+						ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = false;
109
+					} else {
110
+						ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = true;
111
+					}
112
+				};
113
+				const key = {'vanCd':  $(formId + '_VAN_CD').val()};
114
+				const param = $.param(key);
115
+				fn_ajax_call(VAN_CHECK_DUPLICATE, param, dupFn, 'GET');
116
+			}
117
+		});
118
+		
119
+	});
120
+});
121
+
122
+
123
+var itp_fn_KOPER05010_switch_screen = function(mode) {
124
+	if(mode == 'LIST') { // 목록
125
+		$('#ITP_BTN_KOPER05010_MODIFY').hide();
126
+		$('#ITP_BTN_KOPER05010_CANCELLIST').hide();
127
+		$('#ITP_BTN_KOPER05010_DELETE').hide();
128
+		$('#ITP_BTN_KOPER05010_SAVE').hide();
129
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_SRH');
130
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_NEWREG');
131
+		
132
+		$('#ITP_AJAX_KOPER05010_LIST_CONTAINER').show();
133
+		$('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').hide();		
134
+		$('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').hide();
135
+	} else if(mode == 'ADD') { // 등록
136
+		ITP_FORM_KOPER05010_DETAIL_IS_DUPLICATE = true;
137
+		$('#ITP_BTN_KOPER05010_SRH').hide();
138
+		$('#ITP_BTN_KOPER05010_MODIFY').hide();
139
+		$('#ITP_BTN_KOPER05010_NEWREG').hide();
140
+		$('#ITP_BTN_KOPER05010_DELETE').hide();
141
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_CANCELLIST');
142
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_SAVE');
143
+		
144
+		$('#ITP_AJAX_KOPER05010_LIST_CONTAINER').hide();
145
+		$('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').show();
146
+		$('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').hide();		
147
+		$('#ITP_FORM_KOPER05010_DETAIL_VAN_CD').removeAttr('readonly');
148
+		$('#ITP_FORM_KOPER05010_DETAIL_DUP').removeAttr('disabled');
149
+		
150
+		$('#ITP_FORM_KOPER05010_DETAIL_VIEW_CD').val('C');
151
+		$('#ITP_FORM_KOPER05010_DETAIL_VAN_CD').val('');
152
+		$('#ITP_FORM_KOPER05010_DETAIL_VAN_NM').val('');
153
+		$('#ITP_FORM_KOPER05010_DETAIL_VAN_IP').val('');
154
+		$('#ITP_FORM_KOPER05010_DETAIL_VAN_PORT').val('');
155
+		
156
+	} else if(mode == 'MODIFY') { // 수정
157
+		$('#ITP_BTN_KOPER05010_SRH').hide();
158
+		$('#ITP_BTN_KOPER05010_MODIFY').hide();
159
+		$('#ITP_BTN_KOPER05010_NEWREG').hide();		
160
+		$('#ITP_BTN_KOPER05010_DELETE').hide();
161
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_CANCELLIST');
162
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_SAVE');
163
+		
164
+		$('#ITP_AJAX_KOPER05010_LIST_CONTAINER').hide();
165
+		$('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').show();
166
+		$('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').hide();
167
+		$('#ITP_FORM_KOPER05010_DETAIL_VAN_CD').attr('readonly', true);
168
+		$('#ITP_FORM_KOPER05010_DETAIL_DUP').attr('disabled', true);
169
+	} else if(mode == 'VIEW') { // 보기
170
+		$('#ITP_BTN_KOPER05010_SRH').hide();
171
+		$('#ITP_BTN_KOPER05010_NEWREG').hide();		
172
+		$('#ITP_BTN_KOPER05010_DELETE').hide();
173
+		$('#ITP_BTN_KOPER05010_SAVE').hide();
174
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_MODIFY');
175
+		fn_show_btn_auth('#ITP_BTN_KOPER05010_CANCELLIST');
176
+		
177
+		$('#ITP_AJAX_KOPER05010_LIST_CONTAINER').hide();
178
+		$('#ITP_AJAX_KOPER05010_DETAIL_CONTAINER').hide();
179
+		$('#ITP_AJAX_KOPER05010_VIEW_CONTAINER').show();
180
+	}	
181
+};
182
+
183
+var itp_fn_KOPER05010_grid = {
184
+	init: function() {
185
+		// 데이터 없을때
186
+		itp_fn_KOPER05010_empty.push();
187
+		$(KOPER05010_GRID_EMPTY).on('click', function() {
188
+			itp_fn_KOPER05010_empty.back();
189
+			itp_KOPER05010_param.gridSize = $.jgrid.defaults.rowNum;
190
+			$(KOPER05010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_KOPER05010_param)}).trigger('reloadGrid');
191
+		});	
192
+	},
193
+	callBack: function() {
194
+		let param = $('#ITP_FORM_KOPER05010_SEARCH').serializeObject();
195
+		param.gridSize = $.jgrid.defaults.rowNum;	
196
+		$(KOPER05010_GRID_ID).jqGrid({
197
+			colModel: [
198
+				{
199
+					index: 'VAN_CD', name: 'vanCd',
200
+					label: 'VAN코드', 
201
+					width: '6', fixed: false, align: 'center',
202
+					sortable: false, hidden: false
203
+				},
204
+				{
205
+					index: 'VAN_NM', name: 'vanNm',
206
+					label: 'VAN명', 
207
+					width: '10', fixed: false, align: 'center',
208
+					sortable: false, hidden: false
209
+				},
210
+				{
211
+					index: 'VAN_IP', name: 'vanIp',
212
+					label: 'IP', 
213
+					width: '6', fixed: false, align: 'center',
214
+					sortable: false, hidden: false
215
+				},
216
+				{
217
+					index: 'VAN_PORT', name: 'vanPort',
218
+					label: 'PORT', 
219
+					width: '6', fixed: false, align: 'center',
220
+					sortable: false, hidden: false
221
+				},
222
+				{
223
+					index: 'ADD_DT', name: 'addDt',
224
+					label: '등록일자', 
225
+					width: '8', fixed: false, align: 'center',
226
+					sortable: false, hidden: false
227
+				}
228
+			],
229
+			loadBeforeSend: function(jqXHR) {
230
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
231
+			},
232
+			postData: JSON.stringify(param),
233
+			url: DOMAIN + VAN_GRID_LIST,
234
+			pager: KOPER05010_GRID_PAGER,
235
+			multiselect: false,
236
+			rownumbers: true, 
237
+			onCellSelect: function(rowId, cellIdx, cellValue) {
238
+				var cm = $(this).jqGrid('getGridParam', 'colModel');
239
+				var colNm = cm[cellIdx].name;
240
+				if (colNm == 'vanCd') {
241
+					const vanCdVal = $(this).jqGrid('getCell', rowId, 'vanCd');
242
+					const key = {vanCd: vanCdVal, viewCd: 'R'};
243
+					var param = $.param(key);
244
+					itp_fn_KOPER05010_view(param);
245
+				}
246
+		   	},
247
+			loadComplete: function(data) {
248
+				console.log(JSON.stringify(data));
249
+				itp_fn_grid_load_complete(data, KOPER05010_GRID_ID, true, 'number', 'KOPER05010', itp_KOPER05010_search, itp_fn_KOPER05010_empty, true, data.gridRecords, true);
250
+				var ids = $(KOPER05010_GRID_ID).getDataIDs();
251
+				$.each(ids, function(idx, rowId) {
252
+					$(KOPER05010_GRID_ID).jqGrid('setCell', rowId, 'vanCd', '', ITP_GRID_COL_STYLE.link);
253
+				});	
254
+		    },
255
+		    loadError: function(jqXHR, textStatus, errorThrown) {
256
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
257
+		    },
258
+		    onPaging: function(action) {
259
+		    	itp_fn_grid_paging(KOPER05010_GRID_ID, action, param);
260
+		    }
261
+		}).navGrid(KOPER05010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
262
+	},
263
+	clearData : function() {
264
+		$(KOPER05010_GRID_ID).jqGrid('clearGridData', true);
265
+		$(KOPER05010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
266
+		$(KOPER05010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
267
+		$(KOPER05010_GRID_EMPTY).show();
268
+	}, 
269
+	unload : function() {
270
+		$.jgrid.gridUnload(KOPER05010_GRID_ID); 
271
+	}
272
+};
273
+
274
+var itp_fn_KOPER05010_search = function() {
275
+	itp_fn_KOPER05010_switch_screen('LIST');	
276
+	itp_fn_KOPER05010_grid.unload();
277
+	itp_fn_KOPER05010_grid.callBack();
278
+};
279
+
280
+let itp_KOPER05010_param = {};
281
+let itp_KOPER05010_search = false;
282
+var itp_fn_KOPER05010_empty = {
283
+	push: function() {
284
+		let param = $('#ITP_FORM_KOPER05010_SEARCH').serializeObject();
285
+		itp_KOPER05010_param = param;
286
+	}
287
+};
288
+
289
+var itp_fn_KOPER05010_view = function(param) {
290
+	fn_ajax_call(VAN_INFO, param, itp_fn_KOPER05010_view_callback, 'GET');
291
+};
292
+
293
+var itp_fn_KOPER05010_view_callback = function(result) {
294
+	// console.log(result);
295
+	itp_fn_KOPER05010_switch_screen('VIEW');
296
+	$('#ITP_FORM_KOPER05010_VIEW #ITP_FORM_KOPER05010_VIEW_VAN_CD').val(result.vanCd);
297
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanCd').text(result.vanCd);
298
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanNm').text(result.vanNm);
299
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanIp').text(result.vanIp);
300
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanPort').text(result.vanPort);
301
+	$('#ITP_FORM_KOPER05010_VIEW .fnAddDt').text(result.addDt);
302
+	$('#ITP_FORM_KOPER05010_VIEW .fnChgDt').text(result.chgDt);
303
+	
304
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData1').text(result.vanData1);
305
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData2').text(result.vanData2);
306
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData3').text(result.vanData3);
307
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData4').text(result.vanData4);
308
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData5').text(result.vanData5);
309
+	
310
+};
311
+
312
+var itp_fn_KOPER05010_detail = function(param) {
313
+	fn_ajax_call(VAN_INFO, param, itp_fn_KOPER05010_detail_callback, 'GET');
314
+};
315
+
316
+var itp_fn_KOPER05010_detail_callback = function(result) {
317
+	 console.log(result);
318
+	itp_fn_KOPER05010_switch_screen('MODIFY');
319
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VIEW_CD').val('U');
320
+	
321
+	//$('#ITP_FORM_KOPER05010_VIEW #ITP_FORM_KOPER05010_VIEW_VAN_CD').val(result.vanCd);
322
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanCd').text(result.vanCd);
323
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanNm').text(result.vanNm);
324
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanIp').text(result.vanIp);
325
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanPort').text(result.vanPort);
326
+	$('#ITP_FORM_KOPER05010_VIEW .fnAddDt').text(result.addDt);
327
+	$('#ITP_FORM_KOPER05010_VIEW .fnChgDt').text(result.chgDt);
328
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData1').text(result.vanData1);
329
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData2').text(result.vanData2);
330
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData3').text(result.vanData3);
331
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData4').text(result.vanData4);
332
+	$('#ITP_FORM_KOPER05010_VIEW .fnVanData5').text(result.vanData5);
333
+	
334
+	
335
+	
336
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_CD').val(result.vanCd);
337
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_NM').val(result.vanNm);
338
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_IP').val(result.vanIp);
339
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_PORT').val(result.vanPort);	
340
+	$('#ITP_FORM_KOPER05010_DETAIL .fnAddDt').text(result.addDt);
341
+	$('#ITP_FORM_KOPER05010_DETAIL .fnChgDt').text(result.chgDt);
342
+	
343
+	
344
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA1').val(result.vanData1);
345
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA2').val(result.vanData2);
346
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA3').val(result.vanData3);
347
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA4').val(result.vanData4);
348
+	$('#ITP_FORM_KOPER05010_DETAIL #ITP_FORM_KOPER05010_DETAIL_VAN_DATA5').val(result.vanData5);
349
+	
350
+	
351
+	
352
+};

+ 278 - 0
bin/src/main/webapp/js/app/koper/ITP_KOPER07010.js

@@ -0,0 +1,278 @@
1
+
2
+const KOPER07010_GRID_ID = '#ITP_KOPER07010_jqGrid';
3
+const KOPER07010_GRID_LIST = '#ITP_KOPER07010_jqGrid_list';
4
+const KOPER07010_GRID_PAGER = '#ITP_KOPER07010_jqGridPager';
5
+const KOPER07010_GRID_EMPTY = '#ITP_KOPER07010_jqGridEmpty';
6
+
7
+let ITP_FORM_KOPER07010_DETAIL_IS_WRITING = false;
8
+let KOPER07010_GRID_LAST_ROW_ID;
9
+
10
+let NK_APPTYPE_CFG_GRID_LIST = '/api/nk/apptype/cfg/grid-list';
11
+let NK_SAVE_APPTYPE_CFG = '/api/nk/apptype/cfg/save-apptype-cfg'; 
12
+let BRAND_LIST_BRAND = '/api/nk/brand/list-brand'; // 브랜드리스트
13
+let CORNER_LIST_CORNER = '/api/nk/corner/list-corner'; // 코너리스트
14
+
15
+require(['config'], function() {
16
+	require([
17
+		'jquery',
18
+		'check'
19
+	], function($) {
20
+		
21
+		// 버튼 권한설정
22
+		fn_proc_btn_auth('KOPER07010');
23
+		// 공통코드 표시
24
+		fn_make_select(CODE_LIST, 'APP_TYPE_CD', 'ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD');
25
+		fn_make_select(CODE_LIST, 'CFG_TYPE_CD', 'ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD');
26
+		fn_make_input_common_cd(CODE_LIST, 'YN', 'ITP_FORM_KOPER07010_SEARCH_YN', false);
27
+
28
+		// 그리드
29
+		itp_fn_jqgrid_resize(KOPER07010_GRID_ID, KOPER07010_GRID_LIST, 'lg');
30
+		itp_fn_KOPER07010_grid.init();
31
+    	itp_fn_fire_window_resize();
32
+
33
+		// 조회
34
+		itp_fn_KOPER07010_search();
35
+		
36
+		$('#ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD,#ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD').on('change', function() {
37
+			// 조회
38
+			itp_fn_KOPER07010_search();
39
+		});
40
+
41
+		// 조회 버튼 클릭
42
+		$('#ITP_BTN_KOPER07010_SRH').on('click', function() {
43
+			itp_KOPER07010_search = true;
44
+			let param = $('#ITP_FORM_KOPER07010_SEARCH').serializeObject();
45
+			param.gridSize = $.jgrid.defaults.rowNum;
46
+			param.gridPage = $.jgrid.defaults.page;
47
+			$(KOPER07010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
48
+		});
49
+
50
+		// 추가 버튼
51
+		$('#ITP_BTN_KOPER07010_ADD').on('click', function() {
52
+			if($('#ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD').val() == '') {
53
+				itp_fn_modal_alert('어플리케이션유형코드를 선택하세요.');
54
+				return;
55
+			}
56
+			if($('#ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD').val() == '') {
57
+				itp_fn_modal_alert('환경설정구분코드를 선택하세요.');
58
+				return;
59
+			}
60
+			KOPER07010_GRID_LAST_ROW_ID = itp_fn_grid_add_row(KOPER07010_GRID_ID, function(last_row_id, row_count) {
61
+				
62
+				const cfgTypeNm = $('#ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD option:selected').text();
63
+				$(KOPER07010_GRID_ID).jqGrid('setCell', last_row_id, 'cfgTypeNm', cfgTypeNm);
64
+				
65
+			}, ['cfgKey'], 'KOPER07010');
66
+		});
67
+		
68
+		// 삭제 버튼
69
+		$('#ITP_BTN_KOPER07010_DEL').on('click', function() {
70
+			if($('#ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD').val() == '') {
71
+				itp_fn_modal_alert('어플리케이션유형코드를 선택하세요.');
72
+				return;
73
+			}
74
+			if($('#ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD').val() == '') {
75
+				itp_fn_modal_alert('환경설정구분코드를 선택하세요.');
76
+				return;
77
+			}
78
+			itp_fn_grid_del_row(KOPER07010_GRID_ID);			
79
+		});
80
+		
81
+		// 저장 버튼
82
+		$('#ITP_BTN_KOPER07010_SAVE').on('click', function() {
83
+			if($('#ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD').val() == '') {
84
+				itp_fn_modal_alert('어플리케이션유형코드를 선택하세요.');
85
+				return;
86
+			}
87
+			if($('#ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD').val() == '') {
88
+				itp_fn_modal_alert('환경설정구분코드를 선택하세요.');
89
+				return;
90
+			}
91
+			
92
+			let gridInsertData = [];
93
+			let gridUpdateData = [];
94
+			let gridDeleteData = [];
95
+			const rowData = $(KOPER07010_GRID_ID).getRowData();
96
+			$.each(rowData, function(key, value) {
97
+				if (value.viewCd != 'R') {
98
+					if (value.viewCd == 'C') {
99
+						gridInsertData.push(value);
100
+					} else if (value.viewCd == 'U') {
101
+						gridUpdateData.push(value);
102
+					} else if (value.viewCd == 'D') {
103
+						gridDeleteData.push(value);
104
+					}
105
+				}
106
+			});
107
+			
108
+			$('#ITP_FORM_KOPER07010_SAVE_VIEW_CD').val('U');
109
+			$('#ITP_FORM_KOPER07010_SAVE_APP_TYPE_CD').val($('#ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD').val());
110
+			$('#ITP_FORM_KOPER07010_SAVE_CFG_TYPE_CD').val($('#ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD').val());
111
+			
112
+			let param = $('#ITP_FORM_KOPER07010_SAVE').serializeObject();
113
+			param.gridInsertData = gridInsertData;
114
+			param.gridUpdateData = gridUpdateData;
115
+			param.gridDeleteData = gridDeleteData;
116
+			
117
+			fn_ajax_call(NK_SAVE_APPTYPE_CFG, JSON.stringify(param), function() {			
118
+				// 조회
119
+    			itp_fn_KOPER07010_search();
120
+			}, 'POST');
121
+		});
122
+
123
+		$('body').on('click', function(e) {			
124
+			var gridId = KOPER07010_GRID_ID.replace('#', '');
125
+			var rids = $(KOPER07010_GRID_ID).jqGrid('getDataIDs');			
126
+			var last_row_id = rids[rids.length - 1];
127
+			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'KOPER07010_DETAIL');
128
+		});
129
+	});
130
+});
131
+
132
+var itp_fn_KOPER07010_grid = {
133
+	init: function() {
134
+		// 데이터 없을때
135
+		itp_fn_KOPER07010_empty.push();
136
+		$(KOPER07010_GRID_EMPTY).on('click', function() {
137
+			itp_fn_KOPER07010_empty.back();
138
+			itp_KOPER07010_param.gridSize = $.jgrid.defaults.rowNum;
139
+			$(KOPER07010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_KOPER07010_param)}).trigger('reloadGrid');
140
+		});
141
+	},
142
+	callBack: function() {
143
+		let param = $('#ITP_FORM_KOPER07010_SEARCH').serializeObject();
144
+		param.gridSize = $.jgrid.defaults.rowNum;
145
+		$(KOPER07010_GRID_ID).jqGrid({
146
+			colModel: [
147
+				{
148
+					index: 'VIEW_CD', name: 'viewCd',
149
+					label: ITP_MSG_LOCALE.label.viewCd,
150
+					width: '10', fixed: false, align: 'center',
151
+					sortable: false, hidden: true
152
+				},
153
+				{
154
+					index: 'CFG_TYPE_NM', name: 'cfgTypeNm',
155
+					label: '환경설정구분', 
156
+					width: '10', fixed: false, align: 'center',
157
+					sortable: false, hidden: false
158
+				},
159
+				{
160
+					index: 'CFG_KEY', name: 'cfgKey',
161
+					label: '환경설정키', 
162
+					width: '10', fixed: false, align: 'center',
163
+					sortable: false, editable: false, edittype: 'text',
164
+					editrules: {required: true}, 
165
+					editoptions: {maxlength: 100}
166
+				},
167
+				{
168
+					index: 'CFG_NM', name: 'cfgNm',
169
+					label: '환경설정명', 
170
+					width: '10', fixed: false, align: 'center',
171
+					sortable: false, editable: true, edittype: 'text', 
172
+					editrules: {required: true},
173
+					editoptions: {maxlength: 25}
174
+				},
175
+				{
176
+					index: 'MUST_YN', name: 'mustYn',
177
+					label: '필수여부', 
178
+					width: '7', fixed: false, align: 'center',
179
+					sortable: false, editable: true, formatter: 'select', edittype: 'select',
180
+					editoptions: {value: $('#ITP_FORM_KOPER07010_SEARCH_YN').val()},
181
+					editrules: {required: true}
182
+				},
183
+				{
184
+					index: 'CFG_VALUE', name: 'cfgValue',
185
+					label: '기본값', 
186
+					width: '10', fixed: false, align: 'center',
187
+					sortable: false, editable: true, edittype: 'text', 
188
+					editrules: {required: true}
189
+				},
190
+				{
191
+					index: 'CFG_DESC', name: 'cfgDesc',
192
+					label: '설명', 
193
+					width: '15', fixed: false, align: 'center',
194
+					sortable: false, editable: true, edittype: 'text', 
195
+					editrules: {required: false}
196
+				}
197
+			],
198
+			loadBeforeSend: function(jqXHR) {
199
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
200
+			},
201
+			postData: JSON.stringify(param),
202
+			url: DOMAIN + NK_APPTYPE_CFG_GRID_LIST,
203
+			pager: KOPER07010_GRID_PAGER,
204
+			multiselect: true,
205
+			rownumbers: false,
206
+			onCellSelect: function(rowId, cellIdx, cellValue) {
207
+				KOPER07010_GRID_LAST_ROW_ID = itp_fn_set_data_editable(rowId, cellIdx, KOPER07010_GRID_LAST_ROW_ID, KOPER07010_GRID_ID, ['cfgKey']);
208
+		   	},
209
+			loadComplete: function(data) {
210
+				itp_fn_grid_load_complete(data, KOPER07010_GRID_ID, true, 'number', 'KOPER07010', itp_KOPER07010_search, itp_fn_KOPER07010_empty, false, data.gridRecords, true);
211
+				var ids = $(KOPER07010_GRID_ID).getDataIDs();
212
+				$.each(ids, function(idx, rowId) {
213
+					$(KOPER07010_GRID_ID).jqGrid('setCell', rowId, 'cornerNm', '', ITP_GRID_COL_STYLE.link);
214
+				});
215
+		    },
216
+		    loadError: function(jqXHR, textStatus, errorThrown) {
217
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
218
+		    },
219
+		    onPaging: function(action) {
220
+		    	itp_fn_grid_paging(KOPER07010_GRID_ID, action, param);
221
+		    }
222
+		}).navGrid(KOPER07010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
223
+	},
224
+	clearData : function() {
225
+		$(KOPER07010_GRID_ID).jqGrid('clearGridData', true);
226
+		$(KOPER07010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
227
+		$(KOPER07010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
228
+		$(KOPER07010_GRID_EMPTY).show();
229
+	},
230
+	unload : function() {
231
+		$.jgrid.gridUnload(KOPER07010_GRID_ID);
232
+	}
233
+};
234
+
235
+var itp_fn_KOPER07010_search = function() {	
236
+	itp_fn_KOPER07010_grid.unload();
237
+	itp_fn_KOPER07010_grid.callBack();
238
+};
239
+
240
+let itp_KOPER07010_param = {};
241
+let itp_KOPER07010_search = false;
242
+var itp_fn_KOPER07010_empty = {
243
+	push: function() {
244
+		let param = $('#ITP_FORM_KOPER07010_SEARCH').serializeObject();
245
+		itp_KOPER07010_param = param;
246
+	},
247
+	back: function() {
248
+		$('#ITP_FORM_KOPER07010_SEARCH_APP_TYPE_CD').val(itp_KOPER07010_param.sappTypeCd);
249
+		$('#ITP_FORM_KOPER07010_SEARCH_CFG_TYPE_CD').val(itp_KOPER07010_param.scfgTypeCd);
250
+	}
251
+};
252
+
253
+var itp_fn_KOPER07010_brand_list = function(fnCall) {
254
+	const cmpyCdVal = $('#ITP_TXT_KOPER07010_SHR_CMPY').attr('data-cmpy-cd');	
255
+	const key = {cmpyCd: cmpyCdVal, userTypeCd: USER_TYPE_CD, userId: USER_ID};
256
+	var param = $.param(key);
257
+	fn_ajax_call(BRAND_LIST_BRAND, param, function(result) {
258
+		
259
+		fn_make_select_brand(result, 'ITP_FORM_KOPER07010_SEARCH_BRAND_CD');
260
+		fn_make_select_brand(result, 'ITP_FORM_KOPER07010_DETAIL_BRAND_CD');
261
+		
262
+		if (fnCall !== undefined || typeof fnCall !== 'undefined') fnCall();
263
+				
264
+	}, 'GET');
265
+};
266
+
267
+var itp_fn_KFRGD02010_corner_list = function(brandCdVal, storeNoVal, fnCall) {
268
+	const key = {brandCd: brandCdVal, storeNo: storeNoVal};
269
+	var param = $.param(key);
270
+	fn_ajax_call(CORNER_LIST_CORNER, param, function(result) {
271
+	
272
+		fn_make_select_corner(result, 'ITP_FORM_KOPER07010_SEARCH_CORNER_CD');
273
+		
274
+		if (fnCall !== undefined || typeof fnCall !== 'undefined') fnCall();
275
+	
276
+	}, 'GET');
277
+};
278
+

+ 292 - 0
bin/src/main/webapp/js/app/locales/locale-ko.js

@@ -0,0 +1,292 @@
1
+const ITP_MSG_LOCALE = (function() {
2
+	var data = {
3
+		"language": {
4
+			"ko": "한국어"
5
+		},
6
+		"title": {
7
+			"browser": "운영시스템",
8
+			"author": "수발주시스템",
9
+			"findPassword": "비밀번호찾기",
10
+			"alert": "알림",
11
+			"userInfo": "사용자정보",
12
+			"summary": "메뉴안내",
13
+			"codeList": "코드목록",
14
+			"codeInfo": "코드정보",
15
+			"menuList": "메뉴목록",
16
+			"menuInfo": "메뉴정보",
17
+			"actionInfo": "액션정보",
18
+			"permitList": "권한목록",
19
+			"permitInfo": "권한정보",
20
+			"permitSrh": "권한검색",
21
+			"seqList": "채번목록",
22
+			"seqInfo": "채번정보",
23
+			"fileAdd": "파일첨부",
24
+			"sysHistory": "작업현황",
25
+			"ifHistory": "IF현황",
26
+			"ifList": "IF목록",
27
+			"ifInfo": "IF정보",
28
+			"operationMng": "운영자 관리",
29
+			"accountInfo": "계정 정보",
30
+			"authInfo": "권한 정보",
31
+			"storeSrh": "매장 검색",
32
+			"storeInfo": "매장 정보",
33
+			"addressFind": "주소 검색",
34
+			"bunssInfo": "사업자 정보"
35
+		},
36
+		"label": {
37
+			"sysAdmin": "시스템관리자",
38
+			"id": "아이디",
39
+			"password": "비밀번호",
40
+			"saveId": "아이디저장",
41
+			"email": "이메일",
42
+			"userId": "사용자ID",
43
+			"userName": "사용자명",
44
+			"telephone": "전화번호",
45
+			"confrimPassword": "비밀번호확인",
46
+			"code": "코드",
47
+			"codeType": "코드타입",
48
+			"useYn": "사용여부",
49
+			"codeNmKo": "코드명",
50
+			"remark": "비고",
51
+			"total": "전체",
52
+			"selected": "선택",
53
+			"search": "검색",
54
+			"topMenuName": "상위메뉴명",
55
+			"menuNumber": "메뉴번호",
56
+			"menuNameKr": "메뉴명",
57
+			"menuPath": "메뉴경로",
58
+			"displayClas": "출력구분",
59
+			"displaySeq": "출력순번",
60
+			"accessUrl": "접속URL",
61
+			"image": "이미지",
62
+			"menuId": "메뉴아이디",
63
+			"actionType": "액션타입",
64
+			"permitCd": "권한코드",
65
+			"permitNameKr": "권한명",
66
+			"permitType": "권한타입",
67
+			"topMenu": "상위메뉴",
68
+			"permitName": "권한명",
69
+			"defLang": "정의어",
70
+			"seqName": "채번명",
71
+			"seqStartNo": "채번시작번호",
72
+			"seqEndNo": "채번종료번호",
73
+			"seqUseNo": "채번사용번호",
74
+			"curSeqNo": "현재채번번호",
75
+			"year": "년",
76
+			"month": "월",
77
+			"day": "일",
78
+			"seqCd": "채번코드",
79
+			"connHis": "접속일자",
80
+			"menuTxt": "메뉴",
81
+			"connResult": "전송결과",
82
+			"userNameKr": "사용자명",
83
+			"passwordNew": "새 비밀번호",
84
+			"confrimPasswordNew": "새 비밀번호확인",
85
+			"actionId": "액션ID",
86
+			"actionName": "액션명",
87
+			"actionUrl": "액션URL",
88
+			"connDate": "전송일자",
89
+			"resultDetail": "결과상세",
90
+			"historyNo": "작업번호",
91
+			"connTime": "접속시간",
92
+			"connIp": "접속IP",
93
+			"codeDtl": "상세코드",
94
+			"orderNo": "순번",
95
+			"subMenu": "하위메뉴",
96
+			"menuName": "메뉴명",
97
+			"menuDetail": "상세메뉴명",
98
+			"readPermit": "읽기권한",
99
+			"writePermit": "쓰기권한",
100
+			"icon": "아이콘",
101
+			"name": "이름",
102
+			"telNo": "휴대폰 번호",
103
+			"mngMenu": "관리 메뉴",
104
+			"status": "상태",
105
+			"statusDt": "상태일시",
106
+			"numbering": "NO",
107
+			"inputSelf": "직접입력",
108
+			"active": "활성",
109
+		},
110
+		"link": {
111
+			"forgotPassword": "비밀번호찾기"
112
+		},
113
+		"text": {
114
+			"copyright": "COPYRIGHT © ORDERQUEEN Co., Ltd. ALL RIGHTS RESERVED",
115
+			"changePassword": "비밀번호 변경을 해주세요.",
116
+			"chrome": "본 시스템은 크롬 브라우저에 최적화 되어 있습니다."
117
+		},
118
+		"button": {
119
+			"login": "로그인",
120
+			"logout": "로그아웃",
121
+			"confirm": "확인",
122
+			"cancel": "취소",
123
+			"find": "찾기",
124
+			"save": "저장",
125
+			"new": "신규",
126
+			"delete": "삭제",
127
+			"addRow": "행추가",
128
+			"delRow": "행삭제",
129
+			"addLowLvl": "하위레벨추가",
130
+			"material": "자재",
131
+			"select": "선택",
132
+			"inquiry": "조회",
133
+			"applyAll": "동일적용",
134
+			"orderWork": "작업지시",
135
+			"cancelWork": "작업취소",
136
+			"print": "인쇄",
137
+			"add": "추가",
138
+			"addFile": "파일첨부",
139
+			"editFile": "파일수정",
140
+			"delFile": "파일삭제",
141
+			"startUpload": "업로드시작",
142
+			"cancelUpload": "업로드취소",
143
+			"download": "다운로드",
144
+			"excelDown": "엑셀다운로드",
145
+			"addTopLvl": "상위레벨추가",
146
+			"excelUp": "엑셀업로드",
147
+			"register": "등록",
148
+			"downForm": "양식다운로드",
149
+			"applySelct": "선택영역적용",
150
+			"processing": "처리",
151
+			"printOut": "출력",
152
+			"applyOne": "일괄적용",
153
+			"transfer": "이동지시",
154
+			"addItem": "품목추가",
155
+			"shipOrder": "출하지시",
156
+			"publish": "발행",
157
+			"wareProcess": "입고처리",
158
+			"transMate": "자재이동지시",
159
+			"viewItem": "품목정보보기",
160
+			"relay": "전송",
161
+			"releaseProc": "출고처리",
162
+			"uploadForm": "올리기",
163
+			"closePop": "닫기"
164
+		},
165
+		"message": {
166
+			"ajax": {
167
+				"failPage": "화면을 불러오는데 실패하였습니다.",
168
+				"failData": "데이터를 불러오는데 실패하였습니다.",
169
+				"failProcess": "데이터 처리중 오류가 발생하였습니다.",
170
+				"successData": "성공적으로 저장 하였습니다.",
171
+				"deletedData": "성공적으로 삭제 하였습니다.",
172
+				"cancelData": "작업중인 내용을 취소하시고<br>조회하시겠습니까?",
173
+				"noData": "선택된 데이터가 없습니다.",
174
+				"resetData": "기존에 입력했던 데이터가 사라집니다. 수정하시겠습니까?",
175
+				"noSingleData": "하나 이상 선택할 수 없습니다.",
176
+				"askResetPw": "회원 비밀번호를 초기화<br>하시겠습니까?",
177
+				"resetPw": "회원 비밀번호가<br>초기화 되었습니다.",
178
+				"resetUserPw": "사용자 비밀번호가<br>초기화 되었습니다.",
179
+				"askResetUserPw": "사용자 비밀번호를 초기화<br>하시겠습니까?",
180
+				"batchExecute": "배치를 실행하시겠습니까?",
181
+				"alreadyStore": "이미 등록된 매장 입니다.",
182
+				"noXypos": "선택한 주소의 좌표값이 없습니다.",
183
+				"noLoc": "노출 위치를 선택해주세요.",
184
+				"cancelPay": "성공적으로 결제를 취소 하였습니다.",
185
+				"deletFaq": "TOP5에서도 함께 제거됩니다.<br>삭제 하시겠습니까?"
186
+			},
187
+			"login": {
188
+				"help": "아이디와 비밀번호를 입력하세요.",
189
+				"fail": "로그인 할 수 없습니다. 관리자에게 문의해주세요.",
190
+				"needId": "아이디를 입력하세요.",
191
+				"needPw": "비밀번호를 입력하세요."
192
+			},
193
+			"form": {
194
+				"mandatory": "필수항목입니다.",
195
+				"onlynumber": "숫자만 입력하세요.",
196
+				"wronguserid": "5~12자 / 영문 소문자, 숫자 이어야 합니다.",
197
+				"wronguserid2": "영문 소문자, 숫자 이어야 합니다.",
198
+				"wrongtelnumber": "잘못된 전화번호입니다. 숫자, - 를 포함한 숫자만 입력하세요.",
199
+				"wrongemail": "잘못된 이메일 형식입니다.",
200
+				"wronglink": "잘못된 URL 형식입니다.",
201
+				"wrongpassword": "영문, 숫자, 특수문자의 조합으로 8~16자리를 사용해야 합니다.",
202
+				"duplicate": "{0} 중복체크를 해주세요.",
203
+				"deleteData": "삭제 하시겠습니까?",
204
+				"wrongPwd": "비밀번호가 일치하지 않습니다.",
205
+				"selectDt": "날짜를 선택하세요.",
206
+				"onlyImage": "jpg, jpeg 파일만 선택해 주세요.",
207
+				"onlyImage2": "jpg, jpeg, png 파일만 선택해 주세요.",
208
+				"noImageSize": "이미지 해상도를 확인해 주세요.",
209
+				"noTime": "선택된 요일의 시간을<br>설정해주세요.",
210
+				"alreadyArea": "이미 선택된 지역입니다.",
211
+				"needAll": "모든 항목을 입력해주세요.",
212
+				"orderAbove": "주문시 선택 가능 수는 {0}개 이상 설정할 수 없습니다.",
213
+				"selCancelWhy": "취소 사유를 선택해주세요",
214
+				"writeCancelWhy": "취소 사유를 입력해주세요",
215
+				"cancelPay": "취소 후 복구할 수 없습니다.<br>결제를 취소 할까요?",
216
+				"needReply": "답변 여부를 선택해주세요.",
217
+				"excpReply": "답변 제외로 처리됩니다.",
218
+				"regReply": "답변을 등록 할까요?",
219
+				"needReple": "답변 내용을 입력해주세요.",
220
+				"excelWarn": "엑셀이 다 받아질 때까지 기다려 주세요."
221
+			},
222
+			"grid": {
223
+				"noData": "등록된 게시물이 없습니다.",
224
+				"noSrh": "검색 결과가 없습니다.<br><u>이전 검색 결과로 돌아가기</u>",
225
+				"noStore": "연결된 매장이 없습니다.",
226
+				"noOrder": "주문이 발생한 매장이 없습니다.",
227
+				"noOrderSt": "발생된 주문이 없습니다."
228
+			},
229
+			"page": {
230
+				"noMoreTab": "더는 탭을 열 수 없습니다.",
231
+				"noBack": "뒤로 가기 버튼을 이용할 수 없습니다.",
232
+				"allowPop": "이 웹 사이트에 대한 팝업을<br>허용하십시오."
233
+			},
234
+			"duplicate": {
235
+				"no": "사용 가능한 {0} 입니다.",
236
+				"yes": "사용 할 수 없는 {0} 입니다.",
237
+				"ex": "이미 선택된 {0} 입니다.",
238
+				"noId": "사용 가능한 아이디",
239
+				"yesId": "사용 할 수 없는 아이디",
240
+				"yesIdTxt": "사용 할 수 없는 아이디 입니다."
241
+			},
242
+			"menu": {
243
+				"existDepth": "하위메뉴가 존재합니다."
244
+			},
245
+			"dc": {
246
+				"existMenu": "이미 등록돼 있는 메뉴입니다.",
247
+				"existReg": "단일↔구성별 메뉴 변경 불가<br>(사유:할인 또는 추천메뉴로 등록됨)",
248
+				"existDel": "삭제 불가<br>(사유:할인 또는 추천메뉴로 등록됨)"
249
+			},
250
+			"upload": {
251
+				"successUpload": "성공적으로 업로드 하였습니다.",
252
+				"failUpload": "업로드에 실패하였습니다.",
253
+				"fileCnt": "개 까지 파일만 업로드 할수 있습니다.",
254
+				"fileType": "지원하는 파일형식이 아닙니다.",
255
+				"fileSize": "를 초과하였습니다.",
256
+				"fileQuene": "대기열에 이미 있습니다.",
257
+				"fileDelete": "삭제에 실패하였습니다.",
258
+				"fileNeed": "첨부파일을 추가해 주세요.",
259
+				"fileDownload": "다운로드에 실패했습니다.",
260
+				"deleteFile": "기존 파일을 삭제해주세요.",
261
+				"overSize": "첨부파일 용량을 초과하였습니다.<br>(최대 20MB)"
262
+			},
263
+			"error": {
264
+				"sorry": "죄송합니다.",
265
+				"noPage": "요청하신 페이지를 찾을 수 없습니다..",
266
+				"notFound": "방문하시려는 페이지의 주소가 잘못 입력되었거나, 페이지의 주소가<br>변경 혹은 삭제되어 요청하신 페이지를 찾을 수 없습니다.<br>입력하신 주소가 정확한지 다시 한번 확인해 주시기 바랍니다.",
267
+				"thanks": "감사합니다.",
268
+				"backHome": "메인페이지 이동"
269
+			},
270
+			"batch": {
271
+				"runMmSet": "월 가동시간정보를 설정하세요.", 
272
+				"runDdSet": "일 가동시간정보를 설정하세요.",
273
+				"runHhSet": "시 가동시간정보를 설정하세요.", 
274
+				"runMiSet": "분 가동시간정보를 설정하세요.",
275
+				"runSsSet": "초 가동시간정보를 설정하세요."
276
+			}, 
277
+			"sms": {
278
+				"resetPwd": "고객님의 비밀번호가 요청에 의해 초기화 되었습니다. 비밀번호는 {0} 입니다."
279
+			}
280
+		}
281
+	};
282
+
283
+	return {
284
+		language: data.language,
285
+		title: data.title,
286
+		label: data.label,
287
+		link: data.link,
288
+		text: data.text,
289
+		button: data.button,
290
+		message: data.message
291
+	};
292
+}());

+ 424 - 0
bin/src/main/webapp/js/app/oper/ITP_OPER01010.js

@@ -1,4 +1,5 @@
1 1
 
2
+<<<<<<< HEAD
2 3
 const STINFO01010_GRID_ID = '#ITP_STINFO01010_jqGrid';
3 4
 const STINFO01010_GRID_LIST = '#ITP_STINFO01010_jqGrid_list';
4 5
 const STINFO01010_GRID_PAGER = '#ITP_STINFO01010_jqGridPager';
@@ -16,6 +17,25 @@ const STINFO01010_DETAIL_GRID_EMPTY = '#ITP_STINFO01010_DETAIL_jqGridEmpty';
16 17
 
17 18
 let ITP_FORM_STINFO01010_DETAIL_IS_DUPLICATE = false;
18 19
 let ITP_FORM_STINFO01010_DETAIL_IS_WRITING = false;
20
+=======
21
+const OPER01010_GRID_ID = '#ITP_OPER01010_jqGrid';
22
+const OPER01010_GRID_LIST = '#ITP_OPER01010_jqGrid_list';
23
+const OPER01010_GRID_PAGER = '#ITP_OPER01010_jqGridPager';
24
+const OPER01010_GRID_EMPTY = '#ITP_OPER01010_jqGridEmpty';
25
+
26
+const OPER01010_VIEW_GRID_ID = '#ITP_OPER01010_VIEW_jqGrid';
27
+const OPER01010_VIEW_GRID_LIST = '#ITP_OPER01010_VIEW_jqGrid_list';
28
+const OPER01010_VIEW_GRID_PAGER = '#ITP_OPER01010_VIEW_jqGridPager';
29
+const OPER01010_VIEW_GRID_EMPTY = '#ITP_OPER01010_VIEW_jqGridEmpty';
30
+
31
+const OPER01010_DETAIL_GRID_ID = '#ITP_OPER01010_DETAIL_jqGrid';
32
+const OPER01010_DETAIL_GRID_LIST = '#ITP_OPER01010_DETAIL_jqGrid_list';
33
+const OPER01010_DETAIL_GRID_PAGER = '#ITP_OPER01010_DETAIL_jqGridPager';
34
+const OPER01010_DETAIL_GRID_EMPTY = '#ITP_OPER01010_DETAIL_jqGridEmpty';
35
+
36
+let ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = false;
37
+let ITP_FORM_OPER01010_DETAIL_IS_WRITING = false;
38
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
19 39
 
20 40
 let USER_DETAIL_GRID_LIST = '/api/user/detail-grid-list';
21 41
 let USER_USERAUTH_GRID_LIST = '/api/user/userauth-grid-list';
@@ -29,6 +49,7 @@ require(['config'], function() {
29 49
 		'jquery'
30 50
 	], function($) {
31 51
 		// 버튼 권한설정
52
+<<<<<<< HEAD
32 53
 		fn_proc_btn_auth('STINFO01010');
33 54
 		// 공통코드 표시
34 55
 		fn_make_select(CODE_LIST, 'USER_STAT_CD', 'ITP_FORM_STINFO01010_SEARCH_USER_STAT_CD');
@@ -82,12 +103,72 @@ require(['config'], function() {
82 103
 		
83 104
 		// 삭제 버튼
84 105
 		$('#ITP_BTN_STINFO01010_DELETE').on('click', function() {
106
+=======
107
+		fn_proc_btn_auth('OPER01010');
108
+		// 공통코드 표시
109
+		fn_make_select(CODE_LIST, 'USER_STAT_CD', 'ITP_FORM_OPER01010_SEARCH_USER_STAT_CD');
110
+		fn_make_select(CODE_LIST, 'USER_STAT_CD', 'ITP_FORM_OPER01010_DETAIL_USER_STAT_CD', true, '선택');
111
+		
112
+		// 조회일자 지정
113
+		var now = new Date();
114
+		$('#ITP_TAB_OPER01010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
115
+		// $('#ITP_FORM_OPER01010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
116
+		// $('#ITP_FORM_OPER01010_SEARCH_TO_DT').datepicker('setDate', new Date());
117
+				
118
+		// 그리드				
119
+		itp_fn_jqgrid_resize(OPER01010_GRID_ID, OPER01010_GRID_LIST, 'lg');
120
+		itp_fn_OPER01010_grid.init();
121
+    	itp_fn_fire_window_resize();
122
+
123
+		// 조회    	
124
+    	itp_fn_OPER01010_search();
125
+    	
126
+		// 조회 버튼 클릭
127
+		$('#ITP_BTN_OPER01010_SRH').on('click', function() {
128
+			itp_OPER01010_search = true;
129
+			let param = $('#ITP_FORM_OPER01010_SEARCH').serializeObject();
130
+			param.gridSize = $.jgrid.defaults.rowNum;
131
+			param.gridPage = $.jgrid.defaults.page;
132
+			$(OPER01010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
133
+		});
134
+		
135
+		// 수정 버튼
136
+		$('#ITP_BTN_OPER01010_MODIFY').on('click', function() {
137
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER01010_DETAIL');			
138
+			const userIdVal = $('#ITP_FORM_OPER01010_VIEW_USER_ID').val();
139
+			const key = {userId: userIdVal, viewCd: 'R'};
140
+			var param = $.param(key);
141
+			itp_fn_OPER01010_detail(param);	
142
+		});
143
+		
144
+		// 신규등록 버튼
145
+		$('#ITP_BTN_OPER01010_NEWREG').on('click', function() {
146
+			itp_fn_OPER01010_switch_screen('ADD');			
147
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER01010_DETAIL');				
148
+			// 권한정보 리스트 조회
149
+			itp_fn_OPER01010_detail_grid.unload();
150
+			itp_fn_OPER01010_detail_grid.callBack();
151
+		});
152
+		
153
+		// 취소/목록 버튼
154
+		$('#ITP_BTN_OPER01010_CANCELLIST').on('click', function() {
155
+			itp_fn_OPER01010_search();
156
+    	});
157
+		
158
+		// 삭제 버튼
159
+		$('#ITP_BTN_OPER01010_DELETE').on('click', function() {
160
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
85 161
 			
86 162
 		});
87 163
 		
88 164
 		// 저장 버튼
165
+<<<<<<< HEAD
89 166
 		$('#ITP_BTN_STINFO01010_SAVE').on('click', function() {			
90 167
 			const formId = '#ITP_FORM_STINFO01010_DETAIL';
168
+=======
169
+		$('#ITP_BTN_OPER01010_SAVE').on('click', function() {			
170
+			const formId = '#ITP_FORM_OPER01010_DETAIL';
171
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
91 172
 			itp_fn_form_clear_validate(null, formId);			
92 173
 			var vali_userId = itp_fn_form_validate(formId, formId + '_USER_ID', ['empty'], undefined);
93 174
 			var vali_userStatCd = itp_fn_form_validate(formId, formId + '_USER_STAT_CD', ['empty'], undefined);
@@ -96,18 +177,30 @@ require(['config'], function() {
96 177
 			var vali_email = itp_fn_form_validate(formId, formId + '_EMAIL', ['empty'], undefined);
97 178
 			var vali_userPw = true;
98 179
 			var vali_userPwConfirm = true;
180
+<<<<<<< HEAD
99 181
 			if($('#ITP_FORM_STINFO01010_DETAIL_VIEW_CD').val() == 'C') { // 신규
182
+=======
183
+			if($('#ITP_FORM_OPER01010_DETAIL_VIEW_CD').val() == 'C') { // 신규
184
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
100 185
 				vali_userPw = itp_fn_form_validate(formId, formId + '_USER_PW', ['empty'], undefined);
101 186
 				vali_userPwConfirm = itp_fn_form_validate(formId, formId + '_USER_PW_CONFIRM', ['empty'], undefined);	
102 187
 			}
103 188
 			if (vali_userId && vali_userStatCd && vali_userNm && vali_userPw && vali_userPwConfirm && vali_telNo && vali_email) {
189
+<<<<<<< HEAD
104 190
 				if (ITP_FORM_STINFO01010_DETAIL_IS_DUPLICATE) {
191
+=======
192
+				if (ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE) {
193
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
105 194
 					itp_fn_modal_duplicate(ITP_MSG_LOCALE.label.userId, formId + '_USER_ID');
106 195
 				} else {
107 196
 					let gridInsertData = [];
108 197
 					let gridUpdateData = [];
109 198
 					let gridDeleteData = [];
199
+<<<<<<< HEAD
110 200
 					const rowData = $(STINFO01010_DETAIL_GRID_ID).getRowData();
201
+=======
202
+					const rowData = $(OPER01010_DETAIL_GRID_ID).getRowData();
203
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
111 204
 					const keyValue = $(formId + '_USER_ID').val();
112 205
 					$.each(rowData, function(key, value) {
113 206
 						if (value.viewCd != 'R') {
@@ -127,8 +220,13 @@ require(['config'], function() {
127 220
 					param.gridDeleteData = gridDeleteData;
128 221
 					//console.log(JSON.stringify(param)); 						
129 222
 					var searhFn = function() {
223
+<<<<<<< HEAD
130 224
 						ITP_FORM_STINFO01010_DETAIL_IS_WRITING = false;
131 225
 						itp_fn_STINFO01010_search();
226
+=======
227
+						ITP_FORM_OPER01010_DETAIL_IS_WRITING = false;
228
+						itp_fn_OPER01010_search();
229
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
132 230
 					};
133 231
 					fn_ajax_call(USER_SAVE_USER, JSON.stringify(param), searhFn, 'POST');	
134 232
 				}
@@ -136,16 +234,27 @@ require(['config'], function() {
136 234
 		});		
137 235
 		
138 236
 		// 중복체크
237
+<<<<<<< HEAD
139 238
 		$('#ITP_FORM_STINFO01010_DETAIL_DUP').on('click', function() {
140 239
 			const formId = '#ITP_FORM_STINFO01010_DETAIL';
240
+=======
241
+		$('#ITP_FORM_OPER01010_DETAIL_DUP').on('click', function() {
242
+			const formId = '#ITP_FORM_OPER01010_DETAIL';
243
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
141 244
 			itp_fn_form_clear_validate(null, formId + '_DETAIL');
142 245
 			var vali_userId = itp_fn_form_validate(formId + '_DETAIL', formId + '_USER_ID', ['empty'], undefined);
143 246
 			if (vali_userId) {
144 247
 				var dupFn = function(result) {
145 248
 					if (result.code == 'N') {
249
+<<<<<<< HEAD
146 250
 						ITP_FORM_STINFO01010_DETAIL_IS_DUPLICATE = false;
147 251
 					} else {
148 252
 						ITP_FORM_STINFO01010_DETAIL_IS_DUPLICATE = true;
253
+=======
254
+						ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = false;
255
+					} else {
256
+						ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = true;
257
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
149 258
 					}
150 259
 				};
151 260
 				const key = {'userId':  $(formId + '_USER_ID').val()};
@@ -155,10 +264,17 @@ require(['config'], function() {
155 264
 		});
156 265
 		
157 266
 		// 상세:비밀번호 초기화
267
+<<<<<<< HEAD
158 268
 		$('#ITP_BTN_STINFO01010_RESET_PW').on('click', function() {
159 269
 			var resetPwFn = {
160 270
 				callBack: function(args) {
161 271
 					const key = {'userId':  $('#ITP_FORM_STINFO01010_DETAIL_USER_ID').val()};
272
+=======
273
+		$('#ITP_BTN_OPER01010_RESET_PW').on('click', function() {
274
+			var resetPwFn = {
275
+				callBack: function(args) {
276
+					const key = {'userId':  $('#ITP_FORM_OPER01010_DETAIL_USER_ID').val()};
277
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
162 278
 					const param = $.param(key);
163 279
 					fn_ajax_call(USER_INTI_USERPW, param, undefined, 'GET');					
164 280
 				}
@@ -166,12 +282,20 @@ require(['config'], function() {
166 282
 			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);		
167 283
 		});
168 284
 		// 상세:추가버튼
285
+<<<<<<< HEAD
169 286
 		$('#ITP_BTN_STINFO01010_DETAIL_ADDROW').on('click', function() {
287
+=======
288
+		$('#ITP_BTN_OPER01010_DETAIL_ADDROW').on('click', function() {
289
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
170 290
 			// 팝업
171 291
 			var popFn = function(rowDataPop) {
172 292
 				// 기존등록 데이터 
173 293
 				var exists = '';				
294
+<<<<<<< HEAD
174 295
 				const rowData = $(STINFO01010_DETAIL_GRID_ID).getRowData();
296
+=======
297
+				const rowData = $(OPER01010_DETAIL_GRID_ID).getRowData();
298
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
175 299
 				$.each(rowData, function(key, value) {
176 300
 					exists = exists + value.authNo + ';';
177 301
 				});
@@ -179,6 +303,7 @@ require(['config'], function() {
179 303
 				$.each(rowDataPop, function(key, value) {
180 304
 					if(exists.indexOf(value.authNo) < 0) {
181 305
 						// 행추가
306
+<<<<<<< HEAD
182 307
 						$(STINFO01010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
183 308
 						var rids = $(STINFO01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
184 309
 						var last_row_id = rids[rids.length - 1];
@@ -188,10 +313,22 @@ require(['config'], function() {
188 313
 					}
189 314
 				});
190 315
 				$(STINFO01010_DETAIL_GRID_EMPTY).hide();
316
+=======
317
+						$(OPER01010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
318
+						var rids = $(OPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
319
+						var last_row_id = rids[rids.length - 1];
320
+						$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
321
+						$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'authNo', value.authNo);
322
+						$(OPER01010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'authNm', value.authNm);	
323
+					}
324
+				});
325
+				$(OPER01010_DETAIL_GRID_EMPTY).hide();
326
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
191 327
 			};
192 328
 			fn_call_popup('comm', 'AUTH_SCH_POPUP', '#ITP_ASIDE', popFn, null, 'S');
193 329
 		});
194 330
 		// 상세:삭제버튼
331
+<<<<<<< HEAD
195 332
 		$('#ITP_BTN_STINFO01010_DETAIL_DELROW').on('click', function() {
196 333
 			itp_fn_grid_del_row(STINFO01010_DETAIL_GRID_ID);
197 334
 		});
@@ -201,10 +338,22 @@ require(['config'], function() {
201 338
 			var rids = $(STINFO01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
202 339
 			var last_row_id = rids[rids.length - 1];			
203 340
 			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'STINFO01010_DETAIL');
341
+=======
342
+		$('#ITP_BTN_OPER01010_DETAIL_DELROW').on('click', function() {
343
+			itp_fn_grid_del_row(OPER01010_DETAIL_GRID_ID);
344
+		});
345
+		
346
+		$('body').on('click', function(e) {
347
+			var gridId = OPER01010_DETAIL_GRID_ID.replace('#', '');
348
+			var rids = $(OPER01010_DETAIL_GRID_ID).jqGrid('getDataIDs');
349
+			var last_row_id = rids[rids.length - 1];			
350
+			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'OPER01010_DETAIL');
351
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
204 352
 		});
205 353
 	});
206 354
 });
207 355
 
356
+<<<<<<< HEAD
208 357
 var itp_fn_STINFO01010_switch_screen = function(mode) {
209 358
 	if(mode == 'LIST') { // 목록
210 359
 		$('#ITP_BTN_STINFO01010_MODIFY').hide();
@@ -284,6 +433,87 @@ var itp_fn_STINFO01010_grid = {
284 433
 		let param = $('#ITP_FORM_STINFO01010_SEARCH').serializeObject();
285 434
 		param.gridSize = $.jgrid.defaults.rowNum;	
286 435
 		$(STINFO01010_GRID_ID).jqGrid({
436
+=======
437
+var itp_fn_OPER01010_switch_screen = function(mode) {
438
+	if(mode == 'LIST') { // 목록
439
+		$('#ITP_BTN_OPER01010_MODIFY').hide();
440
+		$('#ITP_BTN_OPER01010_CANCELLIST').hide();
441
+		$('#ITP_BTN_OPER01010_DELETE').hide();
442
+		$('#ITP_BTN_OPER01010_SAVE').hide();
443
+		fn_show_btn_auth('#ITP_BTN_OPER01010_SRH');
444
+		fn_show_btn_auth('#ITP_BTN_OPER01010_NEWREG');
445
+		
446
+		$('#ITP_AJAX_OPER01010_LIST_CONTAINER').show();
447
+		$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').hide();		
448
+		$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').hide();
449
+	} else if(mode == 'ADD') { // 등록
450
+		ITP_FORM_OPER01010_DETAIL_IS_DUPLICATE = true;
451
+	
452
+		$('#ITP_BTN_OPER01010_SRH').hide();
453
+		$('#ITP_BTN_OPER01010_MODIFY').hide();
454
+		$('#ITP_BTN_OPER01010_NEWREG').hide();
455
+		$('#ITP_BTN_OPER01010_DELETE').hide();
456
+		$('#ITP_BTN_OPER01010_RESET_PW').hide();
457
+		fn_show_btn_auth('#ITP_BTN_OPER01010_CANCELLIST');
458
+		fn_show_btn_auth('#ITP_BTN_OPER01010_SAVE');
459
+		
460
+		$('#ITP_AJAX_OPER01010_LIST_CONTAINER').hide();
461
+		$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').show();
462
+		$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').hide();		
463
+		$('#ITP_FORM_OPER01010_DETAIL_USER_ID').removeAttr('readonly');
464
+		$('#ITP_FORM_OPER01010_DETAIL_DUP').removeAttr('disabled');
465
+		
466
+		$('#ITP_FORM_OPER01010_DETAIL_VIEW_CD').val('C');
467
+		$('#ITP_FORM_OPER01010_DETAIL_USER_NM').val('');
468
+		$('#ITP_FORM_OPER01010_DETAIL_USER_STAT_CD').val('');
469
+		$('#ITP_FORM_OPER01010_DETAIL_USER_ID').val('');
470
+		$('#ITP_FORM_OPER01010_DETAIL_USER_PW').val('');
471
+		$('#ITP_FORM_OPER01010_DETAIL_TEL_NO').val('');
472
+		$('#ITP_FORM_OPER01010_DETAIL_USER_PW_CONFIRM').val('');
473
+		$('#ITP_FORM_OPER01010_DETAIL_EMAIL').val('');
474
+	} else if(mode == 'MODIFY') { // 수정
475
+		$('#ITP_BTN_OPER01010_SRH').hide();
476
+		$('#ITP_BTN_OPER01010_MODIFY').hide();
477
+		$('#ITP_BTN_OPER01010_NEWREG').hide();		
478
+		$('#ITP_BTN_OPER01010_DELETE').hide();
479
+		fn_show_btn_auth('#ITP_BTN_OPER01010_CANCELLIST');
480
+		fn_show_btn_auth('#ITP_BTN_OPER01010_SAVE');
481
+		fn_show_btn_auth('#ITP_BTN_OPER01010_RESET_PW');	
482
+		
483
+		$('#ITP_AJAX_OPER01010_LIST_CONTAINER').hide();
484
+		$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').show();
485
+		$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').hide();
486
+		$('#ITP_FORM_OPER01010_DETAIL_USER_ID').attr('readonly', true);
487
+		$('#ITP_FORM_OPER01010_DETAIL_DUP').attr('disabled', true);
488
+	} else if(mode == 'VIEW') { // 보기
489
+		$('#ITP_BTN_OPER01010_SRH').hide();
490
+		$('#ITP_BTN_OPER01010_NEWREG').hide();		
491
+		$('#ITP_BTN_OPER01010_DELETE').hide();
492
+		$('#ITP_BTN_OPER01010_SAVE').hide();
493
+		fn_show_btn_auth('#ITP_BTN_OPER01010_MODIFY');
494
+		fn_show_btn_auth('#ITP_BTN_OPER01010_CANCELLIST');
495
+		
496
+		$('#ITP_AJAX_OPER01010_LIST_CONTAINER').hide();
497
+		$('#ITP_AJAX_OPER01010_DETAIL_CONTAINER').hide();
498
+		$('#ITP_AJAX_OPER01010_VIEW_CONTAINER').show();
499
+	}	
500
+};
501
+
502
+var itp_fn_OPER01010_grid = {
503
+	init: function() {
504
+		// 데이터 없을때
505
+		itp_fn_OPER01010_empty.push();
506
+		$(OPER01010_GRID_EMPTY).on('click', function() {
507
+			itp_fn_OPER01010_empty.back();
508
+			itp_OPER01010_param.gridSize = $.jgrid.defaults.rowNum;
509
+			$(OPER01010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_OPER01010_param)}).trigger('reloadGrid');
510
+		});	
511
+	},
512
+	callBack: function() {
513
+		let param = $('#ITP_FORM_OPER01010_SEARCH').serializeObject();
514
+		param.gridSize = $.jgrid.defaults.rowNum;	
515
+		$(OPER01010_GRID_ID).jqGrid({
516
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
287 517
 			colModel: [
288 518
 				{
289 519
 					index: 'USER_ID', name: 'userId',
@@ -339,7 +569,11 @@ var itp_fn_STINFO01010_grid = {
339 569
 			},
340 570
 			postData: JSON.stringify(param),
341 571
 			url: DOMAIN + USER_DETAIL_GRID_LIST,
572
+<<<<<<< HEAD
342 573
 			pager: STINFO01010_GRID_PAGER,
574
+=======
575
+			pager: OPER01010_GRID_PAGER,
576
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
343 577
 			multiselect: false,
344 578
 			rownumbers: true, 
345 579
 			onCellSelect: function(rowId, cellIdx, cellValue) {
@@ -349,21 +583,33 @@ var itp_fn_STINFO01010_grid = {
349 583
 					const userIdVal = $(this).jqGrid('getCell', rowId, 'userId');
350 584
 					const key = {userId: userIdVal, viewCd: 'R'};
351 585
 					var param = $.param(key);
586
+<<<<<<< HEAD
352 587
 					itp_fn_STINFO01010_view(param);
588
+=======
589
+					itp_fn_OPER01010_view(param);
590
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
353 591
 				}
354 592
 		   	},
355 593
 			loadComplete: function(data) {
356 594
 				//console.log(JSON.stringify(data));
595
+<<<<<<< HEAD
357 596
 				itp_fn_grid_load_complete(data, STINFO01010_GRID_ID, true, 'number', 'STINFO01010', itp_STINFO01010_search, itp_fn_STINFO01010_empty, true, data.gridRecords, true);
358 597
 				var ids = $(STINFO01010_GRID_ID).getDataIDs();
359 598
 				$.each(ids, function(idx, rowId) {
360 599
 					$(STINFO01010_GRID_ID).jqGrid('setCell', rowId, 'userNm', '', ITP_GRID_COL_STYLE.link);
600
+=======
601
+				itp_fn_grid_load_complete(data, OPER01010_GRID_ID, true, 'number', 'OPER01010', itp_OPER01010_search, itp_fn_OPER01010_empty, true, data.gridRecords, true);
602
+				var ids = $(OPER01010_GRID_ID).getDataIDs();
603
+				$.each(ids, function(idx, rowId) {
604
+					$(OPER01010_GRID_ID).jqGrid('setCell', rowId, 'userNm', '', ITP_GRID_COL_STYLE.link);
605
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
361 606
 				});	
362 607
 		    },
363 608
 		    loadError: function(jqXHR, textStatus, errorThrown) {
364 609
 		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
365 610
 		    },
366 611
 		    onPaging: function(action) {
612
+<<<<<<< HEAD
367 613
 		    	itp_fn_grid_paging(STINFO01010_GRID_ID, action, param);
368 614
 		    }
369 615
 		}).navGrid(STINFO01010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
@@ -436,6 +682,79 @@ var itp_fn_STINFO01010_view_grid = {
436 682
 		param.pagingYn = false; // 페이징안함
437 683
 		
438 684
 		$(STINFO01010_VIEW_GRID_ID).jqGrid({
685
+=======
686
+		    	itp_fn_grid_paging(OPER01010_GRID_ID, action, param);
687
+		    }
688
+		}).navGrid(OPER01010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
689
+	},
690
+	clearData : function() {
691
+		$(OPER01010_GRID_ID).jqGrid('clearGridData', true);
692
+		$(OPER01010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
693
+		$(OPER01010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
694
+		$(OPER01010_GRID_EMPTY).show();
695
+	}, 
696
+	unload : function() {
697
+		$.jgrid.gridUnload(OPER01010_GRID_ID); 
698
+	}
699
+};
700
+
701
+var itp_fn_OPER01010_search = function() {
702
+	itp_fn_OPER01010_switch_screen('LIST');	
703
+	itp_fn_OPER01010_grid.unload();
704
+	itp_fn_OPER01010_grid.callBack();
705
+};
706
+
707
+let itp_OPER01010_param = {};
708
+let itp_OPER01010_search = false;
709
+var itp_fn_OPER01010_empty = {
710
+	push: function() {
711
+		let param = $('#ITP_FORM_OPER01010_SEARCH').serializeObject();
712
+		itp_OPER01010_param = param;
713
+	},
714
+	back: function() {
715
+		$('#ITP_FORM_OPER01010_DEVI_TP_CD').val(itp_OPER01010_param.deviTpCd);
716
+		$('#ITP_FORM_OPER01010_ORDER_YN').val(itp_OPER01010_param.orderYn);
717
+		$('#ITP_FORM_OPER01010_ADT_AUTH_CD').val(itp_OPER01010_param.adtAuthCd);
718
+		$('#ITP_FORM_OPER01010_EMAIL_RCV_YN').val(itp_OPER01010_param.emailRcvYn);
719
+		$('#ITP_FORM_OPER01010_MEMB_EXIT_DT').val(itp_OPER01010_param.membExitDt);
720
+		$('#ITP_FORM_OPER01010_FROM_DT').val(itp_OPER01010_param.fromDt);
721
+		$('#ITP_FORM_OPER01010_TO_DT').val(itp_OPER01010_param.toDt);
722
+		$('#ITP_FORM_OPER01010_KEYWORD').val(itp_OPER01010_param.keyword);
723
+	}
724
+};
725
+
726
+var itp_fn_OPER01010_view = function(param) {
727
+	fn_ajax_call(USER_INFO_USER, param, itp_fn_OPER01010_view_callback, 'GET');
728
+};
729
+
730
+var itp_fn_OPER01010_view_callback = function(result) {
731
+	// console.log(result);
732
+	itp_fn_OPER01010_switch_screen('VIEW');
733
+	$('#ITP_FORM_OPER01010_VIEW #ITP_FORM_OPER01010_VIEW_USER_ID').val(result.userId);
734
+	$('#ITP_FORM_OPER01010_VIEW .fnUserNm').text(result.userNm);
735
+	$('#ITP_FORM_OPER01010_VIEW .fnUserStatDt').text(result.userStatDt);
736
+	$('#ITP_FORM_OPER01010_VIEW .fnUserStatNm').text(result.userStatNm);
737
+	$('#ITP_FORM_OPER01010_VIEW .fnUserId').text(result.userId);
738
+	$('#ITP_FORM_OPER01010_VIEW .fnEmail').text(result.email);
739
+	$('#ITP_FORM_OPER01010_VIEW .fnTelNo').text(result.telNo);
740
+	$('#ITP_FORM_OPER01010_VIEW .fnAddDt').text(result.addDt);
741
+	$('#ITP_FORM_OPER01010_VIEW .fnLastLoginDt').text(result.lastLoginDt);
742
+	
743
+	// 권한정보 리스트 조회
744
+	itp_fn_OPER01010_view_grid.unload();
745
+	itp_fn_OPER01010_view_grid.callBack();
746
+};
747
+
748
+var itp_fn_OPER01010_view_grid = {
749
+	init: function() {
750
+	},
751
+	callBack: function() {
752
+		let param = $('#ITP_FORM_OPER01010_VIEW').serializeObject();
753
+		param.gridSize = $.jgrid.defaults.rowNum; 
754
+		param.pagingYn = false; // 페이징안함
755
+		
756
+		$(OPER01010_VIEW_GRID_ID).jqGrid({
757
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
439 758
 			colModel: [
440 759
 				{
441 760
 					index: 'VIEW_CD', name: 'viewCd',
@@ -475,10 +794,17 @@ var itp_fn_STINFO01010_view_grid = {
475 794
 			},
476 795
 			postData: JSON.stringify(param),
477 796
 			url: DOMAIN + USER_USERAUTH_GRID_LIST,
797
+<<<<<<< HEAD
478 798
 			pager: STINFO01010_VIEW_GRID_PAGER,
479 799
 			multiselect: false,
480 800
 			loadComplete: function(data) {				
481 801
 				itp_fn_grid_load_complete(data, STINFO01010_VIEW_GRID_ID, true, undefined, 'STINFO01010_VIEW');
802
+=======
803
+			pager: OPER01010_VIEW_GRID_PAGER,
804
+			multiselect: false,
805
+			loadComplete: function(data) {				
806
+				itp_fn_grid_load_complete(data, OPER01010_VIEW_GRID_ID, true, undefined, 'OPER01010_VIEW');
807
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
482 808
 		    },
483 809
 		    loadError: function(jqXHR, textStatus, errorThrown) {
484 810
 		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
@@ -489,11 +815,19 @@ var itp_fn_STINFO01010_view_grid = {
489 815
 	    				$(args).trigger('reloadGrid');
490 816
 	    			}
491 817
 	    		};
818
+<<<<<<< HEAD
492 819
 		    	if (itp_fn_check_grid_is_writing(STINFO01010_VIEW_GRID_ID)) {
493 820
 		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STINFO01010_VIEW_GRID_ID);
494 821
 		    		return 'stop';
495 822
 		    	} else {
496 823
 		    		itp_fn_grid_paging(STINFO01010_VIEW_GRID_ID, action, param);
824
+=======
825
+		    	if (itp_fn_check_grid_is_writing(OPER01010_VIEW_GRID_ID)) {
826
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER01010_VIEW_GRID_ID);
827
+		    		return 'stop';
828
+		    	} else {
829
+		    		itp_fn_grid_paging(OPER01010_VIEW_GRID_ID, action, param);
830
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
497 831
 		    	}
498 832
 		    },
499 833
 		    onSortCol: function(index, columnIndex, sortOrder) {
@@ -502,6 +836,7 @@ var itp_fn_STINFO01010_view_grid = {
502 836
 	    				$(args).trigger('reloadGrid');
503 837
 	    			}
504 838
 	    		};
839
+<<<<<<< HEAD
505 840
 		    	if (itp_fn_check_grid_is_writing(STINFO01010_VIEW_GRID_ID)) {
506 841
 		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STINFO01010_VIEW_GRID_ID);
507 842
 		    		return 'stop';
@@ -555,6 +890,61 @@ var itp_fn_STINFO01010_detail_grid = {
555 890
 		param.pagingYn = false; // 페이지안함 
556 891
 		
557 892
 		$(STINFO01010_DETAIL_GRID_ID).jqGrid({
893
+=======
894
+		    	if (itp_fn_check_grid_is_writing(OPER01010_VIEW_GRID_ID)) {
895
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER01010_VIEW_GRID_ID);
896
+		    		return 'stop';
897
+		    	} else {
898
+		    		itp_fn_grid_sorting(OPER01010_VIEW_GRID_ID, index, sortOrder);
899
+		    	}
900
+		    }
901
+		}).navGrid(OPER01010_VIEW_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
902
+	},
903
+	clearData : function() {
904
+		$(OPER01010_VIEW_GRID_ID).jqGrid('clearGridData', true);
905
+		$(OPER01010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
906
+		$(OPER01010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
907
+		$(OPER01010_VIEW_GRID_EMPTY).show();
908
+	}, 
909
+	unload : function() {
910
+		$.jgrid.gridUnload(OPER01010_VIEW_GRID_ID); 
911
+	}
912
+};
913
+
914
+var itp_fn_OPER01010_detail = function(param) {
915
+	fn_ajax_call(USER_INFO_USER, param, itp_fn_OPER01010_detail_callback, 'GET');
916
+};
917
+
918
+var itp_fn_OPER01010_detail_callback = function(result) {
919
+	// console.log(result);
920
+	itp_fn_OPER01010_switch_screen('MODIFY');
921
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_VIEW_CD').val('U');
922
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_USER_NM').val(result.userNm);
923
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_USER_STAT_CD').val(result.userStatCd);
924
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_USER_ID').val(result.userId);
925
+	$('#ITP_FORM_OPER01010_DETAIL .fnUserStatDt').text(result.userStatDt);
926
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_USER_PW').val(result.userPw);
927
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_USER_PW_CONFIRM').val(result.userPw);
928
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_TEL_NO').val(result.telNo);
929
+	$('#ITP_FORM_OPER01010_DETAIL #ITP_FORM_OPER01010_DETAIL_EMAIL').val(result.email);
930
+	$('#ITP_FORM_OPER01010_DETAIL .fnAddDt').text(result.addDt);
931
+	$('#ITP_FORM_OPER01010_DETAIL .fnLastLoginDt').text(result.lastLoginDt);
932
+	
933
+	// 권한정보 리스트 조회
934
+	itp_fn_OPER01010_detail_grid.unload();
935
+	itp_fn_OPER01010_detail_grid.callBack();
936
+};
937
+
938
+var itp_fn_OPER01010_detail_grid = {
939
+	init: function() {
940
+	},
941
+	callBack: function() {
942
+		let param = $('#ITP_FORM_OPER01010_DETAIL').serializeObject();
943
+		param.gridSize = $.jgrid.defaults.rowNum; 
944
+		param.pagingYn = false; // 페이지안함 
945
+		
946
+		$(OPER01010_DETAIL_GRID_ID).jqGrid({
947
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
558 948
 			colModel: [
559 949
 				{
560 950
 					index: 'VIEW_CD', name: 'viewCd',
@@ -594,9 +984,15 @@ var itp_fn_STINFO01010_detail_grid = {
594 984
 			},
595 985
 			postData: JSON.stringify(param),
596 986
 			url: DOMAIN + USER_USERAUTH_GRID_LIST,
987
+<<<<<<< HEAD
597 988
 			pager: STINFO01010_DETAIL_GRID_PAGER,
598 989
 			loadComplete: function(data) {				
599 990
 				itp_fn_grid_load_complete(data, STINFO01010_DETAIL_GRID_ID, true, undefined, 'STINFO01010_DETAIL');
991
+=======
992
+			pager: OPER01010_DETAIL_GRID_PAGER,
993
+			loadComplete: function(data) {				
994
+				itp_fn_grid_load_complete(data, OPER01010_DETAIL_GRID_ID, true, undefined, 'OPER01010_DETAIL');
995
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
600 996
 		    },
601 997
 		    loadError: function(jqXHR, textStatus, errorThrown) {
602 998
 		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
@@ -607,11 +1003,19 @@ var itp_fn_STINFO01010_detail_grid = {
607 1003
 	    				$(args).trigger('reloadGrid');
608 1004
 	    			}
609 1005
 	    		};
1006
+<<<<<<< HEAD
610 1007
 		    	if (itp_fn_check_grid_is_writing(STINFO01010_DETAIL_GRID_ID)) {
611 1008
 		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, STINFO01010_DETAIL_GRID_ID);
612 1009
 		    		return 'stop';
613 1010
 		    	} else {
614 1011
 		    		itp_fn_grid_paging(STINFO01010_DETAIL_GRID_ID, action, param);
1012
+=======
1013
+		    	if (itp_fn_check_grid_is_writing(OPER01010_DETAIL_GRID_ID)) {
1014
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER01010_DETAIL_GRID_ID);
1015
+		    		return 'stop';
1016
+		    	} else {
1017
+		    		itp_fn_grid_paging(OPER01010_DETAIL_GRID_ID, action, param);
1018
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
615 1019
 		    	}
616 1020
 		    },
617 1021
 		    onSortCol: function(index, columnIndex, sortOrder) {
@@ -620,6 +1024,7 @@ var itp_fn_STINFO01010_detail_grid = {
620 1024
 	    				$(args).trigger('reloadGrid');
621 1025
 	    			}
622 1026
 	    		};
1027
+<<<<<<< HEAD
623 1028
 		    	if (itp_fn_check_grid_is_writing(STINFO01010_DETAIL_GRID_ID)) {
624 1029
 		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, STINFO01010_DETAIL_GRID_ID);
625 1030
 		    		return 'stop';
@@ -637,5 +1042,24 @@ var itp_fn_STINFO01010_detail_grid = {
637 1042
 	}, 
638 1043
 	unload : function() {
639 1044
 		$.jgrid.gridUnload(STINFO01010_DETAIL_GRID_ID); 
1045
+=======
1046
+		    	if (itp_fn_check_grid_is_writing(OPER01010_DETAIL_GRID_ID)) {
1047
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER01010_DETAIL_GRID_ID);
1048
+		    		return 'stop';
1049
+		    	} else {
1050
+		    		itp_fn_grid_sorting(OPER01010_DETAIL_GRID_ID, index, sortOrder);
1051
+		    	}
1052
+		    }
1053
+		}).navGrid(OPER01010_DETAIL_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
1054
+	},
1055
+	clearData : function() {
1056
+		$(OPER01010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
1057
+		$(OPER01010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
1058
+		$(OPER01010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
1059
+		$(OPER01010_DETAIL_GRID_EMPTY).show();
1060
+	}, 
1061
+	unload : function() {
1062
+		$.jgrid.gridUnload(OPER01010_DETAIL_GRID_ID); 
1063
+>>>>>>> 1f5591176f85803c9f8126ffe3f4b6729e10f879
640 1064
 	}
641 1065
 };

+ 597 - 0
bin/src/main/webapp/js/app/oper/ITP_OPER02010.js

@@ -0,0 +1,597 @@
1
+
2
+const OPER02010_GRID_ID = '#ITP_OPER02010_jqGrid';
3
+const OPER02010_GRID_LIST = '#ITP_OPER02010_jqGrid_list';
4
+const OPER02010_GRID_PAGER = '#ITP_OPER02010_jqGridPager';
5
+const OPER02010_GRID_EMPTY = '#ITP_OPER02010_jqGridEmpty';
6
+
7
+const OPER02010_VIEW_GRID_ID = '#ITP_OPER02010_VIEW_jqGrid';
8
+const OPER02010_VIEW_GRID_LIST = '#ITP_OPER02010_VIEW_jqGrid_list';
9
+const OPER02010_VIEW_GRID_PAGER = '#ITP_OPER02010_VIEW_jqGridPager';
10
+const OPER02010_VIEW_GRID_EMPTY = '#ITP_OPER02010_VIEW_jqGridEmpty';
11
+
12
+const OPER02010_DETAIL_GRID_ID = '#ITP_OPER02010_DETAIL_jqGrid';
13
+const OPER02010_DETAIL_GRID_LIST = '#ITP_OPER02010_DETAIL_jqGrid_list';
14
+const OPER02010_DETAIL_GRID_PAGER = '#ITP_OPER02010_DETAIL_jqGridPager';
15
+const OPER02010_DETAIL_GRID_EMPTY = '#ITP_OPER02010_DETAIL_jqGridEmpty';
16
+
17
+let ITP_FORM_OPER02010_DETAIL_IS_WRITING = false;
18
+
19
+let NTICE_SAVE_NTICE = '/api/ntice/save-ntice';
20
+let NTICE_DETAIL_GRID_LIST = '/api/ntice/detail-grid-list';
21
+let NTICE_INFO_NTICE = '/api/ntice/info-ntice';
22
+let NTICE_TARGET_GRID_LIST = '/api/ntice/target-grid-list';
23
+
24
+require(['config'], function() {
25
+	require([
26
+		'jquery',
27
+		'jquery.bootstrap.fileUpload' //파일 업로드가 있는 페이지에서 로딩
28
+	], function($) {
29
+		// 버튼 권한설정
30
+		fn_proc_btn_auth('OPER02010');
31
+		// 공통코드 표시
32
+		fn_make_select(CODE_LIST, 'TARGET_CD', 'ITP_FORM_OPER02010_DETAIL_TARGET_CD', true, '선택');
33
+
34
+		// 조회일자 지정
35
+		var now = new Date();
36
+		$('#ITP_TAB_OPER02010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
37
+		$('#ITP_FORM_OPER02010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
38
+		$('#ITP_FORM_OPER02010_SEARCH_TO_DT').datepicker('setDate', new Date());
39
+
40
+		// 그리드
41
+		itp_fn_jqgrid_resize(OPER02010_GRID_ID, OPER02010_GRID_LIST, 'lg');
42
+		itp_fn_OPER02010_grid.init();
43
+    	itp_fn_fire_window_resize();
44
+
45
+		// 조회
46
+    	itp_fn_OPER02010_search();
47
+
48
+		// 조회 버튼 클릭
49
+		$('#ITP_BTN_OPER02010_SRH').on('click', function() {
50
+			itp_OPER02010_search = true;
51
+			let param = $('#ITP_FORM_OPER02010_SEARCH').serializeObject();
52
+			param.gridSize = $.jgrid.defaults.rowNum;
53
+			param.gridPage = $.jgrid.defaults.page;
54
+			$(OPER02010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
55
+		});
56
+
57
+		// 수정 버튼
58
+		$('#ITP_BTN_OPER02010_MODIFY').on('click', function() {
59
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER02010_DETAIL');
60
+			const nticeNoVal = $('#ITP_FORM_OPER02010_VIEW_USER_ID').val();
61
+			const key = {nticeNo: nticeNoVal, viewCd: 'R'};
62
+			var param = $.param(key);
63
+			itp_fn_OPER02010_detail(param);
64
+		});
65
+
66
+		// 신규등록 버튼
67
+		$('#ITP_BTN_OPER02010_NEWREG').on('click', function() {
68
+			itp_fn_OPER02010_switch_screen('ADD');
69
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER02010_DETAIL');
70
+
71
+			//파일업로드(등록화면)
72
+			$('#ITP_FORM_OPER02010_DETAIL_FILE_NO').val('');
73
+			$('#ITP_OPER02010_DETAIL_UPLOAD').empty();
74
+			const fileArgs = {
75
+				'fileNo': $('#ITP_FORM_OPER02010_DETAIL_FILE_NO').val(),
76
+				'viewCd': $('#ITP_FORM_OPER02010_DETAIL_VIEW_CD').val(),
77
+				'showYn': $('#ITP_OPER02010_DETAIL_UPLOAD').attr('data-show-yn'),
78
+				'fileId': '#ITP_FORM_OPER02010_DETAIL_FILE_NO' //파일번호를 서버에서 받아서 넣을 파일번호 인풋박스 아이디
79
+			};
80
+			itp_fn_set_file_upload('ITP_OPER02010_DETAIL_UPLOAD', 'notice', true, false, 'OPER02010', fileArgs);
81
+
82
+			// 권한정보 리스트 조회
83
+			itp_fn_OPER02010_detail_grid.unload();
84
+			itp_fn_OPER02010_detail_grid.callBack();
85
+		});
86
+
87
+		// 취소/목록 버튼
88
+		$('#ITP_BTN_OPER02010_CANCELLIST').on('click', function() {
89
+			itp_fn_OPER02010_search();
90
+    	});
91
+
92
+		// 삭제 버튼
93
+		$('#ITP_BTN_OPER02010_DELETE').on('click', function() {
94
+
95
+		});
96
+
97
+		// 저장 버튼
98
+		$('#ITP_BTN_OPER02010_SAVE').on('click', function() {
99
+			const formId = '#ITP_FORM_OPER02010_DETAIL';
100
+			itp_fn_form_clear_validate(null, formId);
101
+			var vali_nticeNo = itp_fn_form_validate(formId, formId + '_NTICE_TITL', ['empty'], undefined);
102
+			var vali_nticeDesc = itp_fn_form_validate(formId, formId + '_NTICE_DESC', ['empty'], undefined);
103
+			var vali_targetCd = itp_fn_form_validate(formId, formId + '_TARGET_CD', ['empty'], undefined);
104
+
105
+			if (vali_nticeNo && vali_nticeDesc && vali_targetCd) {
106
+				let gridInsertData = [];
107
+				let gridUpdateData = [];
108
+				let gridDeleteData = [];
109
+				const rowData = $(OPER02010_DETAIL_GRID_ID).getRowData();
110
+				const keyValue = $(formId + '_USER_ID').val();
111
+				$.each(rowData, function(key, value) {
112
+					if (value.viewCd != 'R') {
113
+						value.nticeNo = keyValue;
114
+						if (value.viewCd == 'C') {
115
+							gridInsertData.push(value);
116
+						} else if (value.viewCd == 'U') {
117
+							gridUpdateData.push(value);
118
+						} else if (value.viewCd == 'D') {
119
+							gridDeleteData.push(value);
120
+						}
121
+					}
122
+				});
123
+				let param = $(formId).serializeObject();
124
+				param.gridInsertData = gridInsertData;
125
+				param.gridUpdateData = gridUpdateData;
126
+				param.gridDeleteData = gridDeleteData;
127
+				// console.log(JSON.stringify(param));
128
+
129
+				var searhFn = function() {
130
+					ITP_FORM_OPER02010_DETAIL_IS_WRITING = false;
131
+					itp_fn_OPER02010_search();
132
+				};
133
+				fn_ajax_call(NTICE_SAVE_NTICE, JSON.stringify(param), searhFn, 'POST');
134
+			}
135
+		});
136
+
137
+		// 상세:추가버튼
138
+		$('#ITP_BTN_OPER02010_DETAIL_ADDROW').on('click', function() {
139
+			// 팝업
140
+			var popFn = function(rowDataPop) {
141
+				// 기존등록 사용자ID
142
+				var exists = '';
143
+				const rowData = $(OPER02010_DETAIL_GRID_ID).getRowData();
144
+				$.each(rowData, function(key, value) {
145
+					exists = exists + value.userId + ';';
146
+				});
147
+
148
+				$.each(rowDataPop, function(key, value) {
149
+					// console.log(JSON.stringify(value));
150
+					// console.log(exists.indexOf(value.userId));
151
+					if(exists.indexOf(value.userId) < 0) {
152
+						// 행추가
153
+						$(OPER02010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
154
+						var rids = $(OPER02010_DETAIL_GRID_ID).jqGrid('getDataIDs');
155
+						var last_row_id = rids[rids.length - 1];
156
+						$(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
157
+						$(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'userId', value.userId);
158
+						$(OPER02010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'userNm', value.userNm);
159
+					}
160
+				});
161
+				$(OPER02010_DETAIL_GRID_EMPTY).hide();
162
+			};
163
+			fn_call_popup('comm', 'USER_SCH_POPUP', '#ITP_ASIDE', popFn, null, 'S');
164
+		});
165
+		// 상세:삭제버튼
166
+		$('#ITP_BTN_OPER02010_DETAIL_DELROW').on('click', function() {
167
+			itp_fn_grid_del_row(OPER02010_DETAIL_GRID_ID);
168
+		});
169
+
170
+		$('body').on('click', function(e) {
171
+			var gridId = OPER02010_DETAIL_GRID_ID.replace('#', '');
172
+			var rids = $(OPER02010_DETAIL_GRID_ID).jqGrid('getDataIDs');
173
+			var last_row_id = rids[rids.length - 1];
174
+			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'OPER02010_DETAIL');
175
+		});
176
+	});
177
+});
178
+
179
+var itp_fn_OPER02010_switch_screen = function(mode) {
180
+	if(mode == 'LIST') { // 목록
181
+		$('#ITP_BTN_OPER02010_MODIFY').hide();
182
+		$('#ITP_BTN_OPER02010_CANCELLIST').hide();
183
+		$('#ITP_BTN_OPER02010_DELETE').hide();
184
+		$('#ITP_BTN_OPER02010_SAVE').hide();
185
+		fn_show_btn_auth('#ITP_BTN_OPER02010_SRH');
186
+		fn_show_btn_auth('#ITP_BTN_OPER02010_NEWREG');
187
+		
188
+		$('#ITP_AJAX_OPER02010_LIST_CONTAINER').show();
189
+		$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').hide();
190
+		$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').hide();
191
+	} else if(mode == 'ADD') { // 등록
192
+		$('#ITP_BTN_OPER02010_SRH').hide();
193
+		$('#ITP_BTN_OPER02010_MODIFY').hide();
194
+		$('#ITP_BTN_OPER02010_NEWREG').hide();
195
+		$('#ITP_BTN_OPER02010_DELETE').hide();
196
+		fn_show_btn_auth('#ITP_BTN_OPER02010_CANCELLIST');
197
+		fn_show_btn_auth('#ITP_BTN_OPER02010_SAVE');
198
+		
199
+		$('#ITP_AJAX_OPER02010_LIST_CONTAINER').hide();
200
+		$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').show();
201
+		$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').hide();
202
+
203
+		$('#ITP_FORM_OPER02010_DETAIL_VIEW_CD').val('C');
204
+		$('#ITP_FORM_OPER02010_DETAIL_NTICE_NO').val('');
205
+		$('#ITP_FORM_OPER02010_DETAIL_NTICE_TITL').val('');
206
+		$('#ITP_FORM_OPER02010_DEL_YN').val('N');
207
+		$('#ITP_FORM_OPER02010_DETAIL_NTICE_DESC').val('');
208
+		$('#ITP_FORM_OPER02010_DETAIL_TARGET_CD').val('');
209
+		$('#ITP_FORM_OPER02010_FROM_DT').datepicker('setDate', new Date());
210
+		$('#ITP_FORM_OPER02010_TO_DT').datepicker('setDate', new Date());
211
+	} else if(mode == 'MODIFY') { // 수정
212
+		$('#ITP_BTN_OPER02010_SRH').hide();
213
+		$('#ITP_BTN_OPER02010_MODIFY').hide();
214
+		$('#ITP_BTN_OPER02010_NEWREG').hide();
215
+		$('#ITP_BTN_OPER02010_DELETE').hide();
216
+		fn_show_btn_auth('#ITP_BTN_OPER02010_CANCELLIST');
217
+		fn_show_btn_auth('#ITP_BTN_OPER02010_SAVE');
218
+		
219
+		$('#ITP_AJAX_OPER02010_LIST_CONTAINER').hide();
220
+		$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').show();
221
+		$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').hide();
222
+	} else if(mode == 'VIEW') { // 보기
223
+		$('#ITP_BTN_OPER02010_SRH').hide();
224
+		$('#ITP_BTN_OPER02010_NEWREG').hide();
225
+		$('#ITP_BTN_OPER02010_DELETE').hide();
226
+		$('#ITP_BTN_OPER02010_SAVE').hide();
227
+		fn_show_btn_auth('#ITP_BTN_OPER02010_MODIFY');
228
+		fn_show_btn_auth('#ITP_BTN_OPER02010_CANCELLIST');
229
+		
230
+		$('#ITP_AJAX_OPER02010_LIST_CONTAINER').hide();
231
+		$('#ITP_AJAX_OPER02010_DETAIL_CONTAINER').hide();
232
+		$('#ITP_AJAX_OPER02010_VIEW_CONTAINER').show();
233
+	}
234
+};
235
+
236
+var itp_fn_OPER02010_grid = {
237
+	init: function() {
238
+		// 데이터 없을때
239
+		itp_fn_OPER02010_empty.push();
240
+		$(OPER02010_GRID_EMPTY).on('click', function() {
241
+			itp_fn_OPER02010_empty.back();
242
+			itp_OPER02010_param.gridSize = $.jgrid.defaults.rowNum;
243
+			$(OPER02010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_OPER02010_param)}).trigger('reloadGrid');
244
+		});
245
+	},
246
+	callBack: function() {
247
+		let param = $('#ITP_FORM_OPER02010_SEARCH').serializeObject();
248
+		param.gridSize = $.jgrid.defaults.rowNum;
249
+		$(OPER02010_GRID_ID).jqGrid({
250
+			colModel: [
251
+				{
252
+					index: 'NTICE_NO', name: 'nticeNo',
253
+					label: ITP_MSG_LOCALE.label.notiNo, //공지번호
254
+					width: '10', fixed: false, align: 'center',
255
+					sortable: false, hidden: false
256
+				},
257
+				{
258
+					index: 'NTICE_TITL', name: 'nticeTitl',
259
+					label: ITP_MSG_LOCALE.label.titlet, //공지제목
260
+					width: '15', fixed: false, align: 'center',
261
+					sortable: false, hidden: false
262
+				},
263
+				{
264
+					index: 'TARGET_NM', name: 'targetNm',
265
+					label: ITP_MSG_LOCALE.label.targetNm, //공지대상
266
+					width: '10', fixed: false, align: 'center',
267
+					sortable: false, hidden: false
268
+				},
269
+				{
270
+					index: 'NTICE_STAT_NM', name: 'nticeStatNm',
271
+					label: ITP_MSG_LOCALE.label.status, //상태
272
+					width: '6', fixed: false, align: 'center',
273
+					sortable: false, hidden: false
274
+				},
275
+				{
276
+					index: 'NOTI_ST_DAY', name: 'notiStDay',
277
+					label: ITP_MSG_LOCALE.label.viewDt, //노출일
278
+					width: '10', fixed: false, align: 'center',
279
+					sortable: false, hidden: false
280
+				},
281
+				{
282
+					index: 'ADD_DT', name: 'addDt',
283
+					label: ITP_MSG_LOCALE.label.regDt, //등록일
284
+					width: '10', fixed: false, align: 'center',
285
+					sortable: false, hidden: false
286
+				}
287
+			],
288
+			loadBeforeSend: function(jqXHR) {
289
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
290
+			},
291
+			postData: JSON.stringify(param),
292
+			url: DOMAIN + NTICE_DETAIL_GRID_LIST,
293
+			pager: OPER02010_GRID_PAGER,
294
+			multiselect: false,
295
+			rownumbers: true,
296
+			onCellSelect: function(rowId, cellIdx, cellValue) {
297
+				var cm = $(this).jqGrid('getGridParam', 'colModel');
298
+				var colNm = cm[cellIdx].name;
299
+				if (colNm == 'nticeTitl') {
300
+					const nticeNoVal = $(this).jqGrid('getCell', rowId, 'nticeNo');
301
+					const key = {nticeNo: nticeNoVal, viewCd: 'R'};
302
+					var param = $.param(key);
303
+					itp_fn_OPER02010_view(param);
304
+				}
305
+		   	},
306
+			loadComplete: function(data) {
307
+				//console.log(JSON.stringify(data));
308
+				itp_fn_grid_load_complete(data, OPER02010_GRID_ID, true, 'number', 'OPER02010', itp_OPER02010_search, itp_fn_OPER02010_empty, true, data.gridRecords, true);
309
+				var ids = $(OPER02010_GRID_ID).getDataIDs();
310
+				$.each(ids, function(idx, rowId) {
311
+					$(OPER02010_GRID_ID).jqGrid('setCell', rowId, 'nticeTitl', '', ITP_GRID_COL_STYLE.link);
312
+				});
313
+
314
+				if ($('#ITP_CONTAINER').data('openYn') == 'Y') {
315
+					$('#ITP_CONTAINER').data('openYn', 'N');
316
+					const keyNew = {nticeNo: $('#ITP_CONTAINER').data('nticeNo'), viewCd: 'R'};
317
+					var paramNew = $.param(keyNew);
318
+					itp_fn_OPER02010_view(paramNew);
319
+				}
320
+		    },
321
+		    loadError: function(jqXHR, textStatus, errorThrown) {
322
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
323
+		    },
324
+		    onPaging: function(action) {
325
+		    	itp_fn_grid_paging(OPER02010_GRID_ID, action, param);
326
+		    }
327
+		}).navGrid(OPER02010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
328
+	},
329
+	clearData : function() {
330
+		$(OPER02010_GRID_ID).jqGrid('clearGridData', true);
331
+		$(OPER02010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
332
+		$(OPER02010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
333
+		$(OPER02010_GRID_EMPTY).show();
334
+	},
335
+	unload : function() {
336
+		$.jgrid.gridUnload(OPER02010_GRID_ID);
337
+	}
338
+};
339
+
340
+var itp_fn_OPER02010_search = function() {
341
+	itp_fn_OPER02010_switch_screen('LIST');
342
+	itp_fn_OPER02010_grid.unload();
343
+	itp_fn_OPER02010_grid.callBack();
344
+};
345
+
346
+let itp_OPER02010_param = {};
347
+let itp_OPER02010_search = false;
348
+var itp_fn_OPER02010_empty = {
349
+	push: function() {
350
+		let param = $('#ITP_FORM_OPER02010_SEARCH').serializeObject();
351
+		itp_OPER02010_param = param;
352
+	},
353
+	back: function() {
354
+		$('#ITP_FORM_OPER02010_DEVI_TP_CD').val(itp_OPER02010_param.deviTpCd);
355
+		$('#ITP_FORM_OPER02010_ORDER_YN').val(itp_OPER02010_param.orderYn);
356
+		$('#ITP_FORM_OPER02010_ADT_AUTH_CD').val(itp_OPER02010_param.adtAuthCd);
357
+		$('#ITP_FORM_OPER02010_EMAIL_RCV_YN').val(itp_OPER02010_param.emailRcvYn);
358
+		$('#ITP_FORM_OPER02010_SMS_RCV_YN').val(itp_OPER02010_param.smsRcvYn);
359
+		$('#ITP_FORM_OPER02010_MEMB_EXIT_DT').val(itp_OPER02010_param.membExitDt);
360
+		$('#ITP_FORM_OPER02010_FROM_DT').val(itp_OPER02010_param.fromDt);
361
+		$('#ITP_FORM_OPER02010_TO_DT').val(itp_OPER02010_param.toDt);
362
+		$('#ITP_FORM_OPER02010_KEYWORD').val(itp_OPER02010_param.keyword);
363
+	}
364
+};
365
+
366
+var itp_fn_OPER02010_view = function(param) {
367
+	fn_ajax_call(NTICE_INFO_NTICE, param, itp_fn_OPER02010_view_callback, 'GET');
368
+};
369
+
370
+var itp_fn_OPER02010_view_callback = function(result) {
371
+	// console.log(result);
372
+	itp_fn_OPER02010_switch_screen('VIEW');
373
+	$('#ITP_FORM_OPER02010_VIEW #ITP_FORM_OPER02010_VIEW_USER_ID').val(result.nticeNo);
374
+	$('#ITP_FORM_OPER02010_VIEW .fnNticeTitl').text(result.nticeTitl);
375
+	$('#ITP_FORM_OPER02010_VIEW .fnNotiDay').text(result.notiStDay+' ~ '+result.notiEdDay);
376
+	$('#ITP_FORM_OPER02010_VIEW .fnDelYn').text(result.delYn);
377
+	$('#ITP_FORM_OPER02010_VIEW .fnNticeDesc').html(result.nticeDesc.replace(/(\n|\r\n)/g, '<br>'));
378
+	$('#ITP_FORM_OPER02010_VIEW .fnTargetNm').text(result.targetNm);
379
+	$('#ITP_FORM_OPER02010_VIEW_FILE_NO').val(result.fileNo); //파일번호 셋팅
380
+
381
+	//파일업로드(뷰화면)
382
+	$('#ITP_OPER02010_VIEW_UPLOAD').empty();
383
+	const fileArgs = {
384
+		'fileNo': $('#ITP_FORM_OPER02010_VIEW_FILE_NO').val(),
385
+		'viewCd': $('#ITP_FORM_OPER02010_VIEW_VIEW_CD').val()
386
+	};
387
+	itp_fn_set_file_upload('ITP_OPER02010_VIEW_UPLOAD', 'notice', true, false, 'OPER02010', fileArgs);
388
+
389
+	// 권한정보 리스트 조회
390
+	itp_fn_OPER02010_view_grid.unload();
391
+	itp_fn_OPER02010_view_grid.callBack();
392
+};
393
+
394
+var itp_fn_OPER02010_view_grid = {
395
+	init: function() {
396
+	},
397
+	callBack: function() {
398
+		let param = $('#ITP_FORM_OPER02010_VIEW').serializeObject();
399
+		param.gridSize = $.jgrid.defaults.rowNum;
400
+		param.pagingYn = false; // 페이징안함
401
+
402
+		$(OPER02010_VIEW_GRID_ID).jqGrid({
403
+			colModel: [
404
+				{
405
+					index: 'VIEW_CD', name: 'viewCd',
406
+					label: ITP_MSG_LOCALE.label.viewCd,
407
+					width: '10', fixed: false, align: 'center',
408
+					sortable: false, hidden: true
409
+				},
410
+				{
411
+					index: 'NTICE_NO', name: 'nticeNo',
412
+					label: ITP_MSG_LOCALE.label.notiNo,
413
+					width: '10', fixed: false, align: 'center',
414
+					sortable: false, hidden: true
415
+				},
416
+				{
417
+					index: 'USER_ID', name: 'userId',
418
+					label: ITP_MSG_LOCALE.label.userId,
419
+					width: '20', fixed: false, align: 'center',
420
+					sortable: false, editable: false, edittype: 'text'
421
+				},
422
+				{
423
+					index: 'USER_NM', name: 'userNm',
424
+					label: ITP_MSG_LOCALE.label.userName,
425
+					width: '30', fixed: false, align: 'center',
426
+					sortable: false, editable: false, edittype: 'text'
427
+				}
428
+			],
429
+			loadBeforeSend: function(jqXHR) {
430
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
431
+			},
432
+			postData: JSON.stringify(param),
433
+			url: DOMAIN + NTICE_TARGET_GRID_LIST,
434
+			pager: OPER02010_VIEW_GRID_PAGER,
435
+			multiselect: false,
436
+			loadComplete: function(data) {
437
+				itp_fn_grid_load_complete(data, OPER02010_VIEW_GRID_ID, true, undefined, 'OPER02010_VIEW');
438
+		    },
439
+		    loadError: function(jqXHR, textStatus, errorThrown) {
440
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
441
+		    },
442
+		    onPaging: function(action) {
443
+		    	var pagingFn = {
444
+	    			callBack: function(args) {
445
+	    				$(args).trigger('reloadGrid');
446
+	    			}
447
+	    		};
448
+		    	if (itp_fn_check_grid_is_writing(OPER02010_VIEW_GRID_ID)) {
449
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER02010_VIEW_GRID_ID);
450
+		    		return 'stop';
451
+		    	} else {
452
+		    		itp_fn_grid_paging(OPER02010_VIEW_GRID_ID, action, param);
453
+		    	}
454
+		    },
455
+		    onSortCol: function(index, columnIndex, sortOrder) {
456
+		    	var sortingFn = {
457
+	    			callBack: function(args) {
458
+	    				$(args).trigger('reloadGrid');
459
+	    			}
460
+	    		};
461
+		    	if (itp_fn_check_grid_is_writing(OPER02010_VIEW_GRID_ID)) {
462
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER02010_VIEW_GRID_ID);
463
+		    		return 'stop';
464
+		    	} else {
465
+		    		itp_fn_grid_sorting(OPER02010_VIEW_GRID_ID, index, sortOrder);
466
+		    	}
467
+		    }
468
+		}).navGrid(OPER02010_VIEW_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
469
+	},
470
+	clearData : function() {
471
+		$(OPER02010_VIEW_GRID_ID).jqGrid('clearGridData', true);
472
+		$(OPER02010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
473
+		$(OPER02010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
474
+		$(OPER02010_VIEW_GRID_EMPTY).show();
475
+	},
476
+	unload : function() {
477
+		$.jgrid.gridUnload(OPER02010_VIEW_GRID_ID);
478
+	}
479
+};
480
+
481
+var itp_fn_OPER02010_detail = function(param) {
482
+	fn_ajax_call(NTICE_INFO_NTICE, param, itp_fn_OPER02010_detail_callback, 'GET');
483
+};
484
+
485
+var itp_fn_OPER02010_detail_callback = function(result) {
486
+	// console.log(result);
487
+	itp_fn_OPER02010_switch_screen('MODIFY');
488
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_VIEW_CD').val('U');
489
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_NTICE_NO').val(result.nticeNo);
490
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_NTICE_TITL').val(result.nticeTitl);
491
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_FROM_DT').val(result.notiStDay);
492
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_TO_DT').val(result.notiEdDay);
493
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DEL_YN').val(result.delYn);
494
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_NTICE_DESC').val(result.nticeDesc);
495
+	$('#ITP_FORM_OPER02010_DETAIL #ITP_FORM_OPER02010_DETAIL_TARGET_CD').val(result.targetCd);
496
+	$('#ITP_FORM_OPER02010_DETAIL_FILE_NO').val(result.fileNo); //파일번호 셋팅
497
+
498
+	//파일업로드(수정화면)
499
+	$('#ITP_OPER02010_DETAIL_UPLOAD').empty();
500
+	const fileArgs = {
501
+		'fileNo': $('#ITP_FORM_OPER02010_DETAIL_FILE_NO').val(),
502
+		'viewCd': $('#ITP_FORM_OPER02010_DETAIL_VIEW_CD').val(),
503
+		'showYn': $('#ITP_OPER02010_DETAIL_UPLOAD').attr('data-show-yn'),
504
+		'fileId': '#ITP_FORM_OPER02010_DETAIL_FILE_NO' //파일번호를 서버에서 받아서 넣을 파일번호 인풋박스 아이디
505
+	};
506
+	itp_fn_set_file_upload('ITP_OPER02010_DETAIL_UPLOAD', 'notice', true, false, 'OPER02010', fileArgs);
507
+
508
+	// 리스트 조회
509
+	itp_fn_OPER02010_detail_grid.unload();
510
+	itp_fn_OPER02010_detail_grid.callBack();
511
+};
512
+
513
+var itp_fn_OPER02010_detail_grid = {
514
+	init: function() {
515
+	},
516
+	callBack: function() {
517
+		let param = $('#ITP_FORM_OPER02010_DETAIL').serializeObject();
518
+		param.gridSize = $.jgrid.defaults.rowNum;
519
+		param.pagingYn = false; // 페이지안함
520
+
521
+		$(OPER02010_DETAIL_GRID_ID).jqGrid({
522
+			colModel: [
523
+				{
524
+					index: 'VIEW_CD', name: 'viewCd',
525
+					label: ITP_MSG_LOCALE.label.viewCd,
526
+					width: '10', fixed: false, align: 'center',
527
+					sortable: false, hidden: true
528
+				},
529
+				{
530
+					index: 'NTICE_NO', name: 'nticeNo',
531
+					label: ITP_MSG_LOCALE.label.notiNo,
532
+					width: '10', fixed: false, align: 'center',
533
+					sortable: false, hidden: true
534
+				},
535
+				{
536
+					index: 'USER_ID', name: 'userId',
537
+					label: ITP_MSG_LOCALE.label.userId,
538
+					width: '20', fixed: false, align: 'center',
539
+					sortable: false, editable: false, edittype: 'text'
540
+				},
541
+				{
542
+					index: 'USER_NM', name: 'userNm',
543
+					label: ITP_MSG_LOCALE.label.userName,
544
+					width: '30', fixed: false, align: 'center',
545
+					sortable: false, editable: false, edittype: 'text'
546
+				}
547
+			],
548
+			loadBeforeSend: function(jqXHR) {
549
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
550
+			},
551
+			postData: JSON.stringify(param),
552
+			url: DOMAIN + NTICE_TARGET_GRID_LIST,
553
+			pager: OPER02010_DETAIL_GRID_PAGER,
554
+			loadComplete: function(data) {
555
+				itp_fn_grid_load_complete(data, OPER02010_DETAIL_GRID_ID, true, undefined, 'OPER02010_DETAIL');
556
+		    },
557
+		    loadError: function(jqXHR, textStatus, errorThrown) {
558
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
559
+		    },
560
+		    onPaging: function(action) {
561
+		    	var pagingFn = {
562
+	    			callBack: function(args) {
563
+	    				$(args).trigger('reloadGrid');
564
+	    			}
565
+	    		};
566
+		    	if (itp_fn_check_grid_is_writing(OPER02010_DETAIL_GRID_ID)) {
567
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER02010_DETAIL_GRID_ID);
568
+		    		return 'stop';
569
+		    	} else {
570
+		    		itp_fn_grid_paging(OPER02010_DETAIL_GRID_ID, action, param);
571
+		    	}
572
+		    },
573
+		    onSortCol: function(index, columnIndex, sortOrder) {
574
+		    	var sortingFn = {
575
+	    			callBack: function(args) {
576
+	    				$(args).trigger('reloadGrid');
577
+	    			}
578
+	    		};
579
+		    	if (itp_fn_check_grid_is_writing(OPER02010_DETAIL_GRID_ID)) {
580
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER02010_DETAIL_GRID_ID);
581
+		    		return 'stop';
582
+		    	} else {
583
+		    		itp_fn_grid_sorting(OPER02010_DETAIL_GRID_ID, index, sortOrder);
584
+		    	}
585
+		    }
586
+		}).navGrid(OPER02010_DETAIL_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
587
+	},
588
+	clearData : function() {
589
+		$(OPER02010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
590
+		$(OPER02010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
591
+		$(OPER02010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
592
+		$(OPER02010_DETAIL_GRID_EMPTY).show();
593
+	},
594
+	unload : function() {
595
+		$.jgrid.gridUnload(OPER02010_DETAIL_GRID_ID);
596
+	}
597
+};

+ 860 - 0
bin/src/main/webapp/js/app/oper/ITP_OPER03010.js

@@ -0,0 +1,860 @@
1
+
2
+const OPER03010_GRID_ID = '#ITP_OPER03010_jqGrid';
3
+const OPER03010_GRID_LIST = '#ITP_OPER03010_jqGrid_list';
4
+const OPER03010_GRID_PAGER = '#ITP_OPER03010_jqGridPager';
5
+const OPER03010_GRID_EMPTY = '#ITP_OPER03010_jqGridEmpty';
6
+
7
+const OPER03010_VIEW_GRID_ID = '#ITP_OPER03010_VIEW_jqGrid';
8
+const OPER03010_VIEW_GRID_LIST = '#ITP_OPER03010_VIEW_jqGrid_list';
9
+const OPER03010_VIEW_GRID_PAGER = '#ITP_OPER03010_VIEW_jqGridPager';
10
+const OPER03010_VIEW_GRID_EMPTY = '#ITP_OPER03010_VIEW_jqGridEmpty';
11
+
12
+const OPER03010_DETAIL_GRID_ID = '#ITP_OPER03010_DETAIL_jqGrid';
13
+const OPER03010_DETAIL_GRID_LIST = '#ITP_OPER03010_DETAIL_jqGrid_list';
14
+const OPER03010_DETAIL_GRID_PAGER = '#ITP_OPER03010_DETAIL_jqGridPager';
15
+const OPER03010_DETAIL_GRID_EMPTY = '#ITP_OPER03010_DETAIL_jqGridEmpty';
16
+
17
+
18
+let ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = false;
19
+let ITP_FORM_OPER03010_DETAIL_IS_WRITING = false;
20
+
21
+let COMPANY_GRID_LIST = '/api/frcomp/grid-list';
22
+let USER_SALESUSER_GRID_LIST = '/api/frcomp/cmpy-saleusers-list'; 
23
+let COMPANY_INFO_COMPANY = '/api/frcomp/info-frcomp';
24
+let COMPANY_SAVE_COMPANY = '/api/frcomp/save-frcomp';
25
+let COMPANY_CHECK_DUPLICATE = '/api/frcomp/check-duplicate';
26
+let USER_INTI_USERPW = '/api/user/inti-userpw';
27
+
28
+require(['config'], function() {
29
+	require([
30
+		'jquery', 
31
+		'kakao.postcode', 
32
+		'kakao.maps'
33
+	], function($) {
34
+		// 버튼 권한설정
35
+		fn_proc_btn_auth('OPER03010');
36
+		// 공통코드 표시
37
+		fn_make_select(CODE_LIST, 'CMPY_STAT_CD', 'ITP_FORM_OPER03010_SEARCH_CMPY_STAT_CD');
38
+		fn_make_select(CODE_LIST, 'CMPY_STAT_CD', 'ITP_FORM_OPER03010_DETAIL_CMPY_STAT_CD', true, '선택');
39
+		fn_make_select(CODE_LIST, 'CMPY_TYPE_CD', 'ITP_FORM_OPER03010_DETAIL_CMPY_TYPE_CD', true, '선택');
40
+		fn_make_select(CODE_LIST, 'FRCOMP_AUTH_CD', 'ITP_FORM_OPER03010_DETAIL_FRCOMP_AUTH_CD', true, '선택');
41
+		
42
+		// 조회일자 지정
43
+		// var now = new Date();
44
+		$('#ITP_TAB_OPER03010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
45
+		// $('#ITP_FORM_OPER03010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
46
+		// $('#ITP_FORM_OPER03010_SEARCH_TO_DT').datepicker('setDate', new Date());
47
+				
48
+		// 그리드				
49
+		itp_fn_jqgrid_resize(OPER03010_GRID_ID, OPER03010_GRID_LIST, 'lg');
50
+		itp_fn_OPER03010_grid.init();
51
+    	itp_fn_fire_window_resize();
52
+
53
+		// 조회    	
54
+    	itp_fn_OPER03010_search();
55
+    	
56
+		// 조회 버튼 클릭
57
+		$('#ITP_BTN_OPER03010_SRH').on('click', function() {
58
+			itp_OPER03010_search = true;
59
+			let param = $('#ITP_FORM_OPER03010_SEARCH').serializeObject();
60
+			param.gridSize = $.jgrid.defaults.rowNum;
61
+			param.gridPage = $.jgrid.defaults.page;
62
+			$(OPER03010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
63
+		});
64
+		
65
+		// 수정 버튼
66
+		$('#ITP_BTN_OPER03010_MODIFY').on('click', function() {
67
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER03010_DETAIL');			
68
+			const cmpyCdVal = $('#ITP_FORM_OPER03010_VIEW_CMPY_CD').val();
69
+			const key = {cmpyCd: cmpyCdVal, viewCd: 'R'};
70
+			var param = $.param(key);
71
+			itp_fn_OPER03010_detail(param);	
72
+		});
73
+		
74
+		// 신규등록 버튼
75
+		$('#ITP_BTN_OPER03010_NEWREG').on('click', function() {
76
+			itp_fn_OPER03010_switch_screen('ADD');			
77
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER03010_DETAIL');
78
+			itp_fn_OPER03010_detail_map($('#ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').val());	
79
+			
80
+			// 영업담당자 리스트 조회		
81
+			itp_fn_OPER03010_detail_grid.unload();
82
+			itp_fn_OPER03010_detail_grid.callBack();	
83
+		});
84
+		
85
+		// 취소/목록 버튼
86
+		$('#ITP_BTN_OPER03010_CANCELLIST').on('click', function() {
87
+			itp_fn_OPER03010_search();
88
+    	});
89
+		
90
+		// 삭제 버튼
91
+		$('#ITP_BTN_OPER03010_DELETE').on('click', function() {
92
+			
93
+		});
94
+		
95
+		// 저장 버튼
96
+		$('#ITP_BTN_OPER03010_SAVE').on('click', function() {			
97
+			const formId = '#ITP_FORM_OPER03010_DETAIL';
98
+			itp_fn_form_clear_validate(null, formId);			
99
+			var vali_cmpyCd = itp_fn_form_validate(formId, formId + '_CMPY_CD', ['empty'], undefined);
100
+			var vali_cmpyStatCd = itp_fn_form_validate(formId, formId + '_CMPY_STAT_CD', ['empty'], undefined);
101
+			var vali_cmpyTypeCd = itp_fn_form_validate(formId, formId + '_CMPY_TYPE_CD', ['empty'], undefined);
102
+			var vali_cmpyNm = itp_fn_form_validate(formId, formId + '_CMPY_NM', ['empty'], undefined);			
103
+			var vali_bossNm = itp_fn_form_validate(formId, formId + '_BOSS_NM', ['empty'], undefined);
104
+			var vali_mainTel = itp_fn_form_validate(formId, formId + '_MAIN_TEL', ['empty'], undefined);
105
+			var vali_mainEmail = itp_fn_form_validate(formId, formId + 'MAIN_EMAIL', ['empty'], undefined);
106
+			
107
+			if (vali_cmpyCd && vali_cmpyStatCd && vali_cmpyTypeCd && vali_cmpyNm && vali_bossNm && vali_mainTel && vali_mainEmail) {
108
+				
109
+				if($('#ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').val() == '' || $('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val() == '') {
110
+					itp_fn_modal_alert('주소 검색을 통해 회사 주소를 입력하세요.');
111
+					return;
112
+				}
113
+				
114
+				if (ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE) {
115
+					itp_fn_modal_duplicate('회사코드 중복체크를 해주세요.', formId + '_CMPY_CD');
116
+				} else {
117
+					let gridInsertData = [];
118
+					let gridUpdateData = [];
119
+					let gridDeleteData = [];
120
+					const rowData = $(OPER03010_DETAIL_GRID_ID).getRowData();
121
+					const keyValue = $(formId + '_CMPY_CD').val();
122
+					$.each(rowData, function(key, value) {
123
+						if (value.viewCd != 'R') {
124
+							value.userId = keyValue;
125
+							if (value.viewCd == 'C') {
126
+								gridInsertData.push(value);
127
+							} else if (value.viewCd == 'U') {
128
+								gridUpdateData.push(value);
129
+							} else if (value.viewCd == 'D') {
130
+								gridDeleteData.push(value);
131
+							}
132
+						}
133
+					});
134
+					
135
+					let param = $(formId).serializeObject();
136
+					param.gridInsertData = gridInsertData;
137
+					param.gridUpdateData = gridUpdateData;
138
+					param.gridDeleteData = gridDeleteData;
139
+					var searhFn = function() {
140
+						ITP_FORM_OPER03010_DETAIL_IS_WRITING = false;
141
+						itp_fn_OPER03010_search();
142
+					};
143
+					console.log(JSON.stringify(param));
144
+					fn_ajax_call(COMPANY_SAVE_COMPANY, JSON.stringify(param), searhFn, 'POST');	
145
+				}
146
+			}
147
+		});		
148
+		
149
+		// 중복체크
150
+		$('#ITP_FORM_OPER03010_DETAIL_DUP').on('click', function() {
151
+			const formId = '#ITP_FORM_OPER03010_DETAIL';
152
+			itp_fn_form_clear_validate(null, formId + '_DETAIL');
153
+			var vali_cmpyCd = itp_fn_form_validate(formId + '_DETAIL', formId + '_CMPY_CD', ['empty'], undefined);
154
+			if (vali_cmpyCd) {
155
+				var dupFn = function(result) {
156
+					if (result.code == 'N') {
157
+						ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = false;
158
+					} else {
159
+						ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = true;
160
+					}
161
+				};
162
+				const key = {'cmpyCd':  $(formId + '_CMPY_CD').val()};
163
+				const param = $.param(key);
164
+				fn_ajax_call(COMPANY_CHECK_DUPLICATE, param, dupFn, 'GET');
165
+			}
166
+		});
167
+		
168
+		// 상세:비밀번호 초기화
169
+		$('#ITP_BTN_OPER03010_RESET_PW').on('click', function() {
170
+			var resetPwFn = {
171
+				callBack: function(args) {
172
+					const key = {'userId':  $('#ITP_FORM_OPER03010_DETAIL_CMPY_CD').val()};
173
+					const param = $.param(key);
174
+					fn_ajax_call(USER_INTI_USERPW, param, undefined, 'GET');					
175
+				}
176
+			};
177
+			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);		
178
+		});
179
+		
180
+		$('#ITP_FORM_OPER03010_DETAIL_ADRES_SCH').on('click', function() {
181
+			new daum.Postcode({
182
+		    	oncomplete: function(data) {
183
+					// 전체주소 리턴
184
+					document.getElementById('ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').value = data.zonecode;
185
+					document.getElementById('ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').value = data.roadAddress;
186
+					document.getElementById('ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS').value = !!data.autoJibunAddress ? data.autoJibunAddress : data.jibunAddress;
187
+					document.getElementById('ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').value = data.roadAddress;
188
+					document.getElementById('ITP_FORM_OPER03010_DETAIL_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
189
+					document.getElementById('ITP_FORM_OPER03010_DETAIL_BJ_DONG').value = data.bname;
190
+					
191
+					itp_fn_OPER03010_detail_map(data.roadAddress);
192
+					document.getElementById('ITP_FORM_OPER03010_DETAIL_CMPY_ADRES_DTL').focus();		  
193
+		        }
194
+			}).open();
195
+		});
196
+		
197
+		
198
+		$('#ITP_BTN_OPER03010_DETAIL_ADDROW').on('click', function() {
199
+			// 팝업
200
+			var popFn = function(rowDataPop) {
201
+				// 기존등록 데이터 
202
+				var exists = '';				
203
+				const rowData = $(OPER03010_DETAIL_GRID_ID).getRowData();
204
+				$.each(rowData, function(key, value) {
205
+					exists = exists + value.salesUserId + ';';
206
+				});
207
+				
208
+				$.each(rowDataPop, function(key, value) {
209
+					if(exists.indexOf(value.salesUserId) < 0) {
210
+						// 행추가
211
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('addRow', {position: 'last'});
212
+						var rids = $(OPER03010_DETAIL_GRID_ID).jqGrid('getDataIDs');
213
+						var last_row_id = rids[rids.length - 1];
214
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'viewCd', 'C');
215
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'salesUserId', value.salesUserId);
216
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'salesUserNm', value.salesUserNm);
217
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'useStatCd', value.useStatCd);
218
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'useStatNm', value.useStatNm);
219
+						$(OPER03010_DETAIL_GRID_ID).jqGrid('setCell', last_row_id, 'cmpyCd', '');	
220
+					}
221
+				});
222
+				$(OPER03010_DETAIL_GRID_EMPTY).hide();
223
+			};
224
+			fn_call_popup('biz', 'BIZPOP_NK_SALES_USER_SCH', '#ITP_ASIDE', popFn, null, 'S');  //=====================================================================================
225
+		});
226
+		// 상세:삭제버튼
227
+		$('#ITP_BTN_OPER03010_DETAIL_DELROW').on('click', function() {
228
+			itp_fn_grid_del_row(OPER03010_DETAIL_GRID_ID);
229
+		});
230
+		
231
+		$('body').on('click', function(e) {
232
+			var gridId = OPER03010_DETAIL_GRID_ID.replace('#', '');
233
+			var rids = $(OPER03010_DETAIL_GRID_ID).jqGrid('getDataIDs');
234
+			var last_row_id = rids[rids.length - 1];			
235
+			itp_fn_grid_reset_selection(e, last_row_id, gridId, 'OPER03010_DETAIL');
236
+		});
237
+		
238
+	});
239
+});
240
+
241
+var itp_fn_OPER03010_detail_map = function(locate) {
242
+	
243
+	kakao.maps.load(function() {
244
+				
245
+		var mapContainer = document.getElementById('ITP_FORM_OPER03010_DETAIL_MAP'), // 지도를 표시할 div 
246
+		    mapOption = {
247
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
248
+		        level: 3, // 지도의 확대 레벨
249
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
250
+		    }; 
251
+	
252
+		// 지도를 생성한다 
253
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
254
+		
255
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
256
+		map.setZoomable(false);   
257
+	
258
+		// 지도에 확대 축소 컨트롤을 생성한다
259
+		//var zoomControl = new kakao.maps.ZoomControl();
260
+	
261
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
262
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
263
+	
264
+		function searchDetailAddrFromCoords(coords, callback) {
265
+		    // 좌표로 법정동 상세 주소 정보를 요청합니다
266
+		    geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
267
+		}
268
+		
269
+		// 주소-좌표 변환 객체를 생성합니다
270
+		var geocoder = new kakao.maps.services.Geocoder();	
271
+		var map;
272
+		
273
+		if( !locate || locate.length == 0 ) {
274
+			// 지도에 마커를 생성하고 표시한다
275
+		    	marker = new kakao.maps.Marker({
276
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
277
+		   	    map: map // 마커를 표시할 지도 객체
278
+	    	});
279
+		} else {
280
+			// 주소로 좌표를 검색합니다
281
+			geocoder.addressSearch(locate, function(result, status) {
282
+			    // 정상적으로 검색이 완료됐으면 
283
+			     if (status === kakao.maps.services.Status.OK) {
284
+		
285
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
286
+			        document.getElementById('ITP_FORM_OPER03010_DETAIL_LAT').value = result[0].y;
287
+			        document.getElementById('ITP_FORM_OPER03010_DETAIL_LNG').value = result[0].x;
288
+			        
289
+			        // 결과값으로 받은 위치를 마커로 표시합니다
290
+			        	marker = new kakao.maps.Marker({
291
+			            map: map,
292
+			            position: coords
293
+			        });
294
+		
295
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
296
+			        map.setCenter(coords);
297
+			    }
298
+			});    
299
+		}
300
+		
301
+		// 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
302
+		kakao.maps.event.addListener(map, 'drag', function () {
303
+		    searchDetailAddrFromCoords(map.getCenter(), function(result, status) {
304
+		        if (status === kakao.maps.services.Status.OK) {
305
+	
306
+	   		        document.getElementById('ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
307
+	   		        document.getElementById('ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
308
+	   		        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();
309
+	   		        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() ;
310
+			        document.getElementById('ITP_FORM_OPER03010_DETAIL_LAT').value = map.getCenter().getLat();
311
+			        document.getElementById('ITP_FORM_OPER03010_DETAIL_LNG').value = map.getCenter().getLng();
312
+		                        
313
+		            // 마커를 클릭한 위치에 표시합니다
314
+		            marker.setPosition(map.getCenter());
315
+		            marker.setMap(map);
316
+		        }   
317
+		    });
318
+			/* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
319
+			console.log(message); */
320
+		});
321
+	});
322
+};
323
+
324
+var itp_fn_OPER03010_view_map = function(locate) {
325
+	
326
+	kakao.maps.load(function() {
327
+				
328
+		var mapContainer = document.getElementById('ITP_FORM_OPER03010_VIEW_MAP'), // 지도를 표시할 div 
329
+		    mapOption = {
330
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
331
+		        level: 3, // 지도의 확대 레벨
332
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
333
+		    }; 
334
+	
335
+		// 지도를 생성한다 
336
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
337
+		
338
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
339
+		map.setZoomable(false);   
340
+	
341
+		// 지도에 확대 축소 컨트롤을 생성한다
342
+		//var zoomControl = new kakao.maps.ZoomControl();
343
+	
344
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
345
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
346
+		
347
+		// 주소-좌표 변환 객체를 생성합니다
348
+		var geocoder = new kakao.maps.services.Geocoder();	
349
+		var map;
350
+		
351
+		if( !locate || locate.length == 0 ) {
352
+			// 지도에 마커를 생성하고 표시한다
353
+		    	marker = new kakao.maps.Marker({
354
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
355
+		   	    map: map // 마커를 표시할 지도 객체
356
+	    	});
357
+		} else {
358
+			// 주소로 좌표를 검색합니다
359
+			geocoder.addressSearch(locate, function(result, status) {
360
+			    // 정상적으로 검색이 완료됐으면 
361
+			     if (status === kakao.maps.services.Status.OK) {
362
+		
363
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
364
+			        
365
+			        // 결과값으로 받은 위치를 마커로 표시합니다
366
+			        marker = new kakao.maps.Marker({
367
+			            map: map,
368
+			            position: coords
369
+			        });
370
+		
371
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
372
+			        map.setCenter(coords);
373
+			    }
374
+			});    
375
+		}
376
+	});
377
+};
378
+	
379
+var itp_fn_OPER03010_switch_screen = function(mode) {
380
+	if(mode == 'LIST') { // 목록
381
+		$('#ITP_BTN_OPER03010_MODIFY').hide();
382
+		$('#ITP_BTN_OPER03010_CANCELLIST').hide();
383
+		$('#ITP_BTN_OPER03010_DELETE').hide();
384
+		$('#ITP_BTN_OPER03010_SAVE').hide();
385
+		fn_show_btn_auth('#ITP_BTN_OPER03010_SRH');
386
+		fn_show_btn_auth('#ITP_BTN_OPER03010_NEWREG');
387
+		
388
+		$('#ITP_AJAX_OPER03010_LIST_CONTAINER').show();
389
+		$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').hide();		
390
+		$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').hide();
391
+	} else if(mode == 'ADD') { // 등록
392
+		ITP_FORM_OPER03010_DETAIL_IS_DUPLICATE = true;
393
+	
394
+		$('#ITP_BTN_OPER03010_SRH').hide();
395
+		$('#ITP_BTN_OPER03010_MODIFY').hide();
396
+		$('#ITP_BTN_OPER03010_NEWREG').hide();
397
+		$('#ITP_BTN_OPER03010_DELETE').hide();
398
+		$('#ITP_BTN_OPER03010_RESET_PW').hide();
399
+		fn_show_btn_auth('#ITP_BTN_OPER03010_CANCELLIST');
400
+		fn_show_btn_auth('#ITP_BTN_OPER03010_SAVE');
401
+		
402
+		$('#ITP_AJAX_OPER03010_LIST_CONTAINER').hide();
403
+		$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').show();
404
+		$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').hide();		
405
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_CD').removeAttr('readonly');
406
+		$('#ITP_FORM_OPER03010_DETAIL_DUP').removeAttr('disabled');
407
+		
408
+		$('#ITP_FORM_OPER03010_DETAIL_VIEW_CD').val('C');
409
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_NM').val('');
410
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_STAT_CD').val('');
411
+		$('#ITP_FORM_OPER03010_DETAIL_FRCOMP_AUTH_CD').val('');
412
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_CD').val('');
413
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_TYPE_CD').val('');
414
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_REG_NUM').val('');
415
+		$('#ITP_FORM_OPER03010_DETAIL_COPT_NUM').val('');
416
+		$('#ITP_FORM_OPER03010_DETAIL_BIZ_CATE').val('');
417
+		$('#ITP_FORM_OPER03010_DETAIL_BIZ_TYPE').val('');
418
+		$('#ITP_FORM_OPER03010_DETAIL_BOSS_NM').val('');
419
+		$('#ITP_FORM_OPER03010_DETAIL_MAIN_TEL').val('');
420
+		$('#ITP_FORM_OPER03010_DETAIL_MAIN_FAX').val('');
421
+		$('#ITP_FORM_OPER03010_DETAIL_MAIN_EMAIL').val('');
422
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').val('');
423
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val('');
424
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES_DTL').val('');
425
+		$('#ITP_FORM_OPER03010_DETAIL_LOTS_ADDRESS').val('');
426
+		$('#ITP_FORM_OPER03010_DETAIL_STREET_ADDRESS').val('');
427
+		$('#ITP_FORM_OPER03010_DETAIL_LAT').val('');
428
+		$('#ITP_FORM_OPER03010_DETAIL_LNG').val('');
429
+		$('#ITP_FORM_OPER03010_DETAIL_HJ_DONG').val('');
430
+		$('#ITP_FORM_OPER03010_DETAIL_BJ_DONG').val('');
431
+		
432
+	} else if(mode == 'MODIFY') { // 수정
433
+		$('#ITP_BTN_OPER03010_SRH').hide();
434
+		$('#ITP_BTN_OPER03010_MODIFY').hide();
435
+		$('#ITP_BTN_OPER03010_NEWREG').hide();		
436
+		$('#ITP_BTN_OPER03010_DELETE').hide();
437
+		fn_show_btn_auth('#ITP_BTN_OPER03010_RESET_PW');
438
+		fn_show_btn_auth('#ITP_BTN_OPER03010_CANCELLIST');
439
+		fn_show_btn_auth('#ITP_BTN_OPER03010_SAVE');
440
+		
441
+		$('#ITP_AJAX_OPER03010_LIST_CONTAINER').hide();
442
+		$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').show();
443
+		$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').hide();
444
+		$('#ITP_FORM_OPER03010_DETAIL_CMPY_CD').attr('readonly', true);
445
+		$('#ITP_FORM_OPER03010_DETAIL_DUP').attr('disabled', true);
446
+	} else if(mode == 'VIEW') { // 보기
447
+		$('#ITP_BTN_OPER03010_SRH').hide();
448
+		$('#ITP_BTN_OPER03010_NEWREG').hide();		
449
+		$('#ITP_BTN_OPER03010_DELETE').hide();
450
+		$('#ITP_BTN_OPER03010_SAVE').hide();
451
+		fn_show_btn_auth('#ITP_BTN_OPER03010_MODIFY');
452
+		fn_show_btn_auth('#ITP_BTN_OPER03010_CANCELLIST');
453
+		
454
+		$('#ITP_AJAX_OPER03010_LIST_CONTAINER').hide();
455
+		$('#ITP_AJAX_OPER03010_DETAIL_CONTAINER').hide();
456
+		$('#ITP_AJAX_OPER03010_VIEW_CONTAINER').show();
457
+	}	
458
+};
459
+
460
+var itp_fn_OPER03010_grid = {
461
+	init: function() {
462
+		// 데이터 없을때
463
+		itp_fn_OPER03010_empty.push();
464
+		$(OPER03010_GRID_EMPTY).on('click', function() {
465
+			itp_fn_OPER03010_empty.back();
466
+			itp_OPER03010_param.gridSize = $.jgrid.defaults.rowNum;
467
+			$(OPER03010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_OPER03010_param)}).trigger('reloadGrid');
468
+		});	
469
+	},
470
+	callBack: function() {
471
+		let param = $('#ITP_FORM_OPER03010_SEARCH').serializeObject();
472
+		param.gridSize = $.jgrid.defaults.rowNum;	
473
+		$(OPER03010_GRID_ID).jqGrid({
474
+			colModel: [
475
+				{
476
+					index: 'CMPY_CD', name: 'cmpyCd',
477
+					label: '가입자코드', 
478
+					width: '6', fixed: false, align: 'center',
479
+					sortable: false, hidden: false
480
+				},
481
+				{
482
+					index: 'CMPY_NM', name: 'cmpyNm',
483
+					label: '가입자명', 
484
+					width: '10', fixed: false, align: 'center',
485
+					sortable: false, hidden: false
486
+				},
487
+				{
488
+					index: 'CMPY_TYPE_NM', name: 'cmpyTypeNm',
489
+					label: '기업형태', 
490
+					width: '6', fixed: false, align: 'center',
491
+					sortable: false, hidden: false
492
+				},
493
+				{
494
+					index: 'CMPY_STAT_NM', name: 'cmpyStatNm',
495
+					label: '기업상태', 
496
+					width: '6', fixed: false, align: 'center',
497
+					sortable: false, hidden: false
498
+				},
499
+				{
500
+					index: 'BOSS_NM', name: 'bossNm',
501
+					label: '대표자명', 
502
+					width: '6', fixed: false, align: 'center',
503
+					sortable: false, hidden: false
504
+				},
505
+				{
506
+					index: 'MAIN_TEL', name: 'mainTel',
507
+					label: '대표연락처', 
508
+					width: '6', fixed: false, align: 'center',
509
+					sortable: false, hidden: false
510
+				},
511
+				{
512
+					index: 'ADD_DT', name: 'addDt',
513
+					label: '가입일자', 
514
+					width: '8', fixed: false, align: 'center',
515
+					sortable: false, hidden: false
516
+				}
517
+			],
518
+			loadBeforeSend: function(jqXHR) {
519
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
520
+			},
521
+			postData: JSON.stringify(param),
522
+			url: DOMAIN + COMPANY_GRID_LIST,
523
+			pager: OPER03010_GRID_PAGER,
524
+			multiselect: false,
525
+			rownumbers: true, 
526
+			onCellSelect: function(rowId, cellIdx, cellValue) {
527
+				var cm = $(this).jqGrid('getGridParam', 'colModel');
528
+				var colNm = cm[cellIdx].name;
529
+				if (colNm == 'cmpyNm') {
530
+					const cmpyCdVal = $(this).jqGrid('getCell', rowId, 'cmpyCd');
531
+					const key = {cmpyCd: cmpyCdVal, viewCd: 'R'};
532
+					var param = $.param(key);
533
+					itp_fn_OPER03010_view(param);
534
+				}
535
+		   	},
536
+			loadComplete: function(data) {
537
+				console.log(JSON.stringify(data));
538
+				itp_fn_grid_load_complete(data, OPER03010_GRID_ID, true, 'number', 'OPER03010', itp_OPER03010_search, itp_fn_OPER03010_empty, true, data.gridRecords, true);
539
+				var ids = $(OPER03010_GRID_ID).getDataIDs();
540
+				$.each(ids, function(idx, rowId) {
541
+					$(OPER03010_GRID_ID).jqGrid('setCell', rowId, 'cmpyNm', '', ITP_GRID_COL_STYLE.link);
542
+				});	
543
+		    },
544
+		    loadError: function(jqXHR, textStatus, errorThrown) {
545
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
546
+		    },
547
+		    onPaging: function(action) {
548
+		    	itp_fn_grid_paging(OPER03010_GRID_ID, action, param);
549
+		    }
550
+		}).navGrid(OPER03010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
551
+	},
552
+	clearData : function() {
553
+		$(OPER03010_GRID_ID).jqGrid('clearGridData', true);
554
+		$(OPER03010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
555
+		$(OPER03010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
556
+		$(OPER03010_GRID_EMPTY).show();
557
+	}, 
558
+	unload : function() {
559
+		$.jgrid.gridUnload(OPER03010_GRID_ID); 
560
+	}
561
+};
562
+
563
+var itp_fn_OPER03010_search = function() {
564
+	itp_fn_OPER03010_switch_screen('LIST');	
565
+	itp_fn_OPER03010_grid.unload();
566
+	itp_fn_OPER03010_grid.callBack();
567
+};
568
+
569
+let itp_OPER03010_param = {};
570
+let itp_OPER03010_search = false;
571
+var itp_fn_OPER03010_empty = {
572
+	push: function() {
573
+		let param = $('#ITP_FORM_OPER03010_SEARCH').serializeObject();
574
+		itp_OPER03010_param = param;
575
+	},
576
+	back: function() {
577
+		$('#ITP_FORM_OPER03010_DEVI_TP_CD').val(itp_OPER03010_param.deviTpCd);
578
+		$('#ITP_FORM_OPER03010_ORDER_YN').val(itp_OPER03010_param.orderYn);
579
+		$('#ITP_FORM_OPER03010_ADT_AUTH_CD').val(itp_OPER03010_param.adtAuthCd);
580
+		$('#ITP_FORM_OPER03010_EMAIL_RCV_YN').val(itp_OPER03010_param.emailRcvYn);
581
+		$('#ITP_FORM_OPER03010_SMS_RCV_YN').val(itp_OPER03010_param.smsRcvYn);
582
+		$('#ITP_FORM_OPER03010_MEMB_EXIT_DT').val(itp_OPER03010_param.membExitDt);
583
+		$('#ITP_FORM_OPER03010_FROM_DT').val(itp_OPER03010_param.fromDt);
584
+		$('#ITP_FORM_OPER03010_TO_DT').val(itp_OPER03010_param.toDt);
585
+		$('#ITP_FORM_OPER03010_KEYWORD').val(itp_OPER03010_param.keyword);
586
+	}
587
+};
588
+
589
+var itp_fn_OPER03010_view = function(param) {
590
+	fn_ajax_call(COMPANY_INFO_COMPANY, param, itp_fn_OPER03010_view_callback, 'GET');
591
+};
592
+
593
+var itp_fn_OPER03010_view_callback = function(result) {
594
+	// console.log(result);
595
+	itp_fn_OPER03010_switch_screen('VIEW');
596
+	$('#ITP_FORM_OPER03010_VIEW #ITP_FORM_OPER03010_VIEW_CMPY_CD').val(result.cmpyCd);
597
+	
598
+	$('#ITP_FORM_OPER03010_VIEW .fnCmpyNm').text(result.cmpyNm);
599
+	$('#ITP_FORM_OPER03010_VIEW .fnCmpyStatCd').text(result.cmpyStatNm);
600
+	$('#ITP_FORM_OPER03010_VIEW .fnCmpyCd').text(result.cmpyCd);
601
+	$('#ITP_FORM_OPER03010_VIEW .fnCmpyTypeCd').text(result.cmpyTypeNm);
602
+	$('#ITP_FORM_OPER03010_VIEW .fnCmpyRegNum').text(result.cmpyRegNum);
603
+	$('#ITP_FORM_OPER03010_VIEW .fnFrcompAuthCd').text(result.frcompAuthNm);
604
+	$('#ITP_FORM_OPER03010_VIEW .fnCoptNum').text(result.coptNum);
605
+	$('#ITP_FORM_OPER03010_VIEW .fnBizCate').text(result.bizCate);
606
+	$('#ITP_FORM_OPER03010_VIEW .fnBizType').text(result.bizType);
607
+	$('#ITP_FORM_OPER03010_VIEW .fnBossNm').text(result.bossNm);
608
+	$('#ITP_FORM_OPER03010_VIEW .fnMainTel').text(result.mainTel);
609
+	$('#ITP_FORM_OPER03010_VIEW .fnMainFax').text(result.mainFax);
610
+	$('#ITP_FORM_OPER03010_VIEW .fnMainEmail').text(result.mainEmail);
611
+	$('#ITP_FORM_OPER03010_VIEW .fnCmpyAddress').text('('+ result.cmpyZipno + ') ' + result.cmpyAdres + ' ' + result.cmpyAdresDtl);
612
+	
613
+	$('#ITP_FORM_OPER03010_VIEW .fnAddDt').text(result.addDt);
614
+	$('#ITP_FORM_OPER03010_VIEW .fnChgDt').text(result.chgDt);
615
+	
616
+	itp_fn_OPER03010_view_map(result.cmpyAdres);	
617
+	
618
+	// 영업담당자정보  리스트 조회
619
+	itp_fn_OPER03010_view_grid.unload();
620
+	itp_fn_OPER03010_view_grid.callBack();
621
+};
622
+
623
+var itp_fn_OPER03010_view_grid = {
624
+	init: function() {
625
+	},
626
+	callBack: function() {
627
+		let param = $('#ITP_FORM_OPER03010_VIEW').serializeObject();
628
+		param.gridSize = $.jgrid.defaults.rowNum; 
629
+		param.pagingYn = false; // 페이징안함
630
+		
631
+		$(OPER03010_VIEW_GRID_ID).jqGrid({
632
+			colModel: [
633
+				{
634
+					index: 'VIEW_CD', name: 'viewCd',
635
+					label: ITP_MSG_LOCALE.label.viewCd,
636
+					width: '10', fixed: false, align: 'center',
637
+					sortable: false, hidden: true
638
+				},
639
+				{
640
+					index: 'SALES_USER_ID', name: 'salesUserId',
641
+					label: '영업담당자ID',
642
+					width: '20', fixed: false, align: 'center',
643
+					sortable: false, editable: false, edittype: 'text',
644
+					editrules: {required: true}
645
+				},
646
+				{
647
+					index: 'SALES_USER_NM', name: 'salesUserNm',
648
+					label: '영업담당자명',
649
+					width: '30', fixed: false, align: 'center',
650
+					sortable: true, editable: false, edittype: 'text',
651
+					editrules: {required: true}
652
+				},
653
+				{
654
+					index: 'USE_STAT_CD', name: 'useStatCd',
655
+					label: ITP_MSG_LOCALE.label.status,
656
+					width: '10', fixed: false, align: 'center',
657
+					sortable: false, editable: false, edittype: 'text', hidden: true
658
+				},
659
+				{
660
+					index: 'USE_STAT_NM', name: 'useStatNm',
661
+					label: ITP_MSG_LOCALE.label.status,
662
+					width: '10', fixed: false, align: 'center',
663
+					sortable: false, editable: false, edittype: 'text'
664
+				},
665
+				{
666
+					index: 'CMPY_CD', name: 'cmpyCd',
667
+					label: '가맹점코드',
668
+					width: '10', fixed: false, align: 'center',
669
+					sortable: false, editable: false, edittype: 'text', hidden: true
670
+				}
671
+			],
672
+			loadBeforeSend: function(jqXHR) {
673
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
674
+			},
675
+			postData: JSON.stringify(param),
676
+			url: DOMAIN + USER_SALESUSER_GRID_LIST,
677
+			pager: OPER03010_VIEW_GRID_PAGER,
678
+			multiselect: false,
679
+			loadComplete: function(data) {				
680
+				itp_fn_grid_load_complete(data, OPER03010_VIEW_GRID_ID, true, undefined, 'OPER03010_VIEW');
681
+		    },
682
+		    loadError: function(jqXHR, textStatus, errorThrown) {
683
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
684
+		    },
685
+		    onPaging: function(action) {
686
+		    	var pagingFn = {
687
+	    			callBack: function(args) {
688
+	    				$(args).trigger('reloadGrid');
689
+	    			}
690
+	    		};
691
+		    	if (itp_fn_check_grid_is_writing(OPER03010_VIEW_GRID_ID)) {
692
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER03010_VIEW_GRID_ID);
693
+		    		return 'stop';
694
+		    	} else {
695
+		    		itp_fn_grid_paging(OPER03010_VIEW_GRID_ID, action, param);
696
+		    	}
697
+		    },
698
+		    onSortCol: function(index, columnIndex, sortOrder) {
699
+		    	var sortingFn = {
700
+	    			callBack: function(args) {
701
+	    				$(args).trigger('reloadGrid');
702
+	    			}
703
+	    		};
704
+		    	if (itp_fn_check_grid_is_writing(OPER03010_VIEW_GRID_ID)) {
705
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER03010_VIEW_GRID_ID);
706
+		    		return 'stop';
707
+		    	} else {
708
+		    		itp_fn_grid_sorting(OPER03010_VIEW_GRID_ID, index, sortOrder);
709
+		    	}
710
+		    }
711
+		}).navGrid(OPER03010_VIEW_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
712
+	},
713
+	clearData : function() {
714
+		$(OPER03010_VIEW_GRID_ID).jqGrid('clearGridData', true);
715
+		$(OPER03010_VIEW_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
716
+		$(OPER03010_VIEW_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
717
+		$(OPER03010_VIEW_GRID_EMPTY).show();
718
+	}, 
719
+	unload : function() {
720
+		$.jgrid.gridUnload(OPER03010_VIEW_GRID_ID); 
721
+	}
722
+};
723
+
724
+var itp_fn_OPER03010_detail = function(param) {
725
+	fn_ajax_call(COMPANY_INFO_COMPANY, param, itp_fn_OPER03010_detail_callback, 'GET');
726
+};
727
+
728
+var itp_fn_OPER03010_detail_callback = function(result) {
729
+	// console.log(result);
730
+	itp_fn_OPER03010_switch_screen('MODIFY');
731
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_VIEW_CD').val('U');
732
+	
733
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_NM').val(result.cmpyNm);
734
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_STAT_CD').val(result.cmpyStatCd);
735
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_FRCOMP_AUTH_CD').val(result.frcompAuthCd);
736
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_CD').val(result.cmpyCd);	
737
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_TYPE_CD').val(result.cmpyTypeCd);
738
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_REG_NUM').val(result.cmpyRegNum);
739
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_COPT_NUM').val(result.coptNum);
740
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_BIZ_CATE').val(result.bizCate);
741
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_BIZ_TYPE').val(result.bizType);
742
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_BOSS_NM').val(result.bossNm);
743
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_MAIN_TEL').val(result.mainTel);
744
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_MAIN_FAX').val(result.mainFax);
745
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_MAIN_EMAIL').val(result.mainEmail);
746
+		
747
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_ZIPNO').val(result.cmpyZipno);	
748
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val(result.cmpyAdres);	
749
+	$('#ITP_FORM_OPER03010_DETAIL #ITP_FORM_OPER03010_DETAIL_CMPY_ADRES_DTL').val(result.cmpyAdresDtl);		
750
+	
751
+	$('#ITP_FORM_OPER03010_DETAIL .fnAddDt').text(result.addDt);
752
+	$('#ITP_FORM_OPER03010_DETAIL .fnChgDt').text(result.chgDt);
753
+	
754
+	itp_fn_OPER03010_detail_map($('#ITP_FORM_OPER03010_DETAIL_CMPY_ADRES').val());
755
+	
756
+	// 영업담당자 리스트 조회
757
+	itp_fn_OPER03010_detail_grid.unload();
758
+	itp_fn_OPER03010_detail_grid.callBack();
759
+};
760
+
761
+
762
+var itp_fn_OPER03010_detail_grid = {
763
+	init: function() {
764
+	},
765
+	callBack: function() {
766
+		let param = $('#ITP_FORM_OPER03010_DETAIL').serializeObject();
767
+		param.gridSize = $.jgrid.defaults.rowNum; 
768
+		param.pagingYn = false; // 페이지안함 
769
+		
770
+		$(OPER03010_DETAIL_GRID_ID).jqGrid({
771
+			colModel: [
772
+				{
773
+					index: 'VIEW_CD', name: 'viewCd',
774
+					label: ITP_MSG_LOCALE.label.viewCd,
775
+					width: '10', fixed: false, align: 'center',
776
+					sortable: false, hidden: true
777
+				},
778
+				{
779
+					index: 'SALES_USER_ID', name: 'salesUserId',
780
+					label: '영업담당자ID',
781
+					width: '20', fixed: false, align: 'center',
782
+					sortable: false, editable: false, edittype: 'text',
783
+					editrules: {required: true}
784
+				},
785
+				{
786
+					index: 'SALES_USER_NM', name: 'salesUserNm',
787
+					label: '영업담당자명',
788
+					width: '30', fixed: false, align: 'center',
789
+					sortable: true, editable: false, edittype: 'text',
790
+					editrules: {required: true}
791
+				},
792
+				{
793
+					index: 'USE_STAT_CD', name: 'useStatCd',
794
+					label: ITP_MSG_LOCALE.label.status,
795
+					width: '10', fixed: false, align: 'center',
796
+					sortable: false, editable: false, edittype: 'text', hidden: true
797
+				},
798
+				{
799
+					index: 'USE_STAT_NM', name: 'useStatNm',
800
+					label: ITP_MSG_LOCALE.label.status,
801
+					width: '10', fixed: false, align: 'center',
802
+					sortable: false, editable: false, edittype: 'text'
803
+				},
804
+				{
805
+					index: 'CMPY_CD', name: 'cmpyCd',
806
+					label: '가맹점코드',
807
+					width: '10', fixed: false, align: 'center',
808
+					sortable: false, editable: false, edittype: 'text', hidden: true
809
+				}
810
+			],
811
+			loadBeforeSend: function(jqXHR) {
812
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
813
+			},
814
+			postData: JSON.stringify(param),
815
+			url: DOMAIN + USER_SALESUSER_GRID_LIST,
816
+			pager: OPER03010_DETAIL_GRID_PAGER,
817
+			loadComplete: function(data) {				
818
+				itp_fn_grid_load_complete(data, OPER03010_DETAIL_GRID_ID, true, undefined, 'OPER03010_DETAIL');
819
+		    },
820
+		    loadError: function(jqXHR, textStatus, errorThrown) {
821
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
822
+		    },
823
+		    onPaging: function(action) {
824
+		    	var pagingFn = {
825
+	    			callBack: function(args) {
826
+	    				$(args).trigger('reloadGrid');
827
+	    			}
828
+	    		};
829
+		    	if (itp_fn_check_grid_is_writing(OPER03010_DETAIL_GRID_ID)) {
830
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, pagingFn, OPER03010_DETAIL_GRID_ID);
831
+		    		return 'stop';
832
+		    	} else {
833
+		    		itp_fn_grid_paging(OPER03010_DETAIL_GRID_ID, action, param);
834
+		    	}
835
+		    },
836
+		    onSortCol: function(index, columnIndex, sortOrder) {
837
+		    	var sortingFn = {
838
+	    			callBack: function(args) {
839
+	    				$(args).trigger('reloadGrid');
840
+	    			}
841
+	    		};
842
+		    	if (itp_fn_check_grid_is_writing(OPER03010_DETAIL_GRID_ID)) {
843
+		    		itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.cancelData, sortingFn, OPER03010_DETAIL_GRID_ID);
844
+		    		return 'stop';
845
+		    	} else {
846
+		    		itp_fn_grid_sorting(OPER03010_DETAIL_GRID_ID, index, sortOrder);
847
+		    	}
848
+		    }
849
+		}).navGrid(OPER03010_DETAIL_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
850
+	},
851
+	clearData : function() {
852
+		$(OPER03010_DETAIL_GRID_ID).jqGrid('clearGridData', true);
853
+		$(OPER03010_DETAIL_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
854
+		$(OPER03010_DETAIL_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
855
+		$(OPER03010_DETAIL_GRID_EMPTY).show();
856
+	}, 
857
+	unload : function() {
858
+		$.jgrid.gridUnload(OPER03010_DETAIL_GRID_ID); 
859
+	}
860
+};

+ 555 - 0
bin/src/main/webapp/js/app/oper/ITP_OPER04010.js

@@ -0,0 +1,555 @@
1
+
2
+const OPER04010_GRID_ID = '#ITP_OPER04010_jqGrid';
3
+const OPER04010_GRID_LIST = '#ITP_OPER04010_jqGrid_list';
4
+const OPER04010_GRID_PAGER = '#ITP_OPER04010_jqGridPager';
5
+const OPER04010_GRID_EMPTY = '#ITP_OPER04010_jqGridEmpty';
6
+
7
+let ITP_FORM_OPER04010_DETAIL_IS_DUPLICATE = false;
8
+let ITP_FORM_OPER04010_DETAIL_IS_WRITING = false;
9
+
10
+let SALES_USER_GRID_LIST = '/api/sauser/grid-list';
11
+let SALES_USER_INFO = '/api/sauser/info-salesuser';
12
+let SALES_USER_SAVE = '/api/sauser/save-salesusesr';
13
+let SALES_USER_CHECK_DUPLICATE = '/api/sauser/check-duplicate';
14
+let USER_INTI_USERPW = '/api/user/inti-userpw';
15
+
16
+require(['config'], function() {
17
+	require([
18
+		'jquery', 
19
+		'kakao.postcode', 
20
+		'kakao.maps'
21
+	], function($) {
22
+		// 버튼 권한설정
23
+		fn_proc_btn_auth('OPER04010');
24
+		// 공통코드 표시
25
+		fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_OPER04010_SEARCH_USE_STAT_CD');
26
+		fn_make_select(CODE_LIST, 'USE_STAT_CD', 'ITP_FORM_OPER04010_DETAIL_USE_STAT_CD', true, '선택');
27
+		fn_make_select(CODE_LIST, 'SALES_TYPE_CD', 'ITP_FORM_OPER04010_DETAIL_SALES_TYPE_CD', true, '선택');
28
+		
29
+		// 조회일자 지정
30
+		// var now = new Date();
31
+		$('#ITP_TAB_OPER04010 .input-group.date').datepicker(ITP_DATE_LANGUAGE);
32
+		// $('#ITP_FORM_OPER04010_SEARCH_FROM_DT').datepicker('setDate', new Date(now.setMonth(now.getMonth() - 1)));
33
+		// $('#ITP_FORM_OPER04010_SEARCH_TO_DT').datepicker('setDate', new Date());
34
+				
35
+		// 그리드				
36
+		itp_fn_jqgrid_resize(OPER04010_GRID_ID, OPER04010_GRID_LIST, 'lg');
37
+		itp_fn_OPER04010_grid.init();
38
+    	itp_fn_fire_window_resize();
39
+
40
+		// 조회    	
41
+    	itp_fn_OPER04010_search();
42
+    	
43
+		// 조회 버튼 클릭
44
+		$('#ITP_BTN_OPER04010_SRH').on('click', function() {
45
+			itp_OPER04010_search = true;
46
+			let param = $('#ITP_FORM_OPER04010_SEARCH').serializeObject();
47
+			param.gridSize = $.jgrid.defaults.rowNum;
48
+			param.gridPage = $.jgrid.defaults.page;
49
+			$(OPER04010_GRID_ID).setGridParam({'postData': JSON.stringify(param)}).trigger('reloadGrid');
50
+		});
51
+		
52
+		// 수정 버튼
53
+		$('#ITP_BTN_OPER04010_MODIFY').on('click', function() {
54
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER04010_DETAIL');			
55
+			const salesUserIdVal = $('#ITP_FORM_OPER04010_VIEW_SALES_USER_ID').val();
56
+			const key = {salesUserId: salesUserIdVal, viewCd: 'R'};
57
+			var param = $.param(key);
58
+			itp_fn_OPER04010_detail(param);	
59
+		});
60
+		
61
+		// 신규등록 버튼
62
+		$('#ITP_BTN_OPER04010_NEWREG').on('click', function() {
63
+			itp_fn_OPER04010_switch_screen('ADD');			
64
+			itp_fn_form_clear_validate(null, '#ITP_FORM_OPER04010_DETAIL');
65
+			itp_fn_OPER04010_detail_map($('#ITP_FORM_OPER04010_DETAIL_STREET_ADDRESS').val());				
66
+		});
67
+		
68
+		// 취소/목록 버튼
69
+		$('#ITP_BTN_OPER04010_CANCELLIST').on('click', function() {
70
+			itp_fn_OPER04010_search();
71
+    	});
72
+		
73
+		// 삭제 버튼
74
+		$('#ITP_BTN_OPER04010_DELETE').on('click', function() {
75
+			
76
+		});
77
+		
78
+		// 저장 버튼
79
+		$('#ITP_BTN_OPER04010_SAVE').on('click', function() {			
80
+			const formId = '#ITP_FORM_OPER04010_DETAIL';
81
+			itp_fn_form_clear_validate(null, formId);			
82
+			var vali_salesUserId = itp_fn_form_validate(formId, formId + '_SALES_USER_ID', ['empty'], undefined);
83
+			var vali_salesTypeCd = itp_fn_form_validate(formId, formId + '_SALES_TYPE_CD', ['empty'], undefined);
84
+			var vali_useStatCd = itp_fn_form_validate(formId, formId + '_USE_STAT_CD', ['empty'], undefined);
85
+			var vali_salesUserNm = itp_fn_form_validate(formId, formId + '_SALES_USER_NM', ['empty'], undefined);			
86
+			var vali_telNo = itp_fn_form_validate(formId, formId + '_TEL_NO', ['empty'], undefined);
87
+			var vali_email = itp_fn_form_validate(formId, formId + 'EMAIL', ['empty'], undefined);
88
+			
89
+			if (vali_salesUserId && vali_salesTypeCd && vali_useStatCd && vali_salesUserNm && vali_telNo && vali_email) {
90
+				
91
+				if($('#ITP_FORM_OPER04010_DETAIL_ZIPNO').val() == '' || $('#ITP_FORM_OPER04010_DETAIL_ADRES').val() == '') {
92
+					itp_fn_modal_alert('주소 검색을 통해 회사 주소를 입력하세요.');
93
+					return;
94
+				}
95
+				
96
+				if (ITP_FORM_OPER04010_DETAIL_IS_DUPLICATE) {
97
+					itp_fn_modal_duplicate('영업담당자 ID 중복체크를 해주세요.', formId + '_SALES_USER_ID');
98
+				} else {
99
+					let param = $(formId).serializeObject();
100
+					var searhFn = function() {
101
+						ITP_FORM_OPER04010_DETAIL_IS_WRITING = false;
102
+						itp_fn_OPER04010_search();
103
+					};
104
+					console.log(JSON.stringify(param));
105
+					fn_ajax_call(SALES_USER_SAVE, JSON.stringify(param), searhFn, 'POST');	
106
+				}
107
+			}
108
+		});		
109
+		
110
+		// 중복체크
111
+		$('#ITP_FORM_OPER04010_DETAIL_DUP').on('click', function() {
112
+			const formId = '#ITP_FORM_OPER04010_DETAIL';
113
+			itp_fn_form_clear_validate(null, formId + '_DETAIL');
114
+			var vali_salesUserId = itp_fn_form_validate(formId + '_DETAIL', formId + '_SALES_USER_ID', ['empty'], undefined);
115
+			if (vali_salesUserId) {
116
+				var dupFn = function(result) {
117
+					if (result.code == 'N') {
118
+						ITP_FORM_OPER04010_DETAIL_IS_DUPLICATE = false;
119
+					} else {
120
+						ITP_FORM_OPER04010_DETAIL_IS_DUPLICATE = true;
121
+					}
122
+				};
123
+				const key = {'salesUserId':  $(formId + '_SALES_USER_ID').val()};
124
+				const param = $.param(key);
125
+				fn_ajax_call(SALES_USER_CHECK_DUPLICATE, param, dupFn, 'GET');
126
+			}
127
+		});
128
+		
129
+		// 상세:비밀번호 초기화
130
+		$('#ITP_BTN_OPER04010_RESET_PW').on('click', function() {
131
+			var resetPwFn = {
132
+				callBack: function(args) {
133
+					const key = {'userId':  $('#ITP_FORM_OPER04010_DETAIL_SALES_USER_ID').val()};
134
+					const param = $.param(key);
135
+					fn_ajax_call(USER_INTI_USERPW, param, undefined, 'GET');					
136
+				}
137
+			};
138
+			itp_fn_modal_confirm(ITP_MSG_LOCALE.message.ajax.askResetUserPw, resetPwFn, null);		
139
+		});
140
+		
141
+		$('#ITP_FORM_OPER04010_DETAIL_ADRES_SCH').on('click', function() {
142
+			new daum.Postcode({
143
+		    	oncomplete: function(data) {
144
+					// 전체주소 리턴
145
+					document.getElementById('ITP_FORM_OPER04010_DETAIL_ZIPNO').value = data.zonecode;
146
+					document.getElementById('ITP_FORM_OPER04010_DETAIL_ADRES').value = data.roadAddress;
147
+					document.getElementById('ITP_FORM_OPER04010_DETAIL_LOTS_ADDRESS').value = !!data.autoJibunAddress ? data.autoJibunAddress : data.jibunAddress;
148
+					document.getElementById('ITP_FORM_OPER04010_DETAIL_STREET_ADDRESS').value = data.roadAddress;
149
+					document.getElementById('ITP_FORM_OPER04010_DETAIL_HJ_DONG').value = !!data.hname ? data.hname : data.bname;
150
+					document.getElementById('ITP_FORM_OPER04010_DETAIL_BJ_DONG').value = data.bname;
151
+					
152
+					itp_fn_OPER04010_detail_map(data.roadAddress);
153
+					document.getElementById('ITP_FORM_OPER04010_DETAIL_ADRES_DTL').focus();		  
154
+		        }
155
+			}).open();
156
+		});
157
+		
158
+	});
159
+});
160
+
161
+var itp_fn_OPER04010_detail_map = function(locate) {
162
+	
163
+	kakao.maps.load(function() {
164
+				
165
+		var mapContainer = document.getElementById('ITP_FORM_OPER04010_DETAIL_MAP'), // 지도를 표시할 div 
166
+		    mapOption = {
167
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
168
+		        level: 3, // 지도의 확대 레벨
169
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
170
+		    }; 
171
+	
172
+		// 지도를 생성한다 
173
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
174
+		
175
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
176
+		map.setZoomable(false);   
177
+	
178
+		// 지도에 확대 축소 컨트롤을 생성한다
179
+		//var zoomControl = new kakao.maps.ZoomControl();
180
+	
181
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
182
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
183
+	
184
+		function searchDetailAddrFromCoords(coords, callback) {
185
+		    // 좌표로 법정동 상세 주소 정보를 요청합니다
186
+		    geocoder.coord2Address(coords.getLng(), coords.getLat(), callback);
187
+		}
188
+		
189
+		// 주소-좌표 변환 객체를 생성합니다
190
+		var geocoder = new kakao.maps.services.Geocoder();	
191
+		var map;
192
+		
193
+		if( !locate || locate.length == 0 ) {
194
+			// 지도에 마커를 생성하고 표시한다
195
+		    	marker = new kakao.maps.Marker({
196
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
197
+		   	    map: map // 마커를 표시할 지도 객체
198
+	    	});
199
+		} else {
200
+			// 주소로 좌표를 검색합니다
201
+			geocoder.addressSearch(locate, function(result, status) {
202
+			    // 정상적으로 검색이 완료됐으면 
203
+			     if (status === kakao.maps.services.Status.OK) {
204
+		
205
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
206
+			        document.getElementById('ITP_FORM_OPER04010_DETAIL_LAT').value = result[0].y;
207
+			        document.getElementById('ITP_FORM_OPER04010_DETAIL_LNG').value = result[0].x;
208
+			        
209
+			        // 결과값으로 받은 위치를 마커로 표시합니다
210
+			        	marker = new kakao.maps.Marker({
211
+			            map: map,
212
+			            position: coords
213
+			        });
214
+		
215
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
216
+			        map.setCenter(coords);
217
+			    }
218
+			});    
219
+		}
220
+		
221
+		// 지도 드래깅 이벤트를 등록한다 (드래그 시작 : dragstart, 드래그 종료 : dragend)
222
+		kakao.maps.event.addListener(map, 'drag', function () {
223
+		    searchDetailAddrFromCoords(map.getCenter(), function(result, status) {
224
+		        if (status === kakao.maps.services.Status.OK) {
225
+	
226
+	   		        document.getElementById('ITP_FORM_OPER04010_DETAIL_LOTS_ADDRESS').value = result[0].address.address_name ;
227
+	   		        document.getElementById('ITP_FORM_OPER04010_DETAIL_ADRES').value = !!result[0].road_address ? result[0].road_address.address_name : result[0].address.address_name ;
228
+	   		        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();
229
+	   		        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() ;
230
+			        document.getElementById('ITP_FORM_OPER04010_DETAIL_LAT').value = map.getCenter().getLat();
231
+			        document.getElementById('ITP_FORM_OPER04010_DETAIL_LNG').value = map.getCenter().getLng();
232
+		                        
233
+		            // 마커를 클릭한 위치에 표시합니다
234
+		            marker.setPosition(map.getCenter());
235
+		            marker.setMap(map);
236
+		        }   
237
+		    });
238
+			/* 	var message = '지도를 드래그 하고 있습니다. 지도의 중심 좌표는 ' + map.getCenter().toString() +' 입니다.';
239
+			console.log(message); */
240
+		});
241
+	});
242
+};
243
+
244
+var itp_fn_OPER04010_view_map = function(locate) {
245
+	
246
+	kakao.maps.load(function() {
247
+				
248
+		var mapContainer = document.getElementById('ITP_FORM_OPER04010_VIEW_MAP'), // 지도를 표시할 div 
249
+		    mapOption = {
250
+		        center: new kakao.maps.LatLng(37.56684, 126.97865), // 지도의 중심좌표
251
+		        level: 3, // 지도의 확대 레벨
252
+		        mapTypeId : kakao.maps.MapTypeId.ROADMAP // 지도종류
253
+		    }; 
254
+	
255
+		// 지도를 생성한다 
256
+		var map = new kakao.maps.Map(mapContainer, mapOption); 
257
+		
258
+		// 마우스 휠과 모바일 터치를 이용한 지도 확대, 축소를 막는다
259
+		map.setZoomable(false);   
260
+	
261
+		// 지도에 확대 축소 컨트롤을 생성한다
262
+		//var zoomControl = new kakao.maps.ZoomControl();
263
+	
264
+		// 지도의 우측에 확대 축소 컨트롤을 추가한다
265
+		//map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);
266
+		
267
+		// 주소-좌표 변환 객체를 생성합니다
268
+		var geocoder = new kakao.maps.services.Geocoder();	
269
+		var map;
270
+		
271
+		if( !locate || locate.length == 0 ) {
272
+			// 지도에 마커를 생성하고 표시한다
273
+		    	marker = new kakao.maps.Marker({
274
+		  	    position: new kakao.maps.LatLng(37.56684, 126.97865), // 마커의 좌표
275
+		   	    map: map // 마커를 표시할 지도 객체
276
+	    	});
277
+		} else {
278
+			// 주소로 좌표를 검색합니다
279
+			geocoder.addressSearch(locate, function(result, status) {
280
+			    // 정상적으로 검색이 완료됐으면 
281
+			     if (status === kakao.maps.services.Status.OK) {
282
+		
283
+			        var coords = new kakao.maps.LatLng(result[0].y, result[0].x);
284
+			        
285
+			        // 결과값으로 받은 위치를 마커로 표시합니다
286
+			        marker = new kakao.maps.Marker({
287
+			            map: map,
288
+			            position: coords
289
+			        });
290
+		
291
+			        // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다
292
+			        map.setCenter(coords);
293
+			    }
294
+			});    
295
+		}
296
+	});
297
+};
298
+	
299
+var itp_fn_OPER04010_switch_screen = function(mode) {
300
+	if(mode == 'LIST') { // 목록
301
+		$('#ITP_BTN_OPER04010_MODIFY').hide();
302
+		$('#ITP_BTN_OPER04010_CANCELLIST').hide();
303
+		$('#ITP_BTN_OPER04010_DELETE').hide();
304
+		$('#ITP_BTN_OPER04010_SAVE').hide();
305
+		fn_show_btn_auth('#ITP_BTN_OPER04010_SRH');
306
+		fn_show_btn_auth('#ITP_BTN_OPER04010_NEWREG');
307
+		
308
+		$('#ITP_AJAX_OPER04010_LIST_CONTAINER').show();
309
+		$('#ITP_AJAX_OPER04010_DETAIL_CONTAINER').hide();		
310
+		$('#ITP_AJAX_OPER04010_VIEW_CONTAINER').hide();
311
+	} else if(mode == 'ADD') { // 등록
312
+		ITP_FORM_OPER04010_DETAIL_IS_DUPLICATE = true;
313
+	
314
+		$('#ITP_BTN_OPER04010_SRH').hide();
315
+		$('#ITP_BTN_OPER04010_MODIFY').hide();
316
+		$('#ITP_BTN_OPER04010_NEWREG').hide();
317
+		$('#ITP_BTN_OPER04010_DELETE').hide();
318
+		$('#ITP_BTN_OPER04010_RESET_PW').hide();
319
+		fn_show_btn_auth('#ITP_BTN_OPER04010_CANCELLIST');
320
+		fn_show_btn_auth('#ITP_BTN_OPER04010_SAVE');
321
+		
322
+		$('#ITP_AJAX_OPER04010_LIST_CONTAINER').hide();
323
+		$('#ITP_AJAX_OPER04010_DETAIL_CONTAINER').show();
324
+		$('#ITP_AJAX_OPER04010_VIEW_CONTAINER').hide();		
325
+		$('#ITP_FORM_OPER04010_DETAIL_SALES_USER_ID').removeAttr('readonly');
326
+		$('#ITP_FORM_OPER04010_DETAIL_DUP').removeAttr('disabled');
327
+		
328
+		$('#ITP_FORM_OPER04010_DETAIL_VIEW_CD').val('C');
329
+		$('#ITP_FORM_OPER04010_DETAIL_SALES_USER_NM').val('');
330
+		$('#ITP_FORM_OPER04010_DETAIL_SALES_TYPE_CD').val('');
331
+		$('#ITP_FORM_OPER04010_DETAIL_USE_STAT_CD').val('');
332
+		$('#ITP_FORM_OPER04010_DETAIL_SALES_USER_ID').val('');
333
+		$('#ITP_FORM_OPER04010_DETAIL_TEL_NO').val('');
334
+		$('#ITP_FORM_OPER04010_DETAIL_FAX_NO').val('');
335
+		$('#ITP_FORM_OPER04010_DETAIL_EMAIL').val('');
336
+		$('#ITP_FORM_OPER04010_DETAIL_ZIPNO').val('');
337
+		$('#ITP_FORM_OPER04010_DETAIL_ADRES').val('');
338
+		$('#ITP_FORM_OPER04010_DETAIL_ADRES_DTL').val('');
339
+		$('#ITP_FORM_OPER04010_DETAIL_LOTS_ADDRESS').val('');
340
+		$('#ITP_FORM_OPER04010_DETAIL_STREET_ADDRESS').val('');
341
+		$('#ITP_FORM_OPER04010_DETAIL_LAT').val('');
342
+		$('#ITP_FORM_OPER04010_DETAIL_LNG').val('');
343
+		$('#ITP_FORM_OPER04010_DETAIL_HJ_DONG').val('');
344
+		$('#ITP_FORM_OPER04010_DETAIL_BJ_DONG').val('');
345
+		
346
+	} else if(mode == 'MODIFY') { // 수정
347
+		$('#ITP_BTN_OPER04010_SRH').hide();
348
+		$('#ITP_BTN_OPER04010_MODIFY').hide();
349
+		$('#ITP_BTN_OPER04010_NEWREG').hide();		
350
+		$('#ITP_BTN_OPER04010_DELETE').hide();
351
+		fn_show_btn_auth('#ITP_BTN_OPER04010_RESET_PW');
352
+		fn_show_btn_auth('#ITP_BTN_OPER04010_CANCELLIST');
353
+		fn_show_btn_auth('#ITP_BTN_OPER04010_SAVE');
354
+		
355
+		$('#ITP_AJAX_OPER04010_LIST_CONTAINER').hide();
356
+		$('#ITP_AJAX_OPER04010_DETAIL_CONTAINER').show();
357
+		$('#ITP_AJAX_OPER04010_VIEW_CONTAINER').hide();
358
+		$('#ITP_FORM_OPER04010_DETAIL_SALES_USER_ID').attr('readonly', true);
359
+		$('#ITP_FORM_OPER04010_DETAIL_DUP').attr('disabled', true);
360
+	} else if(mode == 'VIEW') { // 보기
361
+		$('#ITP_BTN_OPER04010_SRH').hide();
362
+		$('#ITP_BTN_OPER04010_NEWREG').hide();		
363
+		$('#ITP_BTN_OPER04010_DELETE').hide();
364
+		$('#ITP_BTN_OPER04010_SAVE').hide();
365
+		fn_show_btn_auth('#ITP_BTN_OPER04010_MODIFY');
366
+		fn_show_btn_auth('#ITP_BTN_OPER04010_CANCELLIST');
367
+		
368
+		$('#ITP_AJAX_OPER04010_LIST_CONTAINER').hide();
369
+		$('#ITP_AJAX_OPER04010_DETAIL_CONTAINER').hide();
370
+		$('#ITP_AJAX_OPER04010_VIEW_CONTAINER').show();
371
+	}	
372
+};
373
+
374
+var itp_fn_OPER04010_grid = {
375
+	init: function() {
376
+		// 데이터 없을때
377
+		itp_fn_OPER04010_empty.push();
378
+		$(OPER04010_GRID_EMPTY).on('click', function() {
379
+			itp_fn_OPER04010_empty.back();
380
+			itp_OPER04010_param.gridSize = $.jgrid.defaults.rowNum;
381
+			$(OPER04010_GRID_ID).setGridParam({'postData': JSON.stringify(itp_OPER04010_param)}).trigger('reloadGrid');
382
+		});	
383
+	},
384
+	callBack: function() {
385
+		let param = $('#ITP_FORM_OPER04010_SEARCH').serializeObject();
386
+		param.gridSize = $.jgrid.defaults.rowNum;	
387
+		$(OPER04010_GRID_ID).jqGrid({
388
+			colModel: [
389
+				{
390
+					index: 'SALES_USER_ID', name: 'salesUserId',
391
+					label: '영업담당자ID', 
392
+					width: '6', fixed: false, align: 'center',
393
+					sortable: false, hidden: false
394
+				},
395
+				{
396
+					index: 'SALES_USER_NM', name: 'salesUserNm',
397
+					label: '영업담당자명', 
398
+					width: '10', fixed: false, align: 'center',
399
+					sortable: false, hidden: false
400
+				},
401
+				{
402
+					index: 'SALES_TYPE_NM', name: 'salesTypeNm',
403
+					label: '영업타입', 
404
+					width: '6', fixed: false, align: 'center',
405
+					sortable: false, hidden: false
406
+				},
407
+				{
408
+					index: 'USE_STAT_NM', name: 'useStatNm',
409
+					label: '상태', 
410
+					width: '6', fixed: false, align: 'center',
411
+					sortable: false, hidden: false
412
+				},
413
+				{
414
+					index: 'ADD_DT', name: 'addDt',
415
+					label: '가입일자', 
416
+					width: '8', fixed: false, align: 'center',
417
+					sortable: false, hidden: false
418
+				}
419
+			],
420
+			loadBeforeSend: function(jqXHR) {
421
+			    jqXHR.setRequestHeader('X-AUTH-TOKEN', CONN_KEY);
422
+			},
423
+			postData: JSON.stringify(param),
424
+			url: DOMAIN + SALES_USER_GRID_LIST,
425
+			pager: OPER04010_GRID_PAGER,
426
+			multiselect: false,
427
+			rownumbers: true, 
428
+			onCellSelect: function(rowId, cellIdx, cellValue) {
429
+				var cm = $(this).jqGrid('getGridParam', 'colModel');
430
+				var colNm = cm[cellIdx].name;
431
+				if (colNm == 'salesUserId') {
432
+					const salesUserIdVal = $(this).jqGrid('getCell', rowId, 'salesUserId');
433
+					const key = {salesUserId: salesUserIdVal, viewCd: 'R'};
434
+					var param = $.param(key);
435
+					itp_fn_OPER04010_view(param);
436
+				}
437
+		   	},
438
+			loadComplete: function(data) {
439
+				console.log(JSON.stringify(data));
440
+				itp_fn_grid_load_complete(data, OPER04010_GRID_ID, true, 'number', 'OPER04010', itp_OPER04010_search, itp_fn_OPER04010_empty, true, data.gridRecords, true);
441
+				var ids = $(OPER04010_GRID_ID).getDataIDs();
442
+				$.each(ids, function(idx, rowId) {
443
+					$(OPER04010_GRID_ID).jqGrid('setCell', rowId, 'salesUserId', '', ITP_GRID_COL_STYLE.link);
444
+				});	
445
+		    },
446
+		    loadError: function(jqXHR, textStatus, errorThrown) {
447
+		    	itp_fn_grid_load_error(jqXHR, textStatus, errorThrown);
448
+		    },
449
+		    onPaging: function(action) {
450
+		    	itp_fn_grid_paging(OPER04010_GRID_ID, action, param);
451
+		    }
452
+		}).navGrid(OPER04010_GRID_PAGER, ITP_GRID_NAV_DEFAULTS.navGrid);
453
+	},
454
+	clearData : function() {
455
+		$(OPER04010_GRID_ID).jqGrid('clearGridData', true);
456
+		$(OPER04010_GRID_LIST).find('.ui-jqgrid-bdiv').css('min-height', '100px');
457
+		$(OPER04010_GRID_EMPTY).html(ITP_MSG_LOCALE.message.grid.noData);
458
+		$(OPER04010_GRID_EMPTY).show();
459
+	}, 
460
+	unload : function() {
461
+		$.jgrid.gridUnload(OPER04010_GRID_ID); 
462
+	}
463
+};
464
+
465
+var itp_fn_OPER04010_search = function() {
466
+	itp_fn_OPER04010_switch_screen('LIST');	
467
+	itp_fn_OPER04010_grid.unload();
468
+	itp_fn_OPER04010_grid.callBack();
469
+};
470
+
471
+let itp_OPER04010_param = {};
472
+let itp_OPER04010_search = false;
473
+var itp_fn_OPER04010_empty = {
474
+	push: function() {
475
+		let param = $('#ITP_FORM_OPER04010_SEARCH').serializeObject();
476
+		itp_OPER04010_param = param;
477
+	},
478
+	back: function() {
479
+		$('#ITP_FORM_OPER04010_DEVI_TP_CD').val(itp_OPER04010_param.deviTpCd);
480
+		$('#ITP_FORM_OPER04010_ORDER_YN').val(itp_OPER04010_param.orderYn);
481
+		$('#ITP_FORM_OPER04010_ADT_AUTH_CD').val(itp_OPER04010_param.adtAuthCd);
482
+		$('#ITP_FORM_OPER04010_EMAIL_RCV_YN').val(itp_OPER04010_param.emailRcvYn);
483
+		$('#ITP_FORM_OPER04010_SMS_RCV_YN').val(itp_OPER04010_param.smsRcvYn);
484
+		$('#ITP_FORM_OPER04010_MEMB_EXIT_DT').val(itp_OPER04010_param.membExitDt);
485
+		$('#ITP_FORM_OPER04010_FROM_DT').val(itp_OPER04010_param.fromDt);
486
+		$('#ITP_FORM_OPER04010_TO_DT').val(itp_OPER04010_param.toDt);
487
+		$('#ITP_FORM_OPER04010_KEYWORD').val(itp_OPER04010_param.keyword);
488
+	}
489
+};
490
+
491
+var itp_fn_OPER04010_view = function(param) {
492
+	fn_ajax_call(SALES_USER_INFO, param, itp_fn_OPER04010_view_callback, 'GET');
493
+};
494
+
495
+var itp_fn_OPER04010_view_callback = function(result) {
496
+	// console.log(result);
497
+	itp_fn_OPER04010_switch_screen('VIEW');
498
+	$('#ITP_FORM_OPER04010_VIEW #ITP_FORM_OPER04010_VIEW_SALES_USER_ID').val(result.salesUserId);
499
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesUserId').text(result.salesUserId);
500
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesUserNm').text(result.salesUserNm);
501
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesTypeCd').text(result.salesTypeCd);
502
+	$('#ITP_FORM_OPER04010_VIEW .fnUseStatCd').text(result.useStatCd);
503
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesTypeNm').text(result.salesTypeNm);
504
+	$('#ITP_FORM_OPER04010_VIEW .fnUseStatNm').text(result.useStatNm);
505
+	$('#ITP_FORM_OPER04010_VIEW .fnTelNo').text(result.telNo);
506
+	$('#ITP_FORM_OPER04010_VIEW .fnFaxNo').text(result.faxNo);
507
+	$('#ITP_FORM_OPER04010_VIEW .fnEmail').text(result.email);
508
+	$('#ITP_FORM_OPER04010_VIEW .fnCmpyAddress').text('('+ result.zipno + ') ' + result.adres + ' ' + result.adresDtl);
509
+	
510
+	$('#ITP_FORM_OPER04010_VIEW .fnAddDt').text(result.addDt);
511
+	$('#ITP_FORM_OPER04010_VIEW .fnChgDt').text(result.chgDt);
512
+	
513
+	itp_fn_OPER04010_view_map(result.adres);	
514
+};
515
+
516
+var itp_fn_OPER04010_detail = function(param) {
517
+	fn_ajax_call(SALES_USER_INFO, param, itp_fn_OPER04010_detail_callback, 'GET');
518
+};
519
+
520
+var itp_fn_OPER04010_detail_callback = function(result) {
521
+	 console.log(result);
522
+	itp_fn_OPER04010_switch_screen('MODIFY');
523
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_VIEW_CD').val('U');
524
+	
525
+	$('#ITP_FORM_OPER04010_VIEW #ITP_FORM_OPER04010_VIEW_SALES_USER_ID').val(result.salesUserId);
526
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesUserId').text(result.salesUserId);
527
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesUserNm').text(result.salesUserNm);
528
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesTypeCd').text(result.salesTypeCd);
529
+	$('#ITP_FORM_OPER04010_VIEW .fnUseStatCd').text(result.useStatCd);
530
+	$('#ITP_FORM_OPER04010_VIEW .fnSalesTypeNm').text(result.salesTypeNm);
531
+	$('#ITP_FORM_OPER04010_VIEW .fnUseStatNm').text(result.useStatNm);
532
+	$('#ITP_FORM_OPER04010_VIEW .fnTelNo').text(result.telNo);
533
+	$('#ITP_FORM_OPER04010_VIEW .fnFaxNo').text(result.faxNo);
534
+	$('#ITP_FORM_OPER04010_VIEW .fnEmail').text(result.email);
535
+	
536
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_SALES_USER_NM').val(result.salesUserNm);
537
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_SALES_TYPE_CD').val(result.salesTypeCd);
538
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_USE_STAT_CD').val(result.useStatCd);
539
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_SALES_USER_ID').val(result.salesUserId);	
540
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_SALES_TYPE_NM').val(result.salesTypeNm);
541
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_USE_STAT_NM').val(result.useStatNm);
542
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_TEL_NO').val(result.telNo);
543
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_FAX_NO').val(result.faxNo);
544
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_EMAIL').val(result.email);
545
+		
546
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_ZIPNO').val(result.zipno);	
547
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_ADRES').val(result.adres);	
548
+	$('#ITP_FORM_OPER04010_DETAIL #ITP_FORM_OPER04010_DETAIL_ADRES_DTL').val(result.adresDtl);		
549
+	
550
+	$('#ITP_FORM_OPER04010_DETAIL .fnAddDt').text(result.addDt);
551
+	$('#ITP_FORM_OPER04010_DETAIL .fnChgDt').text(result.chgDt);
552
+	
553
+	itp_fn_OPER04010_detail_map($('#ITP_FORM_OPER04010_DETAIL_ADRES').val());
554
+	
555
+};

+ 11 - 11
src/main/webapp/app/stinfo/STINFO01010.html

@@ -20,7 +20,7 @@
20 20
 								<form id="ITP_FORM_STINFO01010_SEARCH" class="form-horizontal">
21 21
 									<div class="form-group">
22 22
 										<div class="col-xs-2 itp_ip itp_noMar">
23
-											<select id="ITP_FORM_STINFO01010_DETAIL_USER_STAT_CD" class="form-control itp_input" name="ST_CD"></select>
23
+											<select id="ITP_FORM_STINFO01010_SEARCH_USER_STAT_CD" class="form-control itp_input" name="ST_CD"></select>
24 24
 										</div>
25 25
 										<div class="col-xs-2 itp_ip itp_noMar">
26 26
 											<select id="ITP_FORM_STINFO01010_SEARCH_USER_STAT_CD" class="form-control itp_input" name="ST_CD"></select>
@@ -117,7 +117,7 @@
117 117
 											<label class="col-xs-2 itp_lb">이메일</label>
118 118
 											<div class="col-xs-4 itp_ip">
119 119
 												<div class="col-xs-7 itp_in">
120
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" class="form-control itp_input" name="EMAL_ADDR" value="">
120
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAL_ADDR" class="form-control itp_input" name="EMAL_ADDR" value="">
121 121
 												</div>
122 122
 											</div>
123 123
 											<label class="col-xs-2 itp_lb"style="border-top:none;"></label>
@@ -126,7 +126,7 @@
126 126
 													<label class="col-xs-12"></label>
127 127
 												</div>
128 128
 												<div class="col-xs-5 itp_in">
129
-													<button type="button" id="ITP_BTN_STINFO01010_DETAIL_ADDROW" class="btn btn-primary btn-sm FFB" style="display: inline-block;"><i class="glyphicon"></i>파일선택</button>
129
+													<button type="button" id="ITP_BTN_STINFO01010_DETAIL_FILE_SEARCH" class="btn btn-primary btn-sm FFB" style="display: inline-block;"><i class="glyphicon"></i>파일선택</button>
130 130
 												</div>
131 131
 											</div>
132 132
 										</div>
@@ -141,10 +141,10 @@
141 141
 														</select>
142 142
 													</div>
143 143
 													<div class="col-xs-4 itp_in">
144
-														<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="RCV_ACCT_NO" value="" placeholder="계좌번호">													
144
+														<input type="text" id="ITP_FORM_STINFO01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="RCV_ACCT_NO" value="" placeholder="계좌번호">													
145 145
 													</div>
146 146
 													<div class="col-xs-2 itp_in">
147
-														<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="OWAC_NM" value="" placeholder="예금주명">													
147
+														<input type="text" id="ITP_FORM_STNFO01010_DETAIL_CMPY_ZIPNO" class="form-control itp_input" name="OWAC_NM" value="" placeholder="예금주명">													
148 148
 													</div>										
149 149
 												</div>
150 150
 											</div>
@@ -154,16 +154,16 @@
154 154
 												<label class="col-xs-2 itp_lb">주소</label>
155 155
 												<div class="col-xs-10 itp_ip">
156 156
 													<div class="col-xs-2 itp_in">
157
-													<input type="text" id="ITP_FORM_KOPER01010_DETAIL_ZIPNO" class="form-control itp_input" name="ZIP_NO" value="" maxlength="6" readonly placeholder="우편번호">													
157
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_ZIPNO" class="form-control itp_input" name="ZIP_NO" value="" maxlength="6" readonly placeholder="우편번호">													
158 158
 													</div>
159 159
 													<div class="col-xs-1 itp_in">
160
-													<button type="button" id="ITP_FORM_KOPER01010_DETAIL_ADRES_SCH" class="btn btn-primary btn-xs SHOW" style="margin: 3px 0px 0px 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
160
+													<button type="button" id="ITP_FORM_STINFO01010_DETAIL_ADRES_SCH" class="btn btn-primary btn-xs SHOW" style="margin: 3px 0px 0px 3px;">&nbsp;&nbsp;주소찾기&nbsp;&nbsp;</button>
161 161
 													</div>
162 162
 													<div class="col-xs-4 itp_in" style="margin-right: 5px;">
163
-													<input type="text" id="ITP_FORM_KOPER01010_DETAIL_LOAD_ADDR" class="form-control itp_input" name="LOAD_ADDR" value="" readonly placeholder="기본주소">													
163
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_LOAD_ADDR" class="form-control itp_input" name="LOAD_ADDR" value="" readonly placeholder="기본주소">													
164 164
 													</div>
165 165
 													<div class="col-xs-4 itp_in">
166
-													<input type="text" id="ITP_FORM_KOPER01010_DETAIL_DTL_ADDR" class="form-control itp_input" name="DTL_ADDR" value="" placeholder="상세주소">													
166
+													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_DTL_ADDR" class="form-control itp_input" name="DTL_ADDR" value="" placeholder="상세주소">													
167 167
 													</div>
168 168
 												</div>
169 169
 											</div>	
@@ -177,8 +177,8 @@
177 177
 					<div class="itp_form itp_type1 fix">
178 178
 						<div class="col-xs-12">
179 179
 							<form id="ITP_FORM_STINFO01010_VIEW" class="form-horizontal">
180
- 								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_VIEW_CD" name="viewCd" value="R">
181
- 								<input type="hidden" id="ITP_FORM_STINFO01010_DETAIL_USER_ID" name="userId" value="">
180
+ 								<input type="hidden" id="ITP_FORM_STINFO01010_VIEW_VIEW_CD" name="viewCd" value="R">
181
+ 								<input type="hidden" id="ITP_FORM_STINFO01010_VIEW_USER_ID" name="userId" value="">
182 182
 								
183 183
 								<section class="itp_form_sec">
184 184
 									<h4 class="itp_form_tit">브랜드 정보-상세</h4>

+ 39 - 92
src/main/webapp/app/stinfo/STINFO02010.html

@@ -35,22 +35,22 @@
35 35
 									</div>
36 36
 									<div class="form-group">
37 37
 										<div class="col-xs-2 itp_ip itp_noMar">
38
-											<select id="ITP_FORM_STINFO02010_STORE_DVSN" class="form-control itp_input">
39
-												<option value="">매장타입</option>
38
+											<select id="ITP_FORM_STINFO02010_SERVICE_STORE_DVSN" class="form-control itp_input" name="STORE_DVSN">
39
+												<option value="">매장구분</option>
40 40
 											</select>
41 41
 										</div>
42 42
 										<div class="col-xs-2 itp_ip itp_noMar">
43
-											<select id="ITP_FORM_STINFO02010_SERVICE_ST_DT" class="form-control itp_input">
43
+											<select id="ITP_FORM_STINFO02010_SERVICE_STORE_ST_CD" class="form-control itp_input" name="STORE_ST_CD">
44 44
 												<option value="">매장상태</option>
45 45
 											</select>
46 46
 										</div>
47 47
 										<div class="col-xs-2 itp_ip itp_noMar">
48
-											<select id="ITP_FORM_STINFO02010_SERVICE_ST_DT" class="form-control itp_input">
48
+											<select id="ITP_FORM_STINFO02010_SERVICE_LOAN_DVSN" class="form-control itp_input" name="LOAN_DVSN">
49 49
 												<option value="">정산타입</option>
50 50
 											</select>
51 51
 										</div>
52 52
 										<div class="col-xs-4 itp_ip itp_noMar">
53
-											<input type="text" id="ITP_FORM_STINFO02010_STORE_NM" class="form-control itp_input" name="STORE_NM" placeholder="매장 명" />
53
+											<input type="text" id="ITP_FORM_STINFO02010_SERVICE_STORE_NM" class="form-control itp_input" name="STORE_NM" placeholder="매장 명" />
54 54
 										</div>
55 55
 									</div>
56 56
 								</form>
@@ -234,12 +234,12 @@
234 234
 										<div class="form-group border">
235 235
 											<label class="col-xs-2 itp_lb">브랜드 계좌정보</label>
236 236
 											<div class="col-xs-4 itp_ip">
237
-												<div class="col-xs-12 itp_in RCV_ACCT_NO"></div>
237
+												<div class="col-xs-12 itp_in BRAND_ACCT_INFO"></div>
238 238
 											</div>
239 239
 											<label class="col-xs-2 itp_lb">정산타입*</label>
240 240
 											<div class="col-xs-4 itp_ip">
241 241
 												<div class="col-xs-7 itp_in">
242
-									                <select id="ITP_FORM_STINFO02010_DEL_YN" class="form-control itp_input" name="delYn">
242
+									                <select id="ITP_FORM_STINFO02010_DETAIL_LOAN_DVSN" class="form-control itp_input" name="delYn">
243 243
 														<option value="N">선입금/후불(신용)</option>
244 244
 													</select>
245 245
 												</div>
@@ -258,24 +258,19 @@
258 258
 					<div class="itp_form itp_type1 fix">
259 259
 						<div class="col-xs-12">
260 260
 							<form id="ITP_FORM_STINFO02010_VIEW" class="form-horizontal">
261
-								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_VIEW_CD" name="viewCd" value="C">
262
-								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_NTICE_NO" name="nticeNo" value="">
263
-								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_FILE_NO" name="fileNo" value="">
264
-				
261
+								<input type="hidden" id="ITP_FORM_STINFO02010_VIEW_VIEW_CD" name="viewCd" value="R">
262
+								 <input type="hidden" id="ITP_FORM_STINFO02010_VIEW_USER_ID" name="userId" value="">
265 263
 								<section class="itp_form_sec">
266 264
 									<h4 class="itp_form_tit">매장정보-상세</h4>
267 265
 									<div class="itp_form_in">
268 266
 										<div class="form-group">
269 267
 											<label class="col-xs-2 itp_lb">브랜드 *</label>
270 268
 											<div class="col-xs-4 itp_ip">
271
-												<div class="col-xs-10 itp_in">
272
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL" style="border:none;" class="itp_input" name="STORE_NM" placeholder="테스트 브랜드">
273
-												</div>
269
+												<div class="col-xs-10 itp_in BRAND_NM"></div>
274 270
 											</div>
275 271
 											<label class="col-xs-2 itp_lb">상태 *</label>
276 272
 											<div class="col-xs-4 itp_ip">
277
-												<div class="col-xs-7 itp_in">
278
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL" style="border:none;" class="itp_input" name="ST_CD" placeholder="">
273
+												<div class="col-xs-7 itp_in ST_CD">
279 274
 												</div>
280 275
 											</div>
281 276
 										</div>
@@ -284,14 +279,11 @@
284 279
 										<div class="form-group">
285 280
 											<label class="col-xs-2 itp_lb">매장번호</label>
286 281
 											<div class="col-xs-4 itp_ip">
287
-												<div class="col-xs-10 itp_in">
288
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL"style="border:none;" class="itp_input" name="STORE_NM" value="SH202201">
289
-												</div>
282
+												<div class="col-xs-10 itp_in STORE_NM"></div>
290 283
 											</div>
291 284
 											<label class="col-xs-2 itp_lb">매장구분 *</label>
292 285
 											<div class="col-xs-4 itp_ip">
293
-												<div class="col-xs-7 itp_in">
294
-													<input type="text" id="ITP_FORM_STINFO02010_DETAIL_EMAIL"style="border:none;" class="itp_input" name="STORE_NM" value="체인가맹">
286
+												<div class="col-xs-7 itp_in STORE_DVSN">
295 287
 												</div>
296 288
 											</div>
297 289
 										</div>
@@ -300,14 +292,12 @@
300 292
 										<div class="form-group">
301 293
 											<label class="col-xs-2 itp_lb">매장명 *</label>
302 294
 											<div class="col-xs-4 itp_ip">
303
-												<div class="col-xs-9 itp_in">
304
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="STORE_NM" value="문정 1호점">
295
+												<div class="col-xs-9 itp_in STORE_NM">
305 296
 												</div>
306 297
 											</div>
307 298
 											<label class="col-xs-2 itp_lb">업태</label>
308 299
 											<div class="col-xs-4 itp_ip">
309
-												<div class="col-xs-7 itp_in">
310
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="BSNS_CNDT" value="식음료">
300
+												<div class="col-xs-7 itp_in BSNS_CNDT">
311 301
 												</div>
312 302
 											</div>
313 303
 										</div>
@@ -316,14 +306,12 @@
316 306
 										<div class="form-group">
317 307
 											<label class="col-xs-2 itp_lb">사업자번호 *</label>
318 308
 											<div class="col-xs-4 itp_ip">
319
-												<div class="col-xs-6 itp_in">
320
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="BSNS_REG_NO" value="123-45-7896">
309
+												<div class="col-xs-6 itp_in BSNS_REG_NO">
321 310
 												</div>
322 311
 											</div>
323 312
 											<label class="col-xs-2 itp_lb">업종</label>
324 313
 											<div class="col-xs-4 itp_ip">
325
-												<div class="col-xs-7 itp_in">
326
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="CTGR_BSNS" value="음식점">
314
+												<div class="col-xs-7 itp_in CTGR_BSNS">
327 315
 												</div>
328 316
 											</div>
329 317
 										</div>
@@ -332,14 +320,12 @@
332 320
 										<div class="form-group">
333 321
 											<label class="col-xs-2 itp_lb">법인번호</label>
334 322
 											<div class="col-xs-4 itp_ip">
335
-												<div class="col-xs-6 itp_in">
336
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="CORP_REG_NO" value="">
323
+												<div class="col-xs-6 itp_in CORP_REG_NO">
337 324
 												</div>
338 325
 											</div>
339 326
 											<label class="col-xs-2 itp_lb">전화번호 *</label>
340 327
 											<div class="col-xs-4 itp_ip">
341
-												<div class="col-xs-7 itp_in">
342
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="TEL_NO" value="02-1458-5847">
328
+												<div class="col-xs-7 itp_in TEL_NO">
343 329
 												</div>
344 330
 											</div>
345 331
 										</div>
@@ -348,14 +334,12 @@
348 334
 										<div class="form-group">
349 335
 											<label class="col-xs-2 itp_lb">점주/대표자명*</label>
350 336
 											<div class="col-xs-4 itp_ip">
351
-												<div class="col-xs-6 itp_in">
352
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_NUM" style="border: none;" class="itp_input" name="OWNER_NM" value="홍길동">
337
+												<div class="col-xs-6 itp_in OWNER_NM">
353 338
 												</div>
354 339
 											</div>
355 340
 											<label class="col-xs-2 itp_lb">FAX</label>
356 341
 											<div class="col-xs-4 itp_ip">
357
-												<div class="col-xs-7 itp_in">
358
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="FAX_NO" value="02-1234-1458">
342
+												<div class="col-xs-7 itp_in FAX_NO">
359 343
 												</div>
360 344
 											</div>
361 345
 										</div>
@@ -364,14 +348,12 @@
364 348
 										<div class="form-group">
365 349
 											<label class="col-xs-2 itp_lb">핸드폰</label>
366 350
 											<div class="col-xs-4 itp_ip">
367
-												<div class="col-xs-6 itp_in">
368
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="MBL_NO" value="010-6574-4758">
351
+												<div class="col-xs-6 itp_in MBL_NO">
369 352
 												</div>
370 353
 											</div>
371 354
 											<label class="col-xs-2 itp_lb">이메일</label>
372 355
 											<div class="col-xs-4 itp_ip">
373
-												<div class="col-xs-7 itp_in">
374
-																	<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="EMAL_ADDR" value="aa@bb.co.kr">
356
+												<div class="col-xs-7 itp_in EMAL_ADDR">
375 357
 												</div>
376 358
 											</div>
377 359
 										</div>
@@ -380,16 +362,14 @@
380 362
 										<div class="form-group">
381 363
 											<label class="col-xs-2 itp_lb">지역 *</label>
382 364
 											<div class="col-xs-4 itp_ip">
383
-												<div class="col-xs-6 itp_in">
384
-													<input type="text" id="ITP_FORM_STINFO02010_SEARCH_FROM_DT" style="border: none;" class="itp_input" name="AREA_CD" value="서울" readonly>
365
+												<div class="col-xs-6 itp_in AREA_CD">
385 366
 												</div>
386 367
 											</div>
387 368
 											<label class="col-xs-2 itp_lb">오픈일</label>
388 369
 											<div class="col-xs-5 itp_ip">
389
-												<div class="col-xs-7 itp_in">
390
-												<div class=" input-group date">
391
-													<input type="text" id="ITP_FORM_STINFO02010_SEARCH_FROM_DT" style="border: none;" class="itp_input" name="REG_DT" value="2022.08.10" readonly>
392
-												</div>
370
+												<div class="col-xs-7 itp_in FROM_DT">
371
+													<div class="input-daterange input-group date itp_in">
372
+													</div>
393 373
 												</div>
394 374
 											</div>
395 375
 										</div>
@@ -398,14 +378,10 @@
398 378
 										<div class="form-group">
399 379
 											<label class="col-xs-2 itp_lb">주소 *</label>
400 380
 											<div class="col-xs-10 itp_ip">
401
-												<div class="col-xs-1 itp_in">
402
-												<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ZIPNO" style="border: none;" class="itp_input" name="cmpyZipno" value="02145" maxlength="6" readonly placeholder="">													
403
-												</div>
404
-												<div class="col-xs-2 itp_in" style="margin-right: 5px;">
405
-												<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES" style="border: none;" class="itp_input" name="cmpyAdres" value="서울시 송파구 문정동" readonly placeholder="">													
406
-												</div>
407
-												<div class="col-xs-2 itp_in">
408
-												<input type="text" id="ITP_FORM_KOPER01010_DETAIL_CMPY_ADRES_DTL" style="border: none;" class="itp_input" name="cmpyAdresDtl" value="125" placeholder="">													
381
+												<div class="col-xs-7 itp_in">
382
+													<input type="text" id="ITP_FORM_STINFO02010_VIEW_ZIP_NO" class="form-control itp_input" name="ZIP_NO" value="" maxlength="6" placeholder="우편번호">													
383
+													<input type="text" id="ITP_FORM_STINFO02010_VIEW_LOAD_ADDR" class="form-control itp_input" name="LOAD_ADDR" value="" placeholder="기본주소">													
384
+													<input type="text" id="ITP_FORM_STINFO02010_VIEW_DTL_ADDR" class="form-control itp_input" name="DTL_ADDR" value="" placeholder="상세주소">													
409 385
 												</div>
410 386
 											</div>
411 387
 										</div>
@@ -414,53 +390,24 @@
414 390
 										<div class="form-group">
415 391
 											<label class="col-xs-2 itp_lb"></label>
416 392
 											<div class="col-xs-10 itp_ip">
417
-												 <iframe src="https://www.google.com/maps/embed?pb=!1m22!1m12!1m3!1d664.8353436219965!2d126.97778946338448!3d37.56666132876259!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!4m7!3e6!4m4!2z7ISc7Jq47Iuc7LKtIOuzuOyyrQ!3m2!1d37.566634!2d126.9783621!4m0!5e0!3m2!1sko!2skr!4v1663562234284!5m2!1sko!2skr" width="600" height="300" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
393
+												 <iframe src="https://www.google.com/maps/embed?pb=!1m22!1m12!1m3!1d664.8353436219965!2d126.97778946338448!3d37.56666132876259!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!4m7!3e6!4m4!2z7ISc7Jq47Iuc7LKtIOuzuOyyrQ!3m2!1d37.566634!2d126.9783621!4m0!5e0!3m2!1sko!2skr!4v1663562234284!5m2!1sko!2skr" width="600" height="400" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
418 394
 											</div>
419
-											
420 395
 										</div>
421 396
 									</div>
422
-										
423 397
 									<div class="itp_form_in">
424
-										<div class="form-group ">
425
-											<label class="col-xs-2 itp_lb">입금 계좌정보</label>
398
+										<div class="form-group border">
399
+											<label class="col-xs-2 itp_lb">브랜드 계좌정보</label>
426 400
 											<div class="col-xs-4 itp_ip">
427
-												<input type="text" id="ITP_FORM_STINFO01010_DETAIL_RCV_ACCT_NO" style="border:none;" class="col-xs-10 itp_input" name="RCV_ACCT_NO" value="AAA브랜드 기업은행 123-1234-12345">
401
+												<div class="col-xs-12 itp_in BRAND_ACCT_INFO"></div>
428 402
 											</div>
429 403
 											<label class="col-xs-2 itp_lb">정산타입*</label>
430 404
 											<div class="col-xs-4 itp_ip">
431 405
 												<div class="col-xs-7 itp_in">
432
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border:none;" class="col-xs-10 itp_input" name="STORE_NM" value="후불(신용)-한도:  ">
433
-												</div>
434
-												<div class="col-xs-2 itp_in" style="left:-60px;">
435
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border: none;" class="itp_input" name="CREDT_LIMIT_AMT" value="1,000,000">
436
-												</div>
437
-											</div>
438
-										</div>
439
-									</div>
440
-									<div class="itp_form_in">
441
-										<div class="form-group ">
442
-											<label class="col-xs-2 itp_lb">가수금액</label>
443
-											<div class="col-xs-4 itp_ip">
444
-												<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border:none;" class="col-xs-10 itp_input" name="STORE_NM" value="1,000,000(선입금일때 존재)">
445
-											</div>
446
-											<label class="col-xs-2 itp_lb">현 잔여한도</label>
447
-											<div class="col-xs-4 itp_ip">
448
-												<div class="col-xs-7 itp_in">
449
-												<input type="text" id="ITP_FORM_STINFO01010_DETAIL_EMAIL" style="border:none;" class="col-xs-10 itp_input" name="STORE_NM" value="500,000">
450
-												</div>
451
-											</div>
452
-										</div>
453
-									</div>
454
-									<div class="itp_form_in">
455
-										<div class="form-group border">
456
-											<label class="col-xs-2 itp_lb">등록일</label>
457
-												<div class="col-xs-4 itp_ip">
458
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_REG_DT" style="border:none;" class="col-xs-10 itp_input" name="REG_DT" value="2022.08.10">
406
+													<select id="ITP_FORM_STINFO02010_VIEW_YN" class="form-control itp_input" name="delYn">
407
+														<option value="N">선입금/후불(신용)</option>
408
+													</select>
459 409
 												</div>
460
-											<label class="col-xs-2 itp_lb">폐점일</label>
461
-											<div class="col-xs-4 itp_ip">
462
-												<div class="col-xs-7 itp_in">
463
-													<input type="text" id="ITP_FORM_STINFO01010_DETAIL_CLOSE_DT" style="border:none;" class="col-xs-10 itp_input" name="CLOSE_DT" value="-">
410
+												<div class="col-xs-4 itp_in CREDT_LIMIT_AMT">
464 411
 												</div>
465 412
 											</div>
466 413
 										</div>