최정임 최정임 2023-07-27
230727 최정임 css 수정중 2
@7de86c7a30a75c0970dfee32c44c101ab7c11c98
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -29,13 +29,14 @@
 }
 .s-btn{width: 15rem;}
 input[type="text"]{height: 3rem; width: 90%; padding: 0.5rem;
-  border-radius: 5px; border: 1px solid #333333;}
+  border-radius: 5px; border: 1px solid #c8c8c8}
   .text-input{width: 13rem !important;}
 select {
   padding: 0.5rem;
   border-radius: 5px;
   width: 90%;
     height: 3rem;
+    border: 1px solid #c8c8c8
 }
 .border-none{border-top: none !important; border-bottom: none !important;}
 
@@ -52,6 +53,11 @@
   grid-template-columns: 20% 80%;
   height: 100%;
 }
+.grid3_7 {
+  display: grid;
+  grid-template-columns: 30% 70%;
+  height: 100%;
+}
 .flex {
   display: flex;
   align-items: center;
client/resources/css/main.css
--- client/resources/css/main.css
+++ client/resources/css/main.css
@@ -67,4 +67,65 @@
     .wrap{width: -webkit-fill-available !important; margin: 20px auto !important;}
   .mobile{display: block !important;}
   .pc{display: none;}
+  }
+
+
+  .modal {
+    width: 100rem;
+  }
+  .modal input{padding: 0.5rem; height: 3rem; border: 1px solid #c8c8c8; border-radius: 5px;}
+  .modalmain {
+    padding: 2rem;
+    max-height: 70rem;
+    overflow: scroll;
+    overflow-x: hidden;
+  }
+  .modalmain select {
+    width: max-content;
+  }
+  .modalmain input[type="text"] {
+    width: inherit;
+  }
+  .modalmain table thead {
+    background: #f7f6f6;
+  }
+  .modalmain table td {
+    border: 1px solid #eee;
+  }
+  .modal h2 {
+    background: #018b4d;
+    font-size: 3rem;
+    padding: 1.5rem;
+    color: #ffffff;
+  }
+  .modal-bg h2 {
+    background: #e5e5dd;
+    font-size: 2rem;
+    padding: 1rem;
+  }
+  .modal h3 {
+    font-size: 1.8rem;
+    border-bottom: 1px solid #eee;
+    padding: 1rem 0 0.2rem 0;
+  }
+  .modal h4 {
+    font-size: 1.6rem;
+    font-weight: 100;
+    padding: 0.2rem 0 1rem 0;
+  }
+  .modal h2 button {
+    border: 0;
+    background: none;
+    height: 30px;
+    cursor: pointer;
+    width: fit-content;
+  }
+  .modal-bg button {
+    border: 0;
+    background: none;
+    height: 30px;
+    cursor: pointer;
+  }
+  .modal button img {
+    width: 25px;
   }
(No newline at end of file)
client/views/component/chart/ChartMain.vue
--- client/views/component/chart/ChartMain.vue
+++ client/views/component/chart/ChartMain.vue
@@ -55,7 +55,7 @@
         </div> -->
         <!-- 차트 selectbox (끝)-->
     </div>
-    <div class="chart" id="chartdiv" ref="chartdiv" style="width: 100%; height: 700px;"></div>
+    <div class="chart" id="chartdiv" ref="chartdiv" style="width: 100%; height: 100%;"></div>
 </template>
 
 <script>
@@ -1604,8 +1604,4 @@
 }
 </script>
 
-<style scoped>
-#chartdiv {
-  height: 50rem;
-  padding-top: 2rem;
-}</style>
(No newline at end of file)
+<style scoped></style>
(No newline at end of file)
client/views/component/dongSelectList.vue
--- client/views/component/dongSelectList.vue
+++ client/views/component/dongSelectList.vue
@@ -1,5 +1,5 @@
 <template>
-    <div class="flex-between  gap" id="siDoHiddenCk">
+    <div class="grid3_7  gap" id="siDoHiddenCk">
         <label for="">시/도</label>
         <select name="siDoSelectList" id="siDoSelectList" v-model="address['siDo_dong_cd']"
             @change="siDoGunGuSelectF($event)">
@@ -9,7 +9,7 @@
             </option>
         </select>
     </div>
