jichoi / calendar star
류윤주 류윤주 07-22
250722 류윤주 수정
@5a9a27627db44cdd3fa46bc7647362735bd68ea8
client/resources/scss/admin/content.scss
--- client/resources/scss/admin/content.scss
+++ client/resources/scss/admin/content.scss
@@ -6,7 +6,6 @@
         padding-top: 30rem;
 
         .card-body {
-
             background-color: #fff;
             margin: 0 auto;
             width: 600px;
@@ -50,18 +49,19 @@
 
 }
 
-.side-content{
+.side-content {
     width: 400px;
     height: 100%;
     @include flex-layout(flex, flex-start, space-between, column);
     margin-right: 20px;
-        .myinfo {
-            width: 100%;
-            text-align: center;
-            padding: 25px 20px 20px 20px;
-            margin-bottom: 20px;
-            border-radius: 20px;
-            background: linear-gradient(to bottom, #1F3F99, #3354CE);
+
+    .myinfo {
+        width: 100%;
+        text-align: center;
+        padding: 25px 20px 20px 20px;
+        margin-bottom: 20px;
+        border-radius: 20px;
+        background: linear-gradient(to bottom, #1F3F99, #3354CE);
 
         .name-box {
             margin-bottom: 30px;
@@ -249,7 +249,7 @@
 
     }
 
-        .boxs {
+    .boxs {
         background-color: #fff;
         border-radius: 20px;
         padding: 20px;
@@ -384,9 +384,95 @@
 }
 
 .sidemenu {
-    width: 350px;
+    width: 250px;
     margin-right: 20px;
+    .myinfo {
+        width: 100%;
+        text-align: center;
+        padding: 25px 20px 20px 20px;
+        margin-bottom: 20px;
+        border-radius: 20px;
+        background: linear-gradient(to bottom, #1F3F99, #3354CE);
 
+        .name-box {
+            margin-bottom: 30px;
+
+            .img-area {
+                margin: 0 auto;
+                width: 165px;
+
+                .name {
+                    font-size: 25px;
+                    font-weight: 700;
+                    color: #fff;
+                }
+
+                .info {
+                    background-color: #0A216D;
+                    border-radius: 100px;
+                    display: flex;
+                    align-items: center;
+                    gap: 10px;
+                    justify-content: center;
+
+                    p {
+                        color: #fff;
+                        font-size: 15px;
+                    }
+                }
+            }
+        }
+
+        .info-box {
+            background-color: #fff;
+            border-radius: 15px;
+            display: flex;
+            justify-content: space-between;
+
+            li {
+                text-align: center;
+                border-right: 1px solid #E7EAF4;
+                width: 25%;
+
+                p {
+                    font-size: 35px;
+                    font-weight: 700;
+                    margin: 20px 0;
+                }
+            }
+
+            li:last-child {
+                border: 0;
+            }
+
+            .name {
+                text-align: center;
+                display: flex;
+                justify-content: center;
+                justify-self: center;
+                margin-bottom: 12px;
+                width: 58px;
+                height: 25px;
+                font-size: 16px;
+                font-weight: 700;
+                background-color: #999999;
+                color: #fff;
+                border-radius: 100px;
+            }
+
+            .name.yellow {
+                background-color: #EDAB0C;
+            }
+
+            .name.blue {
+                background-color: #1D75E1;
+            }
+
+            .name.red {
+                background-color: #E92727;
+            }
+        }
+    }
 
 
     .menu-box {
@@ -424,32 +510,39 @@
 
         }
     }
-    .menu-box.danil{
-        a{display: block;
+
+    .menu-box.danil {
+        a {
+            display: block;
             cursor: pointer;
             border: 1px solid #213F9A;
             color: #000;
-           
+
             font-size: 17px;
             text-align: left;
             padding: 10px 15px;
             border-radius: 10px;
             margin-bottom: 10px;
-            li{
+
+            li {
                 display: flex;
                 justify-content: space-between;
                 margin-bottom: 0px;
+
                 .icon {
                     display: none;
                 }
             }
         }
-        a.active-link{
+
+        a.active-link {
             background: #213F9A;
-            li{
-                p{
+
+            li {
+                p {
                     color: #fff;
                 }
+
                 .icon {
                     display: block;
                 }
@@ -576,7 +669,7 @@
                 gap: 25px;
                 align-items: center;
                 justify-content: center;
-                margin-top: 10px;
+                margin-top: 13px;
 
                 i.fa-bars {
                     display: block;
@@ -647,6 +740,7 @@
     }
 
     .card {
+        height: 100%;
         .color-boxs {
             display: flex;
             justify-content: space-between;
@@ -729,9 +823,9 @@
                 background-color: #EFF1FA;
                 border-radius: 20px;
                 align-items: center;
-    justify-content: center;
-    display: flex;
-                
+                justify-content: center;
+                display: flex;
+
 
                 .img {
                     position: relative;
@@ -741,20 +835,23 @@
                     width: 92px;
                     height: 110px;
                     padding: 8px;
+
                     .close-btn {
                         position: absolute;
                         top: 0;
                         right: 10px;
                     }
+
                     img {
-                       
+
                         object-fit: cover;
                         width: 100%;
                         height: 100%;
                     }
                 }
             }
-            .img-area.column{
+
+            .img-area.column {
                 flex-direction: column;
             }
 
@@ -819,43 +916,6 @@
             }
         }
 
-        .tbl-wrap {
-            table.buseo {
-                tbody {
-                    tr {
-                        cursor: pointer;
-                    }
-                }
-            }
-
-            th,
-            td {
-                text-align: center !important;
-                font-size: 16px !important;
-            }
-
-            .status-approved {
-                color: #1D75E1;
-                font-weight: 700;
-            }
-
-            .status-pending {
-                color: #E92727;
-                font-weight: 700;
-            }
-            .status-green {
-                color: #219A8C;
-                font-weight: 700;
-            }
-
-            .expired td {
-                background-color: #F6F6F6;
-                /* 연회색 배경 */
-                filter: grayscale(50%);
-                opacity: 0.6;
-            }
-        }
-
         p.require {
             text-align: right;
 
@@ -865,11 +925,16 @@
         }
 
         .card-body {
+            height: 100%;
             .flex {
                 display: flex;
                 align-items: center;
             }
-            .align-top{align-items: flex-start;}
+
+            .align-top {
+                align-items: flex-start;
+            }
+
             .flex.sb {
                 justify-content: space-between;
             }
@@ -906,6 +971,7 @@
                     margin-bottom: 0;
                 }
             }
+
             .sch-form-wrap.search {
                 position: relative;
                 flex-direction: column;
@@ -915,43 +981,67 @@
                 margin-right: 20px;
                 width: 420px;
                 height: 78rem;
-                .sidemenu{max-height: 66rem; overflow-y: auto;}
-                details{
+
+                .sidemenu {
+                    max-height: 66rem;
+                    overflow-y: auto;
+                }
+
+                details {
                     width: 100%;
-                    summary{
+
+                    summary {
                         border: 0;
                         align-items: center;
                         justify-content: flex-start;
                         gap: 5px;
-                        .icon{display: block;}
-                        p{color: #213F9A; font-weight: 700; margin-right: 10px;}
+
+                        .icon {
+                            display: block;
+                        }
+
+                        p {
+                            color: #213F9A;
+                            font-weight: 700;
+                            margin-right: 10px;
+                        }
                     }
+
                     .arrow {
                         margin-right: 10px;
-                      }
-                      li{
+                    }
+
+                    li {
                         margin-left: 40px;
-                        a{
+
+                        a {
                             justify-content: flex-start;
                             align-items: center;
-                            img{margin-right: 10px;}
+
+                            img {
+                                margin-right: 10px;
+                            }
                         }
-                      }
-                     
-                }
-                details[open]>summary {
+                    }
 
                 }
-                .buttons{position: absolute; bottom: 40px;}
-                .input-group{
+
+                .buttons {
+                    position: absolute;
+                    bottom: 40px;
+                }
+
+                .input-group {
                     display: block;
                     margin-bottom: 20px;
                 }
-                table{
-                    width: 100%; 
-                    thead{
-                        
-                        th{
+
+                table {
+                    width: 100%;
+
+                    thead {
+
+                        th {
                             background-color: #C7CFE3;
                             position: sticky;
                             top: -1px;
@@ -960,31 +1050,40 @@
                         }
                     }
                 }
+
                 .table-scroll {
-  max-height: max-content; /* 원하는 높이 설정 */
-  overflow-y: auto;
-}
+                    max-height: max-content;
+                    /* 원하는 높이 설정 */
+                    overflow-y: auto;
+                }
             }
+
             form {
                 width: 100%;
                 border: 1px solid #C7CFE3;
                 border-radius: 10px;
                 overflow: hidden;
-                .second-label{
+
+                .second-label {
                     background-color: #fff !important;
                 }
-                
+
             }
-            form.salary{
+
+            form.salary {
                 display: flex;
-                .yearsalary{width: 100%;}
+
+                .yearsalary {
+                    width: 100%;
+                }
             }
+
             .col-12 {
                 min-height: 4rem;
                 width: 100%;
                 display: flex;
                 border-bottom: 1px solid #C7CFE3;
-               
+
                 label {
                     width: 140px;
                     background: #EFF1FA;
@@ -1011,12 +1110,6 @@
                     position: absolute;
                     right: -13px;
                     top: 0;
-                }
-
-                .d-flex {
-                    display: flex;
-                    flex-shrink: 0;
-                    align-items: center;
                 }
 
                 select,
@@ -1082,18 +1175,18 @@
 
                     table {
                         thead {
-                            tr{
+                            tr {
                                 th {
                                     border-right: 1px solid #C7CFE3;
                                     border-bottom: 1px solid #C7CFE3;
-                                  
+
                                 }
-    
+
                                 th:last-child {
                                     border-right: 0;
                                 }
                             }
-                           
+
                         }
 
                         tbody {
@@ -1104,7 +1197,7 @@
                                     margin: 0;
                                 }
 
-                                
+
                             }
 
                             td:last-child {
@@ -1122,14 +1215,18 @@
 
 
             }
-            .col-12.form-title{justify-content: center; background-color: #C7CFE3; font-weight: 600;
-                align-items: center; gap: 10px;
-                button{
 
-                }
+            .col-12.form-title {
+                justify-content: center;
+                background-color: #C7CFE3;
+                font-weight: 600;
+                align-items: center;
+                gap: 10px;
             }
+
             .col-12.return {
                 background-color: #FFF2F2 !important;
+
                 .form-label {
                     background-color: #FBC1C1;
                 }
@@ -1266,20 +1363,38 @@
 
                 }
             }
-            .tbl3{
-                th,td{border: 0; border-bottom: 0 !important;}
-                thead{
-                    background-color: #EFF1FA;
-                    th{padding: 10px;}
+
+            .tbl3 {
+
+                th,
+                td {
+                    border: 0;
+                    border-bottom: 0 !important;
                 }
-                tbody{
-                    td{padding: 0 10px;
-                        .form-select{width: -webkit-fill-available;}
+
+                thead {
+                    background-color: #EFF1FA;
+
+                    th {
+                        padding: 10px;
                     }
-                    tr:last-child td{border-bottom: 0;}
+                }
+
+                tbody {
+                    td {
+                        padding: 0 10px;
+
+                        .form-select {
+                            width: -webkit-fill-available;
+                        }
+                    }
+
+                    tr:last-child td {
+                        border-bottom: 0;
+                    }
                 }
             }
-            
+
 
         }
 
@@ -1295,11 +1410,6 @@
                 font-size: 18px;
                 font-weight: 700;
                 margin-right: 3rem;
-            }
-
-            .d-flex {
-                display: flex;
-                gap: 20px;
             }
 
             .col-12 {
@@ -1346,7 +1456,8 @@
     justify-content: center;
     line-height: 0 !important;
     cursor: pointer;
-align-items: center;
+    align-items: center;
+
     p {
         color: #000;
     }
@@ -1366,74 +1477,101 @@
 input[type="file"] {
     display: none;
 }
-input[type="date"]{
+
+input[type="date"] {
     width: 200px;
     padding-right: 10px;
 }
-input[type="button"]{
+
+input[type="button"] {
     width: 200px;
     background-color: #333;
     color: #fff;
     padding-right: 10px;
 }
+
 table {
-    thead{
-        .toptitle{
-            th{background-color: #B7C2ED !important;}
+    thead {
+        .toptitle {
+            th {
+                background-color: #B7C2ED !important;
+            }
         }
-        .middletitle{
-            th{background-color: #DAE0F7 !important;}
+
+        .middletitle {
+            th {
+                background-color: #DAE0F7 !important;
+            }
         }
-        th{
+
+        th {
             p {
                 background-color: #E92727;
                 border-radius: 5px;
                 color: #fff;
             }
-    
+
             p.green {
                 background-color: #219A8C;
             }
-    
+
             p.blue {
                 background-color: #1D75E1;
             }
         }
     }
-   
+
     th,
     td {
         border: 1px solid #C7CFE3;
         border-bottom: 1px solid #C7CFE3 !important;
     }
-    tbody{
-        tr{
-            th{background-color: var(--tk-secondary-5) !important; font-weight: 700 !important;}
+
+    tbody {
+        tr {
+            th {
+                background-color: var(--tk-secondary-5) !important;
+                font-weight: 700 !important;
+            }
         }
-        
+
     }
 }
 
-.chk-area{
-    .form-check{
+.chk-area {
+    .form-check {
         display: flex;
-            align-items: center;
-            justify-content: center;
+        align-items: center;
+        justify-content: center;
     }
-    label{padding-left: 30px !important; line-height: 0;}
-   
+
+    label {
+        padding-left: 30px !important;
+        line-height: 0;
+    }
+
 }
-label:focus, button:focus{
+
+label:focus,
+button:focus {
     outline: 0;
 }
-.input-radio{
-    .chk-area{
+
+.input-radio {
+    .chk-area {
         margin: 9px 0 9px 10px;
-        .form-check{
-            label{width: auto !important; line-height: 0 !important; background-color: #fff !important; border-right: 0 !important;}
+
+        .form-check {
+            label {
+                width: auto !important;
+                line-height: 0 !important;
+                background-color: #fff !important;
+                border-right: 0 !important;
+            }
         }
     }
 }
+
 .popup-overlay {
     position: fixed;
     top: 0;
@@ -1445,40 +1583,56 @@
     align-items: center;
     justify-content: center;
     z-index: 999;
-  }
-  
-  .popup-content {
+}
+
+.popup-content {
     position: relative;
     background: white;
     padding: 20px;
     border-radius: 10px;
-    
+
     text-align: center;
-    .form-control{margin: 0 !important;}
+
+    .form-control {
+        margin: 0 !important;
+    }
+
     .card-title {
         text-align: left;
     }
-    .ico-sch{
+
+    .ico-sch {
         right: 17px !important;
     }
-    table{
-        th,td{
-            
-    border-right: 1px solid #C7CFE3 !important;
+
+    table {
+
+        th,
+        td {
+
+            border-right: 1px solid #C7CFE3 !important;
         }
     }
-    .close-btn{
+
+    .close-btn {
         position: absolute;
         top: 20px;
         right: 20px;
     }
-    .btn.hyuga{background-color: #1D75E1;}
-    .btn.chuljang{background-color: #219A8C;}
-  }
 
-  .datepicker-conts {
+    .btn.hyuga {
+        background-color: #1D75E1;
+    }
+
+    .btn.chuljang {
+        background-color: #219A8C;
+    }
+}
+
+.datepicker-conts {
     margin-bottom: 20px;
 }
+
 .datepicker-input {
     display: flex;
     justify-content: end;
@@ -1495,11 +1649,79 @@
     }
 }
 
-.schedule-zone{
+.schedule-zone {
     @include flex-layout(flex, stretch);
     height: calc(100% - 311px);
     gap: 4rem;
-    .fc-direction-ltr{
+
+    .boxs {
         width: 550px;
+
+        ul {
+            height: 100%;
+            overflow-y: auto;
+
+            li {
+                padding: 1rem;
+                border: 1px solid #C7CFE3;
+                border-radius: 1rem;
+                margin-bottom: 1rem;
+
+                &:last-child {
+                    margin-bottom: 0;
+                }
+
+                div {
+                    @include flex-layout(flex, center);
+                }
+            }
+        }
     }
+
+    .fc-direction-ltr {
+        width: calc(100% - 590px);
+    }
+}
+
+.tbl-wrap {
+    table.buseo {
+        tbody {
+            tr {
+                cursor: pointer;
+            }
+        }
+    }
+
+    th,
+    td {
+        // text-align: center !important;
+        font-size: 16px !important;
+    }
+
+    .status-approved {
+        color: #1D75E1;
+        font-weight: 700;
+    }
+
+    .status-pending {
+        color: #E92727;
+        font-weight: 700;
+    }
+
+    .status-green {
+        color: #219A8C;
+        font-weight: 700;
+    }
+
+    .expired td {
+        background-color: #F6F6F6;
+        /* 연회색 배경 */
+        filter: grayscale(50%);
+        opacity: 0.6;
+    }
+}
+
+.d-flex{
+    @include flex-layout(flex, center);
+    gap: 1rem;
 }
(파일 끝에 줄바꿈 문자 없음)
client/views/component/Popup/BuseoPopup.vue
--- client/views/component/Popup/BuseoPopup.vue
+++ client/views/component/Popup/BuseoPopup.vue
@@ -32,7 +32,7 @@
       <td>
         <button
           type="button"
-          class="btn sm secondary"
+          class="btn sm sm secondary"
           @click="selectPerson(item)"
         >
           선택
client/views/component/Popup/ChuljangListPopup.vue
--- client/views/component/Popup/ChuljangListPopup.vue
+++ client/views/component/Popup/ChuljangListPopup.vue
@@ -60,7 +60,7 @@
       <td>
         <button
           type="button"
-          class="btn sm secondary"
+          class="btn sm sm secondary"
           @click="selectPerson(item)"
         >
           선택
client/views/component/Popup/CodePopup.vue
--- client/views/component/Popup/CodePopup.vue
+++ client/views/component/Popup/CodePopup.vue
@@ -43,7 +43,7 @@
       <td>
         <button
           type="button"
-          class="btn sm secondary"
+          class="btn sm sm secondary"
           @click="selectPerson(item)"
         >
           선택
client/views/component/Popup/CorpCarPopup.vue
--- client/views/component/Popup/CorpCarPopup.vue
+++ client/views/component/Popup/CorpCarPopup.vue
@@ -28,7 +28,7 @@
                   <td>{{ item.vhcty }}</td>
                   <td>{{ item.vhcleNo }}</td>
                   <td>
-                    <button type="button" class="btn sm secondary" @click="selectCar(item)" :disabled="isVhcleSelected(item.vhcleId)">선택</button>
+                    <button type="button" class="btn sm sm secondary" @click="selectCar(item)" :disabled="isVhcleSelected(item.vhcleId)">선택</button>
                   </td>
                 </tr>
               </tbody>
client/views/component/Popup/CorpCardPopup.vue
--- client/views/component/Popup/CorpCardPopup.vue
+++ client/views/component/Popup/CorpCardPopup.vue
@@ -26,7 +26,7 @@
                 <tr v-for="(item, idx) in items" :key="idx">
                   <td>{{ item.cardNm }}</td>
                   <td>
-                    <button type="button" class="btn sm secondary" @click="selectCard(item)" :disabled="isSelected(item.cardId)">선택</button>
+                    <button type="button" class="btn sm sm secondary" @click="selectCard(item)" :disabled="isSelected(item.cardId)">선택</button>
                   </td>
                 </tr>
               </tbody>
client/views/component/Popup/HrPopup.vue
--- client/views/component/Popup/HrPopup.vue
+++ client/views/component/Popup/HrPopup.vue
@@ -32,7 +32,7 @@
                   <td>{{ item.deptNm }}</td>
                   <td>{{ item.userNm }}</td>
                   <td>
-                    <button type="button" class="btn sm secondary" @click="selectPerson(item)" :disabled="isUserSelected(item.userId)">선택</button>
+                    <button type="button" class="btn sm sm secondary" @click="selectPerson(item)" :disabled="isUserSelected(item.userId)">선택</button>
                   </td>
                 </tr>
               </tbody>
client/views/component/Popup/PaySlipPopup.vue
--- client/views/component/Popup/PaySlipPopup.vue
+++ client/views/component/Popup/PaySlipPopup.vue
@@ -4,7 +4,7 @@
       <div class="card">
         <div class="card-body">
           <div class="buttons" style="margin: 3rem 0 1rem 0;">
-        <button type="submit" class="btn tertiary xsm">다운로드<VerticalAlignBottomOutlined /></button>
+        <button type="submit" class="btn sm tertiary xsm">다운로드<VerticalAlignBottomOutlined /></button>
       </div>
           <div class="form-card ">
             <h2>임금명세서</h2>
client/views/component/Popup/ReturnPopup.vue
--- client/views/component/Popup/ReturnPopup.vue
+++ client/views/component/Popup/ReturnPopup.vue
@@ -6,8 +6,8 @@
                       <h2 class="card-title">반려 사유</h2>
                       <textarea name="" id="" class="form-control "></textarea>
                       <div class="buttons">
-              <button class="btn primary"  type="submit">등록</button>
-              <button class="btn tertiary"  type="submit" @click="$emit('close')">취소</button>
+              <button class="btn sm primary"  type="submit">등록</button>
+              <button class="btn sm tertiary"  type="submit" @click="$emit('close')">취소</button>
               </div>
                     </div>
                   </div>
client/views/component/Table.vue
--- client/views/component/Table.vue
+++ client/views/component/Table.vue
@@ -6,28 +6,28 @@
       <div class="d-flex justify-content-end gap-1">
               <button
                 type="button"
-                class="btn btn-outline-primary"
+                class="btn sm btn-outline-primary"
                 @click="requestApproval"
               >
                 승인요청
               </button>
               <button
                 type="button"
-                class="btn btn-outline-secondary"
+                class="btn sm btn-outline-secondary"
                 @click="registerLeave"
               >
                 등록
               </button>
               <button
                 type="button"
-                class="btn btn-outline-success"
+                class="btn sm btn-outline-success"
                 @click="saveChanges"
               >
                 저장
               </button>
               <button
                 type="button"
-                class="btn btn-outline-danger"
+                class="btn sm btn-outline-danger"
                 @click="deletePending"
               >
                 삭제
client/views/pages/Employee/ChuljangList.vue
--- client/views/pages/Employee/ChuljangList.vue
+++ client/views/pages/Employee/ChuljangList.vue
@@ -26,18 +26,18 @@
                     <option v-for="month in months" :key="month" :value="month">{{ month }}</option>
                   </select>
                 </div>
-                <button type="button" class="btn btn-outline-secondary col-xxl-5 col-xl-3"
+                <button type="button" class="btn sm btn-outline-secondary col-xxl-5 col-xl-3"
                   @click="filterData">조회</button>
 
               </div>
               <div class="d-flex justify-content-end ">
-                <button type="button" class="btn btn-outline-primary" @click="registerLeave">
+                <button type="button" class="btn sm btn-outline-primary" @click="registerLeave">
                   등록
                 </button>
-                <button type="button" class="btn btn-outline-success" @click="saveChanges">
+                <button type="button" class="btn sm btn-outline-success" @click="saveChanges">
                   저장
                 </button>
-                <button type="button" class="btn btn-outline-secondary" @click="deletePending">
+                <button type="button" class="btn sm btn-outline-secondary" @click="deletePending">
                   삭제
                 </button>
               </div>
client/views/pages/Employee/HyugaList.vue
--- client/views/pages/Employee/HyugaList.vue
+++ client/views/pages/Employee/HyugaList.vue
@@ -8,13 +8,13 @@
       <!-- 해당년도 연차 수 -->
       <!-- 전체 -->
       <div class="col-xxl-2 col-md-3 mb-2">
-        <button type="button" class="btn btn-secondary ">
+        <button type="button" class="btn sm btn-secondary ">
           전체 <span class="badge bg-white text-secondary">12개</span>
         </button>
-        <button type="button" class="btn btn-success ">
+        <button type="button" class="btn sm btn-success ">
           사용 <span class="badge bg-white text-success">1개</span>
         </button>
-        <button type="button" class="btn btn-warning">
+        <button type="button" class="btn sm btn-warning">
           미사용 <span class="badge bg-white text-warning">1개</span>
         </button>
       </div>
@@ -39,12 +39,12 @@
                     <option v-for="month in months" :key="month" :value="month">{{ month }}</option>
                   </select>
                 </div>
-                <button type="button" class="btn btn-outline-secondary col-xxl-5 col-xl-3"
+                <button type="button" class="btn sm btn-outline-secondary col-xxl-5 col-xl-3"
                   @click="filterData">조회</button>
 
               </div>
               <div class="d-flex justify-content-end ">
-                <button type="button" class="btn btn-outline-secondary" @click="deletePending">
+                <button type="button" class="btn sm btn-outline-secondary" @click="deletePending">
                   삭제
                 </button>
               </div>
client/views/pages/Employee/HyugaOk.vue
--- client/views/pages/Employee/HyugaOk.vue
+++ client/views/pages/Employee/HyugaOk.vue
@@ -8,13 +8,13 @@
       <!-- 해당년도 연차 수 -->
       <!-- 전체 -->
       <div class="col-xxl-2 col-md-3 mb-2">
-        <button type="button" class="btn btn-secondary ">
+        <button type="button" class="btn sm btn-secondary ">
           전체 <span class="badge bg-white text-secondary">12개</span>
         </button>
-        <button type="button" class="btn btn-success ">
+        <button type="button" class="btn sm btn-success ">
           사용 <span class="badge bg-white text-success">1개</span>
         </button>
-        <button type="button" class="btn btn-warning">
+        <button type="button" class="btn sm btn-warning">
           미사용 <span class="badge bg-white text-warning">1개</span>
         </button>
       </div>
@@ -39,12 +39,12 @@
                     <option v-for="month in months" :key="month" :value="month">{{ month }}</option>
                   </select>
                 </div>
-                <button type="button" class="btn btn-outline-secondary col-xxl-5 col-xl-3"
+                <button type="button" class="btn sm btn-outline-secondary col-xxl-5 col-xl-3"
                   @click="filterData">조회</button>
 
               </div>
               <div class="d-flex justify-content-end ">
-                <button type="button" class="btn btn-outline-secondary" @click="deletePending">
+                <button type="button" class="btn sm btn-outline-secondary" @click="deletePending">
                   삭제
                 </button>
               </div>
client/views/pages/Manager/approval/ChuljangBokmyeong.vue
--- client/views/pages/Manager/approval/ChuljangBokmyeong.vue
+++ client/views/pages/Manager/approval/ChuljangBokmyeong.vue
@@ -84,9 +84,9 @@
               </form>
       </div>
       <div class="buttons">
-        <button class="btn primary" type="submit">승인</button>
-        <button class="btn  btn-red" type="submit" @click="showPopup = true">반려</button>
-        <button class="btn tertiary " type="submit">목록</button>
+        <button class="btn sm primary" type="submit">승인</button>
+        <button class="btn sm  btn-red" type="submit" @click="showPopup = true">반려</button>
+        <button class="btn sm tertiary " type="submit">목록</button>
       </div>
       <ReturnPopup v-if="showPopup" @close="showPopup = false" />
 
client/views/pages/Manager/approval/ChuljangPumui.vue
--- client/views/pages/Manager/approval/ChuljangPumui.vue
+++ client/views/pages/Manager/approval/ChuljangPumui.vue
@@ -87,9 +87,9 @@
         </form>
       </div>
       <div class="buttons">
-        <button class="btn primary" type="submit">승인</button>
-        <button class="btn  btn-red" type="submit" @click="showPopup = true">반려</button>
-        <button class="btn tertiary " type="submit">목록</button>
+        <button class="btn sm primary" type="submit">승인</button>
+        <button class="btn sm  btn-red" type="submit" @click="showPopup = true">반려</button>
+        <button class="btn sm tertiary " type="submit">목록</button>
       </div>
       <ReturnPopup v-if="showPopup" @close="showPopup = false" />
 
client/views/pages/Manager/approval/Hyuga.vue
--- client/views/pages/Manager/approval/Hyuga.vue
+++ client/views/pages/Manager/approval/Hyuga.vue
@@ -65,9 +65,9 @@
               </form>
       </div>
             <div class="buttons">
-              <button class="btn primary"  type="button">승인</button>
-              <button class="btn  btn-red"  type="button" @click="showPopup = true">반려</button>
-                <button class="btn tertiary "  type="button">목록</button>
+              <button class="btn sm primary"  type="button">승인</button>
+              <button class="btn sm  btn-red"  type="button" @click="showPopup = true">반려</button>
+                <button class="btn sm tertiary "  type="button">목록</button>
               </div>
               <ReturnPopup v-if="showPopup" @close="showPopup = false"/>
       </div>
client/views/pages/Manager/approval/approvalRequest.vue
--- client/views/pages/Manager/approval/approvalRequest.vue
+++ client/views/pages/Manager/approval/approvalRequest.vue
@@ -60,7 +60,7 @@
         </div>
         <Pagenation :search="request" @onChange="fnChangeCurrentPage" />
         <div class="buttons">
-          <button type="button" class="btn sm primary" @click="showOptions = true"> 등록 </button>
+          <button type="button" class="btn sm sm primary" @click="showOptions = true"> 등록 </button>
         </div>
       </div>
     </div>
@@ -71,8 +71,8 @@
         <div class="card-body">
           <h2 class="card-title">신청종류선택</h2>
           <div class="buttons">
-            <button class="btn hyuga" @click="goToPage('휴가')">휴가신청</button>
-            <button class="btn chuljang" @click="goToPage('출장')">출장신청</button>
+            <button class="btn sm hyuga" @click="goToPage('휴가')">휴가신청</button>
+            <button class="btn sm chuljang" @click="goToPage('출장')">출장신청</button>
           </div>
         </div>
       </div>
client/views/pages/Manager/asset/CardInfoManagement.vue
--- client/views/pages/Manager/asset/CardInfoManagement.vue
+++ client/views/pages/Manager/asset/CardInfoManagement.vue
@@ -44,11 +44,11 @@
           <div class=" sch-form-wrap title-wrap">
             <h3><img :src="h3icon" alt="">카드 정보</h3>
             <div class="buttons" style="margin: 0;">
-              <button type="submit" class="btn sm tertiary" @click="resetCard">신규</button>
-              <button type="reset" class="btn sm secondary" @click="insertByUpdateCard">
+              <button type="submit" class="btn sm sm tertiary" @click="resetCard">신규</button>
+              <button type="reset" class="btn sm sm secondary" @click="insertByUpdateCard">
                 {{ buttonText }}
               </button>
-              <button type="delete" class="btn sm btn-red" @click="deleteByUseAtCard">삭제</button>
+              <button type="delete" class="btn sm sm btn-red" @click="deleteByUseAtCard">삭제</button>
             </div>
           </div>
           <form class="row g-3 pt-3  needs-validation " @submit.prevent="handleSubmit" style="margin-bottom: 3rem;">
client/views/pages/Manager/asset/VhcleInfoManagement.vue
--- client/views/pages/Manager/asset/VhcleInfoManagement.vue
+++ client/views/pages/Manager/asset/VhcleInfoManagement.vue
@@ -45,11 +45,11 @@
           <div class=" sch-form-wrap title-wrap">
             <h3><img :src="h3icon" alt="">차량 정보</h3>
             <div class="buttons" style="margin: 0;">
-              <button type="submit" class="btn sm tertiary" @click="resetVhcle">신규</button>
-              <button type="reset" class="btn sm secondary" @click="insertByUpdateVhcle">
+              <button type="submit" class="btn sm sm tertiary" @click="resetVhcle">신규</button>
+              <button type="reset" class="btn sm sm secondary" @click="insertByUpdateVhcle">
                 {{ buttonText }}
               </button>
-              <button type="delete" class="btn sm btn-red" @click="deleteByUseAtVhcle">삭제</button>
+              <button type="delete" class="btn sm sm btn-red" @click="deleteByUseAtVhcle">삭제</button>
             </div>
           </div>
           <form class="row g-3 pt-3  needs-validation " @submit.prevent="handleSubmit" style="margin-bottom: 3rem;">
client/views/pages/Manager/attendance/BokmyeongInsert.vue
--- client/views/pages/Manager/attendance/BokmyeongInsert.vue
+++ client/views/pages/Manager/attendance/BokmyeongInsert.vue
@@ -116,8 +116,8 @@
 
       </form>
       <div class="buttons">
-        <button type="submit" class="btn primary">등록</button>
-        <button type="reset" class="btn secondary">취소</button>
+        <button type="submit" class="btn sm primary">등록</button>
+        <button type="reset" class="btn sm secondary">취소</button>
       </div>
 
     </div>
client/views/pages/Manager/attendance/ChuljangBokmyeongDetail.vue
--- client/views/pages/Manager/attendance/ChuljangBokmyeongDetail.vue
+++ client/views/pages/Manager/attendance/ChuljangBokmyeongDetail.vue
@@ -47,12 +47,12 @@
               </form>
       </div>
       <div class="buttons">
-              <button class="btn primary"  type="submit">승인</button>
-              <button class="btn  btn-red"  type="submit" @click="showPopup = true">반려</button>
-              <button class="btn  btn-red"  type="submit">신청취소</button>
-                <button class="btn secondary"  type="submit">재신청</button>
-                <button class="btn secondary"  type="submit">수정</button>
-                <button class="btn tertiary "  type="submit">목록</button>
+              <button class="btn sm primary"  type="submit">승인</button>
+              <button class="btn sm  btn-red"  type="submit" @click="showPopup = true">반려</button>
+              <button class="btn sm  btn-red"  type="submit">신청취소</button>
+                <button class="btn sm secondary"  type="submit">재신청</button>
+                <button class="btn sm secondary"  type="submit">수정</button>
+                <button class="btn sm tertiary "  type="submit">목록</button>
               </div>
               <ReturnPopup v-if="showPopup" @close="showPopup = false"/>
 
client/views/pages/Manager/attendance/ChuljangDetailAll.vue
--- client/views/pages/Manager/attendance/ChuljangDetailAll.vue
+++ client/views/pages/Manager/attendance/ChuljangDetailAll.vue
@@ -91,11 +91,11 @@
         </form>
       </div>
       <div class="buttons">
-        <button v-if="sanctnStatus === 'waiting' && sanctnStatus !== 'approved'" type="button" class="btn btn-red" @click="deleteData">신청취소</button>
-        <button v-if="sanctnStatus === 'waiting'" type="button" class="btn secondary" @click="fnMoveTo('edit', pageId)">수정</button>
-        <button v-if="sanctnStatus === 'rejected'" type="button" class="btn secondary" @click="fnMoveTo('edit', pageId)">재신청</button>
-        <button v-if="sanctnStatus === 'approved'" type="button" class="btn primary" @click="fnMoveTo('plus', pageId)">복명서 작성</button>
-        <button type="button" class="btn tertiary" @click="fnMoveTo('list')">목록</button>
+        <button v-if="sanctnStatus === 'waiting' && sanctnStatus !== 'approved'" type="button" class="btn sm btn-red" @click="deleteData">신청취소</button>
+        <button v-if="sanctnStatus === 'waiting'" type="button" class="btn sm secondary" @click="fnMoveTo('edit', pageId)">수정</button>
+        <button v-if="sanctnStatus === 'rejected'" type="button" class="btn sm secondary" @click="fnMoveTo('edit', pageId)">재신청</button>
+        <button v-if="sanctnStatus === 'approved'" type="button" class="btn sm primary" @click="fnMoveTo('plus', pageId)">복명서 작성</button>
+        <button type="button" class="btn sm tertiary" @click="fnMoveTo('list')">목록</button>
       </div>
     </div>
   </div>
client/views/pages/Manager/attendance/ChuljangInsert.vue
--- client/views/pages/Manager/attendance/ChuljangInsert.vue
+++ client/views/pages/Manager/attendance/ChuljangInsert.vue
@@ -3,127 +3,146 @@
     <div class="card-body">
       <h2 class="card-title">출장 신청</h2>
       <p class="require"><img :src="require" alt=""> 필수입력</p>
-      <form class="row g-3 pt-3  needs-validation" @submit.prevent="handleSubmit">
-        <div class="col-12">
-          <label for="where" class="form-label">
-            <p>출장구분 <span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <select class="form-select" style="width: 110px;" v-model="bsrpInfo.bsrpSe">
-            <option v-for="(item, idx) of cmmnCodes.bsrpCodeList" :key="idx" :value="item.code">{{ item.codeNm }}</option>
-          </select>
-        </div>
-        <div class="col-12">
-          <label for="bsrpInfo.bsrpPlace" class="form-label">
-            <p>출장지 <span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <input type="text" class="form-control" id="bsrpInfo.bsrpPlace" v-model="bsrpInfo.bsrpPlace" />
-        </div>
-        <div class="col-12">
-          <label for="bsrpInfo.bsrpPurps" class="form-label">
-            <p>출장목적 <span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <input type="text" class="form-control" id="bsrpInfo.bsrpPurps" v-model="bsrpInfo.bsrpPurps" />
-        </div>
-        <div class="col-12">
-          <label for="where" class="form-label">
-            <p>출장기간 <span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <div class="d-flex gap-1">
-            <input type="date" class="form-control" id="bsrpInfo.bgnde" v-model="bsrpInfo.bgnde" />
-            <input type="text" class="form-control" id="bsrpInfo.beginHour" v-model="bsrpInfo.beginHour" style="width: 100px;" placeholder="시" />
-            <input type="text" class="form-control" id="bsrpInfo.beginMnt" v-model="bsrpInfo.beginMnt" style="width: 100px;" placeholder="분" />
-          </div>
-          <div class="d-flex gap-1">
-            <input type="date" class="form-control" id="bsrpInfo.endde" v-model="bsrpInfo.endde" />
-            <input type="text" class="form-control" id="bsrpInfo.endHour" v-model="bsrpInfo.endHour" style="width: 100px;" placeholder="시" />
-            <input type="text" class="form-control" id="bsrpInfo.endMnt" v-model="bsrpInfo.endMnt" style="width: 100px;" placeholder="분" />
-          </div>
-        </div>
-        <div class="col-12">
-          <label for="totalDays" class="form-label">일수</label>
-          <input type="text" class="form-control" id="totalDays" v-model="totalDays" readonly />
-        </div>
-        <div class="col-12">
-          <label for="purpose" class="form-label">동행자 <button type="button" title="추가" @click="isOpenNmprModal = true">
-              <PlusCircleFilled />
-            </button>
-          </label>
-          <HrPopup v-if="isOpenNmprModal" :lists="bsrpInfo.bsrpNmprList" @onSelected="fnAddNmpr" @close="isOpenNmprModal = false" />
-          <div class="approval-container">
-            <div v-for="(item, idx) of bsrpInfo.bsrpNmprList" :key="idx" class="d-flex addapproval">
-              <div class="d-flex align-items-center border-x">
-                <p>{{ item.triperNm }} {{ item.clsfNm }}</p>
-                <button type="button" @click="fnDelNmpr(idx)" @mousedown.stop>
-                  <CloseOutlined />
+      <div class="tbl-wrap">
+        <table class="tbl data">
+          <tbody>
+            <tr>
+              <th>출장구분 <span class="require"><img :src="require" alt=""></span></th>
+              <td>
+                <select class="form-select sm" style="width: 110px;" v-model="bsrpInfo.bsrpSe">
+                  <option v-for="(item, idx) of cmmnCodes.bsrpCodeList" :key="idx" :value="item.code">
+                    {{ item.codeNm }}
+                  </option>
+                </select>
+              </td>
+              <th>일수</th>
+              <td>
+                <input type="text" class="form-control sm" v-model="totalDays" readonly />
+              </td>
+            </tr>
+
+            <tr>
+              <th>출장지 <span class="require"><img :src="require" alt=""></span></th>
+              <td>
+                <input type="text" class="form-control sm" v-model="bsrpInfo.bsrpPlace" />
+              </td>
+               <th>출장목적 <span class="require"><img :src="require" alt=""></span></th>
+              <td>
+                <input type="text" class="form-control sm" v-model="bsrpInfo.bsrpPurps" />
+              </td>
+            </tr>
+
+            <tr>
+              <th>출장기간 <span class="require"><img :src="require" alt=""></span></th>
+              <td colspan="3">
+                <div class="d-flex">
+                  <div class="d-flex gap-1 mb-1">
+                    <input type="date" class="form-control sm" v-model="bsrpInfo.bgnde" />
+                    <input type="text" class="form-control sm" style="width: 100px;" placeholder="시" v-model="bsrpInfo.beginHour" />
+                    <input type="text" class="form-control sm" style="width: 100px;" placeholder="분" v-model="bsrpInfo.beginMnt" />
+                  </div>
+                  <div class="d-flex gap-1">
+                    <input type="date" class="form-control sm" v-model="bsrpInfo.endde" />
+                    <input type="text" class="form-control sm" style="width: 100px;" placeholder="시" v-model="bsrpInfo.endHour" />
+                    <input type="text" class="form-control sm" style="width: 100px;" placeholder="분" v-model="bsrpInfo.endMnt" />
+                  </div>
+                </div>
+              </td>
+            </tr>
+
+
+            <tr>
+              <th>
+                동행자
+              </th>
+              <td>
+                <button type="button" title="추가" @click="isOpenNmprModal = true">
+                  <PlusCircleFilled />
                 </button>
-              </div>
-            </div>
-          </div>
-        </div>
-        <div class="col-12">
-          <label for="member" class="form-label">
-            <p>승인자 <span class="require"><img :src="require" alt=""></span></p>
-            <button type="button" title="추가" @click="isOpenSanctnModal = true">
-              <PlusCircleFilled />
-            </button>
-          </label>
-          <HrPopup v-if="isOpenSanctnModal" :lists="bsrpCnsul.sanctnList" @onSelected="fnAddSanctn" @close="isOpenSanctnModal = false" />
-          <div class="approval-container">
-            <SanctnList v-model:lists="bsrpCnsul.sanctnList" @delSanctn="fnDelSanctn" />
-          </div>
-        </div>
-        <div class="col-12">
-          <label for="prvonsh" class="form-label">
-            <p>품의내용 <span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <EditorComponent v-model:contents="bsrpCnsul.cn" />
-        </div>
-        <div class="col-12">
-          <label for="purpose" class="form-label">
-            <span>법인카드</span>
-            <button type="button" title="추가" @click="isOpenCardModal = true">
-              <PlusCircleFilled />
-            </button>
-          </label>
-          <CorpCardPopup v-if="isOpenCardModal" :bsrpInfo="bsrpInfo" :lists="cprCardList" @close="isOpenCardModal = false" @onSelected="fnAddCard" />
-          <div class="approval-container">
-            <div v-for="(card, idx) in cprCardList" :key="idx" class="d-flex gap-2 addapproval mb-2">
-              <form class="d-flex align-items-center border-x">
-                <p>{{ card.cardNm }}</p>
-                <button type="button" @click="fnDelCard(idx)" class="delete-button">
-                  <CloseOutlined />
+                <HrPopup v-if="isOpenNmprModal" :lists="bsrpInfo.bsrpNmprList" @onSelected="fnAddNmpr" @close="isOpenNmprModal = false" />
+                <div class="approval-container">
+                  <div v-for="(item, idx) of bsrpInfo.bsrpNmprList" :key="idx" class="d-flex addapproval">
+                    <div class="d-flex align-items-center border-x">
+                      <p>{{ item.triperNm }} {{ item.clsfNm }}</p>
+                      <button type="button" @click="fnDelNmpr(idx)" @mousedown.stop>
+                        <CloseOutlined />
+                      </button>
+                    </div>
+                  </div>
+                </div>
+              </td>
+              <th>
+                승인자 <span class="require"><img :src="require" alt=""></span>
+              </th>
+              <td>
+                <button type="button" title="추가" @click="isOpenSanctnModal = true">
+                  <PlusCircleFilled />
                 </button>
-              </form>
-            </div>
-          </div>
-        </div>
-        <div class="col-12 border-x">
-          <label for="purpose" class="form-label">
-            <span>법인차량</span>
-            <button type="button" title="추가" @click="isOpenVhcleModal = true">
-              <PlusCircleFilled />
-            </button>
-          </label>
-          <CorpCarPopup v-if="isOpenVhcleModal" :bsrpInfo="bsrpInfo" :lists="cprVhcleList" @close="isOpenVhcleModal = false" @onSelected="fnAddVhcle" />
-          <div class="approval-container">
-            <div v-for="(vhcle, idx) in cprVhcleList" :key="idx" class="d-flex gap-2 addapproval mb-2">
-              <p>{{ vhcle.vhcleNm }}</p>
-              <select class="form-select" v-model="vhcle.drverId">
-                <option value="" disabled hidden>운전자 선택</option>
-                <option :value="userInfo.userId">{{ userInfo.userNm }}</option>
-                <option v-for="(item, idx) of bsrpInfo.bsrpNmprList" :key="idx" :value="item.userId">{{ item.userNm }}</option>
-              </select>
-              <button type="button" @click="fnDelVhcle(idx)" class="delete-button">
-                <CloseOutlined />
-              </button>
-            </div>
-          </div>
-        </div>
-      </form>
+                <HrPopup v-if="isOpenSanctnModal" :lists="bsrpCnsul.sanctnList" @onSelected="fnAddSanctn" @close="isOpenSanctnModal = false" />
+                <div class="approval-container">
+                  <SanctnList v-model:lists="bsrpCnsul.sanctnList" @delSanctn="fnDelSanctn" />
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <th>품의내용 <span class="require"><img :src="require" alt=""></span></th>
+              <td colspan="3"  style="height: calc(100% - 550px);">
+                <EditorComponent v-model:contents="bsrpCnsul.cn" />
+              </td>
+            </tr>
+            <tr>
+              <th>
+                법인카드
+                <button type="button" title="추가" @click="isOpenCardModal = true">
+                  <PlusCircleFilled />
+                </button>
+              </th>
+              <td>
+                <CorpCardPopup v-if="isOpenCardModal" :bsrpInfo="bsrpInfo" :lists="cprCardList" @close="isOpenCardModal = false" @onSelected="fnAddCard" />
+                <div class="approval-container">
+                  <div v-for="(card, idx) in cprCardList" :key="idx" class="d-flex gap-2 addapproval mb-2">
+                    <form class="d-flex align-items-center border-x">
+                      <p>{{ card.cardNm }}</p>
+                      <button type="button" @click="fnDelCard(idx)" class="delete-button">
+                        <CloseOutlined />
+                      </button>
+                    </form>
+                  </div>
+                </div>
+              </td>
+              <th>
+                법인차량
+                <button type="button" title="추가" @click="isOpenVhcleModal = true">
+                  <PlusCircleFilled />
+                </button>
+              </th>
+              <td>
+                <CorpCarPopup v-if="isOpenVhcleModal" :bsrpInfo="bsrpInfo" :lists="cprVhcleList" @close="isOpenVhcleModal = false" @onSelected="fnAddVhcle" />
+                <div class="approval-container">
+                  <div v-for="(vhcle, idx) in cprVhcleList" :key="idx" class="d-flex gap-2 addapproval mb-2">
+                    <p>{{ vhcle.vhcleNm }}</p>
+                    <select class="form-select" v-model="vhcle.drverId">
+                      <option value="" disabled hidden>운전자 선택</option>
+                      <option :value="userInfo.userId">{{ userInfo.userNm }}</option>
+                      <option v-for="(item, idx) of bsrpInfo.bsrpNmprList" :key="idx" :value="item.userId">
+                        {{ item.userNm }}
+                      </option>
+                    </select>
+                    <button type="button" @click="fnDelVhcle(idx)" class="delete-button">
+                      <CloseOutlined />
+                    </button>
+                  </div>
+                </div>
+              </td>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+
       <div class="buttons">
-        <button type="button" class="btn primary" @click="fnSave">신청</button>
-        <button v-if="$isEmpty(pageId)" type="button" class="btn secondary" @click="fnMoveTo('list')">목록</button>
-        <button v-else type="button" class="btn secondary" @click="fnMoveTo('view', pageId)">취소</button>
+        <button type="button" class="btn sm sm primary" @click="fnSave">신청</button>
+        <button v-if="$isEmpty(pageId)" type="button" class="btn sm sm secondary" @click="fnMoveTo('list')">목록</button>
+        <button v-else type="button" class="btn sm sm secondary" @click="fnMoveTo('view', pageId)">취소</button>
       </div>
     </div>
   </div>
client/views/pages/Manager/attendance/HyugaDetail.vue
--- client/views/pages/Manager/attendance/HyugaDetail.vue
+++ client/views/pages/Manager/attendance/HyugaDetail.vue
@@ -51,10 +51,10 @@
         </form>
       </div>
       <div class="buttons">
-        <button v-if="detailData.confmAt === 'W' || detailData.confmAt === 'R'" class="btn btn-red" type="button" @click="deleteData">신청취소</button>
-        <button v-if="detailData.confmAt === 'W'" class="btn secondary" type="button" @click="fnMoveTo('edit', pageId)">수정</button>
-        <button v-if="detailData.confmAt === 'R'" class="btn secondary" type="button" @click="fnMoveTo('edit', pageId)">재신청</button>
-        <button class="btn tertiary" type="button" @click="fnMoveTo('list')">목록</button>
+        <button v-if="detailData.confmAt === 'W' || detailData.confmAt === 'R'" class="btn sm btn-red" type="button" @click="deleteData">신청취소</button>
+        <button v-if="detailData.confmAt === 'W'" class="btn sm secondary" type="button" @click="fnMoveTo('edit', pageId)">수정</button>
+        <button v-if="detailData.confmAt === 'R'" class="btn sm secondary" type="button" @click="fnMoveTo('edit', pageId)">재신청</button>
+        <button class="btn sm tertiary" type="button" @click="fnMoveTo('list')">목록</button>
       </div>
       <ReturnPopup v-if="showPopup" @close="showPopup = false" />
     </div>
client/views/pages/Manager/attendance/HyugaInsert.vue
--- client/views/pages/Manager/attendance/HyugaInsert.vue
+++ client/views/pages/Manager/attendance/HyugaInsert.vue
@@ -3,63 +3,78 @@
     <div class="card-body">
       <h2 class="card-title">휴가 신청</h2>
       <p class="require"><img :src="require" alt=""> 필수입력</p>
-      <div class="row g-3 needs-validation">
-        <div class="col-12">
-          <label for="inputName5" class="form-label">
-            <p>유형<span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <select class="form-select" style="max-width: 200px;" v-model="editData.vcatnKnd" @change="fnOnchangeVcatnKnd">
-            <option value="" disabled hidden>유형 선택</option>
-            <option v-for="(item, idx) of vcatnKnds" :key="idx" :value="item.code">{{ item.codeNm }}</option>
-          </select>
-        </div>
-        <div class="col-12">
-          <label for="bgnde" class="form-label">
-            <p>시작일<span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <div class="d-flex gap-1">
-            <input type="date" class="form-control" id="bgnde" v-model="editData.bgnde" @keydown="preventKeyboard" />
-            <input type="text" class="form-control" placeholder="시" style="width: 100px;" v-model="editData.beginHour" readonly />
-            <input type="text" class="form-control" placeholder="분" style="width: 100px;" v-model="editData.beginMnt" readonly />
-          </div>
-        </div>
-        <div class="col-12">
-          <label for="endde" class="form-label">
-            <p>종료일<span class="require"><img :src="require" alt=""></span></p>
-          </label>
-          <div class="d-flex gap-1">
-            <input type="date" class="form-control" id="endde" v-model="editData.endde" :readonly="dayCnt === 0.5" @keydown="preventKeyboard" />
-            <input type="text" class="form-control" placeholder="시" style="width: 100px;" v-model="editData.endHour" readonly />
-            <input type="text" class="form-control" placeholder="분" style="width: 100px;" v-model="editData.endMnt" readonly />
-          </div>
-        </div>
-        <div class="col-12">
-          <label for="totalDays" class="form-label">사용 휴가일</label>
-          <input type="text" class="form-control" id="totalDays" v-model="totalDays" readonly />
-        </div>
-        <div class="col-12">
-          <label for="member" class="form-label">
-            <span>승인자<span class="require"><img :src="require" alt=""></span></span>
-            <button type="button" title="추가" @click="isOpenModal = true">
-              <PlusCircleFilled />
-            </button>
-          </label>
-          <HrPopup v-if="isOpenModal" :lists="editData.sanctnList" @onSelected="fnAddSanctn" @close="isOpenModal = false" />
-          <div class="approval-container">
-            <SanctnList v-model:lists="editData.sanctnList" @delSanctn="fnDelSanctn" />
-          </div>
-        </div>
-        <div class="col-12 border-x hyuga">
-          <label for="prvonsh" class="form-label">세부사항</label>
-          <div>
-            <EditorComponent v-model:contents="editData.detailCn" />
-          </div>
-        </div>
+      <div class="tbl-wrap">
+        <table class="tbl data">
+          <tbody>
+            <tr>
+              <th scope="row">
+                유형 <span class="require"><img :src="require" alt=""></span>
+              </th>
+              <td>
+                <select class="form-select sm" style="max-width: 200px;" v-model="editData.vcatnKnd" @change="fnOnchangeVcatnKnd">
+                  <option value="" disabled hidden>유형 선택</option>
+                  <option v-for="(item, idx) of vcatnKnds" :key="idx" :value="item.code">{{ item.codeNm }}</option>
+                </select>
+              </td>
+            </tr>
+            <tr>
+              <th scope="row">
+                시작일 <span class="require"><img :src="require" alt=""></span>
+              </th>
+              <td>
+                <div class="d-flex gap-1">
+                  <input type="date" class="form-control sm" v-model="editData.bgnde" @keydown="preventKeyboard" />
+                  <input type="text" class="form-control sm" placeholder="시" style="width: 100px;" v-model="editData.beginHour" readonly />
+                  <input type="text" class="form-control sm" placeholder="분" style="width: 100px;" v-model="editData.beginMnt" readonly />
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <th scope="row">
+                종료일 <span class="require"><img :src="require" alt=""></span>
+              </th>
+              <td>
+                <div class="d-flex gap-1">
+                  <input type="date" class="form-control sm" v-model="editData.endde" :readonly="dayCnt === 0.5" @keydown="preventKeyboard" />
+                  <input type="text" class="form-control sm" placeholder="시" style="width: 100px;" v-model="editData.endHour" readonly />
+                  <input type="text" class="form-control sm" placeholder="분" style="width: 100px;" v-model="editData.endMnt" readonly />
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <th scope="row">사용 휴가일</th>
+              <td>
+                <input type="text" class="form-control sm" v-model="totalDays" readonly />
+              </td>
+            </tr>
+            <tr>
+              <th scope="row">
+                승인자 <span class="require"><img :src="require" alt=""></span>
+              </th>
+              <td>
+                <button type="button" title="추가" @click="isOpenModal = true">
+                  <PlusCircleFilled />
+                </button>
+                <HrPopup v-if="isOpenModal" :lists="editData.sanctnList" @onSelected="fnAddSanctn" @close="isOpenModal = false" />
+                <div class="approval-container">
+                  <SanctnList v-model:lists="editData.sanctnList" @delSanctn="fnDelSanctn" />
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <th scope="row">세부사항</th>
+              <td>
+                <EditorComponent v-model:contents="editData.detailCn" />
+              </td>
+            </tr>
+          </tbody>
+        </table>
       </div>
+
       <div class="buttons">
-        <button type="button" class="btn btn-red" @click="fnRecord">이전 승인자 불러오기</button>
-        <button type="button" class="btn primary" @click="fnSave">신청</button>
-        <button type="button" class="btn tertiary" @click="fnMoveTo('list')">취소</button>
+        <button type="button" class="btn sm btn-red" @click="fnRecord">이전 승인자 불러오기</button>
+        <button type="button" class="btn sm primary" @click="fnSave">신청</button>
+        <button type="button" class="btn sm tertiary" @click="fnMoveTo('list')">취소</button>
       </div>
     </div>
   </div>
client/views/pages/Manager/financial/employeeSalaryDetail.vue
--- client/views/pages/Manager/financial/employeeSalaryDetail.vue
+++ client/views/pages/Manager/financial/employeeSalaryDetail.vue
@@ -162,7 +162,7 @@
 
     </div>
     <div class="buttons">
-        <button type="submit" class="btn tertiary">목록</button>
+        <button type="submit" class="btn sm tertiary">목록</button>
       </div>
     </div>
     
client/views/pages/Manager/financial/employeeSalaryInsert.vue
--- client/views/pages/Manager/financial/employeeSalaryInsert.vue
+++ client/views/pages/Manager/financial/employeeSalaryInsert.vue
@@ -54,8 +54,8 @@
 
           </form>
           <div class="buttons" style="margin: 10px 0;">
-        <button type="submit" class="btn btn-red sm">지난달 정보 불러오기</button>
-        <button type="submit" class="btn primary sm" @click="showPopup = true">출장비 조회</button>
+        <button type="submit" class="btn sm btn-red sm">지난달 정보 불러오기</button>
+        <button type="submit" class="btn sm primary sm" @click="showPopup = true">출장비 조회</button>
         <ChuljangListPopup v-if="showPopup" @close="showPopup = false" @select="addApproval" />
       </div>
           <form class="row g-3  needs-validation" @submit.prevent="handleSubmit">
@@ -251,8 +251,8 @@
         </div>
       </form>
     <div class="buttons">
-        <button type="submit" class="btn primary">등록</button>
-        <button type="submit" class="btn tertiary">취소</button>
+        <button type="submit" class="btn sm primary">등록</button>
+        <button type="submit" class="btn sm tertiary">취소</button>
       </div>
     </div>
     
client/views/pages/Manager/financial/salaryList.vue
--- client/views/pages/Manager/financial/salaryList.vue
+++ client/views/pages/Manager/financial/salaryList.vue
@@ -38,7 +38,7 @@
                 <td>{{ formatCurrency(item.actual) }}</td>
                 <td>{{ item.payDate }}</td>
                 <td>
-                  <button class="btn secondary xsm" @click="showPopup = true">보기</button>
+                  <button class="btn sm secondary xsm" @click="showPopup = true">보기</button>
                 </td>
               </tr>
             </tbody>
client/views/pages/Manager/hr/buseoManagement.vue
--- client/views/pages/Manager/hr/buseoManagement.vue
+++ client/views/pages/Manager/hr/buseoManagement.vue
@@ -11,7 +11,7 @@
                 <img :src="arrow" alt="" class="arrow">
                 <img :src="topmenuicon" alt="">
                 <p>{{ menu.title }} </p>
-                <button @click="addSubMenu(index)" class="btn xsm secondary">sub  +</button>
+                <button @click="addSubMenu(index)" class="btn sm xsm secondary">sub  +</button>
               </summary>
               <ul>
                 <li class="submenu" v-for="(submenu, subIndex) in menu.submenus" :key="subIndex">
@@ -32,9 +32,9 @@
           <div class=" sch-form-wrap title-wrap">
             <h3><img :src="h3icon" alt="">부서 정보</h3>
             <div class="buttons" style="margin: 0;">
-              <button type="submit" class="btn sm tertiary">초기화</button>
-              <button type="reset" class="btn sm secondary">등록</button>
-              <button type="delete" class="btn sm btn-red">삭제</button>
+              <button type="submit" class="btn sm sm tertiary">초기화</button>
+              <button type="reset" class="btn sm sm secondary">등록</button>
+              <button type="delete" class="btn sm sm btn-red">삭제</button>
             </div>
           </div>
           <form class="row g-3 pt-3  needs-validation detail" @submit.prevent="handleSubmit"
@@ -62,8 +62,8 @@
           <div class=" sch-form-wrap title-wrap">
             <h3><img :src="h3icon" alt="">부서 사용자</h3>
             <div class="buttons" style="margin: 0;">
-              <button type="reset" class="btn sm secondary" @click="showPopup = true">사용자 추가</button>
-              <button type="delete" class="btn sm btn-red" @click="removeMember(index)">사용자 삭제</button>
+              <button type="reset" class="btn sm sm secondary" @click="showPopup = true">사용자 추가</button>
+              <button type="delete" class="btn sm sm btn-red" @click="removeMember(index)">사용자 삭제</button>
             </div>
             <HrPopup v-if="showPopup" @close="showPopup = false" @select="addMember"/>
           </div>
client/views/pages/Manager/hr/hrDetail.vue
--- client/views/pages/Manager/hr/hrDetail.vue
+++ client/views/pages/Manager/hr/hrDetail.vue
@@ -91,9 +91,9 @@
             </div>
           </form>
           <div class="buttons">
-            <button type="delete" class="btn sm btn-red">탈퇴</button>
-        <button type="reset" class="btn sm secondary">수정</button>
-        <button type="submit" class="btn sm tertiary">목록</button>
+            <button type="delete" class="btn sm sm btn-red">탈퇴</button>
+        <button type="reset" class="btn sm sm secondary">수정</button>
+        <button type="submit" class="btn sm sm tertiary">목록</button>
       </div>
     </div>
 
client/views/pages/Manager/hr/hrInsert.vue
--- client/views/pages/Manager/hr/hrInsert.vue
+++ client/views/pages/Manager/hr/hrInsert.vue
@@ -117,8 +117,8 @@
             </div>
           </form>
           <div class="buttons">
-        <button type="reset" class="btn sm primary">등록</button>
-        <button type="submit" class="btn sm tertiary">취소</button>
+        <button type="reset" class="btn sm sm primary">등록</button>
+        <button type="submit" class="btn sm sm tertiary">취소</button>
       </div>
     </div>
 
client/views/pages/Manager/hr/hrManagement.vue
--- client/views/pages/Manager/hr/hrManagement.vue
+++ client/views/pages/Manager/hr/hrManagement.vue
@@ -46,7 +46,7 @@
       <td>{{ item.name }}</td>
       <td>{{ item.joinDate }}</td>
       <td>
-        <button class="btn tertiary xsm" @click.stop="resetPassword(item)">초기화</button>
+        <button class="btn sm tertiary xsm" @click.stop="resetPassword(item)">초기화</button>
       </td>
               </tr>
             </tbody>
@@ -73,7 +73,7 @@
           </ul>
         </div>
         <div class="buttons">
-                <button class="btn primary"  type="submit"  @click="goToPage('등록')">등록</button>
+                <button class="btn sm primary"  type="submit"  @click="goToPage('등록')">등록</button>
               </div>
       </div>
     </div>
client/views/pages/Manager/system/commonCodeDetail.vue
--- client/views/pages/Manager/system/commonCodeDetail.vue
+++ client/views/pages/Manager/system/commonCodeDetail.vue
@@ -40,9 +40,9 @@
 
           </form>
           <div class="buttons">
-        <button type="submit" class="btn btn-red">삭제</button>
-        <button type="submit" class="btn secondary">수정</button>
-        <button type="reset" class="btn tertiary">목록</button>
+        <button type="submit" class="btn sm btn-red">삭제</button>
+        <button type="submit" class="btn sm secondary">수정</button>
+        <button type="reset" class="btn sm tertiary">목록</button>
       </div>
     </div>
 
client/views/pages/Manager/system/commonCodeInsert.vue
--- client/views/pages/Manager/system/commonCodeInsert.vue
+++ client/views/pages/Manager/system/commonCodeInsert.vue
@@ -53,8 +53,8 @@
 
           </form>
           <div class="buttons">
-        <button type="submit" class="btn primary">등록</button>
-        <button type="reset" class="btn tertiary">취소</button>
+        <button type="submit" class="btn sm primary">등록</button>
+        <button type="reset" class="btn sm tertiary">취소</button>
       </div>
     </div>
 
client/views/pages/Manager/system/commonCodeManagement.vue
--- client/views/pages/Manager/system/commonCodeManagement.vue
+++ client/views/pages/Manager/system/commonCodeManagement.vue
@@ -82,7 +82,7 @@
   </div>
       <!-- End Table -->
       <div class="buttons">
-    <button type="button" class="btn sm primary" @click="goToPage('등록') ">
+    <button type="button" class="btn sm sm primary" @click="goToPage('등록') ">
       등록
     </button>
 
client/views/pages/Manager/system/userManagement.vue
--- client/views/pages/Manager/system/userManagement.vue
+++ client/views/pages/Manager/system/userManagement.vue
@@ -28,9 +28,9 @@
           <div class=" sch-form-wrap title-wrap">
             <h3><img :src="h3icon" alt="">권한 정보</h3>
             <div class="buttons" style="margin: 0;">
-              <button type="submit" class="btn sm tertiary">신규</button>
-              <button type="reset" class="btn sm secondary">등록</button>
-              <button type="delete" class="btn sm btn-red">삭제</button>
+              <button type="submit" class="btn sm sm tertiary">신규</button>
+              <button type="reset" class="btn sm sm secondary">등록</button>
+              <button type="delete" class="btn sm sm btn-red">삭제</button>
             </div>
           </div>
           <form class="row g-3 pt-3  needs-validation detail" @submit.prevent="handleSubmit"
client/views/pages/Manager/task/meetingDetail.vue
--- client/views/pages/Manager/task/meetingDetail.vue
+++ client/views/pages/Manager/task/meetingDetail.vue
@@ -85,9 +85,9 @@
         </div>
       </form><!-- End Multi Columns Form -->
       <div class="buttons">
-        <button type="submit" class="btn secondary">수정</button>
-        <button type="submit" class="btn btn-red">삭제</button>
-        <button type="reset" class="btn tertiary">목록</button>
+        <button type="submit" class="btn sm secondary">수정</button>
+        <button type="submit" class="btn sm btn-red">삭제</button>
+        <button type="reset" class="btn sm tertiary">목록</button>
       </div>
     </div>
   </div>
client/views/pages/Manager/task/meetingInsert.vue
--- client/views/pages/Manager/task/meetingInsert.vue
+++ client/views/pages/Manager/task/meetingInsert.vue
@@ -113,8 +113,8 @@
         </div>
       </form><!-- End Multi Columns Form -->
       <div class="buttons">
-        <button type="submit" class="btn primary">등록</button>
-        <button type="reset" class="btn tertiary">취소</button>
+        <button type="submit" class="btn sm primary">등록</button>
+        <button type="reset" class="btn sm tertiary">취소</button>
       </div>
     </div>
   </div>
client/views/pages/Manager/task/projectDetail.vue
--- client/views/pages/Manager/task/projectDetail.vue
+++ client/views/pages/Manager/task/projectDetail.vue
@@ -65,9 +65,9 @@
 
       </form>
       <div class="buttons">
-        <button type="reset" class="btn secondary">수정</button>
-        <button type="delete" class="btn btn-red">삭제</button>
-        <button type="submit" class="btn tertiary">목록</button>
+        <button type="reset" class="btn sm secondary">수정</button>
+        <button type="delete" class="btn sm btn-red">삭제</button>
+        <button type="submit" class="btn sm tertiary">목록</button>
       </div>
       <div class=" sch-form-wrap title-wrap"><h3><img :src="h3icon" alt="">회의록 정보</h3></div>
       <div class="cost-statue">
@@ -133,7 +133,7 @@
         </ul>
       </div>
   <div class="buttons">
-    <button type="insert" class="btn primary sm" @click="goToPage('회의록 등록')">회의록 등록</button>
+    <button type="insert" class="btn sm primary sm" @click="goToPage('회의록 등록')">회의록 등록</button>
   </div>
 
     </div>
client/views/pages/Manager/task/projectInsert.vue
--- client/views/pages/Manager/task/projectInsert.vue
+++ client/views/pages/Manager/task/projectInsert.vue
@@ -138,8 +138,8 @@
 
       </form>
       <div class="buttons">
-        <button type="submit" class="btn primary">등록</button>
-        <button type="reset" class="btn tertiary">취소</button>
+        <button type="submit" class="btn sm primary">등록</button>
+        <button type="reset" class="btn sm tertiary">취소</button>
       </div>
     </div>
   </div>
client/views/pages/Manager/task/projectTuibDetail.vue
--- client/views/pages/Manager/task/projectTuibDetail.vue
+++ client/views/pages/Manager/task/projectTuibDetail.vue
@@ -74,7 +74,7 @@
         
         </div>
         <div class="buttons">
-            <button type="submit" class="btn tertiary">목록</button>
+            <button type="submit" class="btn sm tertiary">목록</button>
           </div>
     </div>
 </div>
client/views/pages/User/Join.vue
--- client/views/pages/User/Join.vue
+++ client/views/pages/User/Join.vue
@@ -63,7 +63,7 @@
                 </div>
               </div>
               <div class="col-12">
-                <button class="btn btn-primary w-100"  type="submit">계정 생성</button>
+                <button class="btn sm btn-primary w-100"  type="submit">계정 생성</button>
               </div>
               <div class="col-12">
                 <p class="small mb-0">이미 계정이 있으신가요?  <router-link to="Login">로그인</router-link></p>
client/views/pages/User/Login.vue
--- client/views/pages/User/Login.vue
+++ client/views/pages/User/Login.vue
@@ -20,7 +20,7 @@
                   </div>
 
                   <div class="box">
-                    <button class="btn" type="submit"><img :src="loginIcon" alt="로그인 아이콘">로그인</button>
+                    <button class="btn sm sm" type="submit"><img :src="loginIcon" alt="로그인 아이콘">로그인</button>
                   </div>
                 </form>
               </div>
client/views/pages/User/MyPage.vue
--- client/views/pages/User/MyPage.vue
+++ client/views/pages/User/MyPage.vue
@@ -99,8 +99,8 @@
 
         </form>
         <div class="buttons">
-          <button class="btn btn-red " type="submit">회원탈퇴</button>
-          <button class="btn secondary " type="submit">수정</button>
+          <button class="btn sm btn-red " type="submit">회원탈퇴</button>
+          <button class="btn sm secondary " type="submit">수정</button>
         </div>
       </div>
     </div>
client/views/pages/main/Main.vue
--- client/views/pages/main/Main.vue
+++ client/views/pages/main/Main.vue
@@ -108,13 +108,23 @@
             </div>
         </div>
         <div class="schedule-zone">
-            <GoogleCalendar />
             <div class="boxs">
                 <div class="title">
-                    <h2>오늘의 주요 일정</h2>
+                    <h2>오늘의 일정</h2>
                     <!-- <div class="sub">더보기<img :src="moreicon" alt=""></div> -->
                 </div>
+                <ul>
+                    <li v-for="(event, index) in todayEvents" :key="index">
+                       <div>
+                           <p class="category">{{ event.category }}</p>
+                            <p class="name">{{ event.name }}</p>
+                            <p class="position">{{ event.position }}</p>
+                            <p class="department">{{ event.department }}</p>
+                       </div>
+                    </li>
+                </ul>
             </div>
+            <GoogleCalendar />
         </div>
     </div>
 </template>
@@ -145,6 +155,12 @@
                 { category: '내부', name: '프로젝트2', startdate: '2025-05-01', enddate: '2025-04-30', status: '진행전' },
                 { category: '내부', name: '프로젝트2', startdate: '2025-05-01', enddate: '2025-04-30', status: '진행전' },
                 { category: '국가과제', name: '프로젝트2', startdate: '2025-05-01', enddate: '2025-04-30', status: '완료' }
+            ],
+            todayEvents: [
+            { name: '홍길동', position: '대리', department: '인사팀', category: '연차' },
+            { name: '김민수', position: '과장', department: '영업팀', category: '출장' },
+            { name: '이영희', position: '사원', department: '마케팅팀', category: '회의' },
+            { name: '박지훈', position: '팀장', department: '개발팀', category: '교육' },
             ]
         }
     },
Add a comment
List