yjryu / UI_Layout star
류윤주 류윤주 01-12
240112 류윤주 sample page 추가
@8c89403c340b5ed4b21eda937ea0b5fa9f861a3e
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -40,7 +40,8 @@
 .flex-column {
     display: flex;
     flex-direction: column;
-    gap: 30px;
+    justify-content: space-between;
+    height: 100%;
 }
 
 
@@ -98,7 +99,7 @@
 }
 
 .large-btn {
-    height: 100%;
+    width: 100%;
     padding: 5px 15px;
     border-radius: 5px;
 }
@@ -204,7 +205,9 @@
 /* box 공통 */
 .container {
     width: 100%;
-    height: 100%;
+    display: flex;
+    flex-direction: column;
+    flex-grow: 1;
 }
 
 .content-box {
@@ -217,9 +220,14 @@
     height: 100%;
 }
 
+.content{
+    margin-bottom: 30px;
+}
 
-.top-content,
-.bottom-content,
+.content:last-child{
+    margin-bottom: 0;
+}
+
 .left-content,
 .right-content,
 .content {
@@ -227,6 +235,11 @@
     border-radius: 10px;
     background-color: #fff;
     position: relative;
+}
+
+.form-box{
+    background-color: #edf0ff;
+    border: 1px solid #dbe3fb;
 }
 
 /* title 공통 */
@@ -241,6 +254,8 @@
 }
 
 .content-titleZone {
+    padding-bottom: 10px;
+    border-bottom: 1px solid #aaa;
     margin-bottom: 15px;
 }
 
@@ -269,20 +284,12 @@
     background-color: #f4f6ff;
 }
 
-.form-table {
-    border-bottom: 1px solid #aaa;
-}
-
 .form-table th {
-    background-color: #dbe3fb;
     color: #213f99;
     text-align: center;
-    border-top: 1px solid #fff;
 }
 
