jichoi / lms_front star
[jichoi] 08-08
240808 최정임
@291bbab5e53d5ead753e9969a10a160d401332de
client/resources/css/style.css
--- client/resources/css/style.css
+++ client/resources/css/style.css
@@ -1046,4 +1046,22 @@
     min-height: 20rem;
   }
   .dropbox p{line-height: 20rem;}
+
+
+  /* 단원 버튼 */
+ .unit-pagination button {
+    font-size: 3rem;
+    font-family: 'Pretendard-Regular';
+    padding: 5px 30px;
+    border: #FFD56B 3px solid;
+    border-radius: 10px;
+    color: #331600;
+    background-color: #FFF3D7 
+}
+
+ .unit-pagination .selected-btn {
+    background-color: #FFBA08;
+    color: #fff;
+    font-family: 'Pretendard-Bold';
+}
 /* ------------------------선생님 --------------------- */
(파일 끝에 줄바꿈 문자 없음)
client/views/layout/Side_t.vue
--- client/views/layout/Side_t.vue
+++ client/views/layout/Side_t.vue
@@ -33,9 +33,10 @@
                 <details>
                     <summary>교재 관리</summary>
                     <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>
+                    <router-link to="/TextList.page" class="tpt">지문</router-link>
+                    <router-link to="/QuestionList.page" class="tpt">문제</router-link>
+                    <router-link to="/VocaList.page" class="tpt">단어장</router-link>
+                    <router-link to="/ExamList.page" class="tpt">평가</router-link>
                 </details>
             </div>
         </div>
client/views/pages/teacher/C_TextBookDetail.vue
--- client/views/pages/teacher/C_TextBookDetail.vue
+++ client/views/pages/teacher/C_TextBookDetail.vue
@@ -1,13 +1,13 @@
 <template>
     <div class="title-box flex justify-between mb40">
-        <p class="title">A반</p>
+        <p class="title">A교재</p>
         <select name="" id="">
-            <option value="">A 교재</option>
+            <option value="">A 반</option>
         </select>
     </div>
     <div class="board-wrap">
         <label for="" class="title2">단원</label>
-        <div class="table-pagination flex mt10">
+        <div class="unit-pagination flex mt10" style="gap: 10px;">
             <button class="selected-btn">1</button>
             <button>2</button>
             <button>3</button>
client/views/pages/teacher/ExamInsert.vue
--- client/views/pages/teacher/ExamInsert.vue
+++ client/views/pages/teacher/ExamInsert.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="title-box flex justify-between mb40">
-        <p class="title">문제 등록 페이지</p>
+        <p class="title">평가 등록</p>
     </div>
     <!-- <label for="" class="title1">문제 리스트</label>
     <table class="mt20 mb100">
@@ -27,24 +27,62 @@
     <label for="" class="title1">상세 내용</label>
     <div class="board-wrap mt20">
         <div class="flex align-center mb20">
-            <label for="" class="title2">문제</label>
-            <input type="text" class="data-wrap">
+            <label for="" class="title2">단원</label>
+            <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>
+        </div>
+        <div class="flex align-center mb20">
+            <label for="" class="title2">평가 유형</label>
+            <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>
         </div>
 
         <hr>
-        <div class="flex align-center">
-            <label for="" class="title2">내용</label>
-            <textarea name="" id="" class="data-wrap"></textarea>
-        </div>
-        <hr>
         <div class="flex align-center mb20">
-            <label for="" class="title2">첨부파일</label>
-            <input type="file" ref="fileInput" @change="handleFileUpload" />
+            <label for="" class="title2">문제 1</label>
+            <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>
         </div>
-        <div class="flex align-center">
-            <label for="" class="title2">답</label>
-            <input type="text" class="data-wrap">
+        <div class="flex align-center mb20">
+            <label for="" class="title2">문제 2</label>
+            <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>
         </div>
+        <div class="flex align-center mb20">
+            <label for="" class="title2">문제 3</label>
+            <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>
+        </div>
+        <div class="flex align-center mb20">
+            <label for="" class="title2">문제 4</label>
+            <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>
+        </div>
+        
     </div>
     <div class="flex justify-between mt50">
         <button type="button" title="글쓰기" class="new-btn" @click="goToPage('C_ExamList')">
