jichoi / lms_front star
정다정 2024-09-10
240910 정다정 사이드바&헤더 수정
@0a3468aa5a1fb2fbdc1bb33a518d62f28a0836f9
client/views/layout/Header.vue
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
@@ -1,211 +1,227 @@
 <template>
-  <div class="header flex justify-end">
-    <div class="setting" @click="logout">
-      <img src="../../resources/img/setting.png" alt="" />
-    </div>
-    <div class="notice" @click="buttonSearch">
-      <img src="../../resources/img/icon2.png" alt="" />
-      <p>{{ unCheck }}</p>
-    </div>
-    <img src="../../resources/img/img03.png" alt="" />
-    <div class="popup-wrap" v-show="searchOpen">
-      <div class="popup-box">
-        <div class="flex mb10 justify-between">
-          <p class="popup-title">알림</p>
-          <button type="button" class="popup-close-btn" @click="closeBtn">
-            <svg-icon type="mdi" :path="mdiWindowClose" class="close-btn"></svg-icon>
-          </button>
+    <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>
-        <article class="flex justify-between mt20" v-for="(item, index) 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 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>
-    <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>
 </template>
 
 <script>
-import SvgIcon from "@jamescoyle/vue-icon";
-import { mdiMagnify, mdiWindowClose } from "@mdi/js";
-import axios from "axios";
+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: "",
-    };
-  },
-  methods: {
-    closeModal() {
-      this.showModal = false;
+            // 사용자 정보
+            userId: 'USID_000000000000006',
+            stdId: '',
+        };
     },
-    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",
+    methods: {
+        closeModal() {
+            this.showModal = false;
         },
-        data: {
-          bbsId: item.bbsId,
-          stdId: vm.stdId,
+        buttonSearch() {
+            this.searchOpen = true;
         },
-      })
-        .then(function (res) {
-          vm.boardList();
-        })
-        .catch(function (error) {
-          console.log("result - error : ", error);
-        });
-    },
-    closeBtn() {
-      this.searchOpen = false;
-    },
-    closeBtn2() {
-      this.searchOpen2 = false;
-    },
+        buttonSearch2(item) {
+            const vm = this;
+            this.searchOpen2 = true;
+            this.boardData = item;
 
-    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",
+            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);
+                });
         },
-        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);
-        });
-    },
+        closeBtn() {
+            this.searchOpen = false;
+        },
+        closeBtn2() {
+            this.searchOpen2 = false;
+        },
 
-    previousPage() {
-      if (this.page > 1) {
-        this.page -= 1;
+        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();
-      }
     },
-
-    nextPage() {
-      if (this.page < this.totalPages) {
-        this.page += 1;
-        this.boardList();
-      }
-    },
-  },
-  watch: {},
-  computed: {},
-  components: {
-    SvgIcon,
-  },
-  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%;
+}
+
+.header-box {
+    background-color: white;
+    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;
 }
 </style>
client/views/layout/Menu.vue
--- client/views/layout/Menu.vue
+++ client/views/layout/Menu.vue
@@ -1,5 +1,5 @@
 <template>
-    <div class="menu flex" style="gap: 30px">
+    <div class="menu flex align-center" style="gap: 30px; padding-top: 10px">
         <router-link to="/MyPlan.page">
             <button :class="{ active: activeButton === 'schedule' }" type="submit" @click="goToApp('schedule')">
                 <p :class="{ active: activeButton === 'schedule' }">학습일정계획</p>
@@ -48,7 +48,6 @@
                 this.activeButton = 'mypage';
             }
         },
