jichoi / lms_front star
[jichoi] 2024-08-08
240808 최정임 로드맵
@e845bd3792d553cca3205b2ab9621e3a57c75e50
client/resources/css/style.css
--- client/resources/css/style.css
+++ client/resources/css/style.css
@@ -277,7 +277,7 @@
   background-image: url('../img/img199_12p.png');
   width: 367px;
   height: 182px;
-  padding: 20px 46px 20px 31px;
+  padding: 20px 60px 20px 50px;
   color: #fff;
 }
 .mypage .textbook{font-family: 'ONEMobilePOPOTF';}
@@ -285,15 +285,17 @@
 .mypage .textbook .text {border-radius:  12px 12px 0px 0px; height: 68px;
 }
 .mypage .textbook .box{height: 199px; text-align: center; padding: 10px;}
-.mypage .textbook:nth-child(1) .text{background-color: #DB2B39;}
+.mypage .book-red .text{background-color: #DB2B39;}
 /* .mypage .textbook:nth-child(2) .text */
-.mypage .textbook:nth-child(3) .text{background-color:#2D7DD2;}
-.mypage .textbook:nth-child(4) .text{ background-color: #3066BE;}
-.mypage .textbook .box{height: 199px; text-align: center; padding: 10px;}
-.mypage .textbook:nth-child(1){border: #DB2B39 solid 6px;}
+.mypage .book-blue .text{background-color:#2D7DD2;}
+.mypage .book-navy .text{ background-color: #3066BE;}
+.mypage .book-gray > .text{ background-color: #F7F8F9;}
+.mypage .textbook .box{ text-align: center; padding: 10px;}
+.mypage .book-red{border: #DB2B39 solid 6px;}
 /* .mypage .textbook:nth-child(2) .text */
-.mypage .textbook:nth-child(3){border:#2D7DD2 solid 6px;}
-.mypage .textbook:nth-child(4){ border: #3066BE solid 6px;}
+.mypage .book-blue{border:#2D7DD2 solid 6px;}
+.mypage .book-navy{ border: #3066BE solid 6px;}
+.mypage .book-gray{ border: #8C8E92 solid 1px;}
 .mypage em.orange {
   color: #FFBA08;
 }
@@ -860,7 +862,7 @@
 .class .member::before{content: ""; background-image: url('../img/img171_82t.png'); width: 20px; height: 22px; position: absolute; left: -28px;}
 .class .btnGroup, .textbook .text .btnGroup {width: initial;}
 .class button, .textbook button{font-size: 19px; font-family: 'Pretendard-Regular';}
-.textbook{width: 300px; border: #FFBA08 solid 6px; border-radius: 20px;  font-size: 19px;}
+.textbook{width: 100%; border: #FFBA08 solid 6px; border-radius: 20px;  font-size: 19px;}
 .textbook-add{width: 300px; height: 354px; background-color: #F8F9FB; border: #75767A solid 2px; border-radius: 20px;  font-size: 19px;}
 .textbook .box{height: 250px;}
 .textbook .text{height: 97px; background-color: #FFBA08; border-radius: 0px 0px 12px 12px; padding: 20px;}
@@ -1025,4 +1027,23 @@
   background-color: #fff;
 
 }
+
+/* 로드맵 */
+.mypage .big{width: 48%; height: 100%;}
+.mypage .big > .text {
+  border-radius: 19px 19px 0px 0px; border-bottom: 1px solid #8C8E92;}
+  .mypage .big > .box{
+    overflow-x: auto;
+    margin: 4rem 3rem;
+    height: 100%;
+    max-height: calc(100% - 16rem);
+  }
+  .dropbox{
+    color: #8C8E92;
+    border: #8C8E92 dotted 1px;
+    background-color: #EAEDF4;
+    border-radius: 20px;
+    min-height: 20rem;
+  }
+  .dropbox p{line-height: 20rem;}
 /* ------------------------선생님 --------------------- */
(No newline at end of file)
client/views/layout/Side_t.vue
--- client/views/layout/Side_t.vue
+++ client/views/layout/Side_t.vue
@@ -32,7 +32,7 @@
             <div>
                 <details>
                     <summary>교재 관리</summary>
-                    <router-link to="/Board.page" class="tpt">홈</router-link>
+                    <router-link to="/textbook.page" class="tpt">홈</router-link>
                     <router-link to="/Board.page" class="tpt">게시판</router-link>
                     <router-link to="/Board.page" class="tpt">학생목록</router-link>
                     <router-link to="/Board.page" class="tpt">교재</router-link>
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -76,6 +76,7 @@
 import VocaList from "./teacher/VocaList.vue";
 import ExamList from "./teacher/ExamList.vue";
 import ExamDetail from "./teacher/ExamDetail.vue";
+import RoadMap from "./teacher/RoadMap.vue";
 
 const routes = [
     { path: '/login.page', name: 'login', component: login },
@@ -176,6 +177,7 @@
             { path: '/VocaList.page', name: 'VocaList', component: VocaList },
             { path: '/ExamList.page', name: 'ExamList', component: ExamList },
             { path: '/ExamDetail.page', name: 'ExamDetail', component: ExamDetail },
+            { path: '/RoadMap.page', name: 'RoadMap', component: RoadMap },
         ],
     },
 ];
client/views/pages/main/MyPage.vue
--- client/views/pages/main/MyPage.vue
+++ client/views/pages/main/MyPage.vue
@@ -74,7 +74,7 @@
         </div>
         <div class=" mb30">
             <div class=" flex " style="gap: 50px;">
-                <div class="textbook">
+                <div class="textbook book-red">
                     <div class="text ">
                         <p class="title1" style="color: #fff;">포토북 랭킹</p>
                     </div>
@@ -83,7 +83,7 @@
                         <P class="title2 mt10">현재 30명 중 <em class="red">2등</em>입니다.</P>
                     </div>
                 </div>
-                <div class="textbook">
+                <div class="textbook ">
                     <div class="text ">
                         <p class="title1" style="color: #fff;">포토북 랭킹</p>
                     </div>
@@ -92,7 +92,7 @@
                         <P class="title2 mt10">현재 30명 중 <em class="yellow">2등</em>입니다.</P>
                     </div>
                 </div>
-                <div class="textbook">
+                <div class="textbook book-blue">
                     <div class="text ">
                         <p class="title1" style="color: #fff;">포토북 랭킹</p>
                     </div>
@@ -101,7 +101,7 @@
                         <P class="title2 mt10">현재 30명 중 <em class="blue">2등</em>입니다.</P>
                     </div>
                 </div>
-                <div class="textbook">
+                <div class="textbook book-navy">
                     <div class="text ">
                         <p class="title1" style="color: #fff;">포토북 랭킹</p>
                     </div>
client/views/pages/teacher/ExamDetail.vue
--- client/views/pages/teacher/ExamDetail.vue
+++ client/views/pages/teacher/ExamDetail.vue
@@ -18,8 +18,8 @@
             <tr>
                 <td>1</td>
                 <td>1</td>
-                <td><button type="button" title="보기" class="new-btn">
-                        보기
+                <td><button type="button" title="수정" class="new-btn">
+                        수정
                     </button></td>
             </tr>
         </tbody>
client/views/pages/teacher/ExamList.vue
--- client/views/pages/teacher/ExamList.vue
+++ client/views/pages/teacher/ExamList.vue
@@ -36,12 +36,12 @@
                         <td></td>
                         <td></td>
                         <td></td>
-                        <td><button type="button" title="보기" class="new-btn"  @click="toggleRow">
+                        <td><button type="button" title="보기" class="new-btn" @click="goToPage('ExamDetail')">
                     보기
                 </button></td>
                         <td></td>
                     </tr>
-                    <tr :class="{ 'hidden-tr': !isRowVisible }" class="show-tr">
+                    <!-- <tr :class="{ 'hidden-tr': !isRowVisible }" class="show-tr">
                         <td colspan="7">
                             <div>
                                 <table>
@@ -67,7 +67,7 @@
                                 </table>
                             </div>
                         </td>
-                    </tr>
+                    </tr> -->
                 </tbody>
             </table>
             <article class="table-pagination flex justify-center align-center mb20 mt30" style="gap: 10px;">
 
client/views/pages/teacher/RoadMap.vue (added)
+++ client/views/pages/teacher/RoadMap.vue
@@ -0,0 +1,166 @@
+<template>
+    <div class="title-box flex justify-between mb40">
+        <p class="title">A반</p>
+        <select name="" id="">
+            <option value="">A 교재</option>
+        </select>
+    </div>
+    <div class="board-wrap" style="    height: calc(100% - 16rem);">
+        <label for="" class="title2">단원</label>
+        <div class="table-pagination flex mt10">
+            <button class="selected-btn">1</button>
+            <button>2</button>
+            <button>3</button>
+        </div>
+        <hr>
+        <label for="" class="title2 ">1단원 로드맵 등록</label>
+        <div class="search-wrap flex mb20 mt30">
+            <select v-model="selectedSearchOption" class="mr10 data-wrap">
+                <option value="bbsTtl">제목</option>
+                <option value="bbsCnt">내용</option>
+                <option value="userNm">작성자</option>
+                <option value="bbsCls">카테고리</option>
+            </select>
+            <input v-model="searchKeyword" type="text" placeholder="검색하세요." @keyup.enter="boardDataSearch" />
+            <button type="button" @click="boardDataSearch()" title="게시글 검색">
+                <img src="../../../resources/img/look_t.png" alt="" />
+            </button>
+        </div>
+        <div class="flex justify-between align-center mypage mt10" style="height: calc(100% - 23rem);">
+            <div class="textbook big book-gray">
+                <div class="text ">
+                    <p class="title1">학습항목</p>
+                </div>
+                <div class="box flex-column" style="gap: 30px;">
+                    <!-- 지문 -->
+                    <div class="textbook book-red">
+                        <div class="text ">
+                            <p class="title1" style="color: #fff;">지문. 제목</p>
+                        </div>
+                        <div class="box">
+                            
+                            <P class="title2 mt10">지문 내용</P>
+                        </div>
+                    </div>
+                    <!-- 단어 -->
+                    <div class="textbook ">
+                        <div class="text ">
+                            <p class="title1" style="color: #fff;">단어장1</p>
+                        </div>
+                        <div class="box">
+                            
+                            <P class="title2 mt10">단어1</P>
+                        </div>
+                    </div>
+                    <!-- 문제 -->
+                    <div class="textbook book-blue">
+                        <div class="text ">
+                            <p class="title1" style="color: #fff;">문제1</p>
+                        </div>
+                        <div class="box">
+                            
+                            <P class="title2 mt10">문제유형</P>
+                            <P class="title2 mt10">정답</P>
+                        </div>
+                    </div>
+                    <!-- 평가 -->
+                    <div class="textbook book-navy">
+                        <div class="text ">
+                            <p class="title1" style="color: #fff;">평가1</p>
+                        </div>
+                        <div class="box">
+                            
+                            <P class="title2 mt10">평가 내용</P>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="textbook big book-gray">
+                <div class="text ">
+                    <p class="title1">로드맵</p>
+                </div>
+                <div class="box flex-column" style="gap: 10px;">
+                    <div class="dropbox"><P class="title2">여기로 드래그 하세요</P></div>
+                    <div class="text-ct"><svg-icon type="mdi" :path="mdilArrowDown" style="width: 40px; height: 40px; color: #8C8E92;"></svg-icon></div>
+                    <div class="dropbox"><P class="title2">여기로 드래그 하세요</P></div>
+                    <div class="text-ct"><svg-icon type="mdi" :path="mdilArrowDown" style="width: 40px; height: 40px; color: #8C8E92;"></svg-icon></div>
+                    <div class="dropbox"><P class="title2">여기로 드래그 하세요</P></div>
+                </div>
+            </div>
+        </div>
+
+    </div>
+    <div class="flex justify-end mt30" style="gap: 10px;">
+        <!-- <button type="button" title="" class="new-btn" @click="showConfirm('delete')">
+            추가
+        </button> -->
+        <button type="button" title="" class="new-btn" @click="goToPage('TextBookDetail')">
+            취소
+        </button>
+        <button type="button" title="" class="new-btn" @click="goToPage('TextBookDetail')">
+            등록
+        </button>
+    </div>
+</template>
+
+<script>
+import SvgIcon from '@jamescoyle/vue-icon';
+import { mdiMagnify, mdilArrowRight } from '@mdi/js';
+import { mdilArrowDown } from '@mdi/light-js';
+import ProgressBar from '../../component/ProgressBar.vue';
+
+
+export default {
+    data() {
+        return {
+            mdilArrowDown: mdilArrowDown,
+            mdiMagnify: mdiMagnify,
+            mdilArrowRight: mdilArrowRight,
+            timer: "00:00",
+            progress: 20
+        }
+    },
+    methods: {
+        goToPage(page) {
+            this.$router.push({ name: page });
+        },
+        increaseProgress() {
+            if (this.progress < 100) {
+                this.progress += 10;
+            }
+        },
+        showConfirm(type) {
+            let message = '';
+            if (type === 'delete') {
+                message = '삭제하시겠습니까?';
+            } else if (type === 'reset') {
+                message = '초기화하시겠습니까?';
+            } else if (type === 'save') {
+                message = '등록하시겠습니까?';
+            }
+
+            if (confirm(message)) {
+                this.goBack();
+            }
+        },
+    },
+    watch: {
+
+    },
+    computed: {
+
+    },
+    components: {
+        SvgIcon,
+        ProgressBar
+    },
+    mounted() {
+        console.log('Main2 mounted');
+    }
+}
+</script>
+<style scoped>
+.search-wrap button {
+    right: 83rem;
+}
+</style>(No newline at end of file)
client/views/pages/teacher/TextBookDetail.vue
--- client/views/pages/teacher/TextBookDetail.vue
+++ client/views/pages/teacher/TextBookDetail.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="title-box flex justify-between mb40">
-        <p class="title">교재 관리</p>
+        <p class="title">A반</p>
         <select name="" id="">
             <option value="">A 교재</option>
         </select>
@@ -49,7 +49,13 @@
             </div>
         </div>
     </div>
-    <div class="flex justify-end mt30">
+    <div class="flex justify-end mt30" style="gap: 10px;">
+        <!-- <button type="button" title="" class="new-btn" @click="showConfirm('delete')">
+            추가
+        </button> -->
+        <button type="button" title="" class="new-btn" @click="goToPage('RoadMap')">
+            로드맵
+        </button>
         <button type="button" title="" class="new-btn" @click="showConfirm('delete')">
             삭제
         </button>
Add a comment
List