-    <div class="flex-between  gap" id="gunGuHiddenCk">
+    <div class="grid3_7  gap" id="gunGuHiddenCk">
         <label for="">시/군/구</label>
         <select class="bg-white" name="gunGuSelectList" id="gunGuSelectList" v-model="address['guGun_dong_cd']"
             @change="siDoGunGuSelectF($event)">
@@ -19,7 +19,7 @@
             </option>
         </select>
     </div>
-    <div class="flex-between  gap" id="dongHiddenCk">
+    <div class="grid3_7  gap" id="dongHiddenCk">
         <label for="">행정동</label>
         <select name="dongSelectList" id="dongSelectList" v-model="address['dong_dong_cd']" @change="dongSelectF($event)">
             <option :value=null disabled> 행정동 </option>
@@ -29,7 +29,7 @@
             </option>
         </select>
     </div>
-    <div class="flex-between gap" id="nodeHiddenCk">
+    <div class="grid3_7 gap" id="nodeHiddenCk">
         <label for="">교차로</label>
         <select name="nodeSelectList" id="nodeSelectList" v-model="address['node_id']" @change="nodeSelectF($event)">
             <option :value=null disabled> 교차로 </option>
@@ -38,7 +38,7 @@
             </option>
         </select>
     </div>
-    <div class="flex-between " id="crslk_azHiddenCk">
+    <div class="grid3_7 " id="crslk_azHiddenCk">
         <label for="">방위각</label>
         <select name="crslk_azSelectList" id="crslk_azSelectList" v-model="address['crslk_az']">
             <option :value="0" disabled> 방위각 </option>
@@ -289,5 +289,9 @@
   
 
   <style scoped>
+  label {
+    width: max-content;
+    line-height: 3rem;
+}
   </style>
   
(No newline at end of file)
client/views/pages/RealtimeStatus/RealtimeStatus.vue
--- client/views/pages/RealtimeStatus/RealtimeStatus.vue
+++ client/views/pages/RealtimeStatus/RealtimeStatus.vue
@@ -194,7 +194,7 @@
         </ul>
       </div>
       <OpenLayers ref="open_layers" />
-      <button @click="showPopup" class="popup-btn s-btn">Open Popup</button>
+      <button @click="showPopup" class="popup-btn s-btn gr-btn">발생정보</button>
 
       <!-- Popup container -->
       <div
@@ -205,9 +205,14 @@
         <!-- Popup content -->
         <div class="popup-content">
           <!-- Add your popup content here -->
-          <h2>Popup Content</h2>
-          <p>This is the content of the popup.</p>
-          <button @click="hidePopup">Close</button>
+          <h2>무단횡단 발생</h2>
+          <ul>
+                <li>
+                  <p class="m-b">발생일시: 2023-05-04 14:27</p>
+                  <p class="">발생장소: 영재어린이집(서측) 동쪽횡단보도</p>
+                </li>
+              </ul>
+          <button @click="hidePopup"  class="s-btn gr-btn">닫기</button>
         </div>
       </div>
     </div>
@@ -656,19 +661,26 @@
   display: flex;
   justify-content: center;
   align-items: center;
-  background-color: rgba(0, 0, 0, 0.7);
+  /* background-color: rgba(0, 0, 0, 0.7); */
   z-index: 9999;
 }
 
 .popup-content {
-  background-color: #fff;
-  padding: 20px;
-  border-radius: 5px;
-  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
+  background-color: #000000a3;
+    width: 17%;
+    text-align: center;
+    color: #ffffff;
+    /* height: 20%; */
+    padding: 20px;
+    border-radius: 5px;
+    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
 }
-
+.popup-content ul{padding: 2rem 0;}
+.popup-content ul li{font-size: 16px;}
 .popup-content h2 {
   margin-top: 0;
+  font-size: 2.5rem;
+  color: #bf1a21;
 }
 .toggle {
   display: none;
@@ -724,7 +736,7 @@
   background-color: #fff;
 }
 
