최정임 최정임 2023-06-29
230629 최정임 css 수정
@25bc276d2725bc5f195721df25190b28d895e063
client/resources/css/layout.css
--- client/resources/css/layout.css
+++ client/resources/css/layout.css
@@ -1,11 +1,4 @@
-.flex-between {
-  height: 7rem;
-  width: 100%;
-  z-index: 2000;
-  padding: 0 4rem 0 1rem;
-  background: #13833b;
-  box-shadow: 0px 5px 20px #00000038;
-}
+header{background: #13833b; padding: 0 2rem;}
 .logo {
   display: flex;
   width: 30rem;
@@ -15,13 +8,13 @@
   align-items: center;
 }
 main {
-  padding: 2rem 9rem;
+  padding: 2rem 9rem ;   
 }
 
 body {
   /* overflow-x: hidden; */
 }
-
+ 
 footer {
   top: 100%;
   width: 100%;
client/views/pages/RealtimeStatus/RealtimeStatus.vue
--- client/views/pages/RealtimeStatus/RealtimeStatus.vue
+++ client/views/pages/RealtimeStatus/RealtimeStatus.vue
@@ -2,6 +2,7 @@
   <div class="flex">
     <div class="left">
       <div class="wrap flex-between">
+        <button @click="toggleSlide" class="toggle">Toggle Slide</button>
         <!-- <div class="iconlist">
           <ul>
             <li v-for="item in items" :key="item.id" :class="{ active: item.isActive }" @click="toggleActive(item)">
@@ -10,7 +11,7 @@
             </li>
           </ul>
         </div> -->
-        <div class="search">
+        <div class="search slide-content" v-if="showSlide">
           <h2>지역설정</h2>
           <div class="box">
             <DongSelectList @setDongCd="setDongCd"></DongSelectList>
@@ -18,34 +19,78 @@
           <h2>조건설정</h2>
           <div class="box">
             <div class="flex-between m-b">
-              <input type="checkbox" v-model="condition['wtrms']"><label for="">무단횡단</label>
-              <input type="checkbox" v-model="condition['signExtn']" /><label for="">신호연장</label>
-              <input type="checkbox" v-model="condition['rittrnVhcle']" /><label for="">신호위반</label>
-              <input type="checkbox" v-model="condition['eqpmnTrobl']" /><label for="">장애발생</label>
+              <input type="checkbox" v-model="condition['wtrms']" /><label
+                for=""
+                >무단횡단</label
+              >
+              <input type="checkbox" v-model="condition['signExtn']" /><label
+                for=""
+                >신호연장</label
+              >
+              <input type="checkbox" v-model="condition['rittrnVhcle']" /><label
+                for=""
+                >신호위반</label
+              >
+              <input type="checkbox" v-model="condition['eqpmnTrobl']" /><label
+                for=""
+                >장애발생</label
+              >
             </div>
             <div class="flex-between m-b">
               <label for="date-input">일자</label>
-              <input id="date-input" type="date" v-model="condition['start_date']" :picker-options="startDateOptions" /> ~
-              <input id="date-input" type="date" v-model="condition['end_date']" :picker-options="endDateOptions" />
+              <input
+                id="date-input"
+                type="date"
+                v-model="condition['start_date']"
+                :picker-options="startDateOptions"
+              />
+              ~
+              <input
+                id="date-input"
+                type="date"
+                v-model="condition['end_date']"
+                :picker-options="endDateOptions"
+              />
             </div>
             <div class="flex-between m-b">
               <label for="time-input">시간대</label>
-              <input id="time-input" type="time" v-model="condition['start_time']" />~<input id="time-input" type="time"
-                v-model="condition['end_time']" />
+              <input
+                id="time-input"
+                type="time"
+                v-model="condition['start_time']"
+              />~<input
+                id="time-input"
+                type="time"
+                v-model="condition['end_time']"
+              />
             </div>
-            <button class="btn-l green-btn" @click="statusSearch" style="padding: 0.5rem 0">
+            <button
+              class="btn-l green-btn"
+              @click="statusSearch"
+              style="padding: 0.5rem 0"
+            >
               검색
             </button>
           </div>
           <h2>지역설정</h2>
           <div class="box bg-white tab-buttons">
             <div class="btn_set flex-center">
-              <button class="m-r" v-for="tab in tabs" :key="tab.id" :class="{ active: activeTab === tab.id }"
-                @click="changeTab(tab.id)">
+              <button
+                class="m-r"
+                v-for="tab in tabs"
+                :key="tab.id"
+                :class="{ active: activeTab === tab.id }"
+                @click="changeTab(tab.id)"
+              >
                 {{ tab.title }}
               </button>
             </div>
-            <div class="tab-content" v-for="tab in tabs" :key="tab.id" v-show="activeTab === tab.id">
+            <div
+              class="tab-content"
+              v-for="tab in tabs"
+              :key="tab.id"
+              v-show="activeTab === tab.id"
+            >
               <ul v-show="tab.content1">
                 <li>
                   <p class="m-b">발생일시: 2023-05-04 14:27</p>
@@ -73,33 +118,63 @@
       <div class="top">
         <ul class="flex-end">
           <li>
-            <p class="flex-center"><img class="m-r"
-                src="../../../resources/images/icon/scumulativenumberofpedestrians.png" alt />금일 보행자</p>
+            <p class="flex-center">
+              <img
+                class="m-r"
+                src="../../../resources/images/icon/scumulativenumberofpedestrians.png"
+                alt
+              />금일 보행자
+            </p>
             <h3>명</h3>
           </li>
           <li>
-            <p class="flex-center"><img class="m-r"
-                src="../../../resources/images/icon/scumulativenumberofpedestrians.png" alt />금일 무단횡단 발생</p>
+            <p class="flex-center">
+              <img
+                class="m-r"
+                src="../../../resources/images/icon/scumulativenumberofpedestrians.png"
+                alt
+              />금일 무단횡단 발생
+            </p>
             <h3>회</h3>
           </li>
           <li>
-            <p class="flex-center"><img class="m-r" src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
-                alt />금일 신호연장 발생</p>
+            <p class="flex-center">
+              <img
+                class="m-r"
+                src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
+                alt
+              />금일 신호연장 발생
+            </p>
             <h3>회</h3>
           </li>
           <li>
-            <p class="flex-center"><img class="m-r" src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
-                alt />금일 신호연장 시간</p>
+            <p class="flex-center">
+              <img
+                class="m-r"
+                src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
+                alt
+              />금일 신호연장 시간
+            </p>
             <h3>초</h3>
           </li>
           <li>
-            <p class="flex-center"><img class="m-r" src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
-                alt />금일 차량 신호위반 발생</p>
+            <p class="flex-center">
+              <img
+                class="m-r"
+                src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
+                alt
+              />금일 차량 신호위반 발생
+            </p>
             <h3>회</h3>
           </li>
           <li>
-            <p class="flex-center"><img class="m-r" src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
-                alt />금일 장애 발생</p>
+            <p class="flex-center">
+              <img
+                class="m-r"
+                src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
+                alt
+              />금일 장애 발생
+            </p>
             <h3>회</h3>
           </li>
         </ul>
@@ -132,12 +207,13 @@
   vworldHybridLayer,
   vworldSatelliteLayer,
 } from "../../component/OpenLayersMap.vue";
-import { baseStyles } from '../../component/OpenLayersStyle.vue';
+import { baseStyles } from "../../component/OpenLayersStyle.vue";
 import axios from "axios";
-import DongSelectList from '../../component/dongSelectList.vue';
+import DongSelectList from "../../component/dongSelectList.vue";
 export default {
   data() {
     return {
+      showSlide: true,
       address: {},
       //조건설정
       condition: {
@@ -155,10 +231,10 @@
       },
       //달력에서 범위 설정 해주기 위해 (미완) -:picker-options-
       startDateOptions: {
-        disabledDate: this.disabledStDate
+        disabledDate: this.disabledStDate,
       },
       endDateOptions: {
-        disabledDate: this.disabledEdDate
+        disabledDate: this.disabledEdDate,
       },
 
       tabs: [
@@ -189,8 +265,10 @@
     DongSelectList: DongSelectList,
   },
   methods: {
+    toggleSlide() {
+      this.showSlide = !this.showSlide;
+    },
     //지역 및 조건 설정 안에 있는 횡단보도의 금일 보행자 무단횡단 신호연장 신호위반 장애발생 위치와 횟수
-
 
     //지역 및 조건 설정 안에 있는 횡단보도의 위치와 횟수의 합
 
@@ -204,59 +282,105 @@
       item.isActive = !item.isActive;
     },
     // disabledStDate(date){
-    //   date = moment(String(date)).format('YYYYMMDD') 
-    //   return date > moment().format('YYYYMMDD') || date < moment().add(-1, 'years').format('YYYYMMDD') 
+    //   date = moment(String(date)).format('YYYYMMDD')
+    //   return date > moment().format('YYYYMMDD') || date < moment().add(-1, 'years').format('YYYYMMDD')
     // },
     disabledEdDate(date) {
-      return date < this.condition.start_date
+      return date < this.condition.start_date;
     },
     statusSearch: function () {
       console.log("statusSearch this.address : ", this.address);
       //지도 영역 수정
       this.$refs.open_layers.removeLayerAll();
       this.$refs.open_layers.setBaseMap(vworldBaseLayer);
-      this.$refs.open_layers.addVectorLayerByUrl('/common/getDongGeoJson.json', 'realtimeStatusMap', 'EPSG:5181', baseStyles['MultiPolygon'], 'MultiPolygon', this.address.dong_cd);
-      this.$refs.open_layers.addClusterLayer('/common/getDongGeoJson.json', 'realtimeStatusMap', 'EPSG:5181', '', '', this.address.dong_cd);
+      this.$refs.open_layers.addVectorLayerByUrl(
+        "/common/getDongGeoJson.json",
+        "realtimeStatusMap",
+        "EPSG:5181",
+        baseStyles["MultiPolygon"],
+        "MultiPolygon",
+        this.address.dong_cd
+      );
+      this.$refs.open_layers.addClusterLayer(
+        "/common/getDongGeoJson.json",
+        "realtimeStatusMap",
+        "EPSG:5181",
+        "",
+        "",
+        this.address.dong_cd
+      );
       // this.situationOccurrenceStatusSearch();
-
     },
 
     //상황 발행 현황 검색
     situationOccurrenceStatusSearch: function () {
-      //검색 데이터 
+      //검색 데이터
       const vm = this;
       axios({
-        url: '/statusControl/statusSearch.json',
-        method: 'post',
+        url: "/statusControl/statusSearch.json",
+        method: "post",
         headers: {
-          'Content-Type': "application/json; charset=UTF-8",
+          "Content-Type": "application/json; charset=UTF-8",
         },
-        data: { "address": vm.address, "condition": vm.condition }
-      }).then(function (response) {
-        console.log("statusSearch - response : ", response.data);
-        // vm.nodeList = response.data;
-      }).catch(function (error) {
-        console.log("statusSearch - error : ", error);
-      });
-
+        data: { address: vm.address, condition: vm.condition },
+      })
+        .then(function (response) {
+          console.log("statusSearch - response : ", response.data);
+          // vm.nodeList = response.data;
+        })
+        .catch(function (error) {
+          console.log("statusSearch - error : ", error);
+        });
     },
 
     setDongCd(value) {
       console.log("value : ", value);
       this.address = value;
-    }
+    },
   },
   watch: {},
   computed: {},
   mounted() {
     console.log("Main2 mounted");
     this.$refs.open_layers.setBaseMap(vworldBaseLayer);
-    //this.$refs.open_layers.addVectorLayerByUrl('/testDongGeoJson.json','testMap','EPSG:4326', baseStyles['labelStyle'],'label');    
+    //this.$refs.open_layers.addVectorLayerByUrl('/testDongGeoJson.json','testMap','EPSG:4326', baseStyles['labelStyle'],'label');
   },
 };
 </script>
 
 <style scoped>
