류윤주 류윤주 03-28
250328 류윤주 수정
@ddc473858400840a3720371795a3da43ffdda6a9
 
client/resources/img/page/background.jpg (Binary) (added)
+++ client/resources/img/page/background.jpg
Binary file is not shown
 
client/resources/img/test_img.jpg (Binary) (deleted)
--- client/resources/img/test_img.jpg
Binary file is not shown
client/resources/scss/admin/content.scss
--- client/resources/scss/admin/content.scss
+++ client/resources/scss/admin/content.scss
@@ -1,6 +1,6 @@
 .content-wrap {
     width: 100%;
-    height: calc(100% - 48px);
+    height: 100%;
     padding: 3rem;
 
 
@@ -67,6 +67,7 @@
                 }
             }
 
+
             .form-select {
                 width: 200px;
             }
@@ -76,6 +77,8 @@
             }
 
             .form-group {
+                width: calc(100% - 180px);
+
                 .form-control {
                     max-width: 100%;
                 }
@@ -85,10 +88,12 @@
                 }
             }
         }
+
         >div:nth-child(1),
         div:nth-child(2) {
             padding-top: 0;
         }
+
         >div:last-child {
             grid-column: 1/3;
             padding-bottom: 0;
@@ -97,22 +102,35 @@
 
         // 자식 div 개수가 짝수일 때 마지막 div의 스타일을 변경
         &:has(> div:nth-child(even):last-child) {
-            > div{
+            >div {
                 padding-left: 3rem;
             }
-            > div:last-child {
+
+            >div:last-child {
                 grid-column: unset;
             }
-            > div:nth-last-child(2) {
+
+            >div:nth-last-child(2) {
                 border-bottom: 0;
             }
         }
 
-        .check-area{
+        .check-area {
             @include flex-layout(flex, center);
             gap: 3rem;
         }
 
+
+    }
+
+    
+    .title-zone {
+        @include flex-layout(flex, center, space-between);
+        margin-bottom: 3rem;
+
+        .section-title {
+            margin-bottom: 0;
+        }
     }
 
     >.content-zone {
@@ -129,7 +147,6 @@
                 overflow-y: auto;
 
                 .top-zone {
-
                     >div {
                         margin-bottom: 5rem;
 
@@ -230,20 +247,23 @@
                     width: calc(100% - 325px - 5rem);
                     height: 100%;
 
-                    .form-content{
+                    .form-content {
                         padding: 0;
-                        >div{
+
+                        >div {
                             padding: 1rem;
                         }
+
                         >div:nth-child(2),
                         div:nth-child(4),
-                        div:nth-child(6){
+                        div:nth-child(6) {
                             padding-left: 3rem;
                         }
-                        >div:last-child{
+
+                        >div:last-child {
                             align-items: flex-start;
                         }
-                        
+
                     }
                 }
 
@@ -272,4 +292,10 @@
     }
 
 
+}
+
+.content-wrap.main {
+    .content-zone {
+        height: 100%;
+    }
 }
(파일 끝에 줄바꿈 문자 없음)
client/resources/scss/admin/layout.scss
--- client/resources/scss/admin/layout.scss
+++ client/resources/scss/admin/layout.scss
@@ -1,13 +1,13 @@
 .admin-wrap {
     background-color: #eaeff4;
     display: grid;
-    grid-template-columns: clamp(260px, 16vw, 450px) minmax(1020px, 1fr);
-    grid-template-rows: auto minmax(860px, auto);
+    grid-template-columns: clamp(240px, 10vw, 450px) minmax(1020px, 1fr);
+    grid-template-rows: auto minmax(864px, auto);
     grid-template-areas:
         "sidebar header "
         "sidebar main ";
     height: 100%;
-    font-size: 1.8rem;
+    // font-size: 1.8rem;
 
 
     .admin-header {
@@ -39,49 +39,53 @@
         overflow-y: auto;
         
         .logo{
-            padding: 5rem 3rem;
+            padding: 1rem;
+            font-size: var(--tk-fz-title-lg);
+            font-weight: 700;
             text-align: center;
         }
 
         .info-wrap {
-            padding: 0 3rem;
+            background-color: var(--tk-gray-10);
 
             .info {
-                padding: 1.5rem;
-                background-color: var(--tk-gray-80);
-                color: #ffffff;
-                text-align: center;
-                border-radius: var(--tk-rd-12);
-
-                >p {
-                    margin-bottom: 1rem;
+                @include flex-layout(flex, center, space-between);
+                .info-name{
+                    padding: .8rem
                 }
-
-                button {
-                    padding: 0 1rem;
-                    font-size: 1.4rem;
-                }
-
-                >button:nth-of-type(1) {
-                    border-right: 1px solid var(--tk-white);
+                ul.info-btn{
+                    @include flex-layout(flex, center);
+                    li{
+                        @include flex-layout(flex, center, center);
+                        background-color: var(--tk-gray-20);
+                        padding: 1rem;
+                        border-left: 1px solid var(--tk-gray-30);
+                    }
                 }
             }
         }
-
-        ul {
-            padding: 5rem 0;
-
-            li {
-                cursor: pointer;
-                padding: 1rem 2rem;
-            }
-
-            li.sub-active {
-                background-color: var(--tk-primary);
-                color: var(--tk-white);
+        .menu-zone{
+            p{
+                font-size: var(--tk-fz-title-sm);
                 font-weight: 700;
+                text-align: center;
+                border-bottom: 3px solid var(--tk-gray-70);
+                padding: 1rem;
+            }
+            ul.side-menu {
+                li {
+                    cursor: pointer;
+                    padding: 1rem 2rem;
+                }
+    
+                li.sub-active {
+                    background-color: var(--tk-primary);
+                    color: var(--tk-white);
+                    font-weight: 700;
+                }
             }
         }
+        
 
     }
 
 
client/resources/scss/admin/login.scss (added)
+++ client/resources/scss/admin/login.scss
@@ -0,0 +1,80 @@
+// 나중에 사용자 관리자 로그인 분리
+
+.user-wrap{
+    width: 100%;
+    height: 100%;
+
+    .main-wrap{
+        width: 100%;
+        height: 100%;
+
+        .login-page{
+            width: 100%;
+            height: 100%;
+
+           >div{
+            width: 100%;
+            height: 100%;
+            @include flex-layout(flex, stretch,);
+
+            .background-img{
+                width: 50%;
+                height: 100%;
+                background-image: url(#{$url}/page/background.jpg);
+                background-position: bottom right 10%;
+                background-size: auto 100%;
+                position: relative;
+
+                p{
+                    font-size: var(--tk-fz-heading-md);
+                    color: #0b4dd1;
+                    font-weight: 700;
+                    position: absolute;
+                    top: 5rem;
+                    left: 5rem;
+                    // animation: bounce 1.5s infinite ease-in-out;
+                }
+            }
+
+            .login-wrap{
+                width: 50%;
+                height: 100%;
+                @include flex-layout(flex, center, center, column);
+                
+                .login{
+                    width: 500px;
+
+                    .login-title{
+                        font-size: var(--tk-fz-title-xxlg);
+                        font-weight: 700;
+                        text-align: center;
+                        margin-bottom: 5rem;
+                    }
+
+                    .form-group{
+                        margin-bottom: 2rem;
+
+                        label{
+                            font-weight: 700;
+                        }
+                    }
+    
+                    button{
+                        width: 100%;
+                    }
+                }
+            }
+           }
+        }
+    }
+}
+
+
+// @keyframes bounce {
+//     0%, 100% {
+//         transform: translateY(0);
+//     }
+//     50% {
+//         transform: translateY(-10px);
+//     }
+// }
client/resources/scss/common/base/_reset.scss
--- client/resources/scss/common/base/_reset.scss
+++ client/resources/scss/common/base/_reset.scss
@@ -15,7 +15,7 @@
 	font-size: $font-size-root;
 }
 body {
-	font-size: var(--#{$prefix}fz-body-md);
+	font-size: var(--#{$prefix}fz-body-sm);
 	overflow-x: hidden;
 }
 
client/resources/scss/common/component/_breadcrumbs.scss
--- client/resources/scss/common/component/_breadcrumbs.scss
+++ client/resources/scss/common/component/_breadcrumbs.scss
@@ -1,4 +1,0 @@
-.navigation-wrap{
-    padding: 1rem;
-    border-bottom: 1px solid var(--tk-gray-10);
-}
(파일 끝에 줄바꿈 문자 없음)
client/resources/scss/common/component/_buttons.scss
--- client/resources/scss/common/component/_buttons.scss
+++ client/resources/scss/common/component/_buttons.scss
@@ -5,7 +5,7 @@
   align-items: center;
   justify-content: center;
   gap: 0.4rem;
-  min-width: 120px;
+  min-width: 100px;
   width: auto;
   height: var(--#{$prefix}btn-h-#{$size});
   padding: 0 var(--#{$prefix}btn-px-#{$size});
@@ -254,6 +254,15 @@
   &.ico-help {
     background-image: url(#{$url}/component/common/ico_help_24.svg);
   }
+  &.ico-logout {
+    background-image: url(#{$url}/component/common/ico_logout_16.svg);
+  }
+  &.ico-go {
+    background-image: url(#{$url}/component/common/ico_go_20.svg);
+  }
+  &.ico-reset {
+    background-image: url(#{$url}/component/common/ico_refresh_16.svg);
+  }
   &.ico-page-prev {
     border-radius: 10rem;
     border: 0.1rem solid var(--#{$prefix}gray-40);
client/resources/scss/common/component/_modal.scss
--- client/resources/scss/common/component/_modal.scss
+++ client/resources/scss/common/component/_modal.scss
@@ -59,8 +59,8 @@
 		position: relative;
 		z-index: 1020;
 		width: 84.6rem;
-		height: calc(100% - $m * 2);
-		min-height: calc(100% - $m * 2);
+		height: calc(100% - var(--#{$prefix}spacer-20) * 2);
+		min-height: calc(100% - var(--#{$prefix}spacer-20) * 2);
 		margin: $m auto;
 		.modal-content {
 			@include flex-layout($ai: center, $fd: column);
client/resources/scss/common/component/_pagination.scss
--- client/resources/scss/common/component/_pagination.scss
+++ client/resources/scss/common/component/_pagination.scss
@@ -8,11 +8,24 @@
         border: 1px solid var(--tk-gray-30);
         border-radius: var(--tk-rd-10);
         margin: 0 .5rem;
+
+        &.active{
+            background-color: #1a7ed3;
+            border: 1px solid #1a7ed3;
+            color: var(--tk-white);
+        }
+
+        &.prev{
+            background-image: url(#{$url}/component/common/ico_arr_16_right_gray70.svg);
+            background-repeat: no-repeat;
+            background-position: center;
+            transform: scaleX(-1); 
+        }
+        &.next{
+            background-image: url(#{$url}/component/common/ico_arr_16_right_gray70.svg);
+            background-repeat: no-repeat;
+            background-position: center;
+        }
     }
     
-    a.active{
-        background-color: #1a7ed3;
-        border: 1px solid #1a7ed3;
-        color: var(--tk-white);
-    }
 }
(파일 끝에 줄바꿈 문자 없음)
client/resources/scss/common/component/_tables.scss
--- client/resources/scss/common/component/_tables.scss
+++ client/resources/scss/common/component/_tables.scss
@@ -33,6 +33,9 @@
 					text-align: left;
 				}
 			}
+			&.cursor{
+				cursor: pointer;
+			}
 		}
 		&.row {
 			border-top: 1px solid var(--#{$prefix}secondary-30);
client/resources/scss/main.scss
--- client/resources/scss/main.scss
+++ client/resources/scss/main.scss
@@ -9,3 +9,4 @@
 // admin
 @import "./admin/layout.scss";
 @import "./admin/content.scss";
+@import "./admin/login.scss";
client/views/component/modal/Modal.vue
--- client/views/component/modal/Modal.vue
+++ client/views/component/modal/Modal.vue
@@ -1,16 +1,20 @@
 <template>
-    <div class="modal-wrapper" v-if="showModal">
-        <div :class="['modal-container', className]">
-            <div class="modal-title">
-                <div class="flex justify-between align-center">
-                    <slot name="header"></slot>
+    <div  :class="['modal-back', { in: showModal }]">
+        <div :class="['modal', { in: showModal, shown: showModal }]">
+            <div class="modal-dialog">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <div class="flex justify-between align-center">
+                            <slot name="header"></slot>
+                        </div>
+                    </div>
+                    <div class="modal-conts">
+                        <slot></slot>
+                    </div>
+                    <div class="modal-btn flex justify-end">
+                        <slot name="footer"></slot>
+                    </div>
                 </div>
-            </div>
-            <div class="modal-content-monthly">
-                <slot></slot>
-            </div>
-            <div class="modal-end flex justify-end">
-                <slot name="footer"></slot>
             </div>
         </div>
     </div>
client/views/component/pagination/PaginationButton.vue
--- client/views/component/pagination/PaginationButton.vue
+++ client/views/component/pagination/PaginationButton.vue
@@ -9,13 +9,11 @@
         class="first-page"
         @click="excute(1)"
         title="첫 번째 페이지로 이동"
-        v-show="pagination.existPrevPage"
       ></a>
       <a
         class="prev"
         @click="excute(currentPage - 1)"
         title="이전 페이지로 이동"
-        v-show="currentPage != 1"
       ></a>
       <a
         @click="excute(i)"
@@ -28,13 +26,11 @@
         class="next"
         @click="excute(currentPage + 1)"
         title="다음 페이지로 이동"
-        v-show="currentPage != pagination.totalPageCount"
       ></a>
       <a
         class="end-page"
         @click="excute(pagination.totalPageCount)"
         title="마지막 페이지로 이동"
-        v-show="pagination.existNextPage"
       ></a>
     </div>
   </div>
client/views/component/userInfo/UserInfoInsert.vue
--- client/views/component/userInfo/UserInfoInsert.vue
+++ client/views/component/userInfo/UserInfoInsert.vue
@@ -1,354 +1,301 @@
 <template>
-  <details open class="form-table-style mb30">
-    <summary class="point-font2">
-      <p class="summary-style pl10">기본정보</p>
-    </summary>
-    <div class="pt10 pb10">
-      <table class="form-table">
-        <colgroup>
-          <col width="50%" />
-          <col width="50%" />
-        </colgroup>
-        <tr>
-          <td>
-            <div class="gd-12 pl0">
-              <label for="" class="form-title point-font2 mb10">아이디</label>
-              <input
-                type="text"
-                class="full-input"
-                v-model="mbrVO.lgnId"
-                ref="mbrId"
-                minlength="5"
-                maxlength="50"
-                placeholder="아이디를 입력하세요."
-                :disabled="mbrVO.mbrId != null"
-              />
-            </div>
-          </td>
-          <td>
-            <div class="gd-12 pr0">
-              <label for="" class="form-title point-font2 mb10">이름</label>
-              <input
-                type="text"
-                class="full-input"
-                ref="mbrNm"
-                v-model="mbrVO.mbrNm"
-                minlength="2"
-                maxlength="50"
-                placeholder="이름을 입력하세요."
-              />
-            </div>
-          </td>
-        </tr>
-        <tr>
-          <td>
-            <div class="gd-12 pl0">
-              <label for="" class="form-title point-font2 mb10">
-                <span v-if="pageId == null">비밀번호</span>
-                <span v-else>비밀번호변경</span>
-              </label>
-              <span
-                :class="{
-                  'inline-block ml20': true,
-                  'red-text': pswd.errorPwd,
-                }"
-              >
-                영문, 숫자, 특수문자를 조합하여 입력해주세요. (9자 이상)
-              </span>
-              <input
-                type="password"
-                class="full-input"
-                ref="newPswd"
-                v-model="pswd.newPswd"
-                minlength="9"
-                placeholder="영문, 숫자, 특수문자 조합 9자 이상"
-              />
-            </div>
-          </td>
-          <td>
-            <div class="gd-12 pr0">
-              <label for="" class="form-title point-font2 mb10">
-                <span v-if="pageId == null">비밀번호확인</span>
-                <span v-else>비밀번호변경 확인</span>
-              </label>
-              <input
-                type="password"
-                :class="{ 'full-input': true, 'err-border': pswd.pswdChk }"
-                ref="newPswdChk"
-                v-model="pswd.newPswdChk"
-                minlength="9"
-                :placeholder="
-                  pageId == null
-                    ? '비밀번호 확인을 입력하세요.'
-                    : '변경할 비밀번호 확인을 입력하세요'
-                "
-              />
-            </div>
-          </td>
-        </tr>
-        <tr v-if="showOpt.isMblNo || showOpt.isTelNo">
-          <td>
-            <div v-if="showOpt.isMblNo" class="gd-12 pl0">
-              <label for="" class="form-title point-font2 mb10">
-                휴대폰번호
-              </label>
-              <input
-                type="text"
-                class="full-input"
-                ref="mblTelno"
-                v-model="mbrVO.mblTelno"
-                minlength="10"
-                maxlength="11"
-                oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\.*)/g, '');"
-                placeholder="휴대폰번호를 입력하세요."
-              />
-            </div>
-          </td>
-          <td>
-            <div v-if="showOpt.isTelNo" class="gd-12 pr0">
-              <label for="" class="point-font2 mb10">전화번호</label>
-              <input
-                type="text"
-                class="full-input"
-                ref="telno"
-                v-model="mbrVO.telno"
-                oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\.*)/g, '');"
-                placeholder="전화번호를 입력하세요."
-              />
-            </div>
-          </td>
-        </tr>
-        <tr v-if="showOpt.isEml || showOpt.isSmsAgree || showOpt.isEmlAgree">
-          <td>
-            <div v-if="showOpt.isEml" class="gd-12 pl0">
-              <label for="" class="form-title point-font2 mb10">이메일</label>
-              <div class="flex align-center">
-                <div class="gd-3 pl0">
+  <div class="content-zone">
+    <div class="content">
+      <div class="scroll">
+        <div class="title-zone">
+          <div class="section-title">
+            <p>{{pageTit}}</p>
+          </div>
+          <PagiNavigationBar />
+        </div>
+        <div class="form-box">
+          <div class="form-box-title">
+            <p>기본정보</p>
+          </div>
+          <div class="form-content">
+            <div>
+                <label class="form-title">아이디</label>
+                <input
+                  type="text"
+                  class="form-control sm"
+                  v-model="mbrVO.lgnId"
+                  ref="mbrId"
+                  minlength="5"
+                  maxlength="50"
+                  placeholder="아이디를 입력하세요."
+                  :disabled="mbrVO.mbrId != null"
+                />
+              </div>
+              <div>
+                <label class="form-title">이름</label>
+                <input
+                  type="text"
+                  class="form-control sm"
+                  ref="mbrNm"
+                  v-model="mbrVO.mbrNm"
+                  minlength="2"
+                  maxlength="50"
+                  placeholder="이름을 입력하세요."
+                />
+              </div>
+              <div>
+                <label class="form-title">
+                  <p v-if="pageId == null">비밀번호</p>
+                  <p v-else>비밀번호변경</p>
+                </label>
+                <div class="form-group">
                   <input
-                    type="text"
-                    class="full-input"
-                    ref="emailId"
-                    v-model="email.id"
-                    oninput="this.value =
-                this.value.replace(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g, '');"
-                    placeholder="이메일을 입력하세요."
+                    type="password"
+                    class="form-control sm"
+                    ref="newPswd"
+                    v-model="pswd.newPswd"
+                    minlength="9"
+                    placeholder="영문, 숫자, 특수문자 조합 9자 이상"
                   />
-                </div>
-                <div>@</div>
-                <div class="gd-3">
-                  <select
-                    class="full-select"
-                    ref="emailSelect"
-                    v-model="email.select"
+                  <span
+                    :class="{
+                      'red-text': pswd.errorPwd,
+                    }"
                   >
-                    <option value="">선택하세요</option>
-                    <option value="self">직접입력</option>
-                    <option value="naver.com">naver.com</option>
-                    <option value="google.com">google.com</option>
-                    <option value="hanmail.net">hanmail.net</option>
-                    <option value="nate.com">nate.com</option>
-                    <option value="kakao.com">kakao.com</option>
-                  </select>
+                    영문, 숫자, 특수문자를 조합하여 입력해주세요. (9자 이상)
+                  </span>
                 </div>
-                <div class="gd-3" v-show="email.select == 'self'">
+              </div>
+              <div>
+                <label class="form-title">
+                  <p v-if="pageId == null">비밀번호확인</p>
+                  <p v-else>비밀번호변경 확인</p>
+                </label>
+                <input
+                  type="password"
+                  :class="{ 'form-control sm': true, 'error': pswd.pswdChk }"
+                  ref="newPswdChk"
+                  v-model="pswd.newPswdChk"
+                  minlength="9"
+                  :placeholder="
+                    pageId == null
+                      ? '비밀번호 확인을 입력하세요.'
+                      : '변경할 비밀번호 확인을 입력하세요'
+                  "
+                />
+              </div>
+              <template v-if="showOpt.isMblNo || showOpt.isTelNo">
+                <div v-if="showOpt.isMblNo">
+                  <label  class="form-title">휴대폰번호</label>
                   <input
                     type="text"
-                    class="full-input"
-                    ref="emailAddress"
-                    v-model="email.address"
+                    class="form-control sm"
+                    ref="mblTelno"
+                    v-model="mbrVO.mblTelno"
+                    minlength="10"
+                    maxlength="11"
+                    oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\.*)/g, '');"
+                    placeholder="휴대폰번호를 입력하세요."
                   />
                 </div>
-              </div>
-            </div>
-          </td>
-          <td>
-            <div class="gd-12 pr0">
-              <div class="flex">
-                <div v-if="showOpt.isSmsAgree" class="gd-6 pl0 pr0">
-                  <label for="" class="form-title point-font2 mb10">
-                    문자수신
-                  </label>
-                  <div class="flex align-center no-gutters">
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="smsRcptnAgreYn"
-                        id="smsY"
-                        class="mr5"
-                        v-model="mbrVO.smsRcptnAgreYn"
-                        value="Y"
-                      />
-                      <label for="smsY">수신</label>
-                    </div>
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="smsRcptnAgreYn"
-                        id="smsN"
-                        class="mr5"
-                        v-model="mbrVO.smsRcptnAgreYn"
-                        value="N"
-                      />
-                      <label for="smsN">미수신</label>
-                    </div>
-                  </div>
-                </div>
-                <div v-if="showOpt.isEmlAgree" class="gd-6 pl0 pr0">
-                  <label for="" class="form-title point-font2 mb10">
-                    이메일수신
-                  </label>
-                  <div class="flex align-center no-gutters">
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="emlRcptnAgreYn"
-                        id="y"
-                        class="mr5"
-                        v-model="mbrVO.emlRcptnAgreYn"
-                        value="Y"
-                      />
-                      <label for="y">수신</label>
-                    </div>
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="emlRcptnAgreYn"
-                        id="n"
-                        class="mr5"
-                        v-model="mbrVO.emlRcptnAgreYn"
-                        value="N"
-                      />
-                      <label for="n">미수신</label>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </td>
-        </tr>
-        <template v-if="showOpt.isAddr">
-          <tr>
-            <td>
-              <div class="gd-12 pl0">
-                <label for="" class="form-title point-font2 mb10">
-                  우편번호
-                </label>
-                <div class="flex align-center">
-                  <div class="gd-10 pl0">
-                    <input
-                      type="text"
-                      class="full-input"
-                      v-model="mbrVO.zip"
-                      readonly
-                    />
-                  </div>
-                  <div class="gd-2 pr0">
-                    <button
-                      :class="{
-                        'large-btn': true,
-                        'blue-border-btn': pageRole == 'adm',
-                        'green-border-btn': pageRole == 'portal',
-                      }"
-                      @click="fnZipSearch"
-                    >
-                      찾기
-                    </button>
-                  </div>
-                </div>
-              </div>
-            </td>
-            <td>
-              <div class="gd-12 pr0">
-                <label for="" class="form-title point-font2 mb10">주소</label>
+              </template>
+              <div v-if="showOpt.isTelNo">
+                <label class="form-title">전화번호</label>
                 <input
                   type="text"
-                  class="full-input"
-                  v-model="mbrVO.addr"
-                  readonly
+                  class="form-control sm"
+                  ref="telno"
+                  v-model="mbrVO.telno"
+                  oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\.*)/g, '');"
+                  placeholder="전화번호를 입력하세요."
                 />
               </div>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <div class="gd-12 pl0 pr0">
-                <label for="" class="form-title point-font2 mb10">
-                  상세주소
-                </label>
-                <input
-                  type="text"
-                  class="full-input"
-                  ref="daddr"
-                  v-model="mbrVO.daddr"
-                  placeholder="상세주소를 입력하세요."
-                />
-              </div>
-            </td>
-          </tr>
-        </template>
-        <tr v-if="showOpt.isStts && pageRole == 'adm'">
-          <td>
-            <div class="flex gd-12 pl0">
-              <div class="gd-6 pl0">
-                <label for="" class="form-title point-font2 mb10">
-                  회원상태
-                </label>
-                <select class="full-select" v-model="mbrVO.mbrStts">
-                  <option value="1">승인</option>
-                  <option value="2">승인대기</option>
-                  <option value="0">탈퇴</option>
-                  <option value="3">차단</option>
-                </select>
-              </div>
-              <div class="gd-6 pr0">
-                <label for="" class="point-font2 mb10">차단일</label>
-                <input
-                  type="date"
-                  class="full-input"
-                  ref="cntrlDt"
-                  v-model="mbrVO.cntrlDt"
-                />
-              </div>
-            </div>
-          </td>
-          <td>
-            <div class="gd-12 pr0">
-              <label for="" class="point-font2 mb10">차단 사유</label>
-              <input
-                type="text"
-                class="full-input"
-                ref="cntrlRsn"
-                v-model="mbrVO.cntrlRsn"
-                placeholder="차단 사유를 입력하세요."
-              />
-            </div>
-          </td>
-        </tr>
-        <tr v-if="showOpt.isAuthor && pageRole == 'adm'">
-          <td colspan="2">
-            <UserAuthorList :mbrVO="mbrVO" />
-          </td>
-        </tr>
-      </table>
-    </div>
-  </details>
+              <template v-if="showOpt.isEml || showOpt.isSmsAgree || showOpt.isEmlAgree">
+                <div v-if="showOpt.isEml" >
+                  <label  class="form-title">이메일</label>
+                  <div class="check-area">
+                      <input
+                        type="text"
+                        class="form-control sm"
+                        ref="emailId"
+                        v-model="email.id"
+                        oninput="this.value =
+                        this.value.replace(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/g, '');"
+                        placeholder="이메일을 입력하세요."
+                      />
+                      <div>@</div>
+                      <template v-if="email.select == 'self'">
+                        <input
+                          type="text"
+                          class="form-control sm"
+                          ref="emailAddress"
+                          v-model="email.address"
+                        />
+                      </template>
+                      <select
+                        class="form-select sm"
+                        ref="emailSelect"
+                        v-model="email.select"
+                      >
+                        <option value="">선택하세요</option>
+                        <option value="self">직접입력</option>
+                        <option value="naver.com">naver.com</option>
+                        <option value="google.com">google.com</option>
+                        <option value="hanmail.net">hanmail.net</option>
+                        <option value="nate.com">nate.com</option>
+                        <option value="kakao.com">kakao.com</option>
+                      </select>
+                  </div>
+                </div>
+                <div v-if="showOpt.isSmsAgree">
+                    <label class="form-title">
+                      문자수신
+                    </label>
+                    <div class="check-area">
+                      <div class="form-check">
+                        <input
+                          type="radio"
+                          name="smsRcptnAgreYn"
+                          id="smsY"
+                          class="mr5"
+                          v-model="mbrVO.smsRcptnAgreYn"
+                          value="Y"
+                        />
+                        <label for="smsY">수신</label>
+                      </div>
+                      <div class="form-check">
+                        <input
+                          type="radio"
+                          name="smsRcptnAgreYn"
+                          id="smsN"
+                          class="mr5"
+                          v-model="mbrVO.smsRcptnAgreYn"
+                          value="N"
+                        />
+                        <label for="smsN">미수신</label>
+                      </div>
+                    </div>
+                  </div>
+                  <div v-if="showOpt.isEmlAgree">
+                    <label class="form-title">
+                      이메일수신
+                    </label>
+                    <div class="check-area">
+                      <div class="form-check">
+                        <input
+                          type="radio"
+                          name="emlRcptnAgreYn"
+                          id="y"
+                          class="mr5"
+                          v-model="mbrVO.emlRcptnAgreYn"
+                          value="Y"
+                        />
+                        <label for="y">수신</label>
+                      </div>
+                      <div class="form-check">
+                        <input
+                          type="radio"
+                          name="emlRcptnAgreYn"
+                          id="n"
+                          class="mr5"
+                          v-model="mbrVO.emlRcptnAgreYn"
+                          value="N"
+                        />
+                        <label for="n">미수신</label>
+                      </div>
+                    </div>
+                  </div>
+              </template>
+              <template  v-if="showOpt.isAddr">
+                <div>
+                  <label class="form-title">우편번호</label>
+                      <input
+                        type="text"
+                        class="form-control sm"
+                        v-model="mbrVO.zip"
+                        readonly
+                      />
 
-  <div class="flex justify-end align-center no-gutters">
-    <div class="gd-1 mr10">
+                      <button
+                        :class="{
+                          'large-btn': true,
+                          'blue-border-btn': pageRole == 'adm',
+                          'green-border-btn': pageRole == 'portal',
+                        }"
+                        @click="fnZipSearch"
+                      >
+                        찾기
+                      </button>
+                </div>
+                <div>
+                  <label class="form-title">주소</label>
+                  <input
+                    type="text"
+                    class="form-control sm"
+                    v-model="mbrVO.addr"
+                    readonly
+                  />
+                </div>
+                <div>
+                  <label class="form-title">
+                    상세주소
+                  </label>
+                  <input
+                    type="text"
+                    class="form-control sm"
+                    ref="daddr"
+                    v-model="mbrVO.daddr"
+                    placeholder="상세주소를 입력하세요."
+                  />
+                </div>
+              </template>
+              <template  v-if="showOpt.isStts && pageRole == 'adm'">
+                <div>
+                      <label class="form-title">회원상태</label>
+                      <select class="form-select sm" v-model="mbrVO.mbrStts">
+                        <option value="1">승인</option>
+                        <option value="2">승인대기</option>
+                        <option value="0">탈퇴</option>
+                        <option value="3">차단</option>
+                      </select>
+                  </div>
+                  <div >
+                      <label class="form-title">차단일</label>
+                      <input
+                        type="date"
+                        class="form-control sm"
+                        ref="cntrlDt"
+                        v-model="mbrVO.cntrlDt"
+                      />
+                    </div>
+              </template>
+              <div>
+                <label class="form-title">차단 사유</label>
+                <input
+                  type="text"
+                  class="form-control sm"
+                  ref="cntrlRsn"
+                  v-model="mbrVO.cntrlRsn"
+                  placeholder="차단 사유를 입력하세요."
+                />
+              </div>
+              <div v-if="showOpt.isAuthor && pageRole == 'adm'">
+                  <UserAuthorList :mbrVO="mbrVO" />
+              </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+
+  <div class="btn-wrap">
       <button
         :class="{
-          'large-btn': true,
-          'blue-btn': pageRole == 'adm',
-          'green-btn': pageRole == 'portal',
+          'btn sm primary': true,
+          // 'blue-btn': pageRole == 'adm',
+          // 'green-btn': pageRole == 'portal',
         }"
         @click="fnUpsert"
       >
         {{ pageId == null ? "등록" : "수정" }}
       </button>
-    </div>
-    <div class="gd-1">
-      <button class="large-btn gray-btn" @click="fnCancel">취소</button>
-    </div>
+      <button class="btn sm tertiary" @click="fnCancel">취소</button>
   </div>
 </template>
 
@@ -359,6 +306,7 @@
   defaultUserInfoParams,
 } from "../../../resources/js/defaultUserInfoParams";
 import validateParams from "../../../resources/js/validateParams";
+import PagiNavigationBar from "../paginavigationbar/PagiNavigationBar.vue";
 
 // COMPONENT
 import UserAuthorList from "./UserAuthorList.vue";
@@ -372,7 +320,7 @@
 
 export default {
   mixins: [validateParams],
-  components: { UserAuthorList },
+  components: { UserAuthorList,PagiNavigationBar },
   props: {
     pageId: {
       type: String,
@@ -381,6 +329,10 @@
       type: String,
       default: "user",
     },
+    pageTit: {
+      type: String,
+      required: true,
+    },
   },
   data() {
     return {
client/views/component/userInfo/UserInfoView.vue
--- client/views/component/userInfo/UserInfoView.vue
+++ client/views/component/userInfo/UserInfoView.vue
@@ -1,282 +1,253 @@
 <template>
-  <details open class="form-table-style mb30">
-    <summary class="point-font2">
-      <p class="summary-style pl10">기본정보</p>
-    </summary>
-    <div class="pt10 pb10">
-      <table class="form-table">
-        <colgroup>
-          <col width="50%" />
-          <col width="50%" />
-        </colgroup>
-        <tr>
-          <td>
-            <div class="gd-12 pl0">
-              <label for="" class="form-title point-font2 mb10">아이디</label>
-              <input
-                type="text"
-                class="full-input"
-                v-model="mbrVO.lgnId"
-                disabled
-              />
+    <div class="content-zone">
+      <div class="content">
+        <div class="scroll">
+          <div class="title-zone">
+            <div class="section-title">
+              <p>{{pageTit}}</p>
             </div>
-          </td>
-          <td>
-            <div class="gd-12 pr0">
-              <label for="" class="form-title point-font2 mb10">이름</label>
-              <input
-                type="text"
-                class="full-input"
-                v-model="mbrVO.mbrNm"
-                disabled
-              />
-            </div>
-          </td>
-        </tr>
-        <tr v-if="showOpt.isMblNo || showOpt.isTelNo">
-          <td>
-            <div v-if="showOpt.isMblNo" class="gd-12 pl0">
-              <label for="" class="form-title point-font2 mb10">
-                휴대폰번호
-              </label>
-              <input
-                type="text"
-                class="full-input"
-                v-model="mbrVO.mblTelno"
-                disabled
-              />
-            </div>
-          </td>
-          <td>
-            <div v-if="showOpt.isTelNo" class="gd-12 pr0">
-              <label for="" class="point-font2 mb10">전화번호</label>
-              <input
-                type="text"
-                class="full-input"
-                v-model="mbrVO.telno"
-                disabled
-              />
-            </div>
-          </td>
-        </tr>
-        <tr v-if="showOpt.isEml || showOpt.isSmsAgree || showOpt.isEmlAgree">
-          <td>
-            <div v-if="showOpt.isEml" class="gd-12 pl0">
-              <label for="" class="form-title point-font2 mb10">이메일</label>
-              <div class="flex align-center">
-                <div class="gd-3 pl0">
-                  <input
-                    type="text"
-                    class="full-input"
-                    v-model="email.id"
-                    disabled
-                  />
-                </div>
-                <div>@</div>
-                <div class="gd-3">
-                  <select class="full-select" v-model="email.select" disabled>
-                    <option value="">선택하세요</option>
-                    <option value="self">직접입력</option>
-                    <option value="naver.com">naver.com</option>
-                    <option value="google.com">google.com</option>
-                    <option value="hanmail.net">hanmail.net</option>
-                    <option value="nate.com">nate.com</option>
-                    <option value="kakao.com">kakao.com</option>
-                  </select>
-                </div>
-                <div class="gd-3" v-show="email.select == 'self'">
-                  <input
-                    type="text"
-                    class="full-input"
-                    v-model="email.address"
-                    disabled
-                  />
-                </div>
+            <PagiNavigationBar />
+          </div>
+          <div class="form-box">
+              <div class="form-box-title">
+                <p>기본정보</p>
               </div>
-            </div>
-          </td>
-          <td>
-            <div class="gd-12 pr0">
-              <div class="flex">
-                <div v-if="showOpt.isSmsAgree" class="gd-6 pl0 pr0">
-                  <label for="" class="form-title point-font2 mb10">
-                    문자수신
-                  </label>
-                  <div class="flex align-center no-gutters">
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="smsRcptnAgreYn"
-                        id="smsY"
-                        class="mr5"
-                        v-model="mbrVO.smsRcptnAgreYn"
-                        value="Y"
-                        disabled
-                      />
-                      <label for="smsY">수신</label>
-                    </div>
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="smsRcptnAgreYn"
-                        id="smsN"
-                        class="mr5"
-                        v-model="mbrVO.smsRcptnAgreYn"
-                        value="N"
-                        disabled
-                      />
-                      <label for="smsN">미수신</label>
-                    </div>
-                  </div>
+              <div class="form-content">
+                <div>
+                  <label class="form-title">아이디</label>
+                  <p>{{ mbrVO.lgnId }}</p>
+                  <!-- <input
+                    type="text"
+                    class="form-control sm"
+                    v-model="mbrVO.lgnId"
+                    disabled
+                  /> -->
                 </div>
-                <div v-if="showOpt.isEmlAgree" class="gd-6 pl0 pr0">
-                  <label for="" class="form-title point-font2 mb10">
-                    이메일수신
-                  </label>
-                  <div class="flex align-center no-gutters">
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="emlRcptnAgreYn"
-                        id="y"
-                        class="mr5"
-                        v-model="mbrVO.emlRcptnAgreYn"
-                        value="Y"
-                        disabled
-                      />
-                      <label for="y">수신</label>
-                    </div>
-                    <div class="gd-4">
-                      <input
-                        type="radio"
-                        name="emlRcptnAgreYn"
-                        id="n"
-                        class="mr5"
-                        v-model="mbrVO.emlRcptnAgreYn"
-                        value="N"
-                        disabled
-                      />
-                      <label for="n">미수신</label>
-                    </div>
-                  </div>
+                <div>
+                  <label class="form-title">이름</label>
+                  <p>{{ mbrVO.mbrNm }}</p>
+                  <!-- <input
+                    type="text"
+                    class="form-control sm"
+                    v-model="mbrVO.mbrNm"
+                    disabled
+                  /> -->
                 </div>
-              </div>
-            </div>
-          </td>
-        </tr>
-        <template v-if="showOpt.isAddr">
-          <tr>
-            <td>
-              <div class="gd-12 pl0">
-                <label for="" class="form-title point-font2 mb10">
-                  우편번호
-                </label>
-                <div class="flex align-center">
-                  <div class="gd-10 pl0 pr0">
-                    <input
+                <template v-if="showOpt.isMblNo || showOpt.isTelNo">
+                  <div v-if="showOpt.isMblNo">
+                    <label for="" class="form-title">
+                      휴대폰번호
+                    </label>
+                    <p>{{ mbrVO.mblTelno }}</p>
+                    <!-- <input
                       type="text"
-                      class="full-input"
-                      v-model="mbrVO.zip"
+                      class="form-control sm"
+                      v-model="mbrVO.mblTelno"
                       disabled
-                    />
+                    /> -->
                   </div>
-                </div>
-              </div>
-            </td>
-            <td>
-              <div class="gd-12 pr0">
-                <label for="" class="form-title point-font2 mb10">주소</label>
-                <input
-                  type="text"
-                  class="full-input"
-                  v-model="mbrVO.addr"
-                  disabled
-                />
-              </div>
-            </td>
-          </tr>
-          <tr>
-            <td colspan="2">
-              <div class="gd-12 pl0 pr0">
-                <label for="" class="form-title point-font2 mb10">
-                  상세주소
-                </label>
-                <input
-                  type="text"
-                  class="full-input"
-                  v-model="mbrVO.daddr"
-                  disabled
-                />
-              </div>
-            </td>
-          </tr>
-        </template>
-        <tr v-if="showOpt.isStts && pageRole == 'adm'">
-          <td>
-            <div class="flex gd-12 pl0">
-              <div class="gd-6 pl0">
-                <label for="" class="form-title point-font2 mb10">
-                  회원상태
-                </label>
-                <select class="full-select" v-model="mbrVO.mbrStts" disabled>
-                  <option value="1">승인</option>
-                  <option value="2">승인대기</option>
-                  <option value="0">탈퇴</option>
-                  <option value="3">차단</option>
-                </select>
-              </div>
-              <div class="gd-6 pr0">
-                <label for="" class="point-font2 mb10">차단일</label>
-                <input
-                  type="date"
-                  class="full-input"
-                  v-model="mbrVO.cntrlDt"
-                  disabled
-                />
-              </div>
-            </div>
-          </td>
-          <td>
-            <div class="gd-12 pr0">
-              <label for="" class="point-font2 mb10">차단 사유</label>
-              <input
-                type="text"
-                class="full-input"
-                v-model="mbrVO.cntrlRsn"
-                disabled
-              />
-            </div>
-          </td>
-        </tr>
-        <tr v-if="showOpt.isAuthor && pageRole == 'adm'">
-          <td colspan="2">
-            <UserAuthorList :mbrVO="mbrVO" editMode="view" />
-          </td>
-        </tr>
-      </table>
-    </div>
-  </details>
+                  <div v-if="showOpt.isTelNo">
+                    <label class="form-title">전화번호</label>
+                    <p>{{ mbrVO.telno }}</p>
+                    <!-- <input
+                      type="text"
+                      class="form-control sm"
+                      v-model="mbrVO.telno"
+                      disabled
+                    /> -->
+                  </div>
+                </template>
+                <template v-if="showOpt.isEml || showOpt.isSmsAgree || showOpt.isEmlAgree">
+                      <div v-if="showOpt.isEml">
+                        <label for="" class="form-title point-font2 mb10">이메일</label>
+                        <div class="check-area">
+                          <p>{{ email.address ? email.id + '@' + email.address : email.id + '@' + email.select }}</p>
+                            <!-- <input
+                              type="text"
+                              class="form-control sm"
+                              v-model="email.id"
+                              disabled
+                            />
+                          <div>@</div>
+                          <div v-show="email.select == 'self'">
+                            <input
+                              type="text"
+                                class="form-control sm"
+                              v-model="email.address"
+                              disabled
+                            />
+                          </div>
+                            <select class="form-select sm" v-model="email.select" disabled>
+                              <option value="">선택하세요</option>
+                              <option value="self">직접입력</option>
+                              <option value="naver.com">naver.com</option>
+                              <option value="google.com">google.com</option>
+                              <option value="hanmail.net">hanmail.net</option>
+                              <option value="nate.com">nate.com</option>
+                              <option value="kakao.com">kakao.com</option>
+                            </select> -->
+                        </div>
+                      </div>
+         
+                      <div v-if="showOpt.isSmsAgree">
+                        <label class="form-title">
+                          문자수신
+                        </label>
+                        <p>{{ mbrVO.smsRcptnAgreYn }}</p>
+                        <!-- <div class="check-area">
+                          <div class="form-check">
+                            <input
+                              type="radio"
+                              name="smsRcptnAgreYn"
+                              id="smsY"
+                              class="mr5"
+                              v-model="mbrVO.smsRcptnAgreYn"
+                              value="Y"
+                              disabled
+                            />
+                            <label for="smsY">수신</label>
+                          </div>
+                            <div class="form-check">
+                              <input
+                                type="radio"
+                                name="smsRcptnAgreYn"
+                                id="smsN"
+                                class="mr5"
+                                v-model="mbrVO.smsRcptnAgreYn"
+                                value="N"
+                                disabled
+                              />
+                              <label for="smsN">미수신</label>
+                            </div>
+                          </div> -->
+                      </div>
 
-  <div class="flex justify-end align-center no-gutters">
-    <div v-if="pageRole == 'adm'" class="gd-1 mr10">
-      <button class="large-btn gray-border-btn" @click="fnList">목록</button>
+                      <div v-if="showOpt.isEmlAgree">
+                        <label class="form-title">
+                          이메일수신
+                        </label>
+                        <p>{{ mbrVO.emlRcptnAgreYn }}</p>
+                        <!-- <div class="check-area">
+                          <div class="form-check">
+                            <input
+                              type="radio"
+                              name="emlRcptnAgreYn"
+                              id="y"
+                              class="mr5"
+                              v-model="mbrVO.emlRcptnAgreYn"
+                              value="Y"
+                              disabled
+                            />
+                            <label for="y">수신</label>
+                          </div>
+                          <div class="form-check">
+                            <input
+                              type="radio"
+                              name="emlRcptnAgreYn"
+                              id="n"
+                              class="mr5"
+                              v-model="mbrVO.emlRcptnAgreYn"
+                              value="N"
+                              disabled
+                            />
+                            <label for="n">미수신</label>
+                          </div>
+                        </div> -->
+                      </div>
+                  </template>
+                  <template v-if="showOpt.isAddr">
+        
+                        <div>
+                          <label class="form-title">
+                            우편번호
+                          </label>
+                          <p>{{ '(' + mbrVO.zip + ')'+ mbrVO.addr + mbrVO.daddr}}</p>
+                          <!-- <input
+                            type="text"
+                            class="full-input"
+                            v-model="mbrVO.zip"
+                            disabled
+                          /> -->
+                        </div>
+                        <!-- <div>
+                          <label class="form-title">주소</label>
+                          <input
+                            type="text"
+                            class="full-input"
+                            v-model="mbrVO.addr"
+                            disabled
+                          />
+                        </div> -->
+             
+                        <!-- <div>
+                          <label for="" class="form-title">
+                            상세주소
+                          </label>
+                          <input
+                            type="text"
+                            class="full-input"
+                            v-model="mbrVO.daddr"
+                            disabled
+                          />
+                        </div> -->
+                  </template>
+                  <template v-if="showOpt.isStts && pageRole == 'adm'">
+            
+                      <div>
+                          <label class="form-title">
+                            회원상태
+                          </label>
+                          <select class="full-select" v-model="mbrVO.mbrStts" disabled>
+                            <option value="1">승인</option>
+                            <option value="2">승인대기</option>
+                            <option value="0">탈퇴</option>
+                            <option value="3">차단</option>
+                          </select>
+                        <div>
+                          <label class="form-title">차단일</label>
+                          <input
+                            type="date"
+                            class="full-input"
+                            v-model="mbrVO.cntrlDt"
+                            disabled
+                          />
+                        </div>
+                      </div>
+              
+                      <div>
+                        <label  class="form-title">차단 사유</label>
+                        <input
+                          type="text"
+                          class="full-input"
+                          v-model="mbrVO.cntrlRsn"
+                          disabled
+                        />
+                      </div>
+                  </template>
+                  <template v-if="showOpt.isAuthor && pageRole == 'adm'">
+                      <UserAuthorList :mbrVO="mbrVO" editMode="view" />
+                  </template>
+              </div>
+            </div>
+        </div>
+      </div>
     </div>
-    <div class="gd-1 mr10">
+  <div class="btn-wrap">
+    <template v-if="pageRole == 'adm'" class="gd-1 mr10">
+      <button class="btn sm tertiary" @click="fnList">목록</button>
+    </template>
       <button
         v-if="pageAuth.mdfcnAuthrt == 'Y'"
         :class="{
-          'large-btn': true,
-          'blue-border-btn': pageRole == 'adm',
-          'green-border-btn': pageRole == 'portal',
+          'btn sm primary': true,
         }"
         @click="fnUpdate"
       >
         수정
       </button>
-    </div>
-    <div v-if="pageRole == 'adm' && pageAuth.delAuthrt == 'Y'" class="gd-1">
-      <button class="large-btn red-border-btn" @click="fnDelete">삭제</button>
-    </div>
+    <template v-if="pageRole == 'adm' && pageAuth.delAuthrt == 'Y'" class="gd-1">
+      <button class="btn sm red" @click="fnDelete">삭제</button>
+    </template>
   </div>
 </template>
 
@@ -289,13 +260,14 @@
 
 // COMPONENT
 import UserAuthorList from "./UserAuthorList.vue";
+import PagiNavigationBar from "../paginavigationbar/PagiNavigationBar.vue";
 
 // API
 import { mbrDetailProc } from "../../../resources/api/mbrInfo";
 import { mbrDeleteProc } from "../../../resources/api/mbrInfo";
 
 export default {
-  components: { UserAuthorList },
+  components: { UserAuthorList,PagiNavigationBar },
   props: {
     pageId: {
       type: String,
@@ -304,6 +276,10 @@
       type: String,
       default: "user",
     },
+    pageTit: {
+      type: String,
+      required: true,
+    },
   },
   data() {
     return {
client/views/layout/AdminMenu.vue
--- client/views/layout/AdminMenu.vue
+++ client/views/layout/AdminMenu.vue
@@ -6,37 +6,38 @@
     <div class="info-wrap">
       <div class="info">
         <p class="info-name">{{ mbrNm }}</p>
-        <button  @click="fnlogOut">로그아웃</button>
-        <button  @click="fnSiteMove">사이트이동</button>
-    
-        <div class="reset-wrap">
-            <button  @click="cacheClean()">
-              <svg-icon type="mdi" :path="refreshPath"></svg-icon> 변경사항 적용 </button>
-        </div>
+        <ul class="info-btn">
+            <li><button class="btn-ico xsm ico-logout"  @click="fnlogOut" title="로그아웃"></button></li>
+            <li><button class="btn-ico xsm ico-go"  @click="fnSiteMove" title="사이트이동"></button></li>
+            <li><button class="btn-ico xsm ico-reset"  @click="cacheClean()" title="변경사항 적용"></button></li>
+        </ul>
       </div>
     </div>
-    <ul class="side-menu">
-      <template v-if="menuList.length > 0">
-        <li v-for="(sub, subidx) in menuList" :key="subidx" :class="{ 'sub-active': isActive(sub.routerUrl) }">
-          <div  @click="
-            menuClick(
-              sub.routerUrl != '' && sub.routerUrl != null
-                ? sub
-                : sub.childList[0]
-            )
-            ">
-            <span>{{ sub.menuNm }}</span>
-          </div>
-          <ul v-show="sub.childList.length > 0">
-            <li v-for="(third, thirdIdx) in sub.childList" :key="thirdIdx" :class="{
-              'sub-active': isActive(third.routerUrl),
-            }" @click="menuClick(third)">
-              <span>{{ third.menuNm }}</span>
-            </li>
-          </ul>
-        </li>
-      </template>
-    </ul>
+    <div class="menu-zone">
+      <p>MENU</p>
+      <ul class="side-menu">
+        <template v-if="menuList.length > 0">
+          <li v-for="(sub, subidx) in menuList" :key="subidx" :class="{ 'sub-active': isActive(sub.routerUrl) }">
+            <div  @click="
+              menuClick(
+                sub.routerUrl != '' && sub.routerUrl != null
+                  ? sub
+                  : sub.childList[0]
+              )
+              ">
+              <span>{{ sub.menuNm }}</span>
+            </div>
+            <ul v-show="sub.childList.length > 0">
+              <li v-for="(third, thirdIdx) in sub.childList" :key="thirdIdx" :class="{
+                'sub-active': isActive(third.routerUrl),
+              }" @click="menuClick(third)">
+                <span>{{ third.menuNm }}</span>
+              </li>
+            </ul>
+          </li>
+        </template>
+      </ul>
+    </div>
   </nav>
 </template>
 <script>
@@ -46,7 +47,6 @@
 import { mapActions } from "vuex";
 import cntnStatsSave from "../../resources/js/cntnStatsSave";
 import { cacheReSet } from "../../resources/api/cacheReSet";
-import { mdiRefresh } from "@mdi/js";
 
 export default {
   mixins: [queryParams, cntnStatsSave],
@@ -58,7 +58,6 @@
       currentPath: this.$route.path,
       resetSearch: { ...defaultSearchParams },
       menuList: [],
-      refreshPath: mdiRefresh,
     };
   },
   created() {
client/views/pages/App.vue
--- client/views/pages/App.vue
+++ client/views/pages/App.vue
@@ -3,8 +3,7 @@
     <AdminHeader />
     <AdminMenu />
     <main class="main-wrap">
-        <Paginavigationbar :className="'navigation-wrap'"/>
-        <div class="content-wrap">
+        <div :class="{'content-wrap': true, 'main': this.$route.path === '/adm/main.page'}">
           <router-view />
         </div>
     </main>
@@ -21,7 +20,6 @@
 import UserHeader from "../layout/UserHeader.vue";
 import AdminHeader from "../layout/AdminHeader.vue";
 import AdminMenu from "../layout/AdminMenu.vue";
-import Paginavigationbar from "../component/paginavigationbar/PagiNavigationBar.vue";
 
 const App = {
   data: () => {
@@ -47,7 +45,6 @@
     'UserHeader': UserHeader,
     'AdminHeader': AdminHeader,
     'AdminMenu': AdminMenu,
-    'Paginavigationbar': Paginavigationbar
   },
   mounted() {},
 };
client/views/pages/adm/member/adminManagement/AdminManagementInsert.vue
--- client/views/pages/adm/member/adminManagement/AdminManagementInsert.vue
+++ client/views/pages/adm/member/adminManagement/AdminManagementInsert.vue
@@ -1,11 +1,5 @@
 <template>
-  <div class="content admin-style">
-    <div class="admin-page-title point-font2 mb30">
-      <p>관리자 관리</p>
-    </div>
-
-    <UserInfoInsert :pageId="pageId" pageNm="adm" />
-  </div>
+    <UserInfoInsert :pageId="pageId" pageNm="adm" :pageTit="'관리자 관리'"/>
 </template>
 
 <script>
client/views/pages/adm/member/adminManagement/AdminManagementSelectList.vue
--- client/views/pages/adm/member/adminManagement/AdminManagementSelectList.vue
+++ client/views/pages/adm/member/adminManagement/AdminManagementSelectList.vue
@@ -1,69 +1,68 @@
 <template>
-  <div class="content">
-    <div class="admin-page-title point-font2 mb30">
-      <p>관리자 관리</p>
-    </div>
-    <div class="search-bar mb15">
-      <div class="flex justify-end align-center no-gutters">
-        <div class="gd-6 mr10">
-          <div class="border">
-            <select class="border-none gd-2" v-model="search['searchType']">
+  <div class="content-zone">
+    <div class="content">
+      <div class="scroll">
+        <div class="title-zone">
+          <div class="section-title">
+            <p>관리자 관리</p>
+          </div>
+          <PagiNavigationBar />
+        </div>
+        <div class="search-bar">
+            <select class="form-select sm" v-model="search['searchType']">
               <option value="">전체</option>
               <option value="lgn_id">아이디</option>
               <option value="mbr_nm">이름</option>
             </select>
             <input
               type="text"
-              class="full-input border-none gd-10 condition-input"
+              class="form-control sm"
               v-model="search['searchText']"
               v-on:keyup.enter="fnViewList"
             />
-          </div>
-        </div>
-        <div class="gd-1">
-          <button class="large-btn blue-border-btn" @click="fnViewList">
+
+          <button class="btn sm ico-before ico-sch" @click="fnViewList">
             검색
           </button>
         </div>
+        <div class="tbl-wrap">
+          <ListTable
+            :colgroup="colgroup"
+            :thead="thead"
+            :tbody="tbody"
+            className="data cursor"
+            @listClick="fnViewDetail"
+          >
+            <template #button="buttonProps">
+              <button
+                title="초기화"
+                class="btn-ico md ico-refresh"
+                @click.stop="fnReset(buttonProps)"
+                v-if="pageAuth.mdfcnAuthrt == 'Y'"
+              >
+                
+              </button>
+            </template>
+          </ListTable>
+        </div>
       </div>
     </div>
-    <ListTable
-      :colgroup="colgroup"
-      :thead="thead"
-      :tbody="tbody"
-      className="admin-list"
-      @listClick="fnViewDetail"
-    >
-      <template #button="buttonProps">
-        <button
-          class="large-btn red-border-btn"
-          @click.stop="fnReset(buttonProps)"
-          v-if="pageAuth.mdfcnAuthrt == 'Y'"
-        >
-          초기화
-        </button>
-      </template>
-    </ListTable>
-    <div class="flex justify-between align-center no-gutters">
-      <div class="gd-1"></div>
-      <div class="gd-10">
-        <PaginationButton
-          :className="'admin-pagination'"
-          v-model:currentPage="search['currentPage']"
-          :pagination="search"
-          :click="fnViewList"
-        />
-      </div>
-      <div class="gd-1">
-        <button
-          class="large-btn blue-btn"
-          @click="fnInsert"
-          v-if="pageAuth.regAuthrt == 'Y'"
-        >
-          등록
-        </button>
-      </div>
-    </div>
+  </div>
+  <div class="btn-wrap list">
+    <div></div>
+      <PaginationButton
+        :className="'pagination'"
+        v-model:currentPage="search['currentPage']"
+        :pagination="search"
+        :click="fnViewList"
+      />
+      <button
+        class="btn sm primary"
+        @click="fnInsert"
+        v-if="pageAuth.regAuthrt == 'Y'"
+      >
+        등록
+      </button>
   </div>
 </template>
 
@@ -73,6 +72,7 @@
 // COMPONENT
 import ListTable from "../../../../component/table/ListTable.vue";
 import PaginationButton from "../../../../component/pagination/PaginationButton.vue";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 
 // RESOURCES
 import queryParams from "../../../../../resources/js/queryParams";
@@ -87,6 +87,7 @@
   components: {
     ListTable: ListTable,
     PaginationButton: PaginationButton,
+    PagiNavigationBar: PagiNavigationBar
   },
   data() {
     return {
client/views/pages/adm/member/adminManagement/AdminManagementSelectListOne.vue
--- client/views/pages/adm/member/adminManagement/AdminManagementSelectListOne.vue
+++ client/views/pages/adm/member/adminManagement/AdminManagementSelectListOne.vue
@@ -1,11 +1,5 @@
 <template>
-  <div class="content admin-style">
-    <div class="admin-page-title point-font2 mb30">
-      <p>관리자 관리</p>
-    </div>
-
-    <UserInfoView :pageId="pageId" pageNm="adm" />
-  </div>
+    <UserInfoView :pageId="pageId" pageNm="adm" :pageTit="'관리자 관리'"/>
 </template>
 
 <script>
client/views/pages/adm/member/userManagement/UserManagementInsert.vue
--- client/views/pages/adm/member/userManagement/UserManagementInsert.vue
+++ client/views/pages/adm/member/userManagement/UserManagementInsert.vue
@@ -1,11 +1,5 @@
 <template>
-  <div class="content admin-style">
-    <div class="admin-page-title point-font2 mb30">
-      <p>일반회원 관리</p>
-    </div>
-
-    <UserInfoInsert :pageId="pageId" />
-  </div>
+    <UserInfoInsert :pageId="pageId" :pageTit="'일반회원 관리'"/>
 </template>
 
 <script>
client/views/pages/adm/member/userManagement/UserManagementSelectList.vue
--- client/views/pages/adm/member/userManagement/UserManagementSelectList.vue
+++ client/views/pages/adm/member/userManagement/UserManagementSelectList.vue
@@ -1,68 +1,65 @@
 <template>
-  <div class="content">
-    <div class="admin-page-title point-font2 mb30">
-      <p>일반회원 관리</p>
-    </div>
-    <div class="search-bar mb15">
-      <div class="flex justify-end align-center no-gutters">
-        <div class="gd-6 mr10">
-          <div class="border">
-            <select class="border-none gd-2" v-model="search['searchType']">
+  <div class="content-zone">
+    <div class="content">
+      <div class="scroll">
+        <div class="title-zone">
+          <div class="section-title">
+            <p>일반회원 관리</p>
+          </div>
+          <PagiNavigationBar />
+        </div>
+        <div class="search-bar">
+            <select class="form-select sm" v-model="search['searchType']">
               <option value="">전체</option>
               <option value="lgn_id">아이디</option>
               <option value="mbr_nm">이름</option>
             </select>
             <input
               type="text"
-              class="full-input border-none gd-10 condition-input"
+              class="form-control sm"
               v-model="search['searchText']"
               v-on:keyup.enter="fnViewList"
             />
-          </div>
+          <button class="btn sm ico-before ico-sch" @click="fnViewList">검색</button>
         </div>
-        <div class="gd-1">
-          <button class="large-btn blue-border-btn" @click="fnViewList">
-            검색
-          </button>
+        <div class="tbl-wrap">
+          <ListTable
+          :colgroup="colgroup"
+          :thead="thead"
+          :tbody="tbody"
+          :className="'data cursor'"
+          @listClick="fnModalOpen"
+        >
+          <template #button="buttonProps">
+            <button
+              title="초기화"
+              class="btn-ico md ico-refresh"
+              @click.stop="fnReset(buttonProps)"
+              v-if="pageAuth.mdfcnAuthrt == 'Y'"
+            >
+            </button>
+          </template>
+        </ListTable>
         </div>
       </div>
     </div>
-    <ListTable
-      :colgroup="colgroup"
-      :thead="thead"
-      :tbody="tbody"
-      :className="'admin-list'"
-      @listClick="fnModalOpen"
-    >
-      <template #button="buttonProps">
-        <button
-          class="large-btn red-border-btn"
-          @click.stop="fnReset(buttonProps)"
-          v-if="pageAuth.mdfcnAuthrt == 'Y'"
-        >
-          초기화
-        </button>
-      </template>
-    </ListTable>
-    <div class="flex justify-between align-center no-gutters">
-      <div class="gd-1"></div>
-      <div class="gd-10">
+  </div>
+  <div class="btn-wrap list">
+      <div></div>
         <PaginationButton
           :className="'admin-pagination'"
           v-model:currentPage="search['currentPage']"
           :pagination="search"
           :click="fnViewList"
         />
-      </div>
-      <div class="gd-1">
+
         <button
-          class="large-btn blue-btn"
+          class="btn sm primary"
           @click="fnInsert"
           v-if="pageAuth.regAuthrt == 'Y'"
         >
           등록
         </button>
-      </div>
     </div>
     <!-- 모달: 개인정보조회이력 -->
     <Modal :showModal="isOpen">
@@ -70,29 +67,25 @@
         <div class="box-title point-font2">
           <p>개인 정보 조회 사유 등록</p>
         </div>
-        <button class="close-btn" @click="fnModalClose">X</button>
+        <button class="btn-close" @click="fnModalClose"></button>
       </template>
       <div>
         <textarea
           v-model="prvcInqHstry['inqRsn']"
           placeholder="개인 정보 조회 사유를 작성하세요."
           ref="inqRsn"
+          class="form-control"
         ></textarea>
       </div>
       <template v-slot:footer>
-        <div class="gd-2 mr10">
-          <button class="large-btn blue-border-btn" @click="fnModalInsert">
+          <button class="btn sm primary" @click="fnModalInsert">
             등록
           </button>
-        </div>
-        <div class="gd-2">
-          <button class="large-btn red-border-btn" @click="fnModalClose">
+          <button class="btn sm tertiary" @click="fnModalClose">
             취소
           </button>
-        </div>
       </template>
     </Modal>
-  </div>
 </template>
 
 <script>
@@ -102,6 +95,7 @@
 import Modal from "../../../../component/modal/Modal.vue";
 import ListTable from "../../../../component/table/ListTable.vue";
 import PaginationButton from "../../../../component/pagination/PaginationButton.vue";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 
 // RESOURCES
 import queryParams from "../../../../../resources/js/queryParams";
@@ -117,6 +111,7 @@
     Modal: Modal,
     ListTable: ListTable,
     PaginationButton: PaginationButton,
+    PagiNavigationBar: PagiNavigationBar
   },
   data() {
     return {
client/views/pages/adm/member/userManagement/UserManagementSelectListOne.vue
--- client/views/pages/adm/member/userManagement/UserManagementSelectListOne.vue
+++ client/views/pages/adm/member/userManagement/UserManagementSelectListOne.vue
@@ -1,11 +1,5 @@
 <template>
-  <div class="content admin-style">
-    <div class="admin-page-title point-font2 mb30">
-      <p>일반회원 관리</p>
-    </div>
-
-    <UserInfoView :pageId="pageId" />
-  </div>
+    <UserInfoView :pageId="pageId"  :pageTit="'일반회원 관리'"/>
 </template>
 
 <script>
client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
--- client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
+++ client/views/pages/adm/preferences/commonCodeManagement/CommonCodeManagement.vue
@@ -1,9 +1,12 @@
 <template>
   <div class="content-zone">
     <div class="content">
-      <div class="section-title">
-        <p>공통코드관리</p>
-      </div>
+      <div class="title-zone">
+          <div class="section-title">
+            <p>공통코드관리</p>
+          </div>
+          <PagiNavigationBar />
+        </div>
       <div class="setting-box">
 
           <div class="node-zone">
@@ -98,6 +101,7 @@
 <script>
 import draggable from "vuedraggable";
 import Hierachy from "../../../../component/hierachy/HierachyDraggable.vue";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 import {
   findAll,
   findByCd,
@@ -111,6 +115,7 @@
   components: {
     draggable: draggable,
     Hierachy: Hierachy,
+    PagiNavigationBar: PagiNavigationBar,
   },
   data() {
     return {
client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
--- client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
+++ client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementInsert.vue
@@ -2,8 +2,11 @@
   <div class="content-zone">
     <div class="content">
       <div class="scroll">
-        <div class="section-title">
-          <p>콘텐츠 유형 관리</p>
+        <div class="title-zone">
+          <div class="section-title">
+            <p>콘텐츠 유형 관리</p>
+          </div>
+          <PagiNavigationBar />
         </div>
         <div open class="form-box">
           <div class="form-box-title">
@@ -111,9 +114,13 @@
 import { findByContsType } from "../../../../../resources/api/contsType";
 import { updateProc } from "../../../../../resources/api/contsType";
 import validationParams from "../../../../../resources/js/validateParams";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 
 export default {
   mixins: [validationParams],
+  components: {
+    PagiNavigationBar: PagiNavigationBar,
+  },
   data() {
     return {
       pageId: this.$route.query.pageId, // 페이지 아이디
client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementSelectList.vue
--- client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementSelectList.vue
+++ client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementSelectList.vue
@@ -2,8 +2,11 @@
   <div class="content-zone">
     <div class="content">
       <div class="scroll">
-        <div class="section-title">
-          <p>콘텐츠 유형 관리</p>
+        <div class="title-zone">
+          <div class="section-title">
+            <p>콘텐츠 유형 관리</p>
+          </div>
+          <PagiNavigationBar />
         </div>
         <div class="search-bar">
             <input
@@ -53,6 +56,7 @@
 import { toRaw } from "vue";
 import queryParams from "../../../../../resources/js/queryParams";
 import { defaultSearchParams } from "../../../../../resources/js/defaultSearchParams";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 
 // API
 import { findAll } from "../../../../../resources/api/contsType";
@@ -62,6 +66,7 @@
   components: {
     ListTable: ListTable,
     PaginationButton: PaginationButton,
+    PagiNavigationBar: PagiNavigationBar,
   },
   data() {
     return {
client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementSelectListOne.vue
--- client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementSelectListOne.vue
+++ client/views/pages/adm/preferences/contentTypeManagement/ContentTypeManagementSelectListOne.vue
@@ -2,9 +2,12 @@
   <div class="content-zone">
     <div class="content">
       <div class="scroll">
-        <div class="section-title">
-      <p>콘텐츠 유형 관리</p>
-    </div>
+        <div class="title-zone">
+          <div class="section-title">
+            <p>콘텐츠 유형 관리</p>
+          </div>
+          <PagiNavigationBar />
+        </div>
     <div class="form-box">
         <div class="form-box-title">
           <p>기본정보</p>
@@ -118,6 +121,7 @@
   findByContsType,
   deleteProc,
 } from "../../../../../resources/api/contsType";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 
 export default {
   data() {
@@ -128,6 +132,9 @@
       contsTypeVO: {},
     };
   },
+  components: {
+    PagiNavigationBar: PagiNavigationBar,
+  },
   created() {
     this.fnViewDetail();
   },
client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
--- client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
+++ client/views/pages/adm/system/networkAccessControl/NetworkAccessControlInsert.vue
@@ -2,8 +2,11 @@
     <div class="content-zone">
         <div class="content">
             <div class="scroll">
-                <div class="section-title">
-                    <p>IP접근제어</p>
+                <div class="title-zone">
+                    <div class="section-title">
+                        <p>IP접근제어</p>
+                    </div>
+                    <PagiNavigationBar />
                 </div>
                 <div class="form-box">
                     <div class="form-box-title">
@@ -45,10 +48,11 @@
 
 <script>
 import { findByAcces, save, update } from '../../../../../resources/api/accesCtrl'
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 
 export default {
     components: {
-
+        PagiNavigationBar: PagiNavigationBar,
     },
     data() {
         return {
client/views/pages/adm/system/networkAccessControl/NetworkAccessControlSelectList.vue
--- client/views/pages/adm/system/networkAccessControl/NetworkAccessControlSelectList.vue
+++ client/views/pages/adm/system/networkAccessControl/NetworkAccessControlSelectList.vue
@@ -2,8 +2,11 @@
   <div class="content-zone">
     <div class="content">
       <div class="scroll">
-        <div class="section-title">
-          <p>IP접근제어</p>
+        <div class="title-zone">
+          <div class="section-title">
+            <p>IP접근제어</p>
+          </div>
+          <PagiNavigationBar />
         </div>
         <div class="search-bar">
             <select
@@ -69,12 +72,14 @@
 import { toRaw } from "vue";
 import queryParams from "../../../../../resources/js/queryParams";
 import { defaultSearchParams } from "../../../../../resources/js/defaultSearchParams";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 
 export default {
   mixins: [queryParams],
   components: {
     ListTable: ListTable,
     PaginationButton: PaginationButton,
+    PagiNavigationBar: PagiNavigationBar,
   },
   data() {
     return {
client/views/pages/adm/system/networkAccessControl/NetworkAccessControlSelectListOne.vue
--- client/views/pages/adm/system/networkAccessControl/NetworkAccessControlSelectListOne.vue
+++ client/views/pages/adm/system/networkAccessControl/NetworkAccessControlSelectListOne.vue
@@ -2,8 +2,11 @@
   <div class="content-zone">
     <div class="content">
       <div class="scroll">
-        <div class="section-title">
-          <p>IP접근제어</p>
+        <div class="title-zone">
+          <div class="section-title">
+            <p>IP접근제어</p>
+          </div>
+          <PagiNavigationBar />
         </div>
         <div open class="form-box">
           <div class="form-box-title">
@@ -50,9 +53,12 @@
 <script>
 import { findByAcces, del } from "../../../../../resources/api/accesCtrl";
 import queryParams from "../../../../../resources/js/queryParams";
+import PagiNavigationBar from "../../../../component/paginavigationbar/PagiNavigationBar.vue";
 export default {
   mixins: [queryParams],
-  components: {},
+  components: {
+    PagiNavigationBar: PagiNavigationBar,
+  },
   data() {
     return {
       // 페이지 권한 객체
client/views/pages/login/Login.vue
--- client/views/pages/login/Login.vue
+++ client/views/pages/login/Login.vue
@@ -1,61 +1,69 @@
 <template>
   <div class="login-page page">
-    <div class="flex-column justify-center align-center content">
-      <div class="login-wrap pd30">
-        <div
-          :class="{
-            'login-title text-ct mb40': true,
-            'user-login': !isAdminPage,
-          }"
-        >
-          LOGIN
+      <div>
+        <div class="background-img">
+          <p>
+            콘텐츠 관리 시스템에 오신 것을 환영합니다.<br />
+            원활한 관리와 운영을 위해 로그인하세요.
+          </p>
         </div>
-        <div class="input-group mb20">
-          <label for="id" class="login-label">아이디</label>
-          <input
-            type="text"
-            name=""
-            id="id"
-            class="full-input login-input"
-            placeholder="아이디를 입력하세요"
-            v-model="member['lgnId']"
-          />
+        <div class="login-wrap">
+            <div class="login">
+              <div
+                :class="{
+                  'login-title': true,
+                  'user-login': !isAdminPage,
+                }"
+              >
+                LOGIN
+              </div>
+              <div class="form-group">
+                <label for="id" class="login-label">아이디</label>
+                <input
+                  type="text"
+                  name=""
+                  id="id"
+                  class="form-control md"
+                  placeholder="아이디를 입력하세요"
+                  v-model="member['lgnId']"
+                />
+              </div>
+              <div class="form-group">
+                <label for="pw" class="login-label">비밀번호</label>
+                <input
+                  type="password"
+                  name=""
+                  id="pw"
+                  class="form-control md"
+                  placeholder="비밀번호를 입력하세요"
+                  v-model="member['pswd']"
+                  @keyup.enter="fnLogin"
+                />
+              </div>
+              <div
+                class="input-group"
+                v-if="!isAdminPage"
+              >
+                <p class="pl10 pr10 cursor" @click="moveSearchId">아이디찾기</p>
+                <p class="pl10 pr0 cursor" @click="moveResetPswd">비밀번호 초기화</p>
+              </div>
+              <button
+                class="large-btn green-btn point-font fw-bold"
+                v-if="!isAdminPage"
+                @click="fnLogin"
+              >
+                로그인
+              </button>
+              <button
+                class="btn md primary"
+                v-else
+                @click="fnLogin"
+              >
+                로그인
+              </button>
+            </div>
         </div>
-        <div class="input-group mb20">
-          <label for="pw" class="login-label">비밀번호</label>
-          <input
-            type="password"
-            name=""
-            id="pw"
-            class="full-input login-input"
-            placeholder="비밀번호를 입력하세요"
-            v-model="member['pswd']"
-            @keyup.enter="fnLogin"
-          />
-        </div>
-        <div
-          class="find-zone flex justify-end align-center mb40"
-          v-if="!isAdminPage"
-        >
-          <p class="pl10 pr10 cursor" @click="moveSearchId">아이디찾기</p>
-          <p class="pl10 pr0 cursor" @click="moveResetPswd">비밀번호 초기화</p>
-        </div>
-        <button
-          class="large-btn green-btn point-font fw-bold"
-          v-if="!isAdminPage"
-          @click="fnLogin"
-        >
-          로그인
-        </button>
-        <button
-          class="large-btn darkg-btn point-font2 fw-bold"
-          v-else
-          @click="fnLogin"
-        >
-          로그인
-        </button>
       </div>
-    </div>
   </div>
 </template>
 
Add a comment
List