jichoi / lms_front star
홍아랑 홍아랑 09-11
240911 홍아랑 배경화면, 잉크 문제, 전체적인 프레임 css 수정
@45ef13b8b801086fd664bc402ac6ef669aa62fa8
client/resources/css/style.css
--- client/resources/css/style.css
+++ client/resources/css/style.css
@@ -117,6 +117,14 @@
 /* 레이아웃 */
 .side {
   width: 42rem;
+  background-color: #ffffffa6;
+  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+  border-radius: 10px;
+  padding: 2rem;
+  position: absolute;
+
+  top: 179px;
+  height: 700px;
 }
 
 .main-wrap {
@@ -127,7 +135,7 @@
 .main-wrap {
   width: 134rem;
   height: 70rem;
-  background-color: #fff;
+  background-color: #ffffffa6;
   border-radius: 10px;
   position: absolute;
   right: 60px;
@@ -159,6 +167,8 @@
   top: 179px;
   z-index: 1;
   /* background-image: url("../img/new_img/plan/background.png"); */
+  background-color: #ffffffa6;
+  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
 }
 .header img {
   margin-left: 20px;
@@ -174,7 +184,7 @@
   /* height: 24rem; */
   /* background-color: #fff; */
   border-radius: 10px;
-  padding: 30px 20px 0px;
+  padding: 20px 20px 0px;
   font-size: 16px;
   font-family: "ONEMobileOTF-Regular";
   /* box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); */
@@ -749,7 +759,8 @@
   box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.1);
   width: 93%;
   height: 710px;
-  background-color: #fff;
+  /* background-color: #fff; */
+  background-color: #ffffffa6;
   border-radius: 20px;
 }
 
 
client/resources/img/new_img/content_ink/background.png (Binary) (added)
+++ client/resources/img/new_img/content_ink/background.png
Binary file is not shown
 
client/resources/img/new_img/content_ink/click_btn.png (Binary) (added)
+++ client/resources/img/new_img/content_ink/click_btn.png
Binary file is not shown
 
client/resources/img/new_img/content_ink/ink_1.png (Binary) (added)
+++ client/resources/img/new_img/content_ink/ink_1.png
Binary file is not shown
 
client/resources/img/new_img/content_ink/ink_2.png (Binary) (added)
+++ client/resources/img/new_img/content_ink/ink_2.png
Binary file is not shown
 
client/resources/img/new_img/content_ink/ink_3.png (Binary) (added)
+++ client/resources/img/new_img/content_ink/ink_3.png
Binary file is not shown
 
client/resources/img/new_img/content_ink/ink_4.png (Binary) (added)
+++ client/resources/img/new_img/content_ink/ink_4.png
Binary file is not shown
 
client/resources/img/new_img/content_ink/return_v2.png (Binary) (added)
+++ client/resources/img/new_img/content_ink/return_v2.png
Binary file is not shown
 
client/resources/img/new_img/logo_v2.png (Binary) (added)
+++ client/resources/img/new_img/logo_v2.png
Binary file is not shown
client/views/layout/Header.vue
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
@@ -1,216 +1,252 @@
 <template>
-    <div class="header flex justify-between align-center header-box">
-        <div>
-            <router-link to="/MyPlan.page">
-                <div class="logo"><img src="../../resources/img/logo2.png" alt="" /></div>
-            </router-link>
+  <div class="header flex justify-between align-center header-box">
+    <div>
+      <router-link to="/MyPlan.page">
+        <div class="logo">
+          <img src="../../resources/img/new_img/logo_v2.png" alt="" />
         </div>
-        <div class="flex align-center">
-            <Menu :currentRoute="$route.path"></Menu>
-            <div class="notice" @click="buttonSearch">
-                <img src="../../resources/img/icon2.png" alt="" />
-                <p>{{ unCheck }}</p>
-            </div>
-            <img src="../../resources/img/new_img/profile_img.png" alt="" />
-            <div class="look-btn" @click="logout">
-                <img src="../../resources/img/new_img/icon/logout_icon.png" alt="" />
-            </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>
-                    <article class="flex justify-between mt20" v-for="item in dataList" :key="item.id"
-                        :class="{ 'selected-row': selectedRow == item.dataList }">
-                        <img style="width: fit-content" src="../../resources/img/img200_13p.png" alt="" />
-                        <p class="title1 ml20" style="width: 60%">{{ item.bbsTtl }}</p>
-                        <button @click="buttonSearch2(item)" type="button" title="글쓰기" class="new-btn">
-                            자세히 보기
-                        </button>
-                    </article>
-                    <article class="table-pagination flex justify-center align-center mb20 mt30" style="gap: 10px">
-                        <button @click="previousPage" :disabled="page === 1">이전</button>
-                        <button class="selected-btn">{{ page }}</button>
-                        <button @click="nextPage" :disabled="page === totalPages">다음</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">{{ boardData.bbsTtl }}</label>
-                        </div>
-                        <hr />
-                        <!-- <textarea readonly name="" id="">{{ boardData.bbsCnt }}</textarea> -->
-                    </div>
-                    <div class="flex justify-center mt20">
-                        <button type="button" title="확인" class="new-btn" @click="closeBtn2">확인</button>
-                    </div>
-                </div>
-            </div>
-        </div>
+      </router-link>
     </div>