+@media all and (max-width: 479px) {
+  .toggle{
+    display: block !important;
+    position: absolute;
+    z-index: 150;
+    top: 12rem;
+    left: 3rem;}
+  .wrap {
+    height: auto !important;
+  }
+  .slide-content {
+    position: fixed;
+    top: 0;
+    left: 0px;
+    width: -webkit-fill-available;
+    z-index: 50;
+    height: 100vh;
+    background-color: #f0f0f0;
+    transition: right 0.3s ease; /* Adjust the duration and easing as needed */
+  }
+
+  .slide-enter-active,
+  .slide-leave-active {
+    transition: right 0.3s ease; /* Adjust the duration and easing as needed */
+  }
+
+  .slide-enter,
+  .slide-leave-to {
+    right: -300px; /* Initial and final position outside the viewport */
+  }
+}
+.toggle{display: none;}
 .chart div {
   min-height: 13rem;
 }
@@ -337,4 +461,3 @@
   width: -webkit-fill-available;
 }
 </style>
-
client/views/pages/main/Main.vue
--- client/views/pages/main/Main.vue
+++ client/views/pages/main/Main.vue
@@ -1,79 +1,81 @@
 <template>
-  <div class="boxmenu">
-    <div class="box">
-      <div class="flex">
-        <img
-          src="../../../resources/images/icon/scumulativenumberofpedestrians.png"
-          alt
-        />
-        <span class="box_title">금일 누적보행자 수</span>
+  <div class="maintop">
+    <div class="boxmenu">
+      <div class="box">
+        <div class="flex">
+          <img
+            src="../../../resources/images/icon/scumulativenumberofpedestrians.png"
+            alt
+          />
+          <span class="box_title">금일 누적보행자 수</span>
+        </div>
+        <span class="box_num">00</span>
+        <span class="box_subtxt">명</span>
       </div>
