yjryu / UI_Layout star
류윤주 류윤주 01-12
240112 류윤주 공통 css 수정
@9ee97a3f9f497a2fdeb505da8155bf4e95266991
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -3,91 +3,98 @@
 /* 정렬 */
 .flex {
     display: flex;
-    align-items: center;
-}
-
-.flex-start {
-    display: flex;
-    justify-content: flex-start;
-    align-items: center;
-}
-
-.flex-center {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-}
-
-.flex-between {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-}
-
-.flex-end {
-    display: flex;
-    justify-content: flex-end;
-    align-items: center;
-
-}
-
-.flex-contentBox {
-    display: flex;
-    justify-content: space-between;
-    align-items: flex-start;
+    flex-wrap: wrap;
 }
 
 .flex-column {
     display: flex;
     flex-direction: column;
-    justify-content: space-between;
     height: 100%;
+}
+
+
+.justify-start {
+    justify-content: flex-start;
+}
+
+.justify-center {
+    justify-content: center;
+}
+
+.justify-between {
+    justify-content: space-between;
+}
+
+.justify-end {
+    justify-content: flex-end;
+}
+
+.align-start {
+    align-items: flex-start;
+}
+
+.align-center {
+    align-items: center;
+}
+
+.align-end {
+    align-items: flex-end;
 }
 
 
 
 /* 정렬 배율 */
 
-.flex10 {
-    flex: 0 0 9.2%
+.flex5 {
+    flex: 0 0 4.5%
 }
 
+.flex10 {
+    flex: 0 0 9.5%
+}
+
+.flex15 {
+    flex: 0 0 14.5%
+}
 
 .flex20 {
-    flex: 0 0 19.2%
+    flex: 0 0 19.5%
 }
 
+.flex25 {
+    flex: 0 0 24.5%
+}
 
 .flex30 {
-    flex: 0 0 29.2%
+    flex: 0 0 29.5%
 }
 
 
 .flex40 {
-    flex: 0 0 39.2%
+    flex: 0 0 39.5%
 }
 
 .flex50 {
-    flex: 0 0 39.2%
+    flex: 0 0 49.5%
 }
 
 
 .flex60 {
-    flex: 0 0 59.2%
+    flex: 0 0 59.5%
 }
 
 
 .flex70 {
-    flex: 0 0 69.2%
+    flex: 0 0 69.5%
 }
 
 .flex80 {
-    flex: 0 0 79.2%
+    flex: 0 0 79.5%
 }
 
 
 .flex90 {
-    flex: 0 0 89.2%
+    flex: 0 0 89.5%
 }
 
 
@@ -110,7 +117,7 @@
     position: relative;
 }
 