-.form-table td {
-    border-top: 1px solid #aaa;
-}
+
 
 .option-table th{
     text-align: left;
client/resources/css/layout.css
--- client/resources/css/layout.css
+++ client/resources/css/layout.css
@@ -14,7 +14,9 @@
 
 .layout-wrap{
     width: 100%;
-    height: 100%;
+    min-height: 100%;
+    display: flex;
+    flex-direction: column;  
 }
 
 header {
@@ -171,10 +173,20 @@
 /* 메인 */
 .main {
     padding: 20px;
-    height: calc(100% - 105px);
+    height: 100%;
     grid-area: main;
 }
 
+.layout-wrap .main {
+    display: flex;
+    padding: 20px;
+    flex-grow: 1;  
+    /* overflow: auto;  */
+    grid-area: main;
+}
+
+
+
 
 
 @keyframes slideDown {
client/resources/css/reset.css
--- client/resources/css/reset.css
+++ client/resources/css/reset.css
@@ -10,7 +10,8 @@
 body,
 #root {
     width: 100%;
-    height: 100vh;
+    height: 100%;
+    min-height: 100vh;
     font-size: 10px;
     color: #333;
     font-family: 'Pretendard';
@@ -21,6 +22,7 @@
     background-color: #f7f6fb;
 }
 
+
 a {
     color: #333;
     text-decoration: none;
client/views/component/PaginationButton.vue
--- client/views/component/PaginationButton.vue
+++ client/views/component/PaginationButton.vue
@@ -95,10 +95,6 @@
 /*PAGINATION NEW START*/
 .component-pagination {
 	padding: 15px 0;
-	position: absolute;
-	bottom: 0;
-	left: 50%;
-	transform: translateX(-50%);
 }
 
 .pagination-button-type {
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -5,8 +5,9 @@
 import HostManagement from "../pages/file/HostManagement.vue";
 import ScheduleManagement from "../pages/schedule/ScheduleManagement.vue";
 import ScheduleLogManagement from "../pages/schedule/ScheduleLogManagement.vue";
+import Login from "../pages/login/Login.vue";
 
-// 템플릿 화면
+// 템플릿 
 import Searchbar from "../pages/template/Searchbar.vue";
 import Table from "../pages/template/Table.vue";
 import BtnPosition from "../pages/template/BtnPosition.vue";
@@ -20,6 +21,7 @@
   {path: "/hostManagement.page",name: "HostManagement",component: HostManagement},
   {path: "/scheduleManagement.page",name: "ScheduleManagement",component: ScheduleManagement,},
   {path: "/scheduleLogManagement.page",name: "ScheduleLogManagement",component: ScheduleLogManagement,},
+  {path: "/login.page",name: "Login",component: Login,},
 
 
   // 템플릿 화면
client/views/pages/layoutTemplate/Horizontal.vue
--- client/views/pages/layoutTemplate/Horizontal.vue
+++ client/views/pages/layoutTemplate/Horizontal.vue
@@ -5,8 +5,111 @@
             <PageNavigation />
         </div>
         <div class="content-box flex-column">
-            <div class="top-content"></div>
-        <div class="bottom-content"></div>
+            <div class="content">
+                <div class="content-titleZone">
+                    <p class="box-title">목록</p>
+                </div>
+                <div class="searchbar-zone">
+                    <div class="flex-end">
+                        <span class="option-title">검증유형</span>
+                        <select name="" id="" class="square-select">
+                            <option value="all">전체</option>
+                        </select>
+                        <span class="option-title">품질지표명</span>
+                        <select name="" id="" class="square-select">
+                            <option value="all">전체</option>
+                        </select>
+                        <div class="search-square">
+                            <input type="text" class="square-input" placeholder="Search">
+                            <button class="square-button">
+                                <svg-icon type="mdi" :path="searchPath" class="square-icon"></svg-icon>
+                            </button>
+                        </div>
+                    </div>
+                </div>
+                <div class="flex-between">
+                    <div class="count-zone">
+                        <p>총 <span>40</span>건 중 <span>01</span>건 선택</p>
+                    </div>
+                    <div class="btn-zone flex">
+                        <button class="red-border-btn small-btn">선택 항목 삭제</button>
+                    </div>
+                </div>
+                <div class="table-zone">
+                    <table class="list-table">
+                        <colgroup>
+                            <col style="width: ;">
+                            <col style="width: ;">
+                            <col style="width: ;">
+                            <col style="width: ;">
+                            <col style="width: ;">
+                        </colgroup>
+                        <thead>
+                            <tr>
+                                <th><input type="checkbox" name="" id=""></th>
+                                <th>No</th>
+                                <th>user ID</th>
+                                <th>이름</th>
+                                <th>생년월일</th>
+                                <th>성별</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            <tr>
+                                <td><input type="checkbox" name="" id=""></td>
+                                <td>1</td>
+                                <td>test123</td>
+                                <td>홍길동</td>
+                                <td>1999.01.01</td>
+                                <td>여</td>
+                            </tr>
+                            
+                        </tbody>
+                    </table>
+                </div>
+                <PaginationButton />
+            </div>
+            <div class="content form-box">
+                <div class="content-titleZone">
+                    <p class="box-title">등록</p>
+                </div>
+                <div class="table-zone">
+                    <table class="form-table">
+                        <colgroup>
+                            <col style="width: 10%;">
+                            <col style="width: 40%;">
+                            <col style="width: 10%;">
+                            <col style="width: 40%;">
+                        </colgroup>
+                        <tbody>
+                            <tr>
+                                <th>user ID</th>
+                                <td><input type="text" name="" id=""></td>
+                                <th>이름</th>
+                                <td><input type="text" name="" id=""></td>
+                            </tr>
+                            <tr>
+                                <th>생년월일</th>
+                                <td>
+                                    <div class="flex">
+                                        <select name="" id=""></select>
+                                        <select name="" id=""></select>
+                                        <select name="" id=""></select>
+                                    </div>
+                                </td>
+                                <th>성별</th>
+                                <td>
+                                    <select name="" id=""></select>
+                                </td>
+                            </tr>
+                        </tbody>
+                    </table>
+                </div>
+                <div class="flex-end">
+                    <button class="blue-border-btn small-btn">등록</button>
+                    <button class="darkg-border-btn small-btn">초기화</button>
+                </div>
+            </div>
         </div>
     </div>
 </template>
@@ -14,10 +117,12 @@
 <script>
 import PageNavigation from '../../component/PageNavigation.vue';
 import PaginationButton from '../../component/PaginationButton.vue';
-
+import SvgIcon from '@jamescoyle/vue-icon';
+import { mdiMagnify } from '@mdi/js';
 export default {
-    data () {
+    data() {
         return {
+            searchPath: mdiMagnify
         }
     },
     methods: {
@@ -31,10 +136,24 @@
     },
     components: {
         'PageNavigation': PageNavigation,
-        'PaginationButton': PaginationButton
+        'PaginationButton': PaginationButton,
+        'SvgIcon': SvgIcon
     },
     mounted() {
         console.log('main mounted');
     }
 }
-</script>
(파일 끝에 줄바꿈 문자 없음)
+</script>
+
+<style scoped>
+.option-title {
+    padding: 0 5px;
+    font-size: 1.3rem;
+    color: #213f99;
+    margin-left: 5px;
+}
+
+.count-zone {
+    font-size: 1.3rem;
+}
+</style>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/layoutTemplate/Vertical.vue
--- client/views/pages/layoutTemplate/Vertical.vue
+++ client/views/pages/layoutTemplate/Vertical.vue
@@ -31,36 +31,38 @@
                         </div>
                     </div>
                 </div>
-                <div class="table-zone">
-                    <table class="list-table">
-                        <colgroup>
-                            <col style="width: ;">
-                            <col style="width: ;">
-                            <col style="width: ;">
-                            <col style="width: ;">
-                        </colgroup>
-                        <thead>
-                            <tr>
-                                <th>No</th>
-                                <th>user ID</th>
-                                <th>이름</th>
-                                <th>생년월일</th>
-                                <th>성별</th>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>1</td>
-                                <td>test123</td>
-                                <td>홍길동</td>
-                                <td>1999.01.01</td>
-                                <td>여</td>
-                            </tr>
+                <div class="flex-column">
+                    <div class="table-zone">
+                        <table class="list-table">
+                            <colgroup>
+                                <col style="width: ;">
+                                <col style="width: ;">
+                                <col style="width: ;">
+                                <col style="width: ;">
+                            </colgroup>
+                            <thead>
+                                <tr>
+                                    <th>No</th>
+                                    <th>user ID</th>
+                                    <th>이름</th>
+                                    <th>생년월일</th>
+                                    <th>성별</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>
 
-                        </tbody>
-                    </table>
+                            </tbody>
+                        </table>
+                    </div>
+                    <PaginationButton class="flex20"/>
                 </div>
-                <PaginationButton />
             </div>
         </div>
     </div>
@@ -103,7 +105,7 @@
 .content-zone {
     border: 1px solid #eee;
     padding: 10px;
-    height: calc(100% - 44px);
+    height: calc(100% - 55px);
     overflow: auto;
 }
 </style>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/login/Login.vue
--- client/views/pages/login/Login.vue
+++ client/views/pages/login/Login.vue
@@ -1,11 +1,31 @@
 <template>
-    <div>Main.vue</div>
+    <div class="login-page">
+        <div class="login-wrap flex-center">
+            <div class="login-content">
+                <div class="logo">
+                    <img src="../../../resources/img/logo.png" alt="">
+                </div>
+                <div class="login-zone">
+                    <div class="input-wrap">
+                        <input type="text" placeholder="아이디를 입력하세요." class="login-input"/>
+                        <input type="password" placeholder="비밀번호를 입력하세요." class="login-input"/>
+                    </div>
+                    <div class="found-zone flex-center">
+                        <router-link to="">아이디찾기</router-link>
+                        <router-link to="">비밀번호 찾기</router-link>
+                        <router-link to="">회원가입</router-link>
+                    </div>
+                </div>
+                <button class="blue-btn large-btn">로그인</button>
+            </div>
+        </div>
+    </div>
 </template>
 
 <script>
 
 export default {
-    data () {
+    data() {
         return {
         }
     },
@@ -24,4 +44,58 @@
         console.log('main mounted');
     }
 }
-</script>
(파일 끝에 줄바꿈 문자 없음)
+</script>
+
+<style scoped>
+.login-page{
+    width: 100%;
+    height: 100%;
+}
+
+.login-wrap{
+    width: 100%;
+    height: 100%;
+}
+
+.login-content{
+    min-width: 300px;
+    max-width: 400px;
+    padding:30px;
+    border: 1px solid #eee;
+    border-radius: 10px;
+    background-color: #fff;
+}
+.logo{
+    width: 100%;
+    margin-bottom: 30px;
+}
+.logo > img{
+    display: block;
+    margin: 0 auto;
+}
+
+.login-input{
+    margin-left: 0;
+    margin-bottom: 10px;
+    padding: 10px;
+    border: 1px solid #f1f5ff;
+}
+
+.login-input:last-child{
+    margin-bottom: 0;
+}
+
+.found-zone{
+  padding: 20px 0;
+}
+
+.found-zone > a{
+    font-size: 1.3rem;
+    padding: 0 10px;
+}
+
+.login-page .blue-btn{
+    margin-left: 0;
+    padding: 10px 0;
+}
+</style>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/template/FormTable.vue
--- client/views/pages/template/FormTable.vue
+++ client/views/pages/template/FormTable.vue
@@ -1,34 +1,36 @@
 <template>
-    <table class="form-table">
-        <colgroup>
-            <col style="width: ;">
-            <col style="width: ;">
-            <col style="width: ;">
-            <col style="width: ;">
-        </colgroup>
-        <tbody>
-            <tr>
-                <th>user ID</th>
-                <td><input type="text" name="" id=""></td>
-                <th>이름</th>
-                <td><input type="text" name="" id=""></td>
-            </tr>
-            <tr>
-                <th>생년월일</th>
-                <td>
-                    <div class="flex">
+    <div class="table-zone">
+        <table class="form-table">
+            <colgroup>
+                <col style="width: ;">
+                <col style="width: ;">
+                <col style="width: ;">
+                <col style="width: ;">
+            </colgroup>
+            <tbody>
+                <tr>
+                    <th>user ID</th>
+                    <td><input type="text" name="" id=""></td>
+                    <th>이름</th>
+                    <td><input type="text" name="" id=""></td>
+                </tr>
+                <tr>
+                    <th>생년월일</th>
+                    <td>
+                        <div class="flex">
+                            <select name="" id=""></select>
+                            <select name="" id=""></select>
+                            <select name="" id=""></select>
+                        </div>
+                    </td>
+                    <th>성별</th>
+                    <td>
                         <select name="" id=""></select>
-                        <select name="" id=""></select>
-                        <select name="" id=""></select>
-                    </div>
-                </td>
-                <th>성별</th>
-                <td>
-                    <select name="" id=""></select>
-                </td>
-            </tr>
-        </tbody>
-    </table>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+    </div>
 </template>
 
 <script>
Add a comment
List