jichoi / lms_front star
[jichoi] 2024-08-07
240807 최정임
@7b34d9cb39fdf3deed9690efa73447fbf4b9d0a9
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -1084,6 +1084,7 @@
   em.green{color: #00B204; }
   em.gray{color: #75767A; }
   em.yellow-bg{background-color: #FFBA08; }
+  em.gray-bd{background-color: #EEF0F6; border: 1px solid #8C8E92; border-radius: 20px; padding: 5px 10px;}
   input.yellow-bd{border:#FFBA08 solid 2px ; border-radius: 10px; padding: 20px; font-size: 24px; font-family: 'ONEMobileOTF-Regular';}
   
   .blue-c{border: #2948FF solid 5px; width: 30px; height: 30px; border-radius: 50px;}
@@ -1152,4 +1153,16 @@
     border-radius: 50%;
     border: 3px solid #ffffff;
     accent-color: #ffba08;
-}
(No newline at end of file)
+}
+
+
+.bg-gray {
+    background-color: #F8F9FB;
+    border-radius: 10px;
+    padding: 20px;
+  }
+
+  .cs-pt{cursor: pointer;}
+  .cs-pt-clicked {
+    background-color: lightblue; /* Change to your desired background color */
+  }
(No newline at end of file)
client/resources/css/style.css
--- client/resources/css/style.css
+++ client/resources/css/style.css
@@ -310,12 +310,12 @@
   color: #DB2B39;
 }
 
-.myphoto{
+.myphoto >div{
   
   background-image: url('../img/img207_15s.png');
   width: 1011px;
   height: 558px;
-  padding: 30px;
+  padding: 30px 60px;
   margin: 0 auto;
 }
 .tab-btn{position: relative; color: #568BFA;}
@@ -336,11 +336,48 @@
     right: 45px;
     z-index: -1;
 }
-.tab-box{
-  margin: 80px 60px 20px 60px;
+.myphoto .class{border-radius: 0px; padding: 10px;}
+.myphoto .class .box {
+  background-color: transparent;
+  border-radius: 0px;
+  padding: 0;
 }
-
-
+.myphoto .class .member::before{content: ""; background-image: url('../img/btn47_15s_normal.png'); width: 16px; height: 14px; position: absolute; left: -28px; top: 4px;}
+.myphoto .photo{cursor: pointer; }
+.myphoto .photo .title2{color: #8C8E92;}
+.myphoto .tab-box{
+  margin: 40px 0px 20px 50px;
+}
+.myphoto .photo:hover .class {transform: rotate(2deg);} 
+.myphoto  .popup-wrap .date{position: relative;}
+.myphoto  .popup-wrap .date::before{content: ""; background-image: url('../img/img183_91t.png'); width: 20px; height: 22px; position: absolute; left: -28px;   
+}
+/* 학습일정계획 */
+.myplan  .popup-wrap article{max-height: 400px; overflow-x: auto;}
+.myplan{padding-right: 10px;}
+.myplan .yellow-box{
+  background-color: #FFF8E9;
+  border: 1px solid #FFBA08;
+    padding: 4rem;
+    position: relative;
+    border-radius: 10px;
+}
+.myplan .yellow-btn{
+  background-image: url('../img/btn08_s.png');
+  width: 181px;
+  height: 60px;
+  padding: 5px 20px;
+    font-size: 28px;
+    font-family: 'ONEMobilePOP';
+}
+.myplan .table-wrap  .title2{color: #464749;}
+.myplan  input[type="checkbox"]{width: 30px; height: 30px;}
+.myplan .ui-checkbox::before {width: 11px; height: 14px;}
+.myplan .table-wrap tr {
+  border-top: #C6C6C6 1px solid;
+  border-bottom: #C6C6C6 1px solid;
+}
+.myplan .imgGroup img{width: 349px; height: 312px;}
 /* 대시보드 */
 .main {
   max-height: 600px;
@@ -438,8 +475,8 @@
   font-family: 'ONEMobilePOPOTF';
   font-weight: 100;
 }
-
-
+.complete-wrap img{width: inherit;}
+.complete-wrap .photo{cursor: pointer; width: 200px; height: 130px;}
 /* 챕터 */
 .content-wrap {
   margin: 90px 60px 0 60px;
@@ -789,7 +826,7 @@
 select option{font-size: 20px; font-weight: bold;}
 
 
-.class{ background-color: #F8F9FB; border-radius: 10px; padding: 25px; font-size: 19px;}
+.class{ background-color: #F8F9FB; border-radius: 10px; padding: 25px; font-size: 19px;     width: max-content;}
 .class .title1, .textbook .title1{font-family: 'ONEMobilePOP';     font-weight: 100;}
 .class .box{background-color: #EAEDF4; border-radius: 10px;
   padding: 10px;
@@ -824,7 +861,7 @@
 .search-wrap button{
   position: absolute;
   right: 1rem;
-  top: 6px;
+  top: 9px;
 }
 .input-icon{
 display: block;
@@ -874,10 +911,10 @@
 
 .popup-box {
     position: fixed;
-    width: 670px;
+    min-width: 670px;
     /* min-height: 219px; */
     background-color: var(--color-white);
-    top: 50%;
+    top:23%;
     left: 37%;
     transform: translateY(-50%);
     border: 1px solid var(--color-gray);
client/views/layout/Header.vue
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
@@ -1,25 +1,49 @@
 <template>
     <div class="header flex justify-end">
         <img src="../../resources/img/setting.png" alt="">
-        <div class="notice" @click="buttonSearch"><img  src="../../resources/img/icon2.png" alt="">
+        <div class="notice" @click="buttonSearch"><img src="../../resources/img/icon2.png" alt="">
             <p>1</p>
         </div>
         <img src="../../resources/img/img03.png" alt="">
         <div class="popup-wrap" v-show="searchOpen">
             <div class="popup-box ">
                 <div class="flex mb10  justify-between">
-                    <p class="popup-title" >알림</p>
+                    <p class="popup-title">알림</p>
                     <button type="button" class="popup-close-btn" @click="closeBtn">
-                        <svg-icon type="mdi" :path="mdiWindowClose" class="close-btn"></svg-icon>    
+                        <svg-icon type="mdi" :path="mdiWindowClose" class="close-btn"></svg-icon>
                     </button>
                 </div>
                 <article class="flex justify-between mt20">
                     <img style="width: fit-content;" src="../../resources/img/img200_13p.png" alt="">
                     <p class="title1 ml20" style="width: 60%;">1반친구들</p>
-                    <button type="button" title="글쓰기" class="new-btn">
-                  자세히 보기
-               </button>
+                    <button @click="buttonSearch2" type="button" title="글쓰기" class="new-btn">
+                        자세히 보기
+                    </button>
                 </article>
+            </div>
+        </div>
+        <div class="popup-wrap popup2" v-show="searchOpen2">
+            <div class="popup-box ">
+                <div class="flex mb10  justify-between">
+                    <p class="popup-title">알림 자세히 보기</p>
+                    <button type="button" class="popup-close-btn" @click="closeBtn2">
+                        <svg-icon type="mdi" :path="mdiWindowClose" class="close-btn"></svg-icon>
+                    </button>
+                </div>
+                <div class="board-wrap">
+                    <div class="flex align-center">
+                        <label for="" class="title2">제목</label>
+                        <input type="text" class="data-wrap">
+                    </div>
+                    <hr>
+                    <textarea name="" id=""></textarea>
+
+                </div>
+                <div class="flex justify-center mt20">
+                    <button type="button" title="확인" class="new-btn">
+                        확인
+                    </button>
+                </div>
             </div>
         </div>
     </div>
@@ -35,6 +59,7 @@
             mdiWindowClose: mdiWindowClose,
             showModal: false,
             searchOpen: false,
+            searchOpen2: false,
         }
     },
     methods: {
@@ -44,8 +69,15 @@
         buttonSearch() {
             this.searchOpen = true;
         },
+        buttonSearch2() {
+            this.searchOpen2 = true;
+        },
         closeBtn() {
             this.searchOpen = false;
+
+        },
+        closeBtn2() {
+            this.searchOpen2 = false;
 
         },
     },
@@ -71,9 +103,14 @@
     height: fit-content;
     z-index: 10;
 }
-.popup-box{
-    top: 8%;
-    right: 58px;
+
+.popup-box {
+    top: 164px;
     left: 62%;
 }
+
+.popup2 .popup-box {
+    top: 450px;
+    left: 38%;
+}
 </style>
(No newline at end of file)
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -5,6 +5,7 @@
 import Join from "../Join.vue"
 import MyPage from './main/MyPage.vue';
 import MyPlan from './main/MyPlan.vue';
+import MyPlan2 from './main/MyPlan2.vue';
 import PhotoBook from './main/PhotoBook.vue';
 import Dashboard from './main/Dashboard.vue';
 import Main from "./main/Main.vue";
@@ -89,6 +90,7 @@
             { path: '/Dashboard.page', name: 'Dashboard', component: Dashboard },
             { path: '/MyPage.page', name: 'MyPage', component: MyPage },
             { path: '/MyPlan.page', name: 'MyPlan', component: MyPlan },
+            { path: '/MyPlan2.page', name: 'MyPlan2', component: MyPlan2 },
             { path: '/PhotoBook.page', name: 'PhotoBook', component: PhotoBook },
         ]
     },
client/views/pages/main/Dashboard.vue
--- client/views/pages/main/Dashboard.vue
+++ client/views/pages/main/Dashboard.vue
@@ -59,24 +59,61 @@
                 </div>
             </div>
         </div>
-        <div class="complete-wrap mt90 ">
-            <h2 class="mb40">전체 진행률</h2>
+        <div class="complete-wrap mt90 myphoto">
+            <h2 class="mb40">이 단원을 끝낸 친구들</h2>
+            <article class=" flex-column" style="gap: 5px;">
+                <div class="flex" style="gap: 5px;">
+                    <div @click="buttonSearch" class="photo" ><img   src="../../../resources/img/img143_75s.png" alt=""></div>
+                </div>
+            </article>
+            <article class="popup-wrap" v-show="searchOpen">
+                <div class="popup-box ">
+                    <div class="flex mb10  justify-between">
+                        <p class="popup-title">알림</p>
+                        <button type="button" class="popup-close-btn" @click="closeBtn">
+                            <svg-icon type="mdi" :path="mdiWindowClose" class="close-btn"></svg-icon>
+                        </button>
+                    </div>
+                    <div class="box">
+                        <div><img src="../../../resources/img/img184_91t.png" alt=""></div>
+                    </div>
+                    <div class="text flex justify-between mt20">
+                        <span class=" title1">1단원을 마친 <em class="yellow">가나다</em>친구</span>
+                        <p class="title2 date">2024-08-06</p>
+                    </div>
+                </div>
+            </article>
         </div>
 
     </div>
 </template>
 
 <script>
-
+import SvgIcon from '@jamescoyle/vue-icon';
+import { mdiMagnify, mdiHeart, mdiWindowClose } from '@mdi/js';
 export default {
     data() {
         return {
+            mdiWindowClose: mdiWindowClose,
+            showModal: false,
+            searchOpen: false,
+            searchOpen2: false,
         }
     },
     methods: {
         goToPage(page) {
             this.$router.push({ name: page });
-        }
+        },
+        closeModal() {
+            this.showModal = false;
+        },
+        buttonSearch() {
+            this.searchOpen = true;
+        },
+        closeBtn() {
+            this.searchOpen = false;
+
+        },
     },
     watch: {
 
@@ -85,6 +122,7 @@
 
     },
     components: {
+        SvgIcon,
     },
     mounted() {
         console.log('main mounted');
client/views/pages/main/MyPlan.vue
--- client/views/pages/main/MyPlan.vue
+++ client/views/pages/main/MyPlan.vue
@@ -1,14 +1,72 @@
 <template>
-    <div>학습일정계획</div>
+    <div class="myplan">
+        <div class="title-box flex justify-between mb40">
+            <p class="title">오늘 공부할 내용을 확인해봅시다.</p>
+            <!-- <select name="" id="">
+                <option value="">A반</option>
+            </select> -->
+        </div>
+        <div class="wrap" style="border-radius: 0; min-height: 197px;">
+           <p class="title1"> 오늘 학습할 내용이 없습니다.</p>
+        </div>
+        <div class="yellow-box mt30">
+            <div class="title-box flex justify-between align-center">
+                <div >
+                    <p class="title">오늘 공부를 계획해봅시다.</p>
+                    <p class="title1 mt20"> 스스로 학습 일정을 바꿔볼까요?</p>
+                </div>
+                <button type="button" title="바로가기" class="yellow-btn" @click="goToPage('MyPlan2')">
+                    바로가기
+                </button>
+            </div>
+        </div>
+    </div>
+
+    
 </template>
 
 <script>
+import SvgIcon from '@jamescoyle/vue-icon';
+import { mdiMagnify, mdiWindowClose } from '@mdi/js';
+
+
 export default {
-    data () {
+    data() {
         return {
+            mdiMagnify: mdiMagnify,
+            mdiWindowClose: mdiWindowClose,
+            showModal: false,
+            searchOpen: false,
         }
     },
     methods: {
+        goToPage(page) {
+            this.$router.push({ name: page });
+        },
+        showConfirm(type) {
+            let message = '';
+            if (type === 'cancel') {
+                message = '삭제하시겠습니까?';
+            } else if (type === 'reset') {
+                message = '초기화하시겠습니까?';
+            } else if (type === 'save') {
+                message = '등록하시겠습니까?';
+            }
+
+            if (confirm(message)) {
+                this.goBack();
+            }
+        },
+        closeModal() {
+            this.showModal = false;
+        },
+        buttonSearch() {
+            this.searchOpen = true;
+        },
+        closeBtn() {
+            this.searchOpen = false;
+
+        },
 
     },
     watch: {
@@ -17,6 +75,9 @@
     computed: {
 
     },
+    components: {
+        SvgIcon
+    },
     mounted() {
         console.log('Main2 mounted');
     }
 
client/views/pages/main/MyPlan2.vue (added)
+++ client/views/pages/main/MyPlan2.vue
@@ -0,0 +1,269 @@
+<template>
+    <div class=" main">
+        <div class="myplan">
+            <div class="title-box flex justify-between mb40">
+            <p class="title">오늘 공부를 계획해봅시다.</p>
+            <!-- <select name="" id="">
+                <option value="">A반</option>
+            </select> -->
+        </div>
+            <div class="wrap">
+                <p class="title1"> 학습 교재를 선택합시다.</p>
+                <div class="search-wrap flex justify-end mb20 mt20">
+                    <!-- <select name="" id="" class="mr10 data-wrap">
+                       <option value="">전체</option>
+                   </select> -->
+                    <input class="data-wrap" type="text" placeholder="검색하세요.">
+                    <button type="button" title="위원회 검색">
+                        <img src="../../../resources/img/look_t.png" alt="">
+                    </button>
+                </div>
+                <div class="table-wrap">
+                    <table>
+                        <colgroup>
+                            <col style="width: 5%;">
+                            <col style="width: 10%;">
+                            <col style="width: 70%;">
+                            <col style="width: 15%;">
+                        </colgroup>
+                        <tr>
+                            <td><input type="checkbox" class="ui-checkbox mr10"></td>
+                            <td><img src="../../../resources/img/img214_19s.png" alt=""></td>
+                            <td class="text-lf">
+                                <p class="title1">the best</p>
+                                <p class="title2">wirte a</p>
+                            </td>
+                            <td> <button type="button" title="확인" class="new-btn" @click="buttonSearch">
+                                    시간입력
+                                </button></td>
+                        </tr>
+                        <tr>
+                            <td><input type="checkbox" class="ui-checkbox mr10"></td>
+                            <td><img src="../../../resources/img/img214_19s.png" alt=""></td>
+                            <td class="text-lf">
+                                <p class="title1">the best</p>
+                                <p class="title2">wirte a</p>
+                            </td>
+                            <td> <button type="button" title="확인" class="new-btn" @click="buttonSearch">
+                                    시간입력
+                                </button></td>
+                        </tr>
+                    </table>
+                    <div class="flex justify-end">
+                        <button type="button" title="선택하기" class="yellow-btn mt30">
+                            선택하기
+                        </button>
+                    </div>
+                </div>
+            </div>
+            <div class="wrap mt30">
+                <p class="title1 mb20"> AI 맞춤형 학습 코스는 어떨까요?</p>
+                <div class="imgGroup flex justify-between">
+                    <div class="text-lf">
+                        <img src="../../../resources/img/img215_22s.png" alt="">
+                        <p class="title2 mt10">추천 학습 단원</p>
+                    </div>
+                    <div class="text-lf">
+                        <img src="../../../resources/img/img215_22s.png" alt="">
+                        <p class="title2 mt10">추천 학습 단원</p>
+                    </div>
+                    <div class="text-lf">
+                        <img src="../../../resources/img/img215_22s.png" alt="">
+                        <p class="title2 mt10">추천 학습 단원</p>
+                    </div>
+                </div>
+            </div>
+            <div class="wrap mt30">
+                <p class="title1 mb20">학습일정을 확인해봅시다. </p>
+                <div class="flex-column" style="gap: 20px;">
+                    <div class=" flex justify-between align-center " style="gap: 70px;">
+                        <div><img src="../../../resources/img/img217_22s.png" alt=""></div>
+                        <div class="wrap cs-pt" :class="{ 'cs-pt-clicked': isClicked }" @click="toggleClicked" style="width: 100%;">
+                            <div class="text-lf flex justify-between align-center ">
+                               <div>
+                                    <div class="flex align-center mb10" style="gap: 10px;">
+                                        <p class="title2"><em class="gray-bd">1교시</em></p>
+                                        <p class="title1">9:00</p>
+                                        <p class="title1">~</p>
+                                        <p class="title1">10:00</p>
+                                    </div>
+                                    <div class="title-box  mb10"> <span class="title">the best</span></div>
+                                    <p class="title2">wirte a</p>
+                               </div>
+                               <div class=""> <img src="../../../resources/img/img214_19s.png" alt=""></div>
+                            </div>
+                        </div>
+                    </div>
+                    
+                </div>
+                <div class="flex justify-end">
+                        <button type="button" title="선택하기" class="yellow-btn mt30">
+                            선택하기
+                        </button>
+                    </div>
+            </div>
+            <!-- <div class="yellow-box mt30">
+                <div class="title-box flex justify-between align-center">
+                    <div>
+                        <p class="title">학습 일정 변경</p>
+                        <p class="title1 mt20"> 스스로 학습 일정을 바꿔볼까요?</p>
+                    </div>
+                    <button type="button" title="바로가기" class="yellow-btn" @click="goToPage('MyPlan2')">
+                    바로가기
+                </button>
+                </div>
+            </div> -->
+            <div class="popup-wrap" v-show="searchOpen">
+                <div class="popup-box ">
+                    <div class="flex mb10  justify-between">
+                        <p class="popup-title mb20">시간 선택</p>
+                        <button type="button" class="popup-close-btn" @click="closeBtn">
+                            <svg-icon type="mdi" :path="mdiWindowClose" class="close-btn"></svg-icon>
+                        </button>
+                    </div>
+                    <article class=" mb20 flex-column " style="gap: 20px;">
+                        <div class="flex justify-between bg-gray">
+                            <div class="flex align-center">
+                                <div><input type="checkbox" class="ui-checkbox mr20"></div>
+                                <div class="text-lf">
+                                    <p class="title1">2교시</p>
+                                </div>
+                            </div>
+                            <div>
+                                <div class="flex align-center " style="gap: 10px;"><img
+                                        src="../../../resources/img/img215_20s.png" alt="">
+                                    <p class="title1">9:00</p>
+                                    <p class="title1">~</p>
+                                    <p class="title1">10:00</p>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex justify-between bg-gray">
+                            <div class="flex align-center">
+                                <div><input type="checkbox" class="ui-checkbox mr20"></div>
+                                <div class="text-lf">
+                                    <p class="title1">2교시</p>
+                                </div>
+                            </div>
+                            <div>
+                                <div class="flex align-center " style="gap: 10px;"><img
+                                        src="../../../resources/img/img215_20s.png" alt="">
+                                    <p class="title1">9:00</p>
+                                    <p class="title1">~</p>
+                                    <p class="title1">10:00</p>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex justify-between bg-gray">
+                            <div class="flex align-center">
+                                <div><input type="checkbox" class="ui-checkbox mr20"></div>
+                                <div class="text-lf">
+                                    <p class="title1">2교시</p>
+                                </div>
+                            </div>
+                            <div>
+                                <div class="flex align-center " style="gap: 10px;"><img
+                                        src="../../../resources/img/img215_20s.png" alt="">
+                                    <p class="title1">9:00</p>
+                                    <p class="title1">~</p>
+                                    <p class="title1">10:00</p>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="flex justify-between bg-gray">
+                            <div class="flex align-center">
+                                <div><input type="checkbox" class="ui-checkbox mr20"></div>
+                                <div class="text-lf">
+                                    <p class="title1">2교시</p>
+                                </div>
+                            </div>
+                            <div>
+                                <div class="flex align-center " style="gap: 10px;"><img
+                                        src="../../../resources/img/img215_20s.png" alt="">
+                                    <p class="title1">9:00</p>
+                                    <p class="title1">~</p>
+                                    <p class="title1">10:00</p>
+                                </div>
+                            </div>
+                        </div>
+                    </article>
+                    <div class="flex justify-center mt20">
+                        <button type="button" title="선택" class="new-btn">
+                            선택
+                        </button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+</template>
+
+<script>
+import SvgIcon from '@jamescoyle/vue-icon';
+import { mdiMagnify, mdiWindowClose } from '@mdi/js';
+
+
+export default {
+    data() {
+        return {
+            isClicked: false,
+            mdiMagnify: mdiMagnify,
+            mdiWindowClose: mdiWindowClose,
+            showModal: false,
+            searchOpen: false,
+        }
+    },
+    methods: {
+        toggleClicked() {
+      this.isClicked = !this.isClicked;
+    },
+        goToPage(page) {
+            this.$router.push({ name: page });
+        },
+        showConfirm(type) {
+            let message = '';
+            if (type === 'cancel') {
+                message = '삭제하시겠습니까?';
+            } else if (type === 'reset') {
+                message = '초기화하시겠습니까?';
+            } else if (type === 'save') {
+                message = '등록하시겠습니까?';
+            }
+
+            if (confirm(message)) {
+                this.goBack();
+            }
+        },
+        closeModal() {
+            this.showModal = false;
+        },
+        buttonSearch() {
+            this.searchOpen = true;
+        },
+        closeBtn() {
+            this.searchOpen = false;
+
+        },
+
+    },
+    watch: {
+
+    },
+    computed: {
+
+    },
+    components: {
+        SvgIcon
+    },
+    mounted() {
+        console.log('Main2 mounted');
+    }
+}
+</script>
+<style scoped>
+.popup-box {
+    width: 750px;
+
+}
+</style>(No newline at end of file)
client/views/pages/main/PhotoBook.vue
--- client/views/pages/main/PhotoBook.vue
+++ client/views/pages/main/PhotoBook.vue
@@ -3,37 +3,120 @@
         <p class="title">내 사진첩</p>
     </div>
     <div class="myphoto mb30">
-        <div class="title-box flex justify-end mb40">
-            <select name="" id="">
-                <option value="">A반</option>
-            </select>
-        </div>
-        <div class="btnGroup">
-            <button @click="selectedTab = 'tab1'" type="button" title="글쓰기" class="tab-btn">
-                <img v-if="selectedTab !== 'tab1'" src="../../../resources/img/btn49_15s_normal.png" alt="">
-                <img v-else src="../../../resources/img/btn49_15s_click.png" alt="">
-                <p :class="{ 'custom-style': selectedTab === 'tab1' }">1</p>
-            </button>
-        </div>
-        <div v-if="selectedTab === 'tab1'" class="tab-box">
-            <div class="class photo">
-                <div class="box gd-col2" style="gap: 10px;" @click="goToPage('ClassDetail')">
-                    <div><img src="../../../resources/img/img210_15s.png" alt=""></div>
-                </div>
-                <div class="text flex justify-between mt20">
-                    <p class="title1">A반</p>
-                    <span class="member">20명</span>
-                </div>
-               
+       <div>
+            <div class="title-box flex justify-end mb40">
+                <select name="" id="">
+                    <option value="">A반</option>
+                </select>
             </div>
-
-        </div>
+            <div class="btnGroup">
+                <button @click="selectedTab = 'tab1'" type="button" title="글쓰기" class="tab-btn">
+                    <img v-if="selectedTab !== 'tab1'" src="../../../resources/img/btn49_15s_normal.png" alt="">
+                    <img v-else src="../../../resources/img/btn49_15s_click.png" alt="">
+                    <p :class="{ 'custom-style': selectedTab === 'tab1' }">1</p>
+                </button>
+            </div>
+            <div v-if="selectedTab === 'tab1'" class="tab-box">
+                <div class="flex justify-between">
+                    <div class="photo" style="transform: rotate(2deg);" @click="buttonSearch">
+                        <div class="class ">
+                            <div class="box">
+                                <div><img src="../../../resources/img/img213_15s.png" alt=""></div>
+                            </div>
+                            <div class="text flex justify-between mt20">
+                                <span class="member ml30">20</span>
+                                <p class="title2">1단원</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="photo" style="transform: rotate(-1deg);" @click="buttonSearch">
+                        <div class="class photo">
+                            <div class="box">
+                                <div><img src="../../../resources/img/img213_15s.png" alt=""></div>
+                            </div>
+                            <div class="text flex justify-between mt20">
+                                <span class="member ml30">20</span>
+                                <p class="title2">1단원</p>
+                            </div>
+    
+                        </div>
+                    </div>
+                    <div class="photo" style="transform: rotate(1deg);" @click="buttonSearch">
+                        <div class="class ">
+                            <div class="box">
+                                <div><img src="../../../resources/img/img213_15s.png" alt=""></div>
+                            </div>
+                            <div class="text flex justify-between mt20">
+                                <span class="member ml30">20</span>
+                                <p class="title2">1단원</p>
+                            </div>
+    
+                        </div>
+                    </div>
+                </div>
+                <div class="flex justify-between mt50">
+                    <div class="photo" style="transform: rotate(-2deg);" @click="buttonSearch">
+                        <div class="class ">
+                            <div class="box">
+                                <div><img src="../../../resources/img/img213_15s.png" alt=""></div>
+                            </div>
+                            <div class="text flex justify-between mt20">
+                                <span class="member ml30">20</span>
+                                <p class="title2">1단원</p>
+                            </div>
+    
+                        </div>
+                    </div>
+                    <div class="photo" style="transform: rotate(1deg);" @click="buttonSearch">
+                        <div class="class ">
+                            <div class="box">
+                                <div><img src="../../../resources/img/img213_15s.png" alt=""></div>
+                            </div>
+                            <div class="text flex justify-between mt20">
+                                <span class="member ml30">20</span>
+                                <p class="title2">1단원</p>
+                            </div>
+    
+                        </div>
+                    </div>
+                    <div class="photo" style="transform: rotate(-1deg);" @click="buttonSearch">
+                        <div class="class ">
+                            <div class="box">
+                                <div><img src="../../../resources/img/img213_15s.png" alt=""></div>
+                            </div>
+                            <div class="text flex justify-between mt20">
+                                <span class="member ml30">20</span>
+                                <p class="title2">1단원</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+    
+            </div>
+            <div class="popup-wrap" v-show="searchOpen">
+                <div class="popup-box ">
+                    <div class="flex mb10  justify-between">
+                        <p class="popup-title">알림</p>
+                        <button type="button" class="popup-close-btn" @click="closeBtn">
+                            <svg-icon type="mdi" :path="mdiWindowClose" class="close-btn"></svg-icon>
+                        </button>
+                    </div>
+                    <div class="box">
+                        <div><img src="../../../resources/img/img184_91t.png" alt=""></div>
+                    </div>
+                    <div class="text flex justify-between mt20">
+                        <span class=" title1">1단원을 마친 <em class="yellow">가나다</em>친구</span>
+                        <p class="title2 date">2024-08-06</p>
+                    </div>
+                </div>
+            </div>
+       </div>
     </div>
 </template>
 
 <script>
 import SvgIcon from '@jamescoyle/vue-icon';
-import { mdiMagnify, } from '@mdi/js';
+import { mdiMagnify, mdiHeart, mdiWindowClose } from '@mdi/js';
 import { mdilArrowRight } from '@mdi/light-js';
 import ProgressBar from '../../component/ProgressBar.vue';
 
@@ -41,14 +124,28 @@
 export default {
     data() {
         return {
+            mdiWindowClose: mdiWindowClose,
             selectedTab: 'tab1',
             mdiMagnify: mdiMagnify,
             mdilArrowRight: mdilArrowRight,
             timer: "00:00",
-            progress: 20
+            progress: 20,
+            showModal: false,
+            searchOpen: false,
+            searchOpen2: false,
         }
     },
     methods: {
+        closeModal() {
+            this.showModal = false;
+        },
+        buttonSearch() {
+            this.searchOpen = true;
+        },
+        closeBtn() {
+            this.searchOpen = false;
+
+        },
         goToPage(page) {
             this.$router.push({ name: page });
         },
Add a comment
List