jichoi / lms_front star
[jichoi] 2024-08-07
240807 최정임
@7f75fa22b138cded67ac8ac83bb3b47b3f922c2c
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -1165,4 +1165,6 @@
   .cs-pt{cursor: pointer;}
   .cs-pt-clicked {
     background-color: lightblue; /* Change to your desired background color */
-  }
(No newline at end of file)
+  }
+
+  .row-bd{border-right: 1px solid #C6C6C6; height: 40px;}
(No newline at end of file)
client/resources/css/style.css
--- client/resources/css/style.css
+++ client/resources/css/style.css
@@ -362,7 +362,7 @@
     position: relative;
     border-radius: 10px;
 }
-.myplan .yellow-btn{
+.yellow-btn{
   background-image: url('../img/btn08_s.png');
   width: 181px;
   height: 60px;
@@ -373,7 +373,7 @@
 .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 {
+.myplan table tr {
   border-top: #C6C6C6 1px solid;
   border-bottom: #C6C6C6 1px solid;
 }
@@ -794,7 +794,12 @@
 
 .listen-btn{cursor: pointer;}
 
-
+/* 퀴즈 결과 */
+.result-box{
+  max-height: 400px;
+  overflow: auto;
+  padding-right: 10px;
+}
 
 /* ------------------------학생 --------------------- */
 
@@ -961,8 +966,7 @@
   padding: 2rem;
   position: relative;
   border-radius: 10px;
-  
-
+  background-color: #fff;
 }
 .mypage .wrap{overflow-x: auto;}
 .wrap section {width: max-content;}
client/views/layout/Side.vue
--- client/views/layout/Side.vue
+++ client/views/layout/Side.vue
@@ -26,8 +26,12 @@
             <div class="flex justify-end"><button>질문하기</button></div>
         </div>
         <div class="btn-wrap flex justify-between">
-            <button class="login-btn" type="submit" ><img src="../../resources/img/btn07_s.png" alt=""> <p >오답노트</p></button>
-            <button class="login-btn" type="submit" ><img src="../../resources/img/btn07_s.png" alt=""> <p >오늘 할 다른 공부</p></button>
+            <button class="login-btn" @click="handleClick" >
+                <img  src="../../resources/img/btn07_s.png" alt="">
+                <p>{{ buttonText }}</p>
+            </button>
+            
+            <button  class="login-btn" type="submit" ><img src="../../resources/img/btn07_s.png" alt=""> <p >오늘 할 다른 공부</p></button>
         </div>
     </div>
 </template>
@@ -38,10 +42,32 @@
 export default {
     data () {
         return {
+            buttonText: '오답노트',
             progress: 20
         }
     },
     methods: {
+        handleClick() {
+            this.toggleText();
+            this.goToPage('PreviewNote');
+        },
+        handleClick() {
+            this.toggleTextAndNavigate();
+        },
+        toggleTextAndNavigate() {
+            if (this.buttonText === '오답노트') {
+                this.buttonText = '학습 코스';
+                this.goToPage('PreviewNote');
+                 // 버튼 텍스트가 '학습 코스'일 때 이동할 경로
+            } else {
+                this.buttonText = '오답노트';
+                this.goToPage('Dashboard');
+                 // 버튼 텍스트가 '오답노트'일 때 이동할 경로
+            }
+        },
+        goToPage(page) {
+            this.$router.push({ name: page });
+        },
         increaseProgress() {
       if (this.progress < 100) {
         this.progress += 10;
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -8,6 +8,7 @@
 import MyPlan2 from './main/MyPlan2.vue';
 import PhotoBook from './main/PhotoBook.vue';
 import Dashboard from './main/Dashboard.vue';
+import PreviewNote from './main/PreviewNote.vue';
 import Main from "./main/Main.vue";
 import Chapter1 from "./main/Chapter/Chapter1.vue";
 import Chapter1_1 from "./main/Chapter/Chapter1_1.vue";
@@ -92,6 +93,7 @@
             { path: '/MyPlan.page', name: 'MyPlan', component: MyPlan },
             { path: '/MyPlan2.page', name: 'MyPlan2', component: MyPlan2 },
             { path: '/PhotoBook.page', name: 'PhotoBook', component: PhotoBook },
+            { path: '/PreviewNote.page', name: 'PreviewNote', component: PreviewNote },
         ]
     },
 
@@ -134,9 +136,11 @@
     { path: '/Chapter3_13.page', name: 'Chapter3_13', component: Chapter3_13 },
     { path: '/Chapter3_14.page', name: 'Chapter3_14', component: Chapter3_14 },
     { path: '/Chapter3_15.page', name: 'Chapter3_15', component: Chapter3_15 },
+    /* 설문 조사 페이지*/
     { path: '/Chapter3_16.page', name: 'Chapter3_16', component: Chapter3_16 },
-
+/* 평가 결과 페이지*/
     { path: '/Chapter4.page', name: 'Chapter4', component: Chapter4 },
+
     { path: '/Chapter5.page', name: 'Chapter5', component: Chapter5 },
     { path: '/Chapter6.page', name: 'Chapter6', component: Chapter6 },
     { path: '/Chapter7.page', name: 'Chapter7', component: Chapter7 },
client/views/pages/main/Chapter/Chapter3_10.vue
--- client/views/pages/main/Chapter/Chapter3_10.vue
+++ client/views/pages/main/Chapter/Chapter3_10.vue
@@ -25,7 +25,7 @@
           </div>
           <div class="imgGroup  mt20">
             <img src="../../../../resources/img/img116_59s.png" alt="">
-            <p class="title1 mt10"><strong>진수가 거절한 제안</strong>은 무엇인지 우리말로 쓰세요.</p>
+            <p class="title1 mt10" style="width: auto;"><strong>진수가 거절한 제안</strong>은 무엇인지 우리말로 쓰세요.</p>
             <div class=" mt20">
               <input class="yellow-bd" type="text" name="" id="" placeholder="답을 입력하세요.">
 
client/views/pages/main/Chapter/Chapter3_16.vue
--- client/views/pages/main/Chapter/Chapter3_16.vue
+++ client/views/pages/main/Chapter/Chapter3_16.vue
@@ -9,13 +9,86 @@
       <div class="content title-box">
         <p class="title mt25 title-bg">중간 평가 설문 조사</p>
         <div class="flex align-center mb30">
-               <p class="subtitle2 mr20"></p>
-               <!-- <button><img src="../../../../resources/img/btn10_s.png" alt="">
+          <p class="subtitle2 mr20"></p>
+          <!-- <button><img src="../../../../resources/img/btn10_s.png" alt="">
                </button> -->
-            </div>
+        </div>
 
-        <div class="text-ct">
-          
+        <div class="text-ct " >
+          <div class="table-wrap myplan">
+            <table>
+              <colgroup>
+                <col style="width: 5%;">
+                <col style="width: 70%;">
+                <col style="width: 25%;">
+              </colgroup>
+              <tr>
+                <td>
+                  <p class="title1 mr20">1.</p>
+                </td>
+                <td class="text-lf">
+                  <p class="title1">2교시</p>
+                </td>
+                <td>
+                  <div class="flex justify-center" style="gap: 60px;">
+                    <article>
+                      <div class="flex align-center">
+                        <p class="title1 mr20">네</p>
+                        <button class="popTxt" v-for="(item, index) in items" :key="index" @click="toggleImage(index)">
+                    <img :src="item.imgSrc1" >
+                    <img :src="item.imgSrc2" :style="{ display: item.isSecondImageVisible ? 'block' : 'none' }">
+                 </button>
+                      </div>
+                    </article>
+                    <article>
+                      <div class="flex align-center">
+                        <p class="title1 mr20">아니요</p>
+                        <button class="popTxt" v-for="(item, index) in items" :key="index" @click="toggleImage(index)">
+                    <img :src="item.imgSrc1" >
+                    <img :src="item.imgSrc2" :style="{ display: item.isSecondImageVisible ? 'block' : 'none' }">
+                 </button>
+                      </div>
+                    </article>
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <p class="title1 mr20">1.</p>
+                </td>
+                <td class="text-lf">
+                  <p class="title1">2교시</p>
+                </td>
+                <td>
+                  <div class="flex justify-center" style="gap: 60px;">
+                    <article>
+                      <div class="flex align-center">
+                        <p class="title1 mr20">네</p>
+                        <button class="popTxt" v-for="(item, index) in items" :key="index" @click="toggleImage(index)">
+                    <img :src="item.imgSrc1" >
+                    <img :src="item.imgSrc2" :style="{ display: item.isSecondImageVisible ? 'block' : 'none' }">
+                 </button>
+                      </div>
+                    </article>
+                    <article>
+                      <div class="flex align-center">
+                        <p class="title1 mr20">아니요</p>
+                        <button class="popTxt" v-for="(item, index) in items" :key="index" @click="toggleImage(index)">
+                    <img :src="item.imgSrc1" >
+                    <img :src="item.imgSrc2" :style="{ display: item.isSecondImageVisible ? 'block' : 'none' }">
+                 </button>
+                      </div>
+                    </article>
+                  </div>
+                </td>
+              </tr>
+            </table>
+            <div class="flex justify-end">
+              <button type="button" title="제출하기" class="yellow-btn mt30">
+                제출하기
+              </button>
+            </div>
+          </div>
 
         </div>
       </div>
@@ -28,6 +101,10 @@
 export default {
   data() {
     return {
+      items: [
+            { imgSrc1: 'client/resources/img/btn13_42s.png', imgSrc2: 'client/resources/img/btn14_50s_click.png', isSecondImageVisible: false },
+           
+         ],
       timer: '00',
       showButton1: false,
       showButton2: false,
@@ -36,6 +113,9 @@
     }
   },
   methods: {
+    toggleImage(index) {
+         this.items[index].isSecondImageVisible = !this.items[index].isSecondImageVisible;
+      },
     goToPage(page) {
       this.$router.push({ name: page });
     },
@@ -91,8 +171,16 @@
 }
 </script>
 <style scoped>
-.textbox {height: 60px;}
-.textbox p{font-size: 28px; font-weight: bold;     line-height: 65px;}
+.textbox {
+  height: 60px;
+}
+
+.textbox p {
+  font-size: 28px;
+  font-weight: bold;
+  line-height: 65px;
+}
+
 .dropGroup button {
   position: relative;
 }
@@ -104,4 +192,5 @@
 .dragGroup button p {
   font-size: 48px;
 }
+.myplan{width: 150rem; margin: 0 auto;}
 </style>
(No newline at end of file)
client/views/pages/main/Chapter/Chapter3_8.vue
--- client/views/pages/main/Chapter/Chapter3_8.vue
+++ client/views/pages/main/Chapter/Chapter3_8.vue
@@ -25,7 +25,7 @@
           </div>
           <div class="imgGroup flex align-center justify-center mt50">
             <img src="../../../../resources/img/img114_57s.png" alt="">
-               <input class="yellow-bd ml50" type="text" name="" id="" placeholder="답을 입력하세요.">
+               <input class="yellow-bd ml50" style="width: 30%;" type="text" name="" id="" placeholder="답을 입력하세요.">
              
           </div>
           <div class="flex justify-center mt40 " >
client/views/pages/main/Chapter/Chapter4.vue
--- client/views/pages/main/Chapter/Chapter4.vue
+++ client/views/pages/main/Chapter/Chapter4.vue
@@ -1,0 +1,199 @@
+<template>
+    <div id="Chapter1_1" class="content-wrap">
+        <div class="title-box mb25 flex align-center mt40">
+            <span class="title mr40">1. Hello WORLD</span>
+            <span class="subtitle">my name is dd</span>
+        </div>
+        <div class="flex justify-between align-center">
+            <div class="pre-btn" @click="goToPage('Chapter3_15')"><img src="../../../../resources/img/left.png" alt="">
+            </div>
+            <div class="content title-box">
+                <p class="title mt25 title-bg">Quiz Result</p>
+                <!-- <div class="flex align-center mb30">
+                    <p class="subtitle2 mr20"></p>
+                    <button><img src="../../../../resources/img/btn10_s.png" alt="">
+                 </button>
+                </div> -->
+
+                <div class="text-ct flex justify-center" style="gap: 150px; margin: 0 auto;">
+                    <div class="wrap-bg ">
+                        <div class="title-box flex mb10  justify-between">
+                            <p class="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>
+                        <div style="width: 100%;" class="flex mt30">
+                            <p class="title5"><em class="yellow">93</em></p>
+                            <p class="title4 ml10 mr10">&#47;</p>
+                            <p class="title4">100</p>
+                        </div>
+                    </div>
+                    <div class="bg-gray " style="width: 980px;">
+                        <div class="title-box flex mb10  justify-between">
+                            <p class="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 result-box" style="gap: 20px;">
+                            <div class="flex justify-between wrap">
+                                <div class="flex align-center">
+                                    <div><p class="title1 mr20">1.</p></div>
+                                    <div class="text-lf">
+                                        <p class="title1">2교시</p>
+                                    </div>
+                                </div>
+                                <div>
+                                    <div class="flex align-center " style="gap: 10px;"><button type="button"
+                                            title="정답 확인" class="yellow-btn">
+                                            정답 확인
+                                        </button>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="flex justify-between wrap">
+                                <div class="flex align-center">
+                                    <div><p class="title1 mr20">1.</p></div>
+                                    <div class="text-lf">
+                                        <p class="title1">2교시</p>
+                                    </div>
+                                </div>
+                                <div>
+                                    <div class="flex align-center " style="gap: 10px;"><button type="button"
+                                            title="정답 확인" class="yellow-btn">
+                                            정답 확인
+                                        </button>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="flex justify-between wrap">
+                                <div class="flex align-center">
+                                    <div><p class="title1 mr20">1.</p></div>
+                                    <div class="text-lf">
+                                        <p class="title1">2교시</p>
+                                    </div>
+                                </div>
+                                <div>
+                                    <div class="flex align-center " style="gap: 10px;"><button type="button"
+                                            title="정답 확인" class="yellow-btn">
+                                            정답 확인
+                                        </button>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="flex justify-between wrap">
+                                <div class="flex align-center">
+                                    <div><p class="title1 mr20">1.</p></div>
+                                    <div class="text-lf">
+                                        <p class="title1">2교시</p>
+                                    </div>
+                                </div>
+                                <div>
+                                    <div class="flex align-center " style="gap: 10px;"><button type="button"
+                                            title="정답 확인" class="yellow-btn">
+                                            정답 확인
+                                        </button>
+                                    </div>
+                                </div>
+                            </div>
+                        </article>
+                    </div>
+
+                </div>
+            </div>
+            <div class="next-btn" @click="goToPage('Dashboard')"><img src="../../../../resources/img/right.png" alt="">
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            timer: '00',
+            showButton1: false,
+            showButton2: false,
+            showButton3: false,
+            showButton4: false,
+        }
+    },
+    methods: {
+        goToPage(page) {
+            this.$router.push({ name: page });
+        },
+        handleDrag(dragNumber) {
+            // Drag 버튼 숨기기
+            // 여기서는 상태 관리를 통해 버튼을 제어합니다.
+            if (dragNumber === 1) {
+                this.showButton1 = false;
+            } else if (dragNumber === 2) {
+                this.showButton2 = false;
+            } else if (dragNumber === 3) {
+                this.showButton3 = false;
+            }
+        },
+        showButton(dropNumber) {
+            // Drop 영역의 이미지 클릭 이벤트 핸들러 설정
+            // 여기서는 상태 관리를 통해 버튼을 보이게 합니다.
+            if (dropNumber === 1) {
+                this.showButton1 = true;
+            } else if (dropNumber === 2) {
+                this.showButton2 = true;
+            } else if (dropNumber === 3) {
+                this.showButton3 = true;
+            } else if (dropNumber === 4) {
+                this.showButton4 = true;
+            }
+        },
+        startTimer() {
+            if (this.intervalId) {
+                clearInterval(this.intervalId);
+            }
+            this.timer = 5;
+            this.intervalId = setInterval(() => {
+                if (this.timer > 0) {
+                    this.timer--;
+                } else {
+                    clearInterval(this.intervalId);
+                }
+            }, 1000);
+        }
+    },
+    watch: {
+
+    },
+    computed: {
+
+    },
+    components: {
+    },
+    mounted() {
+
+    }
+}
+</script>
+<style scoped>
+.textbox {
+    height: 60px;
+}
+
+.textbox p {
+    font-size: 28px;
+    font-weight: bold;
+    line-height: 65px;
+}
+
+.dropGroup button {
+    position: relative;
+}
+
+.dropGroup button p {
+    font-size: 48px;
+}
+
+.dragGroup button p {
+    font-size: 48px;
+}
+</style>
(No newline at end of file)
client/views/pages/main/Dashboard.vue
--- client/views/pages/main/Dashboard.vue
+++ client/views/pages/main/Dashboard.vue
@@ -77,10 +77,13 @@
                     <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 class="flex justify-between mt20">
+                        <div class="text  flex">
+                            <p class="title2 date ml30">2024-08-06</p>
+                            <span class=" title1 ml30">1단원을 마친 <em class="yellow">가나다</em>친구</span>
+                        </div>
+                        <div class="title2 flex align-center" style="gap: 10px;"><svg-icon type="mdi" :path="mdiHeart" style="color: #FFBA08;"></svg-icon><p><em class="yellow">1</em></p></div>
+                   </div>
                 </div>
             </article>
         </div>
@@ -95,6 +98,7 @@
     data() {
         return {
             mdiWindowClose: mdiWindowClose,
+            mdiHeart: mdiHeart,
             showModal: false,
             searchOpen: false,
             searchOpen2: false,
 
client/views/pages/main/PreviewNote.vue (added)
+++ client/views/pages/main/PreviewNote.vue
@@ -0,0 +1,154 @@
+<template>
+    <div class="main myplan">
+        <div class="yellow-box mt30">
+            <div class="title-box flex justify-between align-center">
+                <div class="flex justify-between align-center" style="gap: 20px;">
+                    <p class="title">단원</p>
+                    <div class="row-bd"></div>
+                    <div>
+                        <p class="title mr40 mb10">1. Hello WORLD</p>
+                        <p class="subtitle">my name is dd</p>
+                    </div>
+                </div>
+                <!-- <button type="button" title="바로가기" class="yellow-btn" @click="goToPage('MyPlan2')">
+                            바로가기
+                        </button> -->
+            </div>
+        </div>
+        <div class="title-box flex justify-between mb20 mt30">
+            <p class="title">오답노트</p>
+            <!-- <select name="" id="">
+                <option value="">A반</option>
+            </select> -->
+        </div>
+        <div class="wrap" style="border-radius: 0;">
+
+            <div class="table-wrap">
+                <table>
+                    <colgroup>
+                        <col style="width: 10%;">
+                        <col style="width: 70%;">
+                        <col style="width: 15%;">
+                    </colgroup>
+                    <tr>
+
+                        <td><img src="../../../resources/img/img214_19s.png" alt=""></td>
+                        <td class="text-lf">
+                            <p class="title1">중간평가</p>
+                            <p class="title2">wirte a</p>
+                        </td>
+                        <td> <button type="button" title="" class="new-btn" @click="buttonSearch">
+                                View Detail
+                            </button></td>
+                    </tr>
+                    <tr>
+
+                        <td><img src="../../../resources/img/img214_19s.png" alt=""></td>
+                        <td class="text-lf">
+                            <p class="title1">중간평가</p>
+                            <p class="title2">wirte a</p>
+                        </td>
+                        <td> <button type="button" title="" class="new-btn" @click="buttonSearch">
+                                View Detail
+                            </button></td>
+                    </tr>
+                </table>
+                <div class="flex justify-end">
+                    <button type="button" title="선택하기" class="yellow-btn mt30">
+                        선택하기
+                    </button>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            timer: '00',
+            showButton1: false,
+            showButton2: false,
+            showButton3: false,
+            showButton4: false,
+        }
+    },
+    methods: {
+        goToPage(page) {
+            this.$router.push({ name: page });
+        },
+        handleDrag(dragNumber) {
+            // Drag 버튼 숨기기
+            // 여기서는 상태 관리를 통해 버튼을 제어합니다.
+            if (dragNumber === 1) {
+                this.showButton1 = false;
+            } else if (dragNumber === 2) {
+                this.showButton2 = false;
+            } else if (dragNumber === 3) {
+                this.showButton3 = false;
+            }
+        },
+        showButton(dropNumber) {
+            // Drop 영역의 이미지 클릭 이벤트 핸들러 설정
+            // 여기서는 상태 관리를 통해 버튼을 보이게 합니다.
+            if (dropNumber === 1) {
+                this.showButton1 = true;
+            } else if (dropNumber === 2) {
+                this.showButton2 = true;
+            } else if (dropNumber === 3) {
+                this.showButton3 = true;
+            } else if (dropNumber === 4) {
+                this.showButton4 = true;
+            }
+        },
+        startTimer() {
+            if (this.intervalId) {
+                clearInterval(this.intervalId);
+            }
+            this.timer = 5;
+            this.intervalId = setInterval(() => {
+                if (this.timer > 0) {
+                    this.timer--;
+                } else {
+                    clearInterval(this.intervalId);
+                }
+            }, 1000);
+        }
+    },
+    watch: {
+
+    },
+    computed: {
+
+    },
+    components: {
+    },
+    mounted() {
+
+    }
+}
+</script>
+<style scoped>
+.textbox {
+    height: 60px;
+}
+
+.textbox p {
+    font-size: 28px;
+    font-weight: bold;
+    line-height: 65px;
+}
+
+.dropGroup button {
+    position: relative;
+}
+
+.dropGroup button p {
+    font-size: 48px;
+}
+
+.dragGroup button p {
+    font-size: 48px;
+}
+</style>(No newline at end of file)
Add a comment
List