
Merge branch 'front_end' of http://210.180.118.83/ysseo/crosswalk into front_end
@d27baee0f99633b6149f0b33ee5c6f9a884a0436
--- client/views/pages/RealtimeStatus/ErrorSearch.vue
+++ client/views/pages/RealtimeStatus/ErrorSearch.vue
... | ... | @@ -268,15 +268,10 @@ |
268 | 268 |
</div> |
269 | 269 |
</div> |
270 | 270 |
<div class="bottom-wrap"> |
271 |
- <div class="pg-wrap"> |
|
272 |
- <a href="#" class="pg-item prev">◀</a> |
|
273 |
- <a href="#" class="pg-item active">1</a> |
|
274 |
- <a href="#" class="pg-item">2</a> |
|
275 |
- <a href="#" class="pg-item">3</a> |
|
276 |
- <a href="#" class="pg-item">4</a> |
|
277 |
- <a href="#" class="pg-item">5</a> |
|
278 |
- <a href="#" class="pg-item next">▶</a> |
|
279 |
- </div> |
|
271 |
+ <PaginationButton |
|
272 |
+ v-model:currentPage="errorListSearch.currentPage" |
|
273 |
+ :per-page="errorListSearch.perPage" :total-count="errorListCount" :max-range="5" |
|
274 |
+ :click="errorSelectList" /> |
|
280 | 275 |
<div class="btn-wrap"> |
281 | 276 |
<router-link to="/UserManagement.page"> |
282 | 277 |
<span class="btn-2 green-btn">Excel로 저장</span> |
--- client/views/pages/RealtimeStatus/SituationSearch.vue
+++ client/views/pages/RealtimeStatus/SituationSearch.vue
... | ... | @@ -70,13 +70,15 @@ |
70 | 70 |
</tr> |
71 | 71 |
</thead> |
72 | 72 |
<tbody> |
73 |
- <tr @click="modal_1 = true"> |
|
74 |
- <td></td> |
|
75 |
- <td></td> |
|
76 |
- <td></td> |
|
77 |
- <td></td> |
|
78 |
- <td></td> |
|
79 |
- <td></td> |
|
73 |
+ <tr v-for="(item, idx) in eventList" |
|
74 |
+ :key="idx" |
|
75 |
+ > |
|
76 |
+ <td data-title="NO">{{ eventIdx - idx }}</td> |
|
77 |
+ <td data-title="발생일시"> {{ item.ocrn_dt }}</td> |
|
78 |
+ <td data-title="시/도">{{ item.sido_nm }}</td> |
|
79 |
+ <td data-title="시/군/구">{{ item.sigungu_nm }}</td> |
|
80 |
+ <td data-title="행정동">{{ item.dong_nm }}</td> |
|
81 |
+ <td data-title="상황명">{{ item.type }}</td> |
|
80 | 82 |
</tr> |
81 | 83 |
</tbody> |
82 | 84 |
</table> |
... | ... | @@ -149,15 +151,10 @@ |
149 | 151 |
</div> |
150 | 152 |
</div> |
151 | 153 |
<div class="bottom-wrap"> |
152 |
- <div class="pg-wrap"> |
|
153 |
- <a href="#" class="pg-item prev">◀</a> |
|
154 |
- <a href="#" class="pg-item active">1</a> |
|
155 |
- <a href="#" class="pg-item">2</a> |
|
156 |
- <a href="#" class="pg-item">3</a> |
|
157 |
- <a href="#" class="pg-item">4</a> |
|
158 |
- <a href="#" class="pg-item">5</a> |
|
159 |
- <a href="#" class="pg-item next">▶</a> |
|
160 |
- </div> |
|
154 |
+ <PaginationButton |
|
155 |
+ v-model:currentPage="eventListSearch.currentPage" |
|
156 |
+ :per-page="eventListSearch.perPage" :total-count="eventListCount" :max-range="5" |
|
157 |
+ :click="eventSelectList" /> |
|
161 | 158 |
<div class="btn-wrap"> |
162 | 159 |
<router-link to="/UserManagement.page"> |
163 | 160 |
<span class="btn-2 green-btn">Excel로 저장</span> |
... | ... | @@ -169,21 +166,63 @@ |
169 | 166 |
</template> |
170 | 167 |
|
171 | 168 |
<script> |
172 |
-import Modal from "../../component/Modal.vue"; |
|
169 |
+import axios from "axios"; |
|
170 |
+import PaginationButton from "../../component/pagination/PaginationButton.vue"; |
|
171 |
+import dongSelectList from '../../component/dongSelectList.vue'; |
|
172 |
+import COMMON_UTIL from "../../../resources/js/commonUtil.ts"; |
|
173 | 173 |
|
174 | 174 |
export default { |
175 | 175 |
data() { |
176 | 176 |
return { |
177 |
- modal_1: false, |
|
177 |
+ eventListSearch: { |
|
178 |
+ currentPage: 1, |
|
179 |
+ perPage: 10, |
|
180 |
+ // startDate: null, |
|
181 |
+ // endDate: null, |
|
182 |
+ // searchDongCode: null, |
|
183 |
+ }, |
|
184 |
+ |
|
185 |
+ eventListCount: 0, |
|
186 |
+ eventList: [], |
|
187 |
+ eventIdx: 0, |
|
188 |
+ |
|
189 |
+ address: {}, |
|
190 |
+ modal_eventOne: false, |
|
178 | 191 |
}; |
179 | 192 |
}, |
180 |
- methods: {}, |
|
193 |
+ methods: { |
|
194 |
+ eventSelectList: function() { |
|
195 |
+ const vm = this; |
|
196 |
+ |
|
197 |
+ axios({ |
|
198 |
+ url: "/statusControl/eventSelectList.json", |
|
199 |
+ method: "post", |
|
200 |
+ headers: { |
|
201 |
+ "Content-Type": "application/json; charset=UTF-8", |
|
202 |
+ }, |
|
203 |
+ data: vm.eventListSearch, |
|
204 |
+ }) |
|
205 |
+ .then(function(response) { |
|
206 |
+ console.log("errorSelectList - response : ", response.data); |
|
207 |
+ vm.eventListCount = response.data.eventListCount; |
|
208 |
+ vm.eventList = response.data.eventList; |
|
209 |
+ vm.eventIdx = response.data.eventListCount - (vm.eventListSearch.currentPage - 1) * response.data.eventList.length; |
|
210 |
+ }) |
|
211 |
+ .catch(function(error) { |
|
212 |
+ console.log("errorSelectList - error : ", error); |
|
213 |
+ alert("상황발생 목록 조회 오류, 관리자에게 문의해주세요."); |
|
214 |
+ }); |
|
215 |
+ }, |
|
216 |
+ }, |
|
181 | 217 |
watch: {}, |
182 |
- computed: { |
|
183 |
- Modal: Modal, |
|
218 |
+ computed: {}, |
|
219 |
+ components: { |
|
220 |
+ PaginationButton: PaginationButton, |
|
221 |
+ dongSelectList: dongSelectList |
|
184 | 222 |
}, |
185 | 223 |
mounted() { |
186 | 224 |
console.log("Main4 mounted"); |
225 |
+ this.eventSelectList(); |
|
187 | 226 |
}, |
188 | 227 |
}; |
189 | 228 |
</script> |
--- client/views/pages/SystemManagement/AccessRecord.vue
+++ client/views/pages/SystemManagement/AccessRecord.vue
... | ... | @@ -102,10 +102,10 @@ |
102 | 102 |
</thead> |
103 | 103 |
<tbody> |
104 | 104 |
<tr v-for="(item, idx) in userAccessList" :key="idx"> |
105 |
- <td data-title="NO">{{ idx + 1 }}</td> |
|
105 |
+ <td data-title="NO">{{ userAccessIdx - idx }}</td> |
|
106 | 106 |
<td data-title="접속ID">{{ item.user_id }}</td> |
107 | 107 |
<td data-title="접속자이름">{{ item.user_nm }}</td> |
108 |
- <td data-title="접속일시">{{ yyyymmdd(item.cntn_dt) }}</td> |
|
108 |
+ <td data-title="접속일시">{{ item.cntn_dt }}</td> |
|
109 | 109 |
<td data-title="접속IP">{{ item.cntn_ip }}</td> |
110 | 110 |
<td data-title="접속타입">{{ item.cntn_ty }}</td> |
111 | 111 |
</tr> |
... | ... | @@ -178,6 +178,7 @@ |
178 | 178 |
}, |
179 | 179 |
userAccessCount: 0, |
180 | 180 |
userAccessList: [], |
181 |
+ userAccessIdx: 0, |
|
181 | 182 |
}; |
182 | 183 |
}, |
183 | 184 |
methods: { |
... | ... | @@ -196,16 +197,12 @@ |
196 | 197 |
console.log("userAccessList - response : ", response.data); |
197 | 198 |
vm.userAccessCount = response.data.userAccessCount; |
198 | 199 |
vm.userAccessList = response.data.userAccessList; |
200 |
+ vm.userAccessIdx = vm.userAccessCount-(vm.userAccessListSearch.currentPage-1)*vm.userAccessList.length; |
|
199 | 201 |
}) |
200 | 202 |
.catch(function (error) { |
201 | 203 |
console.log("userAccessList - error : ", error); |
202 | 204 |
alert("접속기록 목록 조회 오류, 관리자에게 문의해주세요."); |
203 | 205 |
}); |
204 |
- }, |
|
205 |
- |
|
206 |
- //날짜 시,분,초 자르기 |
|
207 |
- yyyymmdd: function (date) { |
|
208 |
- return COMMON_UTIL.yyyymmdd(date); |
|
209 | 206 |
}, |
210 | 207 |
|
211 | 208 |
//사용자 목록 페이지 이동 |
--- client/views/pages/SystemManagement/DataRecord.vue
+++ client/views/pages/SystemManagement/DataRecord.vue
... | ... | @@ -50,15 +50,19 @@ |
50 | 50 |
</tr> |
51 | 51 |
</thead> |
52 | 52 |
<tbody> |
53 |
- <tr> |
|
54 |
- <td></td> |
|
55 |
- <td></td> |
|
56 |
- <td></td> |
|
57 |
- <td></td> |
|
58 |
- <td></td> |
|
59 |
- <td></td> |
|
60 |
- <td></td> |
|
61 |
- <td></td> |
|
53 |
+ <tr |
|
54 |
+ v-for="(item, idx) in dataLogList" |
|
55 |
+ :key="idx" |
|
56 |
+ > |
|
57 |
+ <td data-title="NO">{{ dataLogIdx - idx }}</td> |
|
58 |
+ <td data-title="발생일시"> {{ item.clct_dt }}</td> |
|
59 |
+ <td data-title="시/도">{{ item.sido_nm }}</td> |
|
60 |
+ <td data-title="시/군/구">{{ item.sigungu_nm }}</td> |
|
61 |
+ <td data-title="행정동">{{ item.dong_nm }}</td> |
|
62 |
+ <td data-title="노드명">{{ item.node_name }}</td> |
|
63 |
+ <td data-title="횡단보도명">{{ item.crslk_nm }}</td> |
|
64 |
+ <td v-if="item.eqpmn_trobl_yn == 'y'" data-title="장애발생여부">발생</td> |
|
65 |
+ <td v-else data-title="장애발생여부">미발생</td> |
|
62 | 66 |
</tr> |
63 | 67 |
</tbody> |
64 | 68 |
</table> |
... | ... | @@ -104,15 +108,10 @@ |
104 | 108 |
</table> |
105 | 109 |
</div> |
106 | 110 |
<div class="bottom-wrap"> |
107 |
- <div class="pg-wrap"> |
|
108 |
- <a href="#" class="pg-item prev">◀</a> |
|
109 |
- <a href="#" class="pg-item active">1</a> |
|
110 |
- <a href="#" class="pg-item">2</a> |
|
111 |
- <a href="#" class="pg-item">3</a> |
|
112 |
- <a href="#" class="pg-item">4</a> |
|
113 |
- <a href="#" class="pg-item">5</a> |
|
114 |
- <a href="#" class="pg-item next">▶</a> |
|
115 |
- </div> |
|
111 |
+ <PaginationButton |
|
112 |
+ v-model:currentPage="dataLogListSearch.currentPage" |
|
113 |
+ :per-page="dataLogListSearch.perPage" :total-count="dataLogListCount" :max-range="5" |
|
114 |
+ :click="dataLogSelectList" /> |
|
116 | 115 |
<div class="btn-wrap"> |
117 | 116 |
<router-link to="/UserManagement.page"> |
118 | 117 |
<span class="btn-2 green-btn">Excel로 저장</span> |
... | ... | @@ -124,22 +123,67 @@ |
124 | 123 |
</template> |
125 | 124 |
|
126 | 125 |
<script> |
127 |
-import Modal from "../../component/Modal.vue"; |
|
126 |
+import axios from "axios"; |
|
127 |
+import PaginationButton from "../../component/pagination/PaginationButton.vue"; |
|
128 |
+import dongSelectList from '../../component/dongSelectList.vue'; |
|
129 |
+import COMMON_UTIL from "../../../resources/js/commonUtil.ts"; |
|
128 | 130 |
|
129 | 131 |
export default { |
130 | 132 |
data() { |
131 | 133 |
return { |
134 |
+ dataLogListSearch: { |
|
135 |
+ currentPage: 1, |
|
136 |
+ perPage: 10, |
|
137 |
+ // startDate: null, |
|
138 |
+ // endDate: null, |
|
139 |
+ // searchDongCode: null, |
|
140 |
+ }, |
|
141 |
+ |
|
142 |
+ dataLogListCount: 0, |
|
143 |
+ dataLogList: [], |
|
144 |
+ dataLogIdx: 0, |
|
145 |
+ |
|
146 |
+ address: {}, |
|
132 | 147 |
}; |
133 | 148 |
}, |
134 | 149 |
methods: { |
135 |
- |
|
150 |
+ dataLogSelectList: function() { |
|
151 |
+ const vm = this; |
|
152 |
+ |
|
153 |
+ axios({ |
|
154 |
+ url: "/dataLog/dataLogSelectList.json", |
|
155 |
+ method: "post", |
|
156 |
+ headers: { |
|
157 |
+ "Content-Type": "application/json; charset=UTF-8", |
|
158 |
+ }, |
|
159 |
+ data: vm.dataLogListSearch, |
|
160 |
+ }) |
|
161 |
+ .then(function(response) { |
|
162 |
+ console.log("dataLogSelectList - response : ", response.data); |
|
163 |
+ vm.dataLogListCount = response.data.dataLogListCount; |
|
164 |
+ vm.dataLogList = response.data.dataLogList; |
|
165 |
+ vm.dataLogIdx = response.data.dataLogListCount - (vm.dataLogListSearch.currentPage - 1) * response.data.dataLogList.length; |
|
166 |
+ }) |
|
167 |
+ .catch(function(error) { |
|
168 |
+ console.log("errorSelectList - error : ", error); |
|
169 |
+ alert("장애발생 목록 조회 오류, 관리자에게 문의해주세요."); |
|
170 |
+ }); |
|
171 |
+ }, |
|
172 |
+ |
|
173 |
+ //날짜에 '-' 넣기 |
|
174 |
+ yyyymmdd(date) { |
|
175 |
+ return COMMON_UTIL.yyyymmdd(date); |
|
176 |
+ }, |
|
136 | 177 |
}, |
137 | 178 |
watch: {}, |
138 |
- computed: { |
|
139 |
- Modal: Modal, |
|
179 |
+ computed: {}, |
|
180 |
+ components: { |
|
181 |
+ PaginationButton: PaginationButton, |
|
182 |
+ dongSelectList: dongSelectList |
|
140 | 183 |
}, |
141 | 184 |
mounted() { |
142 | 185 |
console.log("Main4 mounted"); |
186 |
+ this.dataLogSelectList(); |
|
143 | 187 |
}, |
144 | 188 |
}; |
145 | 189 |
</script> |
--- client/views/pages/SystemManagement/NodeManagement.vue
+++ client/views/pages/SystemManagement/NodeManagement.vue
... | ... | @@ -226,7 +226,7 @@ |
226 | 226 |
</div> |
227 | 227 |
</div> |
228 | 228 |
--> |
229 |
- <div class="modal-wrap" v-if="map_open"> |
|
229 |
+ <div class="modal-wrap" v-if="map_open"> |
|
230 | 230 |
<div class="modal-bg"> |
231 | 231 |
</div> |
232 | 232 |
<div class="modalMap"> |
... | ... | @@ -236,11 +236,11 @@ |
236 | 236 |
<!-- @siDoGunGuSelectF="siDoGunGuSelectF" @dongSelectF="dongSelectF" @nodeSelectF="nodeSelectF"></dongSelectList> --> |
237 | 237 |
</div> |
238 | 238 |
<button type="button" class="green-btn" @click="searchDong">검색</button> |
239 |
- <OpenLayers ref="open_layers"/> |
|
240 |
- <label>위도 : </label> |
|
241 |
- <input style="width: 20rem" type="text" v-model="map_lat" disabled/> |
|
242 |
- <label>경도 : </label> |
|
243 |
- <input style="width: 20rem" type="text" v-model="map_lon" disabled/> |
|
239 |
+ <OpenLayers ref="open_layers"/> |
|
240 |
+ <label>위도 : </label> |
|
241 |
+ <input style="width: 20rem" type="text" v-model="map_lat" disabled/> |
|
242 |
+ <label>경도 : </label> |
|
243 |
+ <input style="width: 20rem" type="text" v-model="map_lon" disabled/> |
|
244 | 244 |
<div class="btn-wrap"> |
245 | 245 |
<button type="button" class="green-btn" @click="selectCoordinate">선택</button> |
246 | 246 |
<button type="button" class="gray-btn" @click="closeMap">취소</button> |
... | ... | @@ -341,15 +341,15 @@ |
341 | 341 |
} |
342 | 342 |
//기본맵 세팅 |
343 | 343 |
vm.$refs.open_layers.setBaseMap(vworldBaseLayer); |
344 |
- |
|
344 |
+ console.log("맵열기!!!!!!!!!!") |
|
345 | 345 |
//노드위치로 이동 |
346 | 346 |
if(!vm.createMode){ |
347 |
- vm.$refs.open_layers.removeLayer('nodePoint'); |
|
347 |
+ vm.$refs.open_layers.addVectorLayerByUrl('/common/getDongsGeoJson.json','nodeMap','EPSG:5181', baseStyles['MultiPolygon'],'MultiPolygon',vm.node.dong_cd); |
|
348 | 348 |
vm.$refs.open_layers.setCenterPosition(vm.node.lat,vm.node.lon,'EPSG:4326'); |
349 | 349 |
vm.$refs.open_layers.createIcon(vm.node.lat,vm.node.lon,'/client/resources/images/icon/fin.png',0.3, 'nodePoint','EPSG:4326'); |
350 | 350 |
vm.$refs.open_layers.setZoom(19); |
351 | 351 |
}else{ |
352 |
- vm.$refs.open_layers.addVectorLayerByUrl('/common/getDongsGeoJson.json','nodeMap','EPSG:5181', baseStyles['MultiPolygon'],'MultiPolygon',vm.node.dong_cd); |
|
352 |
+ vm.$refs.open_layers.addVectorLayerByUrl('/common/getDongsGeoJson.json','nodeMap','EPSG:5181', baseStyles['MultiPolygon'],'MultiPolygon',vm.address.dong_cd); |
|
353 | 353 |
} |
354 | 354 |
}, |
355 | 355 |
|
... | ... | @@ -491,6 +491,16 @@ |
491 | 491 |
return false; |
492 | 492 |
} |
493 | 493 |
|
494 |
+ if (COMMON_UTIL.isEmpty(this.node.lat) === false) { |
|
495 |
+ alert("위도를 입력해주세요.") |
|
496 |
+ return false; |
|
497 |
+ } |
|
498 |
+ |
|
499 |
+ if (COMMON_UTIL.isEmpty(this.node.lon) === false) { |
|
500 |
+ alert("경도를 입력해주세요.") |
|
501 |
+ return false; |
|
502 |
+ } |
|
503 |
+ |
|
494 | 504 |
this.modal_update = true; |
495 | 505 |
}, |
496 | 506 |
|
... | ... | @@ -614,6 +624,7 @@ |
614 | 624 |
this.node = Object.assign({}, this.node_default); |
615 | 625 |
this.createMode = true; |
616 | 626 |
this.map_disabled = false; |
627 |
+ this.dong_fullName = null; |
|
617 | 628 |
} |
618 | 629 |
}, |
619 | 630 |
watch: {}, |
... | ... | @@ -626,6 +637,7 @@ |
626 | 637 |
mounted() { |
627 | 638 |
console.log("Main4 mounted"); |
628 | 639 |
this.nodeSelectList(); |
640 |
+ |
|
629 | 641 |
}, |
630 | 642 |
}; |
631 | 643 |
</script> |
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?