-h2 {
+.left h2, .chart h2 {
   background: #50ba8a;
   text-align: center;
   color: #fff;
client/views/pages/RealtimeStatus/SituationSearch.vue
--- client/views/pages/RealtimeStatus/SituationSearch.vue
+++ client/views/pages/RealtimeStatus/SituationSearch.vue
@@ -33,7 +33,7 @@
           </tr>
           <tr>                     
               <th>검색</th>               
-              <td colspan="7" >     
+              <td colspan="7" class="flex gap">     
                 <select name="" id="">
                   <option value="">전체</option>
                   <option value="">무단횡단</option>
client/views/pages/SystemManagement/AccessRecord.vue
--- client/views/pages/SystemManagement/AccessRecord.vue
+++ client/views/pages/SystemManagement/AccessRecord.vue
@@ -64,7 +64,7 @@
           </tr>
           <tr>                     
               <th>검색</th>               
-              <td colspan="7" >     
+              <td colspan="7" class="flex gap">     
                 <select v-model="userAccessListSearch.searchType">
                   <option value="null" disabled>검색조건</option>
                   <option value="user_id">ID</option>
client/views/pages/SystemManagement/UserManagement.vue
--- client/views/pages/SystemManagement/UserManagement.vue
+++ client/views/pages/SystemManagement/UserManagement.vue
@@ -67,7 +67,7 @@
           </tr>
           <tr>                     
               <th>검색</th>               
-              <td colspan="7" >     
+              <td colspan="7" class="flex gap">     
                  <select v-model="userListSearch.searchType">
                   <option value="null" disabled>검색조건</option>
                   <option value="user_id">ID</option>
@@ -204,69 +204,76 @@
         </button>
       </h2>
       <div class="form-wrap">
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>아이디 : </span>
-          <input type="text" placeholder="ID" v-model="user.user_id">
-          <button type="button" class="idchk green-btn" @click="idChcek">중복확인</button>
+          <div class="flex-start gap">
+            <input type="text" placeholder="ID" v-model="user.user_id">
+            <button type="button" class="idchk green-btn s-btn" @click="idChcek">중복확인</button>
+          </div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>비밀번호 : </span>
-          <input type="password" placeholder="Password" v-model="user.user_pw">
+          <div class="flex-start gap"><input type="password" placeholder="Password" v-model="user.user_pw"></div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>비밀번호 확인 : </span>
-          <input type="password" placeholder="Confirm Password" v-model="passwordCheck">
+          <div class="flex-start gap"><input type="password" placeholder="Confirm Password" v-model="passwordCheck"></div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>이름 : </span>
-          <input type="text" placeholder="Name" v-model="user.user_nm">
+          <div class="flex-start gap"><input type="text" placeholder="Name" v-model="user.user_nm"></div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>전화번호 : </span>
-          <input type="text" style="width: 7rem" maxlength="3" v-model="tel_first">
-          <div>&nbsp; - &nbsp;</div>
-          <input type="text" style="width: 7rem" maxlength="4" v-model="tel_second">
-          <div>&nbsp; - &nbsp;</div>
-          <input type="text" style="width: 7rem" maxlength="4" v-model="tel_third">
+          <div class="flex-start gap">
+            <input type="text" style="width: 7rem" maxlength="3" v-model="tel_first">
+            <div>&nbsp; - &nbsp;</div>
+            <input type="text" style="width: 7rem" maxlength="4" v-model="tel_second">
+            <div>&nbsp; - &nbsp;</div>
+            <input type="text" style="width: 7rem" maxlength="4" v-model="tel_third">
+          </div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>이메일 : </span>
-          <input type="text" style="width: 10rem" v-model="email_id">
-          <div>&nbsp; @ &nbsp;</div>
-          <input class="m-r" type="text" style="width: 10rem" v-model="email_domain" :disabled="email_disabled === true">
-          <select @change="emailValue($event.target.value)">
-            <option selected disabled>선택하세요</option>
-            <option value="naver.com">naver.com</option>
-            <option value="gmail.com">gmail.com</option>
-            <option value="hanmail.net">hanmail.net</option>
-            <option value="daum.net">daum.net</option>
-            <option value="nate.com">nate.com</option>
-            <option value="null">직접입력</option>
-          </select>
+          <div class="flex-start gap">
+            <input type="text" style="width: 10rem" v-model="email_id">
+            <div>&nbsp; @ &nbsp;</div>
+            <input class="m-r" type="text" style="width: 10rem" v-model="email_domain" :disabled="email_disabled === true">
+            <select @change="emailValue($event.target.value)">
+              <option selected disabled>선택하세요</option>
+              <option value="naver.com">naver.com</option>
+              <option value="gmail.com">gmail.com</option>
+              <option value="hanmail.net">hanmail.net</option>
+              <option value="daum.net">daum.net</option>
+              <option value="nate.com">nate.com</option>
+              <option value="null">직접입력</option>
+            </select>
+          </div>
         </div>
-        <div class="flex m-b">
-          <span>관리구역 : </span>
-          <div class="flex gap"><dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :crslk_azHiddenCk="true"></dongSelectList></div>
+        <div class="grid2_8 m-b">
+          <span>관리구역 : </span><div class="flex-start gap"><dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :crslk_azHiddenCk="true"></dongSelectList></div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>비고 : </span>
-          <input type="text" placeholder="참고사항을 입력해주세요." v-model="user.rm">
+          <div class="flex-start gap"><input type="text" placeholder="참고사항을 입력해주세요." v-model="user.rm"></div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 m-b">
           <span>권한 : </span>
-          <label for="radio_1">
-            <input type="radio" name="radio" id="radio_1" value="시청관리자" v-model="user.user_author">
-            시청관리자
-          </label>
-          <label for="radio_2">
-            <input type="radio" name="radio" id="radio_2" value="지자체관리자" v-model="user.user_author">
-            지자체관리자
-          </label>
+          <div class="flex-start gap">
+            <label for="radio_1" class="flex gap">
+              <input type="radio" name="radio" id="radio_1" value="시청관리자" v-model="user.user_author">
+              시청관리자
+            </label>
+            <label for="radio_2" class="flex gap">
+              <input type="radio" name="radio" id="radio_2" value="지자체관리자" v-model="user.user_author">
+              지자체관리자
+            </label>
+          </div>
         </div>
 
-        <div class="btn-wrap">
-          <button type="button" class="green-btn" @click="userInsertCheck">등록</button>
-          <button type="button" class="btn-2 gray-btn" @click="modal_insert= false">취소</button>
+        <div class="btn-wrap flex-center gap">
+          <button type="button" class="green-btn s-btn" @click="userInsertCheck">등록</button>
+          <button type="button" class="btn-2 gray-btn s-btn" @click="modal_insert= false">취소</button>
         </div>
       </div>
     </div>
@@ -714,6 +721,8 @@
 .modal {
   width: 100rem;
 }
+.modal .form-wrap {padding: 2rem;}
+.modal .form-wrap span{width: 10rem; text-align: left;}
 .modalmain {
   padding: 1rem;
   max-height: 70rem;
@@ -728,11 +737,6 @@
 }
 .modalmain table td {
   border: 1px solid #eee;
-}
-.modal h2 {
-  background: #e5e5dd;
-  font-size: 2rem;
-  padding: 1rem;
 }
 .modal-bg h2 {
   background: #e5e5dd;
client/views/pages/SystemManagement/UserModifyForm.vue
--- client/views/pages/SystemManagement/UserModifyForm.vue
+++ client/views/pages/SystemManagement/UserModifyForm.vue
@@ -15,66 +15,74 @@
         <h2 class="page-title">사용자 정보</h2>
       </div>
       <hr class="margin">
-      <div class="form-wrap">
-        <div class="flex m-b">
+      <div class="form-wrap grid gap">
+        <div class="grid2_8 ">
           <span>아이디 : </span>
           <span>{{ user.user_id }} </span>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 ">
           <span>이름 : </span>
           <input type="text" placeholder="Name" v-model="user.user_nm">
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 ">
           <span>전화번호 : </span>
-          <input type="text" style="width: 7rem" maxlength="3" v-model="tel_first">
-          <div>&nbsp; - &nbsp;</div>
-          <input type="text" style="width: 7rem" maxlength="4" v-model="tel_second">
-          <div>&nbsp; - &nbsp;</div>
-          <input type="text" style="width: 7rem" maxlength="4" v-model="tel_third">
+          <div class="flex gap">
+            <input type="text" style="width: 7rem" maxlength="3" v-model="tel_first">
+            <div>&nbsp; - &nbsp;</div>
+            <input type="text" style="width: 7rem" maxlength="4" v-model="tel_second">
+            <div>&nbsp; - &nbsp;</div>
+            <input type="text" style="width: 7rem" maxlength="4" v-model="tel_third">
+          </div>
         </div>
-        <div class="flex m-b gap">
+        <div class="grid2_8 ">
           <span>이메일 : </span>
-          <input type="text" style="width: 10rem" v-model="email_id">
-          <div>&nbsp; @ &nbsp;</div>
-          <input type="text" style="width: 10rem" v-model="email_domain" :disabled="email_disabled === true">
-          <select @change="emailValue($event.target.value)">
-            <option selected disabled>선택하세요</option>
-            <option value="naver.com">naver.com</option>
-            <option value="gmail.com">gmail.com</option>
-            <option value="hanmail.net">hanmail.net</option>
-            <option value="daum.net">daum.net</option>
-            <option value="nate.com">nate.com</option>
-            <option value="null">직접입력</option>
-          </select>
+          <div class="flex gap">
+            <input type="text" style="width: 10rem" v-model="email_id">
+            <div style="height: 3rem; line-height: 1rem;">&nbsp; 	&#64; &nbsp;</div>
+            <input type="text" style="width: 10rem" v-model="email_domain" :disabled="email_disabled === true">
+            <select @change="emailValue($event.target.value)">
+              <option selected disabled>선택하세요</option>
+              <option value="naver.com">naver.com</option>
+              <option value="gmail.com">gmail.com</option>
+              <option value="hanmail.net">hanmail.net</option>
+              <option value="daum.net">daum.net</option>
+              <option value="nate.com">nate.com</option>
+              <option value="null">직접입력</option>
+            </select>
+          </div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 ">
           <span>관리구역 : </span>
-          <dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :crslk_azHiddenCk="true" 
-          :user_sido_cd="user.user_sido_cd" :user_sigungu_cd="user.user_sigungu_cd" :user_dong_cd="user.user_dong_cd"></dongSelectList>
+          <div class="flex-between gap dongselect">
+            <dongSelectList @setDongCd="setDongCd" :nodeHiddenCk="true" :crslk_azHiddenCk="true" 
+            :user_sido_cd="user.user_sido_cd" :user_sigungu_cd="user.user_sigungu_cd" :user_dong_cd="user.user_dong_cd"></dongSelectList>
+          </div>
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 ">
           <span>비고 : </span>
           <input type="text" placeholder="참고사항을 입력해주세요." v-model="user.rm">
         </div>
-        <div class="flex m-b">
+        <div class="grid2_8 ">
           <span>권한 : </span>
-          <label for="radio_1">
-            <input type="radio" name="radio" id="radio_1" value="시청관리자" v-model="user.user_author">
-            시청관리자
-          </label>
-          <label for="radio_2">
-            <input type="radio" name="radio" id="radio_2" value="지자체관리자" v-model="user.user_author">
-            지자체관리자
-          </label>
+          <div class="flex gap">
+            <label for="radio_1">
+              <input type="radio" name="radio" id="radio_1" value="시청관리자" v-model="user.user_author">
+              시청관리자
+            </label>
+            <label for="radio_2">
+              <input type="radio" name="radio" id="radio_2" value="지자체관리자" v-model="user.user_author">
+              지자체관리자
+            </label>
+          </div>
         </div>
 
-        <div class="btn-wrap">
-          <button type="button" class="green-btn" @click="userUpdateCheck">수정</button>
-          <button type="button" class="green-btn" @click="modal_delete = true">삭제</button>
-          <button type="button" class="btn-2 gray-btn" @click="userSelectListPage()">취소</button>
+        <div class="btn-wrap flex-between">
+          <button type="button" class="green-btn s-btn" @click="userUpdateCheck">수정</button>
+          <button type="button" class="green-btn s-btn" @click="modal_delete = true">삭제</button>
+          <button type="button" class="btn-2 gray-btn s-btn" @click="userSelectListPage()">취소</button>
         </div>
         <div class="btn-wrap">
-        <button type="button" class="green-btn" @click="pwReset">비밀번호 초기화</button>
+        <button type="button" class="green-btn s-btn" @click="pwReset">비밀번호 초기화</button>
       </div>
       </div>
     </div>
@@ -392,7 +400,9 @@
   width: 52rem;
   margin: 0 auto;
 }
-
+.form-wrap > div{height: 3rem;}
+.form-wrap span{text-align: left; line-height: 3rem;}
+select{width: -webkit-fill-available;}
 .idchk {
   margin-left: 1rem;
 }
@@ -423,9 +433,9 @@
   width: 24.7rem;
 }
 
-.form-wrap select {
+/* .form-wrap select {
   min-width: 9rem;
-}
+} */
 
 .form-wrap select:not(:last-child) {
   margin-right: 1.5rem;
Add a comment
List