-
     },
     watch: {
         currentRoute() {
client/views/layout/Side.vue
--- client/views/layout/Side.vue
+++ client/views/layout/Side.vue
@@ -1,164 +1,282 @@
 <template>
-  <div class="side">
-    <router-link to="/MyPlan.page">
-      <div class="logo mb25">
-        <img src="../../resources/img/logo2.png" alt="" />
-      </div>
-    </router-link>
-    <div class="profile mb30">
-      <div class="flex align-start">
-        <img src="../../resources/img/img16_s.png" alt="" />
-        <div class="ml25">
-          <p class="name mb10">{{ studentInfo.studentName }}</p>
-          <p class="mb5">
-            {{ studentInfo.institutionName }} {{ studentInfo.grade }}학년
-            {{ studentInfo.className }}
-          </p>
-          <!-- <progress-bar :progress="progress"></progress-bar> -->
-          <span>지금까지 푼 총 문제 수:</span>
-          <span class="brown ml10">{{ studentInfo.totalProblemsSolved }} 개</span>
+    <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>
-      </div>
-      <hr />
-      <p class="title2 mb25">최근 학습 히스토리</p>
-      <ul class="flex justify-between ml30 mb30">
-        <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>
+        <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">
-        <textarea
-          name=""
-          id=""
-          placeholder="궁금한 것을 적어보세요."
-          v-model="studentInfo.studentQuestion"
-        ></textarea>
-      </div>
-      <div class="flex justify-end">
-        <button @click="updateQuestion">질문하기</button>
-      </div>
+            <div class="memo mb15">
+                <textarea
+                    name=""
+                    id=""
+                    placeholder="궁금한 것을 적어보세요."
+                    v-model="studentInfo.studentQuestion"
+                ></textarea>
+            </div>
+            <div class="flex justify-end">
+                <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>
-    <div class="btn-wrap flex justify-between">
-      <button class="login-btn" @click="handleClickEvent">
-        <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 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>
 </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 {
-      buttonText: "오답노트",
-      progress: 20,
-      studentInfo: {
-        studentName: "",
-        institutionName: "",
-        grade: "",
-        className: "",
-        studentQuestion: "",
-        history: [],
-      },
-      userId: "1", // userId 임시 설정
-    };
-  },
-  methods: {
-    pageSetting() {
-      this.userId = this.$store.getters.getUserInfo.userId;
-      console.log("유저 아이디: ", this.userId);
-      this.fetchStudentInfo();
-    },
+    data() {
+        return {
+            progress: 20,
+            studentInfo: {
+                studentName: '',
+                institutionName: '',
+                grade: '',
+                className: '',
+                studentQuestion: '',
+                history: [],
+            },
+            userId: '1', // userId 임시 설정
 
-    // 학생 정보를 가져오는 메서드
-    fetchStudentInfo() {
-      axios
-        .post("/studentInfo/getInfo.json", { userId: this.userId })
-        .then((response) => {
-          console.log(response.data);
-          this.studentInfo = response.data;
-        })
-        .catch((error) => {
-          console.error("학생 정보 가져오기 실패:", error);
-        });
+            popupOpen: false,
+            question: null,
+        };
     },
+    methods: {
+        pageSetting() {
+            this.userId = this.$store.getters.getUserInfo.userId;
+            console.log('유저 아이디: ', this.userId);
+            this.fetchStudentInfo();
+        },
 
-    // 질문 업데이트 메서드
-    updateQuestion() {
-      axios
-        .post("/studentInfo/updateQuestion.json", {
-          userId: this.userId,
-          studentQuestion: this.studentInfo.studentQuestion,
-        })
-        .then((response) => {
-          console.log("질문이 성공적으로 업데이트되었습니다.");
-          alert("질문이 성공적으로 업데이트되었습니다.");
-        })
-        .catch((error) => {
-          console.error("질문 업데이트 실패:", error);
-          alert("질문 업데이트에 실패했습니다.");
-        });
-    },
+        // 학생 정보를 가져오는 메서드
+        fetchStudentInfo() {
+            axios
+                .post('/studentInfo/getInfo.json', { userId: this.userId })
+                .then((response) => {
+                    console.log('학생 정보 조회 : ', response.data);
+                    this.studentInfo = response.data;
+                })
+                .catch((error) => {
+                    console.error('학생 정보 가져오기 실패:', error);
+                });
+        },
 
-    handleClick() {
-      this.toggleText();
-      this.goToPage("PreviewNote");
-    },
+        // 질문 업데이트 메서드
+        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.toggleTextAndNavigate();
-    },
+        handleClick() {
+            this.toggleText();
+            this.goToPage('PreviewNote');
+        },
 
-    toggleTextAndNavigate() {
-      if (this.buttonText === "오답노트") {
-        this.buttonText = "학습 코스";
-        this.goToPage("PreviewNote");
-        // 버튼 텍스트가 '학습 코스'일 때 이동할 경로
-      } else {
-        this.buttonText = "오답노트";
-        this.goToPage("Dashboard");
-        // 버튼 텍스트가 '오답노트'일 때 이동할 경로
-      }
-    },
+        handleClick() {
+            this.toggleTextAndNavigate();
+        },
 
-    handleClickEvent() {
-      this.goToPage("PreviewNote");
-    },
+        toggleTextAndNavigate() {
+            if (this.buttonText === '오답노트') {
+                this.buttonText = '학습 코스';
+                this.goToPage('PreviewNote');
+                // 버튼 텍스트가 '학습 코스'일 때 이동할 경로
+            } else {
+                this.buttonText = '오답노트';
+                this.goToPage('Dashboard');
+                // 버튼 텍스트가 '오답노트'일 때 이동할 경로
+            }
+        },
 
-    goToPage(page) {
-      this.$router.push({ name: page });
+        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();
-  },
+    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;
+}
+
+.history-box {
+    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;
+}
+
+.button-box {
+    margin: 10px 20px;
+}
+
+.question-popup {
+    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;
+}
+
+.memo-text {
+    font-family: 'ONEMobilePOPOTF';
+    color: #6327b9;
+}
+
+.memo textarea {
+    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';
 }
 </style>
client/views/pages/main/Main.vue
--- client/views/pages/main/Main.vue
+++ client/views/pages/main/Main.vue
@@ -1,17 +1,18 @@
 <template>
-    <div style="padding: 15px 60px 90px 60px; ">
+    <div>
         <Header></Header>
-          <div class="flex justify-between" >
-             <Side></Side>
-             <div>
-                <Menu :currentRoute="$route.path"></Menu>
-                <div class="main-wrap">
-                    <router-view />
+        <div style="padding: 40px 60px 90px">
+            <div class="flex justify-between">
+                <Side></Side>
+                <div>
+                    <!-- <Menu :currentRoute="$route.path"></Menu> -->
+                    <div class="main-wrap">
+                        <router-view />
+                    </div>
                 </div>
-             </div>
-          </div>
+            </div>
+        </div>
     </div>
-
 </template>
 
 <script>
@@ -21,26 +22,19 @@
 
 export default {
     data() {
-        return {
-        }
+        return {};
     },
-    methods: {
-       
-    },
-    watch: {
-
-    },
-    computed: {
-
-    },
+    methods: {},
+    watch: {},
+    computed: {},
     components: {
         Header: Header,
-      Menu: Menu,
-      // Footer:Footer,
-      Side:Side,
+        Menu: Menu,
+        // Footer:Footer,
+        Side: Side,
     },
     mounted() {
         console.log('main mounted');
-    }
-}
-</script>
(No newline at end of file)
+    },
+};
+</script>
Add a comment
List