-      <span class="box_num">00</span>
-      <span class="box_subtxt">명</span>
-    </div>
-    <div class="boxborder"></div>
-    <div class="box">
-      <div class="flex">
-        <img
-          src="../../../resources/images/icon/scumulativenumberofpedestrians.png"
-          alt
-        />
-        <span class="box_title">금일 무단횡단 발생</span>
+      <div class="boxborder"></div>
+      <div class="box">
+        <div class="flex">
+          <img
+            src="../../../resources/images/icon/scumulativenumberofpedestrians.png"
+            alt
+          />
+          <span class="box_title">금일 무단횡단 발생</span>
+        </div>
+        <span class="box_num">00</span>
+        <span class="box_subtxt">회</span>
       </div>
-      <span class="box_num">00</span>
-      <span class="box_subtxt">회</span>
-    </div>
-
-    <div class="boxborder"></div>
-    <div class="box">
-      <div class="flex">
-        <img
-          src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
-          alt
-        />
-        <span class="box_title">금일 신호연장 발생 수</span>
+  
+      <div class="boxborder"></div>
+      <div class="box">
+        <div class="flex">
+          <img
+            src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
+            alt
+          />
+          <span class="box_title">금일 신호연장 발생 수</span>
+        </div>
+        <span class="box_num">00</span>
+        <span class="box_subtxt">회</span>
       </div>
