

20230711 김성훈 노드등록 유효성검사 추가 , 사용자 수정 시 관리구역 표출 추가
@c7c81c4cc077b0eea1b3ca9132a8093f5c717a1c
--- client/views/component/dongSelectList.vue
+++ client/views/component/dongSelectList.vue
... | ... | @@ -61,6 +61,9 @@ |
61 | 61 |
dongHiddenCk:Boolean, |
62 | 62 |
nodeHiddenCk:Boolean, |
63 | 63 |
crslk_azHiddenCk:Boolean, |
64 |
+ user_sido_cd: null, |
|
65 |
+ user_sigungu_cd: null, |
|
66 |
+ user_dong_cd: null |
|
64 | 67 |
}, |
65 | 68 |
data() { |
66 | 69 |
return { |
... | ... | @@ -127,6 +130,27 @@ |
127 | 130 |
this.address.zoomLevel=19; |
128 | 131 |
this.onEmit(); |
129 | 132 |
}, |
133 |
+ 'user_sido_cd': function(newValue, oldValue) { |
|
134 |
+ console.log("user_sido_cd newValue : ", newValue); |
|
135 |
+ console.log("user_sido_cd oldValue : ", oldValue); |
|
136 |
+ this.address.siDo_dong_cd = newValue; |
|
137 |
+ }, |
|
138 |
+ 'user_sigungu_cd': function(newValue, oldValue) { |
|
139 |
+ console.log("user_sigungu_cd newValue : ", newValue); |
|
140 |
+ console.log("user_sigungu_cd oldValue : ", oldValue); |
|
141 |
+ if(newValue != undefined) { |
|
142 |
+ this.address.guGun_dong_cd = newValue; |
|
143 |
+ } else { |
|
144 |
+ this.address.guGun_dong_cd = null; |
|
145 |
+ } |
|
146 |
+ }, |
|
147 |
+ 'user_dong_cd': function(newValue, oldValue) { |
|
148 |
+ console.log("user_dong_cd newValue : ", newValue); |
|
149 |
+ console.log("user_dong_cd oldValue : ", oldValue); |
|
150 |
+ if(newValue != undefined) { |
|
151 |
+ this.address.dong_dong_cd = newValue; |
|
152 |
+ } |
|
153 |
+ }, |
|
130 | 154 |
}, |
131 | 155 |
methods: { |
132 | 156 |
//시/도 받아오기 |
--- client/views/pages/SystemManagement/NodeAddForm.vue
+++ client/views/pages/SystemManagement/NodeAddForm.vue
... | ... | @@ -41,7 +41,7 @@ |
41 | 41 |
</table> |
42 | 42 |
</div> |
43 | 43 |
<div class="btn-wrap"> |
44 |
- <button type="button" class="btn-2 green-btn" @click="modal_insert = true">등록</button> |
|
44 |
+ <button type="button" class="btn-2 green-btn" @click="nodeInsertCheck">등록</button> |
|
45 | 45 |
<button type="button" class="btn-2 gray-btn" @click="nodeSelectListPage">취소</button> |
46 | 46 |
</div> |
47 | 47 |
</div> |
... | ... | @@ -65,7 +65,8 @@ |
65 | 65 |
<div class="modalMap"> |
66 | 66 |
<div class="search"> |
67 | 67 |
<h2>교차로 검색</h2> |
68 |
- <dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :azimuthHiddenCk="true"></dongSelectList> |
|
68 |
+ <dongSelectList @setDongCd="setDongCd" ref="parent" :nodeHiddenCk="true" :crslk_azHiddenCk="true" |
|
69 |
+ @siDoGunGuSelectF="siDoGunGuSelectF" @dongSelectF="dongSelectF" @nodeSelectF="nodeSelectF"></dongSelectList> |
|
69 | 70 |
</div> |
70 | 71 |
<button type="button" class="green-btn" @click="searchDong">검색</button> |
71 | 72 |
<OpenLayers ref="open_layers"/> |
... | ... | @@ -134,8 +135,31 @@ |
134 | 135 |
|
135 | 136 |
//행정동 레이어 |
136 | 137 |
//this.$refs.open_layers.addVectorLayerByUrl('/testDongGeoJson.json','testMap','EPSG:4326', baseStyles['labelStyle'],'label'); |
137 |
- vm.$refs.open_layers.addVectorLayerByUrl('/common/getDongsGeoJson.json','nodeMap','EPSG:5181', baseStyles['MultiPolygon'],'MultiPolygon',vm.node.dong_cd); |
|
138 |
+ vm.$refs.open_layers.addVectorLayerByUrl('/common/getDongsGeoJson.json','multPolygonLayer','EPSG:5181', baseStyles['MultiPolygon'],'MultiPolygon',vm.node.dong_cd); |
|
138 | 139 |
vm.$refs.open_layers.setZoom(11); |
140 |
+ }, |
|
141 |
+ |
|
142 |
+ //시/도/군/구 Select 선택시 바로 위치 이동 |
|
143 |
+ siDoGunGuSelectF: function (event) { |
|
144 |
+ //기존 layer 지우기 |
|
145 |
+ this.$refs.open_layers.removeLayerAll(); |
|
146 |
+ //기본 지도 layer 그리기 + 해당 위치로 이동 |
|
147 |
+ this.$refs.open_layers.setBaseMap(vworldBaseLayer,event.target.value); |
|
148 |
+ this.$refs.open_layers.setZoom(this.address.zoomLevel); |
|
149 |
+ //polygon 그리기 |
|
150 |
+ this.$refs.open_layers.addVectorLayerByUrl('/common/getDongsGeoJson.json', 'multPolygonLayer', 'EPSG:5181', baseStyles['MultiPolygon'], 'MultiPolygon', this.address.dong_cd); |
|
151 |
+ |
|
152 |
+ }, |
|
153 |
+ |
|
154 |
+ //행정동 Select 선택시 바로 위치 이동 |
|
155 |
+ dongSelectF: function (event) { |
|
156 |
+ //기존 layer 지우기 |
|
157 |
+ this.$refs.open_layers.removeLayerAll(); |
|
158 |
+ //기본 지도 layer 그리기 + 해당 위치로 이동 |
|
159 |
+ this.$refs.open_layers.setBaseMap(vworldBaseLayer,event.target.value); |
|
160 |
+ this.$refs.open_layers.setZoom(this.address.zoomLevel); |
|
161 |
+ //polygon 그리기 |
|
162 |
+ this.$refs.open_layers.addVectorLayerByUrl('/common/getDongGeoJson.json', 'multPolygonLayer', 'EPSG:5181', baseStyles['MultiPolygon'], 'MultiPolygon', this.address.dong_cd); |
|
139 | 163 |
}, |
140 | 164 |
|
141 | 165 |
closeMap() { |
... | ... | @@ -200,6 +224,7 @@ |
200 | 224 |
} |
201 | 225 |
vm.$refs.open_layers.setCenterPosition(response.data.dong_lat,response.data.dong_lon,'EPSG:5181'); |
202 | 226 |
vm.dong_nm = response.data.dong_nm; |
227 |
+ console.log("vm.dong_nm : ", vm.dong_nm); |
|
203 | 228 |
}).catch(function (error) { |
204 | 229 |
console.log("serchNode error : ", error); |
205 | 230 |
alert("검색에 실패 하였습니다. 관리자에게 문의하세요."); |
... | ... | @@ -236,6 +261,19 @@ |
236 | 261 |
}) |
237 | 262 |
}, |
238 | 263 |
|
264 |
+ //등록 유효성 검사 |
|
265 |
+ nodeInsertCheck: function() { |
|
266 |
+ if (COMMON_UTIL.isEmpty(this.node.node_id) === false) { |
|
267 |
+ alert('노드ID를 입력해주세요.'); |
|
268 |
+ return false; |
|
269 |
+ } |
|
270 |
+ |
|
271 |
+ if (COMMON_UTIL.isEmpty(this.node.node_name) === false) { |
|
272 |
+ alert("노드명을 입력해주세요.") |
|
273 |
+ return false; |
|
274 |
+ } |
|
275 |
+ }, |
|
276 |
+ |
|
239 | 277 |
//dongSelectList 컴포넌트에서 선택된 dong_cd 셋팅 |
240 | 278 |
setDongCd(value) { |
241 | 279 |
this.address = value; |
--- client/views/pages/SystemManagement/NodeManagement.vue
+++ client/views/pages/SystemManagement/NodeManagement.vue
... | ... | @@ -44,7 +44,9 @@ |
44 | 44 |
<tr v-for="(item, idx) in nodeList" :key="idx" @click="nodeSelectOne(item)"> |
45 | 45 |
<td data-title="NO">{{ nodeIdx - idx }}</td> |
46 | 46 |
<td data-title="ID">{{ item.node_id }}</td> |
47 |
- <td data-title="노드위치">{{ item.sido_nm + " " + item.sigungu_nm + " " + item.dong_nm }}</td> |
|
47 |
+ <td v-if="item.sigungu_nm === null " data-titel="노드위치">{{ item.sido_nm }}</td> |
|
48 |
+ <td v-else-if="item.dong_nm === null " data-titel="노드위치">{{ item.sido_nm + ' ' + item.sigungu_nm }}</td> |
|
49 |
+ <td v-else data-titel="노드위치">{{ item.sido_nm + ' ' + item.sigungu_nm + ' ' + item.dong_nm}}</td> |
|
48 | 50 |
<td data-title="노드명">{{ item.node_name }}</td> |
49 | 51 |
<td data-title="위도">{{ item.lat }}</td> |
50 | 52 |
<td data-title="경도">{{ item.lon }}</td> |
... | ... | @@ -262,10 +264,6 @@ |
262 | 264 |
//기본맵 세팅 |
263 | 265 |
vm.$refs.open_layers.setBaseMap(vworldBaseLayer); |
264 | 266 |
|
265 |
- //행정동 레이어 |
|
266 |
- //this.$refs.open_layers.addVectorLayerByUrl('/testDongGeoJson.json','testMap','EPSG:4326', baseStyles['labelStyle'],'label'); |
|
267 |
- vm.$refs.open_layers.addVectorLayerByUrl('/node/getNodeGeoJson.json','nodeMap','EPSG:5181', baseStyles['MultiPolygon'],'MultiPolygon',vm.node.dong_cd); |
|
268 |
- |
|
269 | 267 |
//노드위치로 이동 |
270 | 268 |
vm.$refs.open_layers.removeLayer('nodePoint'); |
271 | 269 |
vm.$refs.open_layers.setCenterPosition(vm.node.lat,vm.node.lon,'EPSG:4326'); |
--- client/views/pages/SystemManagement/UserAddForm.vue
+++ client/views/pages/SystemManagement/UserAddForm.vue
... | ... | @@ -45,7 +45,7 @@ |
45 | 45 |
</div> |
46 | 46 |
<div class="flex m-b"> |
47 | 47 |
<span>관리구역 : </span> |
48 |
- <dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :azimuthHiddenCk="true"></dongSelectList> |
|
48 |
+ <dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :crslk_azHiddenCk="true"></dongSelectList> |
|
49 | 49 |
</div> |
50 | 50 |
<div class="flex m-b"> |
51 | 51 |
<span>비고 : </span> |
--- client/views/pages/SystemManagement/UserManagement.vue
+++ client/views/pages/SystemManagement/UserManagement.vue
... | ... | @@ -73,7 +73,9 @@ |
73 | 73 |
<td data-title="이름">{{ item.user_nm }}</td> |
74 | 74 |
<td data-title="권한">{{ item.user_author }}</td> |
75 | 75 |
<td data-title="전화번호">{{ HyphenMinus(item.user_telno) }}</td> |
76 |
- <td data-titel="관리구역">{{ item.sido_nm + " " + item.sigungu_nm + " " + item.dong_nm }}</td> |
|
76 |
+ <td v-if="item.sigungu_nm === null " data-titel="관리구역">{{ item.sido_nm }}</td> |
|
77 |
+ <td v-else-if="item.dong_nm === null " data-titel="관리구역">{{ item.sido_nm + ' ' + item.sigungu_nm }}</td> |
|
78 |
+ <td v-else data-titel="관리구역">{{ item.sido_nm + ' ' + item.sigungu_nm + ' ' + item.dong_nm}}</td> |
|
77 | 79 |
<td data-titel="등록일자">{{ yyyymmdd(item.reg_dt) }}</td> |
78 | 80 |
<td data-totel="비고">{{ item.rm }}</td> |
79 | 81 |
</tr> |
... | ... | @@ -113,7 +115,9 @@ |
113 | 115 |
</tr> |
114 | 116 |
<tr> |
115 | 117 |
<th>관리구역</th> |
116 |
- <td data-titel="관리구역">{{ item.sido_nm + " " + item.sigungu_nm + " " + item.dong_nm }}</td> |
|
118 |
+ <td v-if="item.sigungu_nm === null " data-titel="관리구역">{{ item.sido_nm }}</td> |
|
119 |
+ <td v-else-if="item.dong_nm === null " data-titel="관리구역">{{ item.sido_nm + ' ' + item.sigungu_nm }}</td> |
|
120 |
+ <td v-else data-titel="관리구역">{{ item.sido_nm + ' ' + item.sigungu_nm + ' ' + item.dong_nm}}</td> |
|
117 | 121 |
</tr> |
118 | 122 |
<tr> |
119 | 123 |
<th>등록일자</th> |
--- client/views/pages/SystemManagement/UserModifyForm.vue
+++ client/views/pages/SystemManagement/UserModifyForm.vue
... | ... | @@ -44,7 +44,8 @@ |
44 | 44 |
</div> |
45 | 45 |
<div class="flex m-b"> |
46 | 46 |
<span>관리구역 : </span> |
47 |
- <dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :azimuthHiddenCk="true"></dongSelectList> |
|
47 |
+ <dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :crslk_azHiddenCk="true" |
|
48 |
+ :user_sido_cd="user.user_sido_cd" :user_sigungu_cd="user.user_sigungu_cd" :user_dong_cd="user.user_dong_cd"></dongSelectList> |
|
48 | 49 |
</div> |
49 | 50 |
<div class="flex m-b"> |
50 | 51 |
<span>비고 : </span> |
... | ... | @@ -117,10 +118,12 @@ |
117 | 118 |
user_eml: null, |
118 | 119 |
user_author: null, |
119 | 120 |
rm: null, |
120 |
- dong_cd: null |
|
121 |
+ user_sido_cd: null, |
|
122 |
+ user_sigungu_cd: null, |
|
123 |
+ user_dong_cd: null |
|
121 | 124 |
}, |
122 | 125 |
route: useRoute(), |
123 |
- |
|
126 |
+ |
|
124 | 127 |
passwordCheck: null, |
125 | 128 |
|
126 | 129 |
telno_boolean: true, |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?