+    <div class="flex align-center">
+      <Menu :currentRoute="$route.path"></Menu>
+      <div class="notice" @click="buttonSearch">
+        <img src="../../resources/img/icon2.png" alt="" />
+        <p>{{ unCheck }}</p>
+      </div>
+      <img src="../../resources/img/new_img/profile_img.png" alt="" />
+      <div class="look-btn" @click="logout">
+        <img src="../../resources/img/new_img/icon/logout_icon.png" alt="" />
+      </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>
+          <article
+            class="flex justify-between mt20"
+            v-for="item in dataList"
+            :key="item.id"
+            :class="{ 'selected-row': selectedRow == item.dataList }"
+          >
+            <img
+              style="width: fit-content"
+              src="../../resources/img/img200_13p.png"
+              alt=""
+            />
+            <p class="title1 ml20" style="width: 60%">{{ item.bbsTtl }}</p>
+            <button
+              @click="buttonSearch2(item)"
+              type="button"
+              title="글쓰기"
+              class="new-btn"
+            >
+              자세히 보기
+            </button>
+          </article>
+          <article
+            class="table-pagination flex justify-center align-center mb20 mt30"
+            style="gap: 10px"
+          >
+            <button @click="previousPage" :disabled="page === 1">이전</button>
+            <button class="selected-btn">{{ page }}</button>
+            <button @click="nextPage" :disabled="page === totalPages">
+              다음
+            </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">{{ boardData.bbsTtl }}</label>
+            </div>
+            <hr />
+            <!-- <textarea readonly name="" id="">{{ boardData.bbsCnt }}</textarea> -->
+          </div>
+          <div class="flex justify-center mt20">
+            <button
+              type="button"
+              title="확인"
+              class="new-btn"
+              @click="closeBtn2"
+            >
+              확인
+            </button>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
-import SvgIcon from '@jamescoyle/vue-icon';
-import { mdiMagnify, mdiWindowClose } from '@mdi/js';
-import axios from 'axios';
-import Menu from './Menu.vue';
+import SvgIcon from "@jamescoyle/vue-icon";
+import { mdiMagnify, mdiWindowClose } from "@mdi/js";
+import axios from "axios";
+import Menu from "./Menu.vue";
 export default {
-    data() {
-        return {
-            mdiWindowClose: mdiWindowClose,
-            showModal: false,
-            searchOpen: false,
-            searchOpen2: false,
+  data() {
+    return {
+      mdiWindowClose: mdiWindowClose,
+      showModal: false,
+      searchOpen: false,
+      searchOpen2: false,
 
-            // 게시글 정보
-            dataList: [],
-            totalBoard: null,
-            selectedRow: '',
-            unCheck: null,
+      // 게시글 정보
+      dataList: [],
+      totalBoard: null,
+      selectedRow: "",
+      unCheck: null,
 
-            boardData: [],
+      boardData: [],
 
-            // 페이징 정보
-            page: 1,
-            pageSize: 2,
-            totalpages: null,
+      // 페이징 정보
+      page: 1,
+      pageSize: 2,
+      totalpages: null,
 
-            // 사용자 정보
-            userId: 'USID_000000000000006',
-            stdId: '',
-        };
+      // 사용자 정보
+      userId: "USID_000000000000006",
+      stdId: "",
+    };
+  },
+  methods: {
+    closeModal() {
+      this.showModal = false;
     },
-    methods: {
-        closeModal() {
-            this.showModal = false;
-        },
-        buttonSearch() {
-            this.searchOpen = true;
-        },
-        buttonSearch2(item) {
-            const vm = this;
-            this.searchOpen2 = true;
-            this.boardData = item;
-
-            axios({
-                url: '/board/boardStudentCheck.json',
-                method: 'post',
-                headers: {
-                    'Content-Type': 'application/json; charset=UTF-8',
-                },
-                data: {
-                    bbsId: item.bbsId,
-                    stdId: vm.stdId,
-                },
-            })
-                .then(function (res) {
-                    vm.boardList();
-                })
-                .catch(function (error) {
-                    console.log('result - error : ', error);
-                });
-        },
-        closeBtn() {
-            this.searchOpen = false;
-        },
-        closeBtn2() {
-            this.searchOpen2 = false;
-        },
-
-        logout() {
-            const result = confirm('로그아웃 하시겠습니까?');
-            if (result) {
-                this.$store.dispatch('logout');
-                this.goToPage('login');
-            } else {
-                return;
-            }
-        },
-        goToPage(page) {
-            this.$router.push({ name: page });
-        },
-
-        // 공지 조회
-        boardList() {
-            const vm = this;
-            axios({
-                url: '/board/boardStudentList.json',
-                method: 'post',
-                headers: {
-                    'Content-Type': 'application/json; charset=UTF-8',
-                },
-                data: { page: vm.page, pageSize: vm.pageSize, userId: vm.userId },
-            })
-                .then(function (res) {
-                    vm.dataList = res.data.result[0].boardClass[0].board;
-                    vm.userNm = res.data.result[0].userNm;
-                    vm.userId = res.data.result[0].userId;
-                    vm.unCheck = res.data.unCheck;
-                    vm.stdId = res.data.result[0].boardClass[0].board[0].boardStudent[0].stdId;
-                    vm.totalBoard = res.data.totalBoard;
-                    vm.totalPages = Math.ceil(vm.totalBoard / vm.pageSize);
-                })
-                .catch(function (error) {
-                    console.log('result - error : ', error);
-                });
-        },
-
-        previousPage() {
-            if (this.page > 1) {
-                this.page -= 1;
-                this.boardList();
-            }
-        },
-
-        nextPage() {
-            if (this.page < this.totalPages) {
-                this.page += 1;
-                this.boardList();
-            }
-        },
+    buttonSearch() {
+      this.searchOpen = true;
     },
-    watch: {},
-    computed: {},
-    components: {
-        SvgIcon,
-        Menu: Menu,
+    buttonSearch2(item) {
+      const vm = this;
+      this.searchOpen2 = true;
+      this.boardData = item;
+
+      axios({
+        url: "/board/boardStudentCheck.json",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json; charset=UTF-8",
+        },
+        data: {
+          bbsId: item.bbsId,
+          stdId: vm.stdId,
+        },
+      })
+        .then(function (res) {
+          vm.boardList();
+        })
+        .catch(function (error) {
+          console.log("result - error : ", error);
+        });
     },
-    mounted() {
-        console.log('Header mounted');
+    closeBtn() {
+      this.searchOpen = false;
+    },
+    closeBtn2() {
+      this.searchOpen2 = false;
+    },
+
+    logout() {
+      const result = confirm("로그아웃 하시겠습니까?");
+      if (result) {
+        this.$store.dispatch("logout");
+        this.goToPage("login");
+      } else {
+        return;
+      }
+    },
+    goToPage(page) {
+      this.$router.push({ name: page });
+    },
+
+    // 공지 조회
+    boardList() {
+      const vm = this;
+      axios({
+        url: "/board/boardStudentList.json",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json; charset=UTF-8",
+        },
+        data: { page: vm.page, pageSize: vm.pageSize, userId: vm.userId },
+      })
+        .then(function (res) {
+          vm.dataList = res.data.result[0].boardClass[0].board;
+          vm.userNm = res.data.result[0].userNm;
+          vm.userId = res.data.result[0].userId;
+          vm.unCheck = res.data.unCheck;
+          vm.stdId =
+            res.data.result[0].boardClass[0].board[0].boardStudent[0].stdId;
+          vm.totalBoard = res.data.totalBoard;
+          vm.totalPages = Math.ceil(vm.totalBoard / vm.pageSize);
+        })
+        .catch(function (error) {
+          console.log("result - error : ", error);
+        });
+    },
+
+    previousPage() {
+      if (this.page > 1) {
+        this.page -= 1;
         this.boardList();
+      }
     },
+
+    nextPage() {
+      if (this.page < this.totalPages) {
+        this.page += 1;
+        this.boardList();
+      }
+    },
+  },
+  watch: {},
+  computed: {},
+  components: {
+    SvgIcon,
+    Menu: Menu,
+  },
+  mounted() {
+    console.log("Header mounted");
+    this.boardList();
+  },
 };
 </script>
 <style scoped>
 .popup-wrap {
-    position: fixed;
-    background-color: transparent;
-    width: fit-content;
-    height: fit-content;
-    z-index: 10;
+  position: fixed;
+  background-color: transparent;
+  width: fit-content;
+  height: fit-content;
+  z-index: 10;
 }
 
 .popup-box {
-    top: 300px;
-    left: 62%;
+  top: 300px;
+  left: 62%;
 }
 
 .popup2 .popup-box {
-    top: 450px;
-    left: 38%;
+  top: 450px;
+  left: 38%;
 }
 
 /* 
@@ -223,9 +259,9 @@
 } */
 
 .header-box {
-    background-color: #ffffff80;
-    padding: 10px 50px;
-    /* box-shadow: rgba(14, 63, 126, 0.04) 0px 0px 0px 1px, rgba(42, 51, 69, 0.04) 0px 1px 1px -0.5px, rgba(42, 51, 70, 0.04) 0px 3px 3px -1.5px, rgba(42, 51, 70, 0.04) 0px 6px 6px -3px, rgba(14, 63, 126, 0.04) 0px 12px 12px -6px, rgba(14, 63, 126, 0.04) 0px 24px 24px -12px; */
-    backdrop-filter: blur(10px);
+  background-color: #ffffff80;
+  padding: 10px 50px;
+  /* box-shadow: rgba(14, 63, 126, 0.04) 0px 0px 0px 1px, rgba(42, 51, 69, 0.04) 0px 1px 1px -0.5px, rgba(42, 51, 70, 0.04) 0px 3px 3px -1.5px, rgba(42, 51, 70, 0.04) 0px 6px 6px -3px, rgba(14, 63, 126, 0.04) 0px 12px 12px -6px, rgba(14, 63, 126, 0.04) 0px 24px 24px -12px; */
+  backdrop-filter: blur(10px);
 }
 </style>
client/views/layout/Side.vue
--- client/views/layout/Side.vue
+++ client/views/layout/Side.vue
@@ -1,43 +1,54 @@
 <template>
-    <div class="side">
-        <div class="profile mb30">
-            <div class="flex align-center" style="gap: 18px">
-                <img src="../../resources/img/img16_s.png" alt="" style="border-radius: 100%; width: 10rem" />
-                <div class="mt25">
-                    <div>
-                        <p class="name mb10">{{ studentInfo.studentName }}</p>
-                        <p class="mb5">
-                            <span><img src="../../resources/img/new_img/icon/school_icon.png" alt="" /></span>
-                            {{ studentInfo.institutionName }} {{ studentInfo.grade }}학년
-                            {{ studentInfo.className }}
-                        </p>
-                    </div>
-                    <!-- <progress-bar :progress="progress"></progress-bar> -->
-                </div>
-            </div>
-            <div class="problem-box mt25">
-                <p style="font-weight: bold">
-                    지금까지 푼 총 문제 수 :
-                    <span style="color: #9528b7; font-size: 16px; font-weight: bold"
-                        >{{ studentInfo.totalProblemsSolved }}개</span
-                    >
-                </p>
-            </div>
+  <div class="side">
+    <div class="profile mb30">
+      <div class="flex align-center" style="gap: 18px">
+        <img
+          src="../../resources/img/img16_s.png"
+          alt=""
+          style="border-radius: 100%; width: 10rem"
+        />
+        <div class="mt25">
+          <div>
+            <p class="name mb10">{{ studentInfo.studentName }}</p>
+            <p class="mb5">
+              <span
+                ><img
+                  src="../../resources/img/new_img/icon/school_icon.png"
+                  alt=""
+              /></span>
+              {{ studentInfo.institutionName }} {{ studentInfo.grade }}학년
+              {{ studentInfo.className }}
+            </p>
+          </div>
+          <!-- <progress-bar :progress="progress"></progress-bar> -->
         </div>
-        <hr style="margin: 25px 20px" />
-        <div class="history-box">
-            <p class="title2 mb20">최근 학습 히스토리</p>
-            <ul class="flex-column" style="gap: 10px">
-                <!-- 더미 데이터 -->
-                <li>· 지학사 3학년 1학기</li>
-                <li>· 지학사 3학년 2학기</li>
-                <!-- 여기까지 -->
-                <li v-for="historyItem in studentInfo.history" :key="historyItem.unitId">
-                    · [{{ historyItem.bookName }}] {{ historyItem.unitName }}
-                </li>
-            </ul>
-        </div>
-        <!-- <div class="ask mb30">
+      </div>
+      <div class="problem-box mt25">
+        <p style="font-weight: bold">
+          지금까지 푼 총 문제 수 :
+          <span style="color: #9528b7; font-size: 16px; font-weight: bold"
+            >{{ studentInfo.totalProblemsSolved }}개</span
+          >
+        </p>
+      </div>
+    </div>
+    <hr style="margin: 25px 20px" />
+    <div class="history-box">
+      <p class="title2 mb20">최근 학습 히스토리</p>
+      <ul class="flex-column" style="gap: 10px">
+        <!-- 더미 데이터 -->
+        <li>· 에듀캐롯 3학년 1학기</li>
+        <li>· 에듀캐롯 3학년 2학기</li>
+        <!-- 여기까지 -->
+        <li
+          v-for="historyItem in studentInfo.history"
+          :key="historyItem.unitId"
+        >
+          · [{{ historyItem.bookName }}] {{ historyItem.unitName }}
+        </li>
+      </ul>
+    </div>
+    <!-- <div class="ask mb30">
             <p class="title1 mb15">선생님께 질문 있어요~</p>
 
             <div class="memo mb15">
@@ -52,231 +63,255 @@
                 <button @click="updateQuestion">질문하기</button>
             </div>
         </div> -->
-        <div class="mt25">
-            <div class="button-box flex">
-                <button @click="handleClickEvent" style="width: 100%">
-                    <img
-                        class="look-btn"
-                        src="../../resources/img/new_img/plan/wrong_note_btn.png"
-                        alt=""
-                        style="width: 100%"
-                    />
-                </button>
-            </div>
-            <div class="button-box flex">
-                <button @click="goPopupOpen" style="width: 100%">
-                    <img src="../../resources/img/new_img/plan/question_btn.png" alt="" style="width: 100%" />
-                </button>
-            </div>
-        </div>
+    <div class="mt25">
+      <div class="button-box flex">
+        <button @click="handleClickEvent" style="width: 100%">
+          <img
+            class="look-btn"
+            src="../../resources/img/new_img/plan/wrong_note_btn.png"
+            alt=""
+            style="width: 100%"
+          />
+        </button>
+      </div>
+      <div class="button-box flex">
+        <button @click="goPopupOpen" style="width: 100%">
+          <img
+            src="../../resources/img/new_img/plan/question_btn.png"
+            alt=""
+            style="width: 100%"
+          />
+        </button>
+      </div>
     </div>
-    <!-- 질문하기 팝업 -->
-    <div class="popup-wrap" v-if="this.popupOpen === true" style="z-index: 100">
-        <div class="question-popup">
-            <div class="flex justify-between align-center">
-                <p class="question-text mt20">선생님께 질문하기</p>
-                <img class="look-btn" @click="goPopupClose" src="../../resources/img/btn25_93t_normal.png" alt="" />
-            </div>
-            <p style="color: #8c8c8c; font-size: 20px; margin: 40px 0px">선생님! 질문있어요!!</p>
-            <div class="memo mt25">
-                <p class="title1 memo-text">내용</p>
-                <textarea name="" id="" placeholder="궁금한 것을 적어보세요." v-model="question"></textarea>
-            </div>
-            <div class="questionBtn-box flex justify-end" style="gap: 15px">
-                <button style="border-color: #eaedf4; color: #8c8c8c" @click="goPopupClose">취소하기</button>
-                <button @click="updateQuestion" style="border-color: #6327b9; color: white; background-color: #6327b9">
-                    질문하기
-                </button>
-            </div>
-        </div>
+  </div>
+  <!-- 질문하기 팝업 -->
+  <div class="popup-wrap" v-if="this.popupOpen === true" style="z-index: 100">
+    <div class="question-popup">
+      <div class="flex justify-between align-center">
+        <p class="question-text mt20">선생님께 질문하기</p>
+        <img
+          class="look-btn"
+          @click="goPopupClose"
+          src="../../resources/img/btn25_93t_normal.png"
+          alt=""
+        />
+      </div>
+      <p style="color: #8c8c8c; font-size: 20px; margin: 40px 0px">
+        선생님! 질문있어요!!
+      </p>
+      <div class="memo mt25">
+        <p class="title1 memo-text">내용</p>
+        <textarea
+          name=""
+          id=""
+          placeholder="궁금한 것을 적어보세요."
+          v-model="question"
+        ></textarea>
+      </div>
+      <div class="questionBtn-box flex justify-end" style="gap: 15px">
+        <button
+          style="border-color: #eaedf4; color: #8c8c8c"
+          @click="goPopupClose"
+        >
+          취소하기
+        </button>
+        <button
+          @click="updateQuestion"
+          style="border-color: #6327b9; color: white; background-color: #6327b9"
+        >
+          질문하기
+        </button>
+      </div>
     </div>
+  </div>
 </template>
 
 <script>
-import ProgressBar from '../component/ProgressBar.vue';
-import axios from 'axios';
+import ProgressBar from "../component/ProgressBar.vue";
+import axios from "axios";
 
 export default {
-    data() {
-        return {
-            progress: 20,
-            studentInfo: {
-                studentName: '',
-                institutionName: '',
-                grade: '',
-                className: '',
-                studentQuestion: '',
-                history: [],
-            },
-            userId: '1', // userId 임시 설정
+  data() {
+    return {
+      progress: 20,
+      studentInfo: {
+        studentName: "",
+        institutionName: "",
+        grade: "",
+        className: "",
+        studentQuestion: "",
+        history: [],
+      },
+      userId: "1", // userId 임시 설정
 
-            popupOpen: false,
-            question: null,
-        };
+      popupOpen: false,
+      question: null,
+    };
+  },
+  methods: {
+    pageSetting() {
+      this.userId = this.$store.getters.getUserInfo.userId;
+      console.log("유저 아이디: ", this.userId);
+      this.fetchStudentInfo();
     },
-    methods: {
-        pageSetting() {
-            this.userId = this.$store.getters.getUserInfo.userId;
-            console.log('유저 아이디: ', this.userId);
-            this.fetchStudentInfo();
-        },
 
-        // 학생 정보를 가져오는 메서드
-        fetchStudentInfo() {
-            axios
-                .post('/studentInfo/getInfo.json', { userId: this.userId })
-                .then((response) => {
-                    console.log('학생 정보 조회 : ', response.data);
-                    this.studentInfo = response.data;
-                })
-                .catch((error) => {
-                    console.error('학생 정보 가져오기 실패:', error);
-                });
-        },
-
-        // 질문 업데이트 메서드
-        updateQuestion() {
-            if (this.question === null) {
-                alert('질문을 입력해주세요');
-                return;
-            }
-            axios
-                .post('/studentInfo/updateQuestion.json', {
-                    userId: this.userId,
-                    // userId: 'USID_000000000000002',
-                    studentQuestion: this.question,
-                })
-                .then((response) => {
-                    console.log('질문이 성공적으로 업데이트되었습니다.');
-                    alert('질문이 성공적으로 업데이트되었습니다.');
-                })
-                .catch((error) => {
-                    console.error('질문 업데이트 실패:', error);
-                    alert('질문 업데이트에 실패했습니다.');
-                });
-            this.question = null;
-        },
-
-        handleClick() {
-            this.toggleText();
-            this.goToPage('PreviewNote');
-        },
-
-        handleClick() {
-            this.toggleTextAndNavigate();
-        },
-
-        toggleTextAndNavigate() {
-            if (this.buttonText === '오답노트') {
-                this.buttonText = '학습 코스';
-                this.goToPage('PreviewNote');
-                // 버튼 텍스트가 '학습 코스'일 때 이동할 경로
-            } else {
-                this.buttonText = '오답노트';
-                this.goToPage('Dashboard');
-                // 버튼 텍스트가 '오답노트'일 때 이동할 경로
-            }
-        },
-
-        handleClickEvent() {
-            this.goToPage('PreviewNote');
-        },
-
-        goToPage(page) {
-            this.$router.push({ name: page });
-        },
-
-        goPopupOpen() {
-            this.popupOpen = true;
-        },
-        goPopupClose() {
-            this.popupOpen = false;
-            this.question = null;
-        },
+    // 학생 정보를 가져오는 메서드
+    fetchStudentInfo() {
+      axios
+        .post("/studentInfo/getInfo.json", { userId: this.userId })
+        .then((response) => {
+          console.log("학생 정보 조회 : ", response.data);
+          this.studentInfo = response.data;
+        })
+        .catch((error) => {
+          console.error("학생 정보 가져오기 실패:", error);
+        });
     },
-    watch: {},
-    computed: {},
-    components: {
-        ProgressBar,
+
+    // 질문 업데이트 메서드
+    updateQuestion() {
+      if (this.question === null) {
+        alert("질문을 입력해주세요");
+        return;
+      }
+      axios
+        .post("/studentInfo/updateQuestion.json", {
+          userId: this.userId,
+          // userId: 'USID_000000000000002',
+          studentQuestion: this.question,
+        })
+        .then((response) => {
+          console.log("질문이 성공적으로 업데이트되었습니다.");
+          alert("질문이 성공적으로 업데이트되었습니다.");
+        })
+        .catch((error) => {
+          console.error("질문 업데이트 실패:", error);
+          alert("질문 업데이트에 실패했습니다.");
+        });
+      this.question = null;
     },
-    mounted() {
-        console.log('Side mounted');
-        this.pageSetting();
+
+    handleClick() {
+      this.toggleText();
+      this.goToPage("PreviewNote");
     },
+
+    handleClick() {
+      this.toggleTextAndNavigate();
+    },
+
+    toggleTextAndNavigate() {
+      if (this.buttonText === "오답노트") {
+        this.buttonText = "학습 코스";
+        this.goToPage("PreviewNote");
+        // 버튼 텍스트가 '학습 코스'일 때 이동할 경로
+      } else {
+        this.buttonText = "오답노트";
+        this.goToPage("Dashboard");
+        // 버튼 텍스트가 '오답노트'일 때 이동할 경로
+      }
+    },
+
+    handleClickEvent() {
+      this.goToPage("PreviewNote");
+    },
+
+    goToPage(page) {
+      this.$router.push({ name: page });
+    },
+
+    goPopupOpen() {
+      this.popupOpen = true;
+    },
+    goPopupClose() {
+      this.popupOpen = false;
+      this.question = null;
+    },
+  },
+  watch: {},
+  computed: {},
+  components: {
+    ProgressBar,
+  },
+  mounted() {
+    console.log("Side mounted");
+    this.pageSetting();
+  },
 };
 </script>
 <style scoped>
 .login-btn img {
-    width: 430px;
-    height: 85px;
+  width: 430px;
+  height: 85px;
 }
 
 .problem-box {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    border: 2px solid #6327b9;
-    background-color: #f0eaf8;
-    border-radius: 8px;
-    padding: 10px 10px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  border: 2px solid #6327b9;
+  background-color: #f0eaf8;
+  border-radius: 8px;
+  padding: 10px 10px;
 }
 
 .history-box {
-    background-color: white;
-    padding: 30px 20px;
-    border: 1px solid #c6c6c6;
-    border-radius: 10px;
-    margin: 25px 20px 0px;
+  background-color: white;
+  padding: 30px 20px;
+  border: 1px solid #c6c6c6;
+  border-radius: 10px;
+  margin: 25px 20px 0px;
 }
 
 .history-box li {
-    background-color: #eaedf4;
-    border-radius: 10px;
-    font-size: 18px;
-    list-style-type: none;
-    padding: 10px;
+  background-color: #eaedf4;
+  border-radius: 10px;
+  font-size: 18px;
+  list-style-type: none;
+  padding: 10px;
 }
 
 .button-box {
-    margin: 10px 20px;
+  margin: 10px 20px;
 }
 
 .question-popup {
-    background-color: white;
-    border-radius: 10px;
-    padding: 30px 40px;
-    position: absolute;
-    top: 15%;
-    left: 25%;
-    width: 100rem;
+  background-color: white;
+  border-radius: 10px;
+  padding: 30px 40px;
+  position: absolute;
+  top: 15%;
+  left: 25%;
+  width: 100rem;
 }
 
 .question-text {
-    font-family: 'ONEMobilePOPOTF';
-    font-size: 32px;
-    color: #6327b9;
+  font-family: "ONEMobilePOPOTF";
+  font-size: 32px;
+  color: #6327b9;
 }
 
 .memo-text {
-    font-family: 'ONEMobilePOPOTF';
-    color: #6327b9;
+  font-family: "ONEMobilePOPOTF";
+  color: #6327b9;
 }
 
 .memo textarea {
-    border: 2px solid #cac0e3;
-    border-radius: 10px;
-    width: 100%;
-    padding: 20px;
-    height: 30rem;
-    margin: 20px 0px 40px;
+  border: 2px solid #cac0e3;
+  border-radius: 10px;
+  width: 100%;
+  padding: 20px;
+  height: 30rem;
+  margin: 20px 0px 40px;
 }
 
 .questionBtn-box button {
-    font-size: 18px;
-    padding: 8px 30px;
-    border: 2px solid;
-    border-radius: 8px;
-    font-weight: bold;
-    font-family: 'ONEMobileOTF-Regular';
+  font-size: 18px;
+  padding: 8px 30px;
+  border: 2px solid;
+  border-radius: 8px;
+  font-weight: bold;
+  font-family: "ONEMobileOTF-Regular";
 }
 </style>
client/views/pages/main/Chapter/Chapter2_9.vue
--- client/views/pages/main/Chapter/Chapter2_9.vue
+++ client/views/pages/main/Chapter/Chapter2_9.vue
@@ -3,7 +3,7 @@
     <div style="margin: 30px 0px 50px; width: 20%">
       <router-link to="/MyPlan.page">
         <div class="logo mb25">
-          <img src="../../../../resources/img/logo2.png" alt="" />
+          <img src="../../../../resources/img/new_img/logo_v2.png" alt="" />
         </div>
       </router-link>
     </div>
@@ -28,8 +28,15 @@
       <div class="content title-box">
         <div style="display: flex; justify-content: space-between">
           <p class="title mt25 title-bg">STEP 2 - 단어로 공부하는 영어</p>
-          <button id="returnButton" @click="returnPage" style="margin: 4rem">
-            <img src="../../../../resources/img/btn_return_50x50.png" alt="" />
+          <button
+            id="returnButton"
+            @click="returnPage"
+            style="margin: 4rem 4rem 0 2rem"
+          >
+            <img
+              src="../../../../resources/img/new_img/content_ink/return_v2.png"
+              alt=""
+            />
             <p>되돌리기</p>
           </button>
         </div>
@@ -43,9 +50,9 @@
           <div class="dropGroup flex align-center justify-center">
             <div style="position: relative">
               <img
-                src="../../../../resources/img/img72_41s.png"
+                src="../../../../resources/img/new_img/content_ink/background.png"
                 alt=""
-                style="width: 93%"
+                style="width: 138rem; height: 49rem"
               />
               <div class="vocaGroup">
                 <div
@@ -77,30 +84,86 @@
                 <button
                   id="eraser1"
                   class="dropzone"
-                  style="left: 141px; top: 44px"
+                  style="left: 97px; top: 125px; position: fixed"
                 >
-                  <img src="../../../../resources/img/img78_41s.png" alt="" />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/ink_1.png"
+                    alt=""
+                    style="position: relative; z-index: 1"
+                  />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/click_btn.png"
+                    alt=""
+                    style="
+                      position: absolute;
+                      z-index: 2;
+                      height: 56px;
+                      right: 69px;
+                    "
+                  />
                 </button>
                 <button
                   id="eraser2"
                   class="dropzone"
-                  style="left: 200px; bottom: 46px"
+                  style="left: 87px; bottom: 38px; position: fixed"
                 >
-                  <img src="../../../../resources/img/img79_41s.png" alt="" />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/ink_2.png"
+                    alt=""
+                    style="position: relative; z-index: 1"
+                  />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/click_btn.png"
+                    alt=""
+                    style="
+                      position: absolute;
+                      z-index: 2;
+                      height: 56px;
+                      right: 139px;
+                    "
+                  />
                 </button>
                 <button
                   id="eraser3"
                   class="dropzone"
-                  style="right: 237px; top: 114px"
+                  style="right: 207px; top: 133px; position: fixed"
                 >
-                  <img src="../../../../resources/img/img80_41s.png" alt="" />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/ink_3.png"
+                    alt=""
+                    style="position: relative; z-index: 1"
+                  />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/click_btn.png"
+                    alt=""
+                    style="
+                      position: absolute;
+                      z-index: 2;
+                      height: 56px;
+                      right: 109px;
+                    "
+                  />
                 </button>
                 <button
                   id="eraser4"
                   class="dropzone"
-                  style="right: 159px; bottom: 5px"
+                  style="right: 206px; bottom: 51px; position: fixed"
                 >
-                  <img src="../../../../resources/img/img81_41s.png" alt="" />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/ink_4.png"
+                    alt=""
+                    style="position: relative; z-index: 1"
+                  />
+                  <img
+                    src="../../../../resources/img/new_img/content_ink/click_btn.png"
+                    alt=""
+                    style="
+                      position: absolute;
+                      z-index: 2;
+                      height: 56px;
+                      right: 115px;
+                    "
+                  />
                 </button>
               </div>
             </div>
Add a comment
List