

230831 서영석 권한 설정 수정 / 통계분석 그래프 옵션 수정
@379e6d0a702b8c97c90b0865561b6b67eb4608a5
--- client/views/pages/Analysis/Analysis.vue
+++ client/views/pages/Analysis/Analysis.vue
... | ... | @@ -159,15 +159,20 @@ |
159 | 159 |
<div class="flex boxwrap"> |
160 | 160 |
<div class="box tab-buttons"> |
161 | 161 |
<div class="btn_set flex-center"> |
162 |
- <button |
|
162 |
+ <!-- <button |
|
163 | 163 |
class="flex-between gray-btn" |
164 | 164 |
v-for="tab in tabs3" |
165 | 165 |
:key="tab.id" |
166 | 166 |
:class="{ active: activeTab3 === tab.id }" |
167 | 167 |
@click="changeTab3(tab.id)" |
168 | 168 |
> |
169 |
+ |
|
169 | 170 |
{{ tab.title }} |
170 |
- </button> |
|
171 |
+ </button> --> |
|
172 |
+ <button v-if="address.dong_cd.length==2" class="flex-between gray-btn" :class="{ active: activeTab3 === 1 }" @click="changeTab3(1)">시군구</button> |
|
173 |
+ <button v-if="address.dong_cd.length==2 || address.dong_cd.length==5" class="flex-between gray-btn" :class="{ active: activeTab3 === 2 }" @click="changeTab3(2)">행정동</button> |
|
174 |
+ <button v-if="address.dong_cd.length==5 || address.dong_cd.length==8 && address.node_id==null" class="flex-between gray-btn" :class="{ active: activeTab3 === 3 }" @click="changeTab3(3)">교차로</button> |
|
175 |
+ <button v-if="address.dong_cd.length==8 || address.node_id" class="flex-between gray-btn" :class="{ active: activeTab3 === 4 }" @click="changeTab3(4)">횡단보도</button> |
|
171 | 176 |
</div> |
172 | 177 |
<div |
173 | 178 |
class="tab-content" |
... | ... | @@ -175,7 +180,7 @@ |
175 | 180 |
:key="tab.id" |
176 | 181 |
v-show="activeTab3 === tab.id" |
177 | 182 |
> |
178 |
- <div v-show="tab.content1" class="box"> |
|
183 |
+ <div v-show="tab.content1 && address.dong_cd.length==2" class="box"> |
|
179 | 184 |
<Chart |
180 | 185 |
:data="sigunguData" |
181 | 186 |
:theme="themeList[8]" |
... | ... | @@ -183,7 +188,7 @@ |
183 | 188 |
:valueDataList="valueDataList" |
184 | 189 |
></Chart> |
185 | 190 |
</div> |
186 |
- <div v-show="tab.content2" class="box"> |
|
191 |
+ <div v-show="tab.content2 && (address.dong_cd.length==2 || address.dong_cd.length==5)" class="box"> |
|
187 | 192 |
<Chart |
188 | 193 |
:data="dongData" |
189 | 194 |
:theme="themeList[8]" |
... | ... | @@ -191,7 +196,7 @@ |
191 | 196 |
:valueDataList="valueDataList" |
192 | 197 |
></Chart> |
193 | 198 |
</div> |
194 |
- <div v-show="tab.content3" class="box"> |
|
199 |
+ <div v-show="tab.content3 && (address.dong_cd.length==5 || address.dong_cd.length==8 && address.node_id==null)" class="box"> |
|
195 | 200 |
<Chart |
196 | 201 |
:data="nodeData" |
197 | 202 |
:theme="themeList[8]" |
... | ... | @@ -199,7 +204,7 @@ |
199 | 204 |
:valueDataList="valueDataList" |
200 | 205 |
></Chart> |
201 | 206 |
</div> |
202 |
- <div v-show="tab.content4" class="box"> |
|
207 |
+ <div v-show="tab.content4 && (address.dong_cd.length==8 || address.node_id)" class="box"> |
|
203 | 208 |
<Chart |
204 | 209 |
:data="crslkData" |
205 | 210 |
:theme="themeList[8]" |
... | ... | @@ -291,10 +296,37 @@ |
291 | 296 |
</div> |
292 | 297 |
</div> |
293 | 298 |
<div class="boxwrap bg-white2 b-r b-shadow"> |
294 |
- <h2>서구 발생현황</h2> |
|
295 |
- <div class="minichart"> |
|
299 |
+ <h2 v-if="address.dong_cd.length==2">시/군/구 발생현황</h2> |
|
300 |
+ <h2 v-if="address.dong_cd.length==5">행정동 발생현황</h2> |
|
301 |
+ <h2 v-if="address.dong_cd.length==8 && address.node_id==null">교차로 발생현황</h2> |
|
302 |
+ <h2 v-if="address.node_id">횡단보도 발생현황</h2> |
|
303 |
+ <div v-if="address.dong_cd.length==2" class="minichart"> |
|
304 |
+ <Chart |
|
305 |
+ :data="sigunguData" |
|
306 |
+ :theme="themeList[1]" |
|
307 |
+ :categoryDataList="categoryDataList" |
|
308 |
+ :valueDataList="valueDataList" |
|
309 |
+ ></Chart> |
|
310 |
+ </div> |
|
311 |
+ <div v-if="address.dong_cd.length==5" class="minichart"> |
|
296 | 312 |
<Chart |
297 | 313 |
:data="dongData" |
314 |
+ :theme="themeList[1]" |
|
315 |
+ :categoryDataList="categoryDataList" |
|
316 |
+ :valueDataList="valueDataList" |
|
317 |
+ ></Chart> |
|
318 |
+ </div> |
|
319 |
+ <div v-if="address.dong_cd.length==8 && address.node_id==null" class="minichart"> |
|
320 |
+ <Chart |
|
321 |
+ :data="nodeData" |
|
322 |
+ :theme="themeList[1]" |
|
323 |
+ :categoryDataList="categoryDataList" |
|
324 |
+ :valueDataList="valueDataList" |
|
325 |
+ ></Chart> |
|
326 |
+ </div> |
|
327 |
+ <div v-if="address.node_id" class="minichart"> |
|
328 |
+ <Chart |
|
329 |
+ :data="crslkData" |
|
298 | 330 |
:theme="themeList[1]" |
299 | 331 |
:categoryDataList="categoryDataList" |
300 | 332 |
:valueDataList="valueDataList" |
... | ... | @@ -402,7 +434,7 @@ |
402 | 434 |
], |
403 | 435 |
activeTab: 1, |
404 | 436 |
activeTab2: 1, |
405 |
- activeTab3: 1, |
|
437 |
+ activeTab3: 2, |
|
406 | 438 |
items: [ |
407 | 439 |
{ id: 1, name: "무단횡단", isActive: true }, |
408 | 440 |
{ id: 2, name: "신호연장", isActive: false }, |
... | ... | @@ -1009,15 +1041,16 @@ |
1009 | 1041 |
alert("통계분석 상황발생 정보 조회 오류, 관리자에게 문의해주세요."); |
1010 | 1042 |
}); |
1011 | 1043 |
}, |
1044 |
+ |
|
1012 | 1045 |
//DongSelectList에서 dong_cd 받아오기 |
1013 | 1046 |
setDongCd(value) { |
1014 | 1047 |
console.log("value : ", value); |
1015 | 1048 |
this.address = value; |
1016 | 1049 |
}, |
1017 | 1050 |
|
1018 |
- |
|
1019 | 1051 |
//시/도/군/구 Select 선택시 바로 위치 이동 |
1020 | 1052 |
siDoGunGuSelectF: function (event) { |
1053 |
+ this.activeTab3=2; |
|
1021 | 1054 |
this.analysisSearch(); |
1022 | 1055 |
this.nodeSelectCk=false; |
1023 | 1056 |
this.address.crslk_az=0; |
... | ... | @@ -1107,6 +1140,7 @@ |
1107 | 1140 |
|
1108 | 1141 |
//행정동 Select 선택시 바로 위치 이동 |
1109 | 1142 |
dongSelectF: function (event) { |
1143 |
+ this.activeTab3=3; |
|
1110 | 1144 |
this.analysisSearch(); |
1111 | 1145 |
this.nodeSelectCk=false; |
1112 | 1146 |
this.address.crslk_az=0; |
... | ... | @@ -1196,6 +1230,7 @@ |
1196 | 1230 |
|
1197 | 1231 |
//노드 Select 선택시 바로 위치 이동 횡단보도 노드 |
1198 | 1232 |
nodeSelectF: function (event) { |
1233 |
+ this.activeTab3=4; |
|
1199 | 1234 |
this.analysisSearch(); |
1200 | 1235 |
this.nodeSelectCk=true; |
1201 | 1236 |
this.address.crslk_az=0; |
... | ... | @@ -1283,6 +1318,7 @@ |
1283 | 1318 |
} |
1284 | 1319 |
}, |
1285 | 1320 |
crslkSelectF(event){ |
1321 |
+ this.activeTab3=4; |
|
1286 | 1322 |
this.analysisSearch(); |
1287 | 1323 |
if (this.itemsCk == 1) { |
1288 | 1324 |
this.statisticalAnalysisAll("/statisticalAnalysis/statisticalAnalysisJaywalk.json"); |
... | ... | @@ -1645,10 +1681,6 @@ |
1645 | 1681 |
this.items[i].isActive = false; |
1646 | 1682 |
} |
1647 | 1683 |
item.isActive = !item.isActive; |
1648 |
- }, |
|
1649 |
- setDongCd(value) { |
|
1650 |
- console.log("value : ", value); |
|
1651 |
- this.address = value; |
|
1652 | 1684 |
}, |
1653 | 1685 |
initialDate: function () { |
1654 | 1686 |
const end_date = new Date(new Date().setDate(new Date().getDate()-1)); |
--- client/views/pages/AppRouter.ts
+++ client/views/pages/AppRouter.ts
... | ... | @@ -28,19 +28,19 @@ |
28 | 28 |
|
29 | 29 |
const routes = [ |
30 | 30 |
/* 메인화면 */ |
31 |
- { path: '/', name: 'Main', component: Main ,meta:{authorization:["관리자","사용자"]}}, |
|
32 |
- { path: '/RealtimeStatus.page', name: 'RealtimeStatus', component: RealtimeStatus,meta:{authorization:["관리자","사용자"]}}, |
|
33 |
- { path: '/Analysis.page', name: 'Analysis', component: Analysis,meta:{authorization:["관리자","사용자"]}}, |
|
31 |
+ { path: '/', name: 'Main', component: Main ,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
32 |
+ { path: '/RealtimeStatus.page', name: 'RealtimeStatus', component: RealtimeStatus,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
33 |
+ { path: '/Analysis.page', name: 'Analysis', component: Analysis,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
34 | 34 |
{ path: '/CrosswalkInsert.page', name: 'CrosswalkInsert', component: CrosswalkInsert,meta:{authorization:["관리자"]}}, |
35 | 35 |
{ path: '/CrosswalkSearch.page', name: 'CrosswalkSearch', component: CrosswalkSearch,meta:{authorization:["관리자"]}}, |
36 | 36 |
{ path: '/UserManagement.page', name: 'UserManagement', component: UserManagement,meta:{authorization:["관리자"]}}, |
37 |
- { path: '/Mypage.page', name: 'Mypage', component: Mypage,meta:{authorization:["관리자","사용자"]}}, |
|
37 |
+ { path: '/Mypage.page', name: 'Mypage', component: Mypage,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
38 | 38 |
{ path: '/Login.page', name: 'Login', component: Login,meta:{authorization:[]}}, |
39 |
- { path: '/Introduction.page', name: 'Introduction', component: Introduction,meta:{authorization:["관리자","사용자"]}}, |
|
39 |
+ { path: '/Introduction.page', name: 'Introduction', component: Introduction,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
40 | 40 |
{ path: '/ManualDown.page', name: 'ManualDown', component: ManualDown,meta:{authorization:["관리자"]}}, |
41 |
- { path: '/CrosswalkListSearch.page', name: 'CrosswalkListSearch', component: CrosswalkListSearch,meta:{authorization:["관리자","사용자"]}}, |
|
42 |
- { path: '/SituationSearch.page', name: 'SituationSearch', component: SituationSearch,meta:{authorization:["관리자","사용자"]}}, |
|
43 |
- { path: '/ErrorSearch.page', name: 'ErrorSearch', component: ErrorSearch,meta:{authorization:["관리자","사용자"]}}, |
|
41 |
+ { path: '/CrosswalkListSearch.page', name: 'CrosswalkListSearch', component: CrosswalkListSearch,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
42 |
+ { path: '/SituationSearch.page', name: 'SituationSearch', component: SituationSearch,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
43 |
+ { path: '/ErrorSearch.page', name: 'ErrorSearch', component: ErrorSearch,meta:{authorization:["관리자","사용자","시청관리자"]}}, |
|
44 | 44 |
{ path: '/DongManagement.page', name: 'DongManagement', component: DongManagement,meta:{authorization:["관리자"]}}, |
45 | 45 |
{ path: '/NodeManagement.page', name: 'NodeManagement', component: NodeManagement,meta:{authorization:["관리자"]}}, |
46 | 46 |
{ path: '/NodeAddForm.page', name: 'NodeAddForm', component: NodeAddForm,meta:{authorization:["관리자"]}}, |
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?