youngsuk 2023-08-31
230831 서영석 권한 설정 수정 / 통계분석 그래프 옵션 수정
@379e6d0a702b8c97c90b0865561b6b67eb4608a5
client/views/pages/Analysis/Analysis.vue
--- client/views/pages/Analysis/Analysis.vue
+++ client/views/pages/Analysis/Analysis.vue
@@ -159,15 +159,20 @@
       <div class="flex boxwrap">
         <div class="box tab-buttons">
           <div class="btn_set flex-center">
-            <button
+            <!-- <button
               class="flex-between gray-btn"
               v-for="tab in tabs3"
               :key="tab.id"
               :class="{ active: activeTab3 === tab.id }"
               @click="changeTab3(tab.id)"
             >
+           
               {{ tab.title }}
-            </button>
+            </button> -->
+            <button v-if="address.dong_cd.length==2" class="flex-between gray-btn" :class="{ active: activeTab3 === 1 }" @click="changeTab3(1)">시군구</button>
+            <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>
+            <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>
+            <button v-if="address.dong_cd.length==8 || address.node_id" class="flex-between gray-btn" :class="{ active: activeTab3 === 4 }" @click="changeTab3(4)">횡단보도</button>
           </div>
           <div
             class="tab-content"
@@ -175,7 +180,7 @@
             :key="tab.id"
             v-show="activeTab3 === tab.id"
           >
-            <div v-show="tab.content1" class="box">
+            <div v-show="tab.content1 && address.dong_cd.length==2" class="box">
               <Chart
                 :data="sigunguData"
                 :theme="themeList[8]"
@@ -183,7 +188,7 @@
                 :valueDataList="valueDataList"
               ></Chart>
             </div>
-            <div v-show="tab.content2" class="box">
+            <div v-show="tab.content2 && (address.dong_cd.length==2 || address.dong_cd.length==5)" class="box">
               <Chart
                 :data="dongData"
                 :theme="themeList[8]"
@@ -191,7 +196,7 @@
                 :valueDataList="valueDataList"
               ></Chart>
             </div>
-            <div v-show="tab.content3" class="box">
+            <div v-show="tab.content3 && (address.dong_cd.length==5 || address.dong_cd.length==8 && address.node_id==null)" class="box">
               <Chart
                 :data="nodeData"
                 :theme="themeList[8]"
@@ -199,7 +204,7 @@
                 :valueDataList="valueDataList"
               ></Chart>
             </div>
-            <div v-show="tab.content4" class="box">
+            <div v-show="tab.content4 && (address.dong_cd.length==8 || address.node_id)" class="box">
               <Chart
                 :data="crslkData"
                 :theme="themeList[8]"
@@ -291,10 +296,37 @@
       </div>
     </div>
     <div class="boxwrap bg-white2 b-r b-shadow">
-      <h2>서구 발생현황</h2>
-      <div class="minichart">
+      <h2 v-if="address.dong_cd.length==2">시/군/구 발생현황</h2>
+      <h2 v-if="address.dong_cd.length==5">행정동 발생현황</h2>
+      <h2 v-if="address.dong_cd.length==8 && address.node_id==null">교차로 발생현황</h2>
+      <h2 v-if="address.node_id">횡단보도 발생현황</h2>
+      <div v-if="address.dong_cd.length==2" class="minichart">
+        <Chart
+          :data="sigunguData"
+          :theme="themeList[1]"
+          :categoryDataList="categoryDataList"
+          :valueDataList="valueDataList"
+        ></Chart>
+      </div>
+      <div v-if="address.dong_cd.length==5" class="minichart">
         <Chart
           :data="dongData"
+          :theme="themeList[1]"
+          :categoryDataList="categoryDataList"
+          :valueDataList="valueDataList"
+        ></Chart>
+      </div>
+      <div v-if="address.dong_cd.length==8 && address.node_id==null" class="minichart">
+        <Chart
+          :data="nodeData"
+          :theme="themeList[1]"
+          :categoryDataList="categoryDataList"
+          :valueDataList="valueDataList"
+        ></Chart>
+      </div>
+      <div v-if="address.node_id" class="minichart">
+        <Chart
+          :data="crslkData"
           :theme="themeList[1]"
           :categoryDataList="categoryDataList"
           :valueDataList="valueDataList"
@@ -402,7 +434,7 @@
       ],
       activeTab: 1,
       activeTab2: 1,
-      activeTab3: 1,
+      activeTab3: 2,
       items: [
         { id: 1, name: "무단횡단", isActive: true },
         { id: 2, name: "신호연장", isActive: false },
@@ -1009,15 +1041,16 @@
         alert("통계분석 상황발생 정보 조회 오류, 관리자에게 문의해주세요.");
       });
     },
+
     //DongSelectList에서 dong_cd 받아오기
     setDongCd(value) {
       console.log("value : ", value);
       this.address = value;
     },
     