-.logout-btn::before{
+.logout-btn::before {
     content: "";
     width: 1px;
     height: 10px;
@@ -202,176 +209,16 @@
 
 
 
-/* box 공통 */
-.container {
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    flex-grow: 1;
-}
 
-.content-box {
-    width: 100%;
-    height:100%;
-}
-
-.left-content,
-.right-content {
-    height: 100%;
-}
-
-.content{
-    width: 100%;
-    height: 100%;
-    margin-bottom: 30px;
-}
-
-.content:last-child{
-    margin-bottom: 0;
-}
-
-.left-content,
-.right-content,
-.top-content,
-.bottom-content,
-.content {
-    padding: 15px;
-    border-radius: 10px;
-    background-color: #fff;
-    position: relative;
-}
-
-.form-box{
-    background-color: #edf0ff;
-    border: 1px solid #dbe3fb;
-}
-
-/* title 공통 */
-.page-titleZone {
-    margin-bottom: 20px;
-}
-
-.main-title {
-    font-family: 'GmarketSansB';
-    font-size: 2rem;
-    color: #213f99;
-}
-
-.content-titleZone {
-    padding-bottom: 10px;
-    border-bottom: 1px solid #aaa;
-    margin-bottom: 15px;
-}
-
-.box-title {
-    font-size: 1.6rem;
-    font-weight: bold;
-}
-
-/* 테이블 공통 */
-.list-table {
-    border-bottom: 1px solid #aaa;
-}
-
-.list-table th,
-.list-table td {
-    text-align: center;
-    border-top: 1px solid #aaa;
-}
-
-.list-table thead tr {
-    background-color: #dbe3fb;
-    color: #213f99;
-}
-
-.list-table tbody tr:nth-child(even) {
-    background-color: #f4f6ff;
-}
-
-.form-table th {
-    color: #213f99;
-    text-align: center;
-}
-
-
-
-.option-table th{
+/* text 정렬 */
+.text-lf {
     text-align: left;
 }
 
-
-/* 서치바 공통 */
-/* .table-zone */
-.searchbar-zone{
-    margin-bottom: 10px;
-}
-/* 기본 서치바 */
-.search-square {
-    position: relative;
-    margin-left: 5px;
+.text-ct {
+    text-align: center;
 }
 
-.square-date,
-.square-select {
-    width: 150px;
-}
-
-.square-input {
-    color: #646464;
-    padding: 6px 10px;
-    border-radius: 5px;
-    width: 300px;
-    transition: all ease-in-out .5s;
-}
-
-.square-input:hover,
-.square-input:focus {
-    box-shadow: 0 0 1em #00000013;
-}
-
-.square-input:focus {
-    outline: none;
-    background-color: #f0eeee;
-}
-
-.square-input::-webkit-input-placeholder {
-    font-weight: 100;
-    color: #ccc;
-}
-
-.square-input:focus {
-    background-color: #f0eeee;
-}
-
-.square-button {
-    border: none;
-    margin-left: 0;
-    position: absolute;
-    right: 5px;
-    top: 50%;
-    transform: translateY(-50%);
-}
-
-.square-button:hover {
-    cursor: pointer;
-}
-
-.square-icon {
-    color: #b4b4b4;
-}
-
-/* 상세 서치바 */
-.option-searchbar{
-    width: 50%;
-    margin: 0 auto;
-    padding: 15px;
-    background-color: #f8f9fe;
-    border-radius: 10px;
-}
-
-
-/* 기타 공통 */
-.coupler {
-    font-size: 1.3rem;
-    margin-left: 5px;
+.text-rg {
+    text-align: right;
 }
(파일 끝에 줄바꿈 문자 없음)
client/resources/css/style.css
--- client/resources/css/style.css
+++ client/resources/css/style.css
@@ -1,3 +1,194 @@
 @charset "utf-8";
 
-/*  */
(파일 끝에 줄바꿈 문자 없음)
+/* box 공통 */
+.container {
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    flex-grow: 1;
+}
+
+.content-box {
+    width: 100%;
+    height: 100%;
+}
+
+.left-content,
+.right-content {
+    height: 100%;
+}
+
+.content {
+    width: 100%;
+    height: 100%;
+    margin-bottom: 30px;
+}
+
+.content:last-child {
+    margin-bottom: 0;
+}
+
+.left-content,
+.right-content,
+.top-content,
+.bottom-content,
+.content {
+    padding: 15px;
+    border-radius: 10px;
+    background-color: #fff;
+    position: relative;
+}
+
+.form-box {
+    background-color: #edf0ff;
+    border: 1px solid #dbe3fb;
+}
+
+/* title 공통 */
+.page-titleZone {
+    margin-bottom: 20px;
+}
+
+.main-title {
+    font-family: 'GmarketSansB';
+    font-size: 2rem;
+    color: #213f99;
+}
+
+.content-titleZone {
+    padding-bottom: 10px;
+    border-bottom: 1px solid #aaa;
+    margin-bottom: 15px;
+}
+
+.box-title {
+    font-size: 1.6rem;
+    font-weight: bold;
+}
+
+/* 테이블 공통 */
+.list-table {
+    border-bottom: 1px solid #aaa;
+}
+
+.list-table th,
+.list-table td {
+    text-align: center;
+    border-top: 1px solid #aaa;
+}
+
+.list-table thead tr {
+    background-color: #dbe3fb;
+    color: #213f99;
+}
+
+.list-table tbody tr:nth-child(even) {
+    background-color: #f4f6ff;
+}
+
+.form-table th {
+    color: #213f99;
+    text-align: center;
+}
+
+
+
+.option-table th {
+    text-align: left;
+}
+
+
+/* 서치바 공통 */
+/* .table-zone */
+.searchbar-zone {
+    margin-bottom: 10px;
+}
+
+/* 기본 서치바 */
+.search-square {
+    position: relative;
+    margin-left: 5px;
+}
+
+.square-date,
+.square-select {
+    width: 150px;
+}
+
+.square-input {
+    color: #646464;
+    padding: 6px 10px;
+    border-radius: 5px;
+    width: 300px;
+    transition: all ease-in-out .5s;
+}
+
+.square-input:hover,
+.square-input:focus {
+    box-shadow: 0 0 1em #00000013;
+}
+
+.square-input:focus {
+    outline: none;
+    background-color: #f0eeee;
+}
+
+.square-input::-webkit-input-placeholder {
+    font-weight: 100;
+    color: #ccc;
+}
+
+.square-input:focus {
+    background-color: #f0eeee;
+}
+
+.square-button {
+    border: none;
+    margin-left: 0;
+    position: absolute;
+    right: 5px;
+    top: 50%;
+    transform: translateY(-50%);
+}
+
+.square-button:hover {
+    cursor: pointer;
+}
+
+.square-icon {
+    color: #b4b4b4;
+}
+
+/* 상세 서치바 */
+.search-bottom{
+    padding: 10px 0;
+}
+.option-searchbar {
+    width: 50%;
+    margin: 0 auto;
+    padding: 15px;
+    background-color: #f8f9fe;
+    border-radius: 10px;
+}
+
+/* 기타 공통 */
+.coupler {
+    font-size: 1.3rem;
+    margin-left: 5px;
+}
+
+.option-title {
+    padding: 0 5px;
+    font-size: 1.3rem;
+    color: #213f99;
+    margin-left: 5px;
+}
+
+.count-zone {
+    font-size: 1.3rem;
+}
+
+.count-zone span{
+    font-weight: 900;
+    color: #213f99;
+}
(파일 끝에 줄바꿈 문자 없음)
client/views/layout/Header.vue
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
@@ -6,11 +6,11 @@
                     <img src="../../resources/img/logo.png" alt="BI MANAGER LOGO">
                 </a>
             </div>
-            <div class="user-info flex-end">
+            <div class="user-info flex justify-end align-center">
                 <div class="sms">
                     <svg-icon type="mdi" :path="mdiEmail" color="#213f99"></svg-icon>
                 </div>
-                <div class="user flex">
+                <div class="user flex align-center">
                     <div class="user-img">
                         <svg-icon type="mdi" :path="mdiAccountCircle" color="#213f99"></svg-icon>
                     </div>
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -8,11 +8,12 @@
 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";
-import Horizontal from "../pages/layoutTemplate/Horizontal.vue";
-import Vertical from "../pages/layoutTemplate/Vertical.vue";
+import Searchbar from "../template/templateElement/Searchbar.vue";
+import Table from "../template/templateElement/Table.vue";
+import BtnPosition from "../template/templateElement/BtnPosition.vue";
+import Horizontal from "../template/layoutTemplate/Horizontal.vue";
+import Vertical from "../template/layoutTemplate/Vertical.vue";
+import Guide from "../template/guide/TemplateGuide.vue";
 
 const routes = [
   /* 메인화면 */
@@ -30,6 +31,7 @@
   {path: "/btnPosition.page",name: "BtnPosition",component: BtnPosition,},
   {path: "/horizontal.page",name: "Horizontal",component: Horizontal,},
   {path: "/vertical.page",name: "Vertical",component: Vertical,},
+  {path: "/guide.page",name: "Guide",component: Guide,},
 ];
 
 const AppRouter = createRouter({
 
client/views/pages/layoutTemplate/Vertical.vue (deleted)
--- client/views/pages/layoutTemplate/Vertical.vue
@@ -1,111 +0,0 @@
-<template>
-    <div class="container">
-        <div class="page-titleZone flex-between">
-            <p class="main-title">페이지 제목을 적어주세요</p>
-            <PageNavigation />
-        </div>
-        <div class="content-box flex-contentBox">
-            <div class="left-content flex20">
-                <div class="content-titleZone flex-between">
-                    <p class="box-title">폴더 리스트</p>
-                    <button class="darkg-border-btn small-btn">폴더추가</button>
-                </div>
-                <div class="content-zone">
-
-                </div>
-            </div>
-            <div class="right-content flex80">
-                <div class="searchbar-zone">
-                    <div class="flex-end">
-                        <input type="date" name="" id="" class="square-date">
-                        <span class="coupler">~</span>
-                        <input type="date" name="" id="" class="square-date">
-                        <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-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>
-                    </div>
-                    <PaginationButton class="flex10"/>
-                </div>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script>
-import PageNavigation from '../../component/PageNavigation.vue';
-import PaginationButton from '../../component/PaginationButton.vue';
-import FileTree from '../../component/FileTree.vue';
-import SvgIcon from '@jamescoyle/vue-icon';
-import { mdiMagnify } from '@mdi/js';
-export default {
-    data() {
-        return {
-            searchPath: mdiMagnify
-        }
-    },
-    methods: {
-
-    },
-    watch: {
-
-    },
-    computed: {
-
-    },
-    components: {
-        'PageNavigation': PageNavigation,
-        'FileTree': FileTree,
-        'SvgIcon': SvgIcon,
-        'PaginationButton': PaginationButton
-    },
-    mounted() {
-        console.log('main mounted');
-    }
-}
-</script>
-
-<style lang="css" scoped>
-.content-zone {
-    border: 1px solid #eee;
-    padding: 10px;
-    height: calc(100% - 55px);
-    overflow: auto;
-}
-</style>(파일 끝에 줄바꿈 문자 없음)
 
client/views/pages/template/DetailSearchBar.vue (deleted)
--- client/views/pages/template/DetailSearchBar.vue
@@ -1,173 +0,0 @@
-<template>
-    <div class="search-bar">
-        <div class="option-searchbar">
-            <div class="search-top">
-                <div class="flex">
-                    <input type="date" name="" id="" class="square-date">
-                    <span class="coupler">~</span>
-                    <input type="date" name="" id="" class="square-date">
-                    <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="search-bottom">
-                <table class="option-table">
-                    <colgroup>
-                        <col style="width: 10%;" />
-                    </colgroup>
-                    <tbody>
-                        <tr>
-                            <th>단일조건</th>
-                            <td>
-                                <div class="input-container flex">
-                                    <label class="radio-label">
-                                        <input type="radio" name="radio" checked="" class="custom-radiobox ">
-                                        <span>HTML</span>
-                                    </label>
-                                    <label class="radio-label">
-                                        <input type="radio" name="radio" class="custom-radiobox ">
-                                        <span>CSS</span>
-                                    </label>
-                                    <label class="radio-label">
-                                        <input type="radio" name="radio" class="custom-radiobox ">
-                                        <span>Javascript</span>
-                                    </label>
-                                </div>
-                            </td>
-                        </tr>
-                        <tr>
-                            <th>다중조건</th>
-                            <td>
-                                <div class="input-container flex">
-                                    <label class="check-label">
-                                        <input type="checkbox" name="check" checked="" class="custom-checkbox ">
-                                        <span>HTML</span>
-                                    </label>
-                                    <label class="check-label">
-                                        <input type="checkbox" name="check" class="custom-checkbox ">
-                                        <span>CSS</span>
-                                    </label>
-                                    <label class="check-label">
-                                        <input type="checkbox" name="check" class="custom-checkbox ">
-                                        <span>Javascript</span>
-                                    </label>
-                                </div>
-                            </td>
-                        </tr>
-                    </tbody>
-                </table>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script>
-import SvgIcon from '@jamescoyle/vue-icon';
-import { mdiMagnify } from '@mdi/js';
-export default {
-    data() {
-        return {
-            searchPath: mdiMagnify
-        }
-    },
-    methods: {
-
-    },
-    watch: {
-
-    },
-    computed: {
-
-    },
-    components: {
-        'SvgIcon': SvgIcon
-    },
-    mounted() {
-        console.log('main mounted');
-    }
-}
-</script>
-
-<style>
-.search-top {
-    padding: 15px 0;
-    border-bottom: 1px solid #aaa;
-}
-
-/* radio css */
-.input-container label {
-    display: flex;
-    cursor: pointer;
-    font-weight: 500;
-    position: relative;
-    overflow: hidden;
-    margin-bottom: 3px;
-}
-
-.input-container label input.custom-radiobox,
-.input-container label input.custom-checkbox {
-    position: absolute;
-    left: -9999px;
-}
-
-.input-container label input.custom-radiobox:checked+span {
-    background-color: #5b72b8;
-    color: #fff;
-}
-
-.input-container label input.custom-checkbox:checked+span {
-    background-color: #f8bb59;
-    color: #fff;
-}
-
-.input-container label input.custom-radiobox:checked+span:before {
-    box-shadow: inset 0 0 0 4px #213f99;
-}
-
-.input-container label input.custom-checkbox:checked+span:before {
-    box-shadow: inset 0 0 0 4px #ff9d00;
-}
-
-.input-container label span {
-    display: flex;
-    align-items: center;
-    padding: 3px 7px;
-    border-radius: 10px;
-    transition: 0.25s ease;
-    color: #333;
-}
-
-
-.input-container label.radio-label span:hover {
-    background-color: #d6d6e5;
-}
-
-.input-container label.check-label span:hover {
-    background-color: #f4e3c2;
-}
-
-.input-container label.radio-label span:before,
-.input-container label.check-label span:before {
-    display: flex;
-    flex-shrink: 0;
-    content: "";
-    background-color: #fff;
-    width: 15px;
-    height: 15px;
-    border-radius: 50%;
-    margin-right: 3px;
-    transition: 0.25s ease;
-    box-shadow: inset 0 0 0 1px #333;
-}
-
-.input-container label.check-label span:before {
-    border-radius: 0%;
-}
-</style>(파일 끝에 줄바꿈 문자 없음)
 
client/views/template/guide/TemplateGuide.vue (added)
+++ client/views/template/guide/TemplateGuide.vue
@@ -0,0 +1,49 @@
+<template>
+    <div>
+        <div class="content">
+            <div class="content-titleZone">
+                <p class="box-title">레이아웃</p>
+                <p>레이아웃은 2가지 형태로 나뉘며 좌우 아님 상하로 나뉘어짐</p>
+            </div>
+            <table class="option-table">
+                <colgroup>
+                    <col>
+                </colgroup>
+                <tbody>
+                    <tr>
+                        <th>상하(수평레이아웃)</th>
+                        <td></td>
+                    </tr>
+                    <tr>
+                        <th>좌우(수직레이아웃)</th>
+                        <td></td>
+                    </tr>
+                </tbody>
+            </table>
+        </div>
+    </div>
+</template>
+
+<script>
+
+export default {
+    data() {
+        return {
+        }
+    },
+    methods: {
+
+    },
+    watch: {
+
+    },
+    computed: {
+
+    },
+    components: {
+    },
+    mounted() {
+        console.log('main mounted');
+    }
+}
+</script>(파일 끝에 줄바꿈 문자 없음)
client/views/template/layoutTemplate/Horizontal.vue (Renamed from client/views/pages/layoutTemplate/Horizontal.vue)
--- client/views/pages/layoutTemplate/Horizontal.vue
+++ client/views/template/layoutTemplate/Horizontal.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="container">
-        <div class="page-titleZone flex-between">
+        <div class="page-titleZone flex justify-between">
             <p class="main-title">페이지 제목을 적어주세요</p>
             <PageNavigation />
         </div>
@@ -10,7 +10,7 @@
                     <p class="box-title">목록</p>
                 </div>
                 <div class="searchbar-zone">
-                    <div class="flex-end">
+                    <div class="flex justify-end align-center">
                         <span class="option-title">검증유형</span>
                         <select name="" id="" class="square-select">
                             <option value="all">전체</option>
@@ -27,15 +27,18 @@
                         </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">
+                    <div class="flex justify-between align-center">
+                        <div class="count-zone">
+                            <p>총 <span>40</span>건 중 <span>01</span>건 선택</p>
+                        </div>
+                        <div class="cunt-selectZone">
+                            <select name="" id="">
+                                <option value="">10개 보기</option>
+                                <option value="">20개 보기</option>
+                            </select>
+                        </div>
+                    </div>
                     <table class="list-table">
                         <colgroup>
                             <col style="width: ;">
@@ -137,6 +140,9 @@
                             </tr>
                         </tbody>
                     </table>
+                    <div class="flex justify-end">
+                        <button class="red-border-btn small-btn">선택항목 삭제</button>
+                    </div>
                 </div>
                 <PaginationButton />
             </div>
@@ -162,10 +168,10 @@
                             <tr>
                                 <th>생년월일</th>
                                 <td>
-                                    <div class="flex">
-                                        <select name="" id=""></select>
-                                        <select name="" id=""></select>
-                                        <select name="" id=""></select>
+                                    <div class="flex justify-between ">
+                                        <select name="" id="" class="flex30"></select>
+                                        <select name="" id="" class="flex30"></select>
+                                        <select name="" id="" class="flex30"></select>
                                     </div>
                                 </td>
                                 <th>성별</th>
@@ -176,7 +182,7 @@
                         </tbody>
                     </table>
                 </div>
-                <div class="flex-end">
+                <div class="flex justify-end">
                     <button class="blue-border-btn small-btn">등록</button>
                     <!-- 값이 있을때 수정 버튼으로 변경 -->
                     <!-- <button class="orange-border-btn small-btn">수정</button> -->
@@ -196,7 +202,7 @@
     data() {
         return {
             searchPath: mdiMagnify,
-            inputValue:null
+            inputValue: null
         }
     },
     methods: {
@@ -219,15 +225,4 @@
 }
 </script>
 
-<style scoped>
-.option-title {
-    padding: 0 5px;
-    font-size: 1.3rem;
-    color: #213f99;
-    margin-left: 5px;
-}
-
-.count-zone {
-    font-size: 1.3rem;
-}
-</style>
(파일 끝에 줄바꿈 문자 없음)
+<style scoped></style>
(파일 끝에 줄바꿈 문자 없음)
 
client/views/template/layoutTemplate/Vertical.vue (added)
+++ client/views/template/layoutTemplate/Vertical.vue
@@ -0,0 +1,165 @@
+<template>
+    <div class="container">
+        <div class="page-titleZone flex justify-between">
+            <p class="main-title">페이지 제목을 적어주세요</p>
+            <PageNavigation />
+        </div>
+        <div class="content-box flex justify-between">
+            <div class="left-content flex20">
+                <div class="content-titleZone flex justify-between">
+                    <p class="box-title">폴더 리스트</p>
+                    <button class="darkg-border-btn small-btn">폴더추가</button>
+                </div>
+                <div class="content-zone">
+
+                </div>
+            </div>
+            <div class="right-content flex80">
+                <div class="searchbar-zone">
+                    <div class="flex justify-end align-center">
+                        <input type="date" name="" id="" class="square-date">
+                        <span class="coupler">~</span>
+                        <input type="date" name="" id="" class="square-date">
+                        <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-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>
+                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>                                <tr>
+                                    <td>1</td>
+                                    <td>test123</td>
+                                    <td>홍길동</td>
+                                    <td>1999.01.01</td>
+                                    <td>여</td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                    <PaginationButton />
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import PageNavigation from '../../component/PageNavigation.vue';
+import PaginationButton from '../../component/PaginationButton.vue';
+import FileTree from '../../component/FileTree.vue';
+import SvgIcon from '@jamescoyle/vue-icon';
+import { mdiMagnify } from '@mdi/js';
+export default {
+    data() {
+        return {
+            searchPath: mdiMagnify
+        }
+    },
+    methods: {
+
+    },
+    watch: {
+
+    },
+    computed: {
+
+    },
+    components: {
+        'PageNavigation': PageNavigation,
+        'FileTree': FileTree,
+        'SvgIcon': SvgIcon,
+        'PaginationButton': PaginationButton
+    },
+    mounted() {
+        console.log('main mounted');
+    }
+}
+</script>
+
+<style lang="css" scoped>
+.content-zone {
+    border: 1px solid #eee;
+    padding: 10px;
+    height: calc(100% - 55px);
+    overflow: auto;
+}
+</style>(파일 끝에 줄바꿈 문자 없음)
client/views/template/templateElement/BtnPosition.vue (Renamed from client/views/pages/template/BtnPosition.vue)
--- client/views/pages/template/BtnPosition.vue
+++ client/views/template/templateElement/BtnPosition.vue
No changes
client/views/template/templateElement/DefaultSearchBar.vue (Renamed from client/views/pages/template/DefaultSearchBar.vue)
--- client/views/pages/template/DefaultSearchBar.vue
+++ client/views/template/templateElement/DefaultSearchBar.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="search-bar">
-        <div class="flex-end">
+        <div class="flex justify-end align-center">
             <input type="date" name="" id="" class="square-date">
             <span class="coupler">~</span>
             <input type="date" name="" id="" class="square-date">
 
client/views/template/templateElement/DetailSearchBar.vue (added)
+++ client/views/template/templateElement/DetailSearchBar.vue
@@ -0,0 +1,181 @@
+<template>
+    <div class="search-bar">
+        <div class="option-searchbar">
+            <div class="search-top flex justify-center">
+                <div class="flex align-center">
+                    <input type="date" name="" id="" class="square-date">
+                    <span class="coupler">~</span>
+                    <input type="date" name="" id="" class="square-date">
+                    <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="search-bottom">
+                <div class="flex">
+                    <div class="flex flex30  align-center">
+                    <span class="option-title">단일조건</span>
+                        <div class="input-container flex">
+                            <label class="radio-label">
+                                <input type="radio" name="radio" checked="" class="custom-radiobox ">
+                                <span>HTML</span>
+                            </label>
+                            <label class="radio-label">
+                                <input type="radio" name="radio" class="custom-radiobox ">
+                                <span>CSS</span>
+                            </label>
+                            <label class="radio-label">
+                                <input type="radio" name="radio" class="custom-radiobox ">
+                                <span>Javascript</span>
+                            </label>
+                        </div>
+                    </div>
+                    <div class="flex flex30  align-center">
+                    <span class="option-title">다중조건</span>
+                        <div class="input-container flex">
+                            <label class="check-label">
+                                <input type="checkbox" name="check" checked="" class="custom-checkbox ">
+                                <span>HTML</span>
+                            </label>
+                            <label class="check-label">
+                                <input type="checkbox" name="check" class="custom-checkbox ">
+                                <span>CSS</span>
+                            </label>
+                            <label class="check-label">
+                                <input type="checkbox" name="check" class="custom-checkbox ">
+                                <span>Javascript</span>
+                            </label>
+                        </div>
+                    </div>
+                    <div class="flex flex30  align-center">
+                    <span class="option-title">다중조건</span>
+                        <div class="input-container flex">
+                            <label class="radio-label">
+                                <input type="radio" name="radio" checked="" class="custom-radiobox ">
+                                <span>HTML</span>
+                            </label>
+                            <label class="radio-label">
+                                <input type="radio" name="radio" class="custom-radiobox ">
+                                <span>CSS</span>
+                            </label>
+                            <label class="radio-label">
+                                <input type="radio" name="radio" class="custom-radiobox ">
+                                <span>Javascript</span>
+                            </label>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import SvgIcon from '@jamescoyle/vue-icon';
+import { mdiMagnify } from '@mdi/js';
+export default {
+    data() {
+        return {
+            searchPath: mdiMagnify
+        }
+    },
+    methods: {
+
+    },
+    watch: {
+
+    },
+    computed: {
+
+    },
+    components: {
+        'SvgIcon': SvgIcon
+    },
+    mounted() {
+        console.log('main mounted');
+    }
+}
+</script>
+
+<style>
+.search-top {
+    padding: 15px 0;
+    border-bottom: 1px solid #aaa;
+}
+
+/* radio css */
+.input-container label {
+    display: flex;
+    cursor: pointer;
+    font-weight: 500;
+    position: relative;
+    overflow: hidden;
+    margin-bottom: 3px;
+}
+
+.input-container label input.custom-radiobox,
+.input-container label input.custom-checkbox {
+    position: absolute;
+    left: -9999px;
+}
+
+.input-container label input.custom-radiobox:checked+span {
+    background-color: #5b72b8;
+    color: #fff;
+}
+
+.input-container label input.custom-checkbox:checked+span {
+    background-color: #f8bb59;
+    color: #fff;
+}
+
+.input-container label input.custom-radiobox:checked+span:before {
+    box-shadow: inset 0 0 0 4px #213f99;
+}
+
+.input-container label input.custom-checkbox:checked+span:before {
+    box-shadow: inset 0 0 0 4px #ff9d00;
+}
+
+.input-container label span {
+    display: flex;
+    align-items: center;
+    padding: 3px 7px;
+    border-radius: 10px;
+    transition: 0.25s ease;
+    color: #333;
+}
+
+
+.input-container label.radio-label span:hover {
+    background-color: #d6d6e5;
+}
+
+.input-container label.check-label span:hover {
+    background-color: #f4e3c2;
+}
+
+.input-container label.radio-label span:before,
+.input-container label.check-label span:before {
+    display: flex;
+    flex-shrink: 0;
+    content: "";
+    background-color: #fff;
+    width: 15px;
+    height: 15px;
+    border-radius: 50%;
+    margin-right: 3px;
+    transition: 0.25s ease;
+    box-shadow: inset 0 0 0 1px #333;
+}
+
+.input-container label.check-label span:before {
+    border-radius: 0%;
+}
+</style>(파일 끝에 줄바꿈 문자 없음)
client/views/template/templateElement/FormTable.vue (Renamed from client/views/pages/template/FormTable.vue)
--- client/views/pages/template/FormTable.vue
+++ client/views/template/templateElement/FormTable.vue
@@ -17,10 +17,10 @@
                 <tr>
                     <th>생년월일</th>
                     <td>
-                        <div class="flex">
-                            <select name="" id=""></select>
-                            <select name="" id=""></select>
-                            <select name="" id=""></select>
+                        <div class="flex justify-between">
+                            <select name="" id="" class="flex30"></select>
+                            <select name="" id="" class="flex30"></select>
+                            <select name="" id="" class="flex30"></select>
                         </div>
                     </td>
                     <th>성별</th>
client/views/template/templateElement/ListTable.vue (Renamed from client/views/pages/template/ListTable.vue)
--- client/views/pages/template/ListTable.vue
+++ client/views/template/templateElement/ListTable.vue
@@ -1,5 +1,16 @@
 <template>
     <div class="table-zone">
+        <div class="flex justify-between align-center">
+            <div class="count-zone">
+                <p>총 <span>40</span>건 중 <span>01</span>건 선택</p>
+            </div>
+            <div class="cunt-selectZone">
+                <select name="" id="">
+                    <option value="">10개 보기</option>
+                    <option value="">20개 보기</option>
+                </select>
+            </div>
+        </div>
         <table class="list-table">
             <colgroup>
                 <col style="width: ;">
client/views/template/templateElement/Searchbar.vue (Renamed from client/views/pages/template/Searchbar.vue)
--- client/views/pages/template/Searchbar.vue
+++ client/views/template/templateElement/Searchbar.vue
No changes
client/views/template/templateElement/Table.vue (Renamed from client/views/pages/template/Table.vue)
--- client/views/pages/template/Table.vue
+++ client/views/template/templateElement/Table.vue
No changes
Add a comment
List