client/views/pages/teacher/Home.vue
--- client/views/pages/teacher/Home.vue
+++ client/views/pages/teacher/Home.vue
@@ -75,6 +75,7 @@
         }
     },
     methods: {
+       
         goToPage(page, sclsId) {
             //console.log(`sclsId : ${sclsId}`); // 쿼리 확인
             this.$router.push({ name: page , query : {sclsId : sclsId}});
client/views/pages/teacher/TextBookDetail.vue
--- client/views/pages/teacher/TextBookDetail.vue
+++ client/views/pages/teacher/TextBookDetail.vue
@@ -2,17 +2,10 @@
     <div class="title-box flex justify-between mb40">
         <p class="title">A교재</p>
         <select name="" id="">
-            <option value="">A 교재</option>
+            <option value="">1단원</option>
         </select>
     </div>
     <div class="board-wrap">
-        <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>
         <div class="mb20 ">
             <div class="flex justify-between mb30 align-center">
                 <label for="" class="title1">지문</label>
client/views/pages/teacher/TextList.vue
--- client/views/pages/teacher/TextList.vue
+++ client/views/pages/teacher/TextList.vue
@@ -1,10 +1,16 @@
 <template>
-    <div class="title-box flex justify-between mb40">
+    <div class="title-box flex justify-between mb40 myplan">
         <p class="title">지문</p>
         <select name="" id="">
-            <option value="">1단원</option>
+            <option value="">A 교재</option>
         </select>
     </div>
+        <label for="" class="title2">단원</label>
+        <div class="unit-pagination flex mt10" style="gap: 10px;">
+            <button class="selected-btn">1</button>
+            <button>2</button>
+            <button>3</button>
+        </div>
     <div class="search-wrap flex justify-end mb20">
             <select name="" id="" class="mr10 data-wrap">
                 <option value="">전체</option>
client/views/pages/teacher/VocaDetail.vue
--- client/views/pages/teacher/VocaDetail.vue
+++ client/views/pages/teacher/VocaDetail.vue
@@ -1,60 +1,98 @@
 <template>
     <div class="title-box flex justify-between mb40">
-        <p class="title">지문 등록</p>
+        <p class="title">단어장 등록</p>
     </div>
-        <div class="board-wrap">
-            <div class="flex align-center mb20">
-                <label for="" class="title2">제목</label>
-                <input type="text" class="data-wrap">
-            </div>
-            <div class="flex align-center">
-                <label for="" class="title2">URL</label>
-                <input type="text" class="data-wrap">
-            </div>
-            <hr>
-            <div class="flex align-center">
-                <label for="" class="title2">스크립트</label>
-                <textarea name="" id="" class="data-wrap"></textarea>
-            </div>
+    <div class="board-wrap">
+        <div class="flex align-center mb20">
+            <label for="" class="title2">지문</label>
+            <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>
         </div>
-        <div class="flex justify-between mt50">
-                <button type="button" title="글쓰기" class="new-btn"  @click="goToPage('TextList')">
-                    목록
-                </button>
-               <div class="flex">
-                    <button type="button" title="글쓰기" class="new-btn mr10"  >
-                        취소
+        <div class="flex align-center">
+            <label for="" class="title2">단어 목록</label>
+            <div class="flex-column" style="gap: 10px;">
+                <div class="flex align-center" style="gap: 10px;">
+                    <input type="text" class="data-wrap" placeholder="영어">
+                    <input type="text" class="data-wrap" placeholder="한글">
+                    <button type="button" @click="addThesis">
+                        <img src="../../../resources/img/btn39_120t_normal.png" alt="">
+
                     </button>
-                    <button type="button" title="글쓰기" class="new-btn"  >
-                        등록
+                </div>
+                <div class="flex align-center " style="gap: 10px;" v-for="(thesis, index) in thesised" :key="thesis.id">
+                    <input type="text" class="data-wrap" placeholder="영어">
+                    <input type="text" class="data-wrap" placeholder="한글">
+                    <button type="button" @click="removeThesis(thesis.id)">
+                        <img src="../../../resources/img/btn38_120t_normal.png" alt="">
                     </button>
-               </div>
+
+                </div>
+            </div>
+
         </div>
+    </div>
+    <div class="flex justify-between mt50">
+        <button type="button" title="글쓰기" class="new-btn" @click="goToPage('TextList')">
+            목록
+        </button>
+        <div class="flex">
+            <button type="button" title="글쓰기" class="new-btn mr10">
+                취소
+            </button>
+            <button type="button" title="글쓰기" class="new-btn">
+                수정
+            </button>
+        </div>
+    </div>
 </template>
 
 <script>
 import SvgIcon from '@jamescoyle/vue-icon';
-import { mdiMagnify} from '@mdi/js';
+import { mdiMagnify, mdiPlusCircleOutline, mdiWindowClose } from '@mdi/js';
 
 
 export default {
-    data () {
+    data() {
         return {
+            thesised: [],
+            mdiPlusCircleOutline: mdiPlusCircleOutline,
             mdiMagnify: mdiMagnify,
+            mdiWindowClose: mdiWindowClose,
         }
     },
     methods: {
+        // 논문실적 버튼 추가
+        addThesis() {
+            // 고유 ID로 현재 시간의 타임스탬프를 사용
+            const uniqueId = Date.now();
+            this.thesised.push({
+                id: uniqueId, // 고유 ID 추가
+
+            });
+        },
+        removeThesis(thesisId) {
+            // ID를 기준으로 교육 정보 객체를 찾아서 삭제
+            const index = this.thesised.findIndex(thesis => thesis.id === thesisId);
+            if (index !== -1) {
+                this.thesised.splice(index, 1);
+            }
+        },
+        // 
         goToPage(page) {
-         this.$router.push({ name: page });
-      },
+            this.$router.push({ name: page });
+        },
     },
     watch: {
 
     },
     computed: {
-       
+
     },
-    components:{
+    components: {
         SvgIcon
     },
     mounted() {
client/views/pages/teacher/VocaInsert.vue
--- client/views/pages/teacher/VocaInsert.vue
+++ client/views/pages/teacher/VocaInsert.vue
@@ -1,60 +1,98 @@
 <template>
     <div class="title-box flex justify-between mb40">
-        <p class="title">지문 등록</p>
+        <p class="title">단어장 등록</p>
     </div>
-        <div class="board-wrap">
-            <div class="flex align-center mb20">
-                <label for="" class="title2">제목</label>
-                <input type="text" class="data-wrap">
-            </div>
-            <div class="flex align-center">
-                <label for="" class="title2">URL</label>
-                <input type="text" class="data-wrap">
-            </div>
-            <hr>
-            <div class="flex align-center">
-                <label for="" class="title2">스크립트</label>
-                <textarea name="" id="" class="data-wrap"></textarea>
-            </div>
+    <div class="board-wrap">
+        <div class="flex align-center mb20">
+            <label for="" class="title2">지문</label>
+            <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>
         </div>
-        <div class="flex justify-between mt50">
-                <button type="button" title="글쓰기" class="new-btn"  @click="goToPage('TextList')">
-                    목록
-                </button>
-               <div class="flex">
-                    <button type="button" title="글쓰기" class="new-btn mr10"  >
-                        취소
+        <div class="flex align-center">
+            <label for="" class="title2">단어 목록</label>
+            <div class="flex-column" style="gap: 10px;">
+                <div class="flex align-center" style="gap: 10px;">
+                    <input type="text" class="data-wrap" placeholder="영어">
+                    <input type="text" class="data-wrap" placeholder="한글">
+                    <button type="button" @click="addThesis">
+                        <img src="../../../resources/img/btn39_120t_normal.png" alt="">
+
                     </button>
-                    <button type="button" title="글쓰기" class="new-btn"  >
-                        등록
+                </div>
+                <div class="flex align-center " style="gap: 10px;" v-for="(thesis, index) in thesised" :key="thesis.id">
+                    <input type="text" class="data-wrap" placeholder="영어">
+                    <input type="text" class="data-wrap" placeholder="한글">
+                    <button type="button" @click="removeThesis(thesis.id)">
+                        <img src="../../../resources/img/btn38_120t_normal.png" alt="">
                     </button>
-               </div>
+
+                </div>
+            </div>
+
         </div>
+    </div>
+    <div class="flex justify-between mt50">
+        <button type="button" title="글쓰기" class="new-btn" @click="goToPage('TextList')">
+            목록
+        </button>
+        <div class="flex">
+            <button type="button" title="글쓰기" class="new-btn mr10">
+                취소
+            </button>
+            <button type="button" title="글쓰기" class="new-btn">
+                등록
+            </button>
+        </div>
+    </div>
 </template>
 
 <script>
 import SvgIcon from '@jamescoyle/vue-icon';
-import { mdiMagnify} from '@mdi/js';
+import { mdiMagnify, mdiPlusCircleOutline, mdiWindowClose } from '@mdi/js';
 
 
 export default {
-    data () {
+    data() {
         return {
+            thesised: [],
+            mdiPlusCircleOutline: mdiPlusCircleOutline,
             mdiMagnify: mdiMagnify,
+            mdiWindowClose: mdiWindowClose,
         }
     },
     methods: {
+        // 논문실적 버튼 추가
+        addThesis() {
+            // 고유 ID로 현재 시간의 타임스탬프를 사용
+            const uniqueId = Date.now();
+            this.thesised.push({
+                id: uniqueId, // 고유 ID 추가
+
+            });
+        },
+        removeThesis(thesisId) {
+            // ID를 기준으로 교육 정보 객체를 찾아서 삭제
+            const index = this.thesised.findIndex(thesis => thesis.id === thesisId);
+            if (index !== -1) {
+                this.thesised.splice(index, 1);
+            }
+        },
+        // 
         goToPage(page) {
-         this.$router.push({ name: page });
-      },
+            this.$router.push({ name: page });
+        },
     },
     watch: {
 
     },
     computed: {
-       
+
     },
-    components:{
+    components: {
         SvgIcon
     },
     mounted() {
Add a comment
List