-      <span class="box_num">00</span>
-      <span class="box_subtxt">회</span>
-    </div>
-
-    <div class="boxborder"></div>
-    <div class="box">
-      <div class="flex">
-        <img
-          src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
-          alt
-        />
-        <span class="box_title">금일 신호연장</span>
+  
+      <div class="boxborder"></div>
+      <div class="box">
+        <div class="flex">
+          <img
+            src="../../../resources/images/icon/Numberofsignalextensionstoday.png"
+            alt
+          />
+          <span class="box_title">금일 신호연장</span>
+        </div>
+        <span class="box_num">00</span>
+        <span class="box_subtxt">초</span>
       </div>
-      <span class="box_num">00</span>
-      <span class="box_subtxt">초</span>
-    </div>
-
-    <div class="boxborder"></div>
-    <div class="box">
-      <div class="flex">
-        <img
-          src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
-          alt
-        />
-        <span class="box_title">금일 신호 위반 발생</span>
+  
+      <div class="boxborder"></div>
+      <div class="box">
+        <div class="flex">
+          <img
+            src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
+            alt
+          />
+          <span class="box_title">금일 신호 위반 발생</span>
+        </div>
+        <span class="box_num">00</span>
+        <span class="box_subtxt">회</span>
       </div>
-      <span class="box_num">00</span>
-      <span class="box_subtxt">회</span>
-    </div>
-
-    <div class="boxborder"></div>
-    <div class="box">
-      <div class="flex">
-        <img
-          src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
-          alt
-        />
-        <span class="box_title">금일 장애 발생 수</span>
+  
+      <div class="boxborder"></div>
+      <div class="box">
+        <div class="flex">
+          <img
+            src="../../../resources/images/icon/Numberofsignalviolationstoday.png"
+            alt
+          />
+          <span class="box_title">금일 장애 발생 수</span>
+        </div>
+        <span class="box_num">00</span>
+        <span class="box_subtxt">회</span>
       </div>
-      <span class="box_num">00</span>
-      <span class="box_subtxt">회</span>
     </div>
   </div>
   <div class="main_section">