-
     //시/도/군/구 Select 선택시 바로 위치 이동
     siDoGunGuSelectF: function (event) {
+      this.activeTab3=2;
       this.analysisSearch();
       this.nodeSelectCk=false;
       this.address.crslk_az=0;
@@ -1107,6 +1140,7 @@
 
     //행정동 Select 선택시 바로 위치 이동
     dongSelectF: function (event) {
+      this.activeTab3=3;
       this.analysisSearch();
       this.nodeSelectCk=false;
       this.address.crslk_az=0;
@@ -1196,6 +1230,7 @@
 
     //노드 Select 선택시 바로 위치 이동 횡단보도 노드
     nodeSelectF: function (event) {
+      this.activeTab3=4;
       this.analysisSearch();
       this.nodeSelectCk=true;
       this.address.crslk_az=0;
@@ -1283,6 +1318,7 @@
       }
     },
     crslkSelectF(event){
+      this.activeTab3=4;
       this.analysisSearch();
       if (this.itemsCk == 1) {
         this.statisticalAnalysisAll("/statisticalAnalysis/statisticalAnalysisJaywalk.json");
@@ -1645,10 +1681,6 @@
         this.items[i].isActive = false;
       }
       item.isActive = !item.isActive;
-    },
-    setDongCd(value) {
-      console.log("value : ", value);
-      this.address = value;
     },
     initialDate: function () {
       const end_date = new Date(new Date().setDate(new Date().getDate()-1));
client/views/pages/AppRouter.ts
--- client/views/pages/AppRouter.ts
+++ client/views/pages/AppRouter.ts
@@ -28,19 +28,19 @@
 
 const routes = [
     /* 메인화면 */
-    { path: '/', name: 'Main', component: Main ,meta:{authorization:["관리자","사용자"]}},
-    { path: '/RealtimeStatus.page', name: 'RealtimeStatus', component: RealtimeStatus,meta:{authorization:["관리자","사용자"]}},
-    { path: '/Analysis.page', name: 'Analysis', component: Analysis,meta:{authorization:["관리자","사용자"]}},
+    { path: '/', name: 'Main', component: Main ,meta:{authorization:["관리자","사용자","시청관리자"]}},
+    { path: '/RealtimeStatus.page', name: 'RealtimeStatus', component: RealtimeStatus,meta:{authorization:["관리자","사용자","시청관리자"]}},
+    { path: '/Analysis.page', name: 'Analysis', component: Analysis,meta:{authorization:["관리자","사용자","시청관리자"]}},
     { path: '/CrosswalkInsert.page', name: 'CrosswalkInsert', component: CrosswalkInsert,meta:{authorization:["관리자"]}},
     { path: '/CrosswalkSearch.page', name: 'CrosswalkSearch', component: CrosswalkSearch,meta:{authorization:["관리자"]}},
     { path: '/UserManagement.page', name: 'UserManagement', component: UserManagement,meta:{authorization:["관리자"]}},
-    { path: '/Mypage.page', name: 'Mypage', component: Mypage,meta:{authorization:["관리자","사용자"]}},
+    { path: '/Mypage.page', name: 'Mypage', component: Mypage,meta:{authorization:["관리자","사용자","시청관리자"]}},
     { path: '/Login.page', name: 'Login', component: Login,meta:{authorization:[]}},
-    { path: '/Introduction.page', name: 'Introduction', component: Introduction,meta:{authorization:["관리자","사용자"]}},
+    { path: '/Introduction.page', name: 'Introduction', component: Introduction,meta:{authorization:["관리자","사용자","시청관리자"]}},
     { path: '/ManualDown.page', name: 'ManualDown', component: ManualDown,meta:{authorization:["관리자"]}},
-    { path: '/CrosswalkListSearch.page', name: 'CrosswalkListSearch', component: CrosswalkListSearch,meta:{authorization:["관리자","사용자"]}},
-    { path: '/SituationSearch.page', name: 'SituationSearch', component: SituationSearch,meta:{authorization:["관리자","사용자"]}},
-    { path: '/ErrorSearch.page', name: 'ErrorSearch', component: ErrorSearch,meta:{authorization:["관리자","사용자"]}},
+    { path: '/CrosswalkListSearch.page', name: 'CrosswalkListSearch', component: CrosswalkListSearch,meta:{authorization:["관리자","사용자","시청관리자"]}},
+    { path: '/SituationSearch.page', name: 'SituationSearch', component: SituationSearch,meta:{authorization:["관리자","사용자","시청관리자"]}},
+    { path: '/ErrorSearch.page', name: 'ErrorSearch', component: ErrorSearch,meta:{authorization:["관리자","사용자","시청관리자"]}},
     { path: '/DongManagement.page', name: 'DongManagement', component: DongManagement,meta:{authorization:["관리자"]}},
     { path: '/NodeManagement.page', name: 'NodeManagement', component: NodeManagement,meta:{authorization:["관리자"]}},
     { path: '/NodeAddForm.page', name: 'NodeAddForm', component: NodeAddForm,meta:{authorization:["관리자"]}},
Add a comment
List