@@ -252,7 +254,7 @@
   },
 };
 </script>
-<style>
+<style scoped>
 .box {
   text-align: end;
 }
@@ -284,24 +286,28 @@
   align-items: center;
   margin-bottom: 5rem;
 }
-
+.flex-between {
+  height: 7rem;
+  width: 100%;
+  z-index: 2000;
+  padding: 0 4rem 0 1rem;
+  background: #13833b;
+  box-shadow: 0px 5px 20px #00000038;
+}
 @media (max-width: 479px) {
+  .maintop{overflow: scroll;}
   .boxmenu {
-    width: 92vw;
-    height: 206px;
-    margin: 10px;
-    border-radius: 20px;
+        /* width: 92vw; */
+        height: fit-content;
+        display: flex !important;
+    /* margin: 10px; */
+    /* border-radius: 20px;*/
   }
+  .boxmenu{}
   .boxborder {
     display: none;
   }
-  .box {
-    width: 150px;
-    margin-top: 10px;
-    margin-right: 42px;
-    text-align: end;
-    float: left;
-  }
+  
   .box .flex {
     /* border: 1px solid red; */
     display: flex;
@@ -335,7 +341,7 @@
   }
   .barinfo {
     gap: 0;
-    width: 90vw;
+    /* width: 90vw; */
   }
   .barinfo img {
     width: 30px;
@@ -384,124 +390,5 @@
     font-size: 17px;
   }
 }
-@media (max-width: 375px) {
-  .box_title {
-    /* margin-top: 172px; */
-    width: 1000px;
-    /* border: 1px solid; */
-    color: #9c9b9a;
-    text-align: center;
-    /* margin-right: 30px; */
-    font-size: 15px;
-  }
-  .box {
-    width: 150px;
-    margin-top: 10px;
-    /* margin-right: -32px; */
-    text-align: end;
-    float: left;
-    margin: 0px;
-  }
-  .boxmenu img {
-    width: 35px;
-    display: none;
-  }
-  .boxmenu {
-    width: 92vw;
-    height: 206px;
-    margin: 10px;
-    border-radius: 20px;
-  }
-  .boxborder {
-    display: none;
-  }
-  .box {
-    width: 150px;
-    margin-top: 10px;
-    margin-right: 42px;
-    text-align: end;
-    float: left;
-  }
-  .box .flex {
-    /* border: 1px solid red; */
-    display: flex;
-    align-items: center;
-    width: 190px;
-    margin: 0px -8px 5px;
-  }
-  .box_title {
-    /* margin-top: 172px; */
-    width: 1000px;
-    /* border: 1px solid; */
-    color: #9c9b9a;
-    text-align: center;
-    /* margin-right: 30px; */
-    font-size: 15px;
-  }
-  .main_section h1 {
-    font-size: 20px;
-    color: #13833b;
-    margin: 3rem 0;
-    text-align: center;
-    width: 100vw;
-  }
-  .verticalbar {
-    width: 93vw;
-    border-radius: 15px;
-    background-color: #dddddd00;
-    margin-bottom: 3rem;
-    margin: 10px;
-    padding: 1rem;
-  }
-  .barinfo {
-    gap: 0;
-    width: 90vw;
-  }
-  .barinfo img {
-    width: 30px;
-    margin-top: 15px;
-  }
-  .bar_title {
-    color: #3b3d3d;
-    font-size: 8px;
-    gap: none;
-    display: inline;
-    display: none;
-  }
-  .main_section .elementtxt {
-    display: flex;
-    font-size: 8px;
-    width: 90px;
-    justify-content: center;
-    align-items: center;
-  }
-  .bar_element {
-    width: 100vw;
-    border-radius: 20px;
-    height: 90px;
-    line-height: 30px;
-    background: #dddddd;
-    text-align: center;
-    margin: 5px;
-  }
-  .boxmenu img {
-    display: none;
-  }
-  .board_title {
-    color: #ffff;
-    font-size: 16px;
-  }
-  .board {
-    background: #ffffff;
-    border-radius: 15px;
-    width: 93vw;
-    box-shadow: 0px 5px 20px #00000038;
-    padding: 2rem;
-    margin: 30px 10px;
-  }
-  .box_num {
-    color: #13833b;
-    font-size: 17px;
-  }
-}
+
 </style>
Add a comment
List