From 0b7352dfd587dd0be68805d802f77a6042d9a90e Mon Sep 17 00:00:00 2001 From: KANU <65529758+KANU896@users.noreply.github.com> Date: Thu, 21 Dec 2023 10:19:15 +0900 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20mycode=20=EB=82=A0=EC=A7=9C=EB=82=98?= =?UTF-8?q?=EC=98=A4=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/profile/MyCode.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/profile/MyCode.vue b/src/components/profile/MyCode.vue index d76ab7d..ab6c53a 100644 --- a/src/components/profile/MyCode.vue +++ b/src/components/profile/MyCode.vue @@ -5,7 +5,7 @@
{{ code.quizCorrect === 1 ? '성공' : '실패' }} {{ code.quizTitle }} - {{ code.quizDt }} + {{ code.quizDt }}
@@ -186,7 +186,7 @@ export default { var(--red-hover-color) 95%); } -.opposing-name { +.opposing-name, .regdate { width: 20%; line-height: 45px; color: var(--main1-color); @@ -197,6 +197,10 @@ export default { text-overflow: ellipsis; /* 넘치는 텍스트에 "..." 추가 */ } +.regdate { + width: 40%; +} + .game-result { color: var(--main1-color); width: 50%; From 1c54af3a7abd3dead37e18cd6adfee485f4141b9 Mon Sep 17 00:00:00 2001 From: KANU <65529758+KANU896@users.noreply.github.com> Date: Thu, 21 Dec 2023 10:31:20 +0900 Subject: [PATCH 2/6] =?UTF-8?q?fix:=20=EA=B2=8C=EC=9E=84=EA=B2=B0=EA=B3=BC?= =?UTF-8?q?,=20=ED=95=84=EC=9A=94=EC=97=86=EB=8A=94=20=EC=B6=9C=EB=A0=A5?= =?UTF-8?q?=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/code/NormalMonaco.vue | 1 - src/components/code/RankMonaco.vue | 17 ----------------- src/views/code/Rank.vue | 18 ++---------------- 3 files changed, 2 insertions(+), 34 deletions(-) diff --git a/src/components/code/NormalMonaco.vue b/src/components/code/NormalMonaco.vue index 8d76755..3139f25 100644 --- a/src/components/code/NormalMonaco.vue +++ b/src/components/code/NormalMonaco.vue @@ -244,7 +244,6 @@ export default defineComponent({ this.output = response.data.result this.gameResult = response.data.gameResult - this.gameResult = '1' if (this.gameResult == '1') { this.$emit('monacoWinMemberNo', this.memberNo) } diff --git a/src/components/code/RankMonaco.vue b/src/components/code/RankMonaco.vue index 2f76aa9..4260a3c 100644 --- a/src/components/code/RankMonaco.vue +++ b/src/components/code/RankMonaco.vue @@ -245,26 +245,9 @@ export default defineComponent({ this.output = response.data.result this.gameResult = response.data.gameResult - this.gameResult = '1' if (this.gameResult == '1') { this.$emit('monacoWinMemberNo', this.memberNo) } - - //게임 결과 update - // const data = { - // gameResult: this.gameResult - // } - // const url2 = `${this.backURL}/rankgame/${this.rankNo}` - // apiClient - // .put(url2, JSON.stringify(data), { - // headers: { - // 'Content-Type': 'application/json' - // } - // }) - // .catch(error => { - // console.log('Server Error:', error); - // alert('서버 에러 발생. 자세한 내용은 콘솔을 확인하세요.'); - // }); }) //네트워크에 의한 요청 실패일 경우 .catch((error) => { diff --git a/src/views/code/Rank.vue b/src/views/code/Rank.vue index 4586158..6d17f27 100644 --- a/src/views/code/Rank.vue +++ b/src/views/code/Rank.vue @@ -138,7 +138,6 @@ export default { document.body.style.overflow = 'auto' this.disconnect() - console.log(this.winMemberNo) if (this.memberNo == this.member1No && this.winMemberNo == this.memberNo) { if (this.resultMemberNo == this.memberNo) { // 게임 결과 update @@ -198,7 +197,6 @@ export default { }, setWinMember(dataFromChild) { this.winMemberNo = dataFromChild - console.log(this.winMemberNo) var winMember = { type: 'CODE_STATUS', codeRoomNo: this.rankNo, @@ -206,14 +204,6 @@ export default { codeStatus: this.winMemberNo + ',win' } this.socket.send(JSON.stringify(winMember)) - - // var talkMessage = { - // type: 'CODE_STATUS', - // codeRoomNo: this.rankNo, - // codeSender: this.memberName, - // codeStatus: this.buttonValue - // } - // this.socket.send(JSON.stringify(talkMessage)) }, connect() { this.socket = new WebSocket(this.socketURL) @@ -231,12 +221,9 @@ export default { this.socket.onerror = () => {} this.socket.onmessage = (e) => { - console.log(e.data) if (this.socket.readyState === WebSocket.OPEN) { - console.log(e.data) const rawData = e.data const colonIndex = rawData.indexOf(':') - console.log(rawData) var msgMemberName = '' var msgMemberButtonValue = '' //test1: run @@ -250,9 +237,8 @@ export default { this.buttonValuePlayer2 = msgMemberButtonValue } } - console.log(msgMemberButtonValue) + const colonIndex2 = msgMemberButtonValue.indexOf(',') - console.log(colonIndex2) if (colonIndex2 !== -1) { this.resultMemberNo = msgMemberButtonValue.substring(0, colonIndex2).trim() this.gameEnd = true @@ -264,7 +250,7 @@ export default { this.socket.readyState === WebSocket.CLOSING || this.socket.readyState === WebSocket.CLOSED ) { - console.log('?') + this.connect() } } From 636e3eea00b247aa1674570f16e687ed80fc1201 Mon Sep 17 00:00:00 2001 From: KANU <65529758+KANU896@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:18:44 +0900 Subject: [PATCH 3/6] =?UTF-8?q?fix:=20=EC=8A=B9=EB=A6=AC=20=ED=8C=9D?= =?UTF-8?q?=EC=97=85=EC=B0=BD=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD,?= =?UTF-8?q?=20exp=EC=B6=94=EA=B0=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/code/Normal.vue | 13 +++++++++++-- src/components/profile/MyCode.vue | 1 - src/views/code/Rank.vue | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/code/Normal.vue b/src/components/code/Normal.vue index f810044..0f143bf 100644 --- a/src/components/code/Normal.vue +++ b/src/components/code/Normal.vue @@ -197,7 +197,9 @@ export default { this.disconnect() console.log(this.roomMemberList.length) console.log(this.resultMemberNo) - const url = `${this.backURL}/member/exp?memberNo=${this.resultMemberNo}&roomSize=${this.roomMemberList.length}` + var roomMemberSize = this.roomMemberList.length * 5 + console.log('roomMemberSize: ' + roomMemberSize) + const url = `${this.backURL}/member/exp?memberNo=${this.resultMemberNo}&roomSize=${roomMemberSize}` if (this.resultMemberNo == this.memberNo) { // apiClient 보내기 apiClient @@ -319,6 +321,13 @@ export default { this.reportModal = false }, exitButtonClickHandler() { + var talkMessage = { + type: 'ROOM_TALK', + roomNo: this.roomNo, + sender: this.memberName, + message: this.memberNo + } + this.socket.send(JSON.stringify(talkMessage)) this.disconnect() this.$router.push({ path: `/` }) }, @@ -688,7 +697,7 @@ body.flex-container { border-radius: 10px; width: 400px; height: 540px; - margin-top: 250px; + margin-top: 100px; margin-left: 10px; z-index: 2; overflow: hidden; diff --git a/src/components/profile/MyCode.vue b/src/components/profile/MyCode.vue index 5d71def..56e03cb 100644 --- a/src/components/profile/MyCode.vue +++ b/src/components/profile/MyCode.vue @@ -86,7 +86,6 @@ export default { }, mounted() { this.memberNo = this.$route.params.memberNo - console.log(this.memberNo) const url = `${this.backURL}/mycode/${this.memberNo}` apiClient .get(url, { diff --git a/src/views/code/Rank.vue b/src/views/code/Rank.vue index 6d17f27..2cb08cb 100644 --- a/src/views/code/Rank.vue +++ b/src/views/code/Rank.vue @@ -663,7 +663,7 @@ body.flex-container { border-radius: 10px; width: 400px; height: 540px; - margin-top: 250px; + margin-top: 100px; margin-left: 10px; z-index: 2; overflow: hidden; From 1879fb954d1f5880a0cd2f1334a78db1e04b11bc Mon Sep 17 00:00:00 2001 From: KANU <65529758+KANU896@users.noreply.github.com> Date: Thu, 21 Dec 2023 14:19:09 +0900 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20=EB=B9=84=EA=B2=BC=EC=9D=84=EC=8B=9C?= =?UTF-8?q?=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/code/Rank.vue | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/views/code/Rank.vue b/src/views/code/Rank.vue index 2cb08cb..8cf3def 100644 --- a/src/views/code/Rank.vue +++ b/src/views/code/Rank.vue @@ -174,24 +174,6 @@ export default { alert('서버 에러 발생. 자세한 내용은 콘솔을 확인하세요.') }) } - } else { - if (this.resultMemberNo == this.memberNo) { - // 게임 결과 update - const data = { - gameResult: '0' - } - const url2 = `${this.backURL}/rankgame/${this.rankNo}` - apiClient - .put(url2, JSON.stringify(data), { - headers: { - 'Content-Type': 'application/json' - } - }) - .catch((error) => { - console.log('Server Error:', error) - alert('서버 에러 발생. 자세한 내용은 콘솔을 확인하세요.') - }) - } } this.$router.push({ path: `/` }) }, @@ -319,6 +301,22 @@ export default { } if (this.seconds === 0 && this.minutes === 0) { if (confirm('시간이 초과되어 메인으로 이동합니다')) { + // 게임 결과 update + const data = { + gameResult: '0' + } + const url2 = `${this.backURL}/rankgame/${this.rankNo}` + apiClient + .put(url2, JSON.stringify(data), { + headers: { + 'Content-Type': 'application/json' + } + }) + .catch((error) => { + console.log('Server Error:', error) + alert('서버 에러 발생. 자세한 내용은 콘솔을 확인하세요.') + }) + this.$router.push({ path: `/` }) } } From 2871c88ccf2d59adfe1483e0c3d90a324050def0 Mon Sep 17 00:00:00 2001 From: KANU <65529758+KANU896@users.noreply.github.com> Date: Thu, 21 Dec 2023 20:02:14 +0900 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20=EB=9E=AD=ED=81=AC=EB=AA=A8=EB=93=9C?= =?UTF-8?q?=20=EA=B2=BD=ED=97=98=EC=B9=98=20=EC=A6=9D=EA=B0=80,=20?= =?UTF-8?q?=EC=A0=95=EB=8B=B5=20=EC=BD=94=EB=93=9C=20=EC=B2=A8=EB=B6=80=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/code/Normal.vue | 7 +-- src/components/code/NormalMonaco.vue | 4 +- src/components/home/MainHomeRoom.vue | 2 +- src/components/rank/RankMatching.vue | 4 +- src/components/room/AddRoom.vue | 2 +- src/views/code/Rank.vue | 71 ++++++++++++++++++++++------ src/views/member/Login.vue | 2 - src/views/quiz/AddQuiz.vue | 4 +- src/views/room/WaitingRoom.vue | 9 +++- 9 files changed, 75 insertions(+), 30 deletions(-) diff --git a/src/components/code/Normal.vue b/src/components/code/Normal.vue index cac4a17..b925512 100644 --- a/src/components/code/Normal.vue +++ b/src/components/code/Normal.vue @@ -192,13 +192,10 @@ export default { backOff() { this.gameEnd = false document.body.style.overflow = 'auto' - //우승한 memberNo, roomMemberList의 size 보내기(exp추가) - this.disconnect() - console.log(this.roomMemberList.length) - console.log(this.resultMemberNo) + + //우승한 memberNo, roomMemberList의 size 보내기(exp추가) var roomMemberSize = this.roomMemberList.length * 5 - console.log('roomMemberSize: ' + roomMemberSize) const url = `${this.backURL}/member/exp?memberNo=${this.resultMemberNo}&roomSize=${roomMemberSize}` if (this.resultMemberNo == this.memberNo) { // apiClient 보내기 diff --git a/src/components/code/NormalMonaco.vue b/src/components/code/NormalMonaco.vue index 3139f25..4075a02 100644 --- a/src/components/code/NormalMonaco.vue +++ b/src/components/code/NormalMonaco.vue @@ -45,6 +45,7 @@ export default defineComponent({ }, language: { type: String, default: 'java' }, theme: { type: String, default: 'vs-dark' }, //vs, vs-dark, hc-black + // fontSize: {defalut: 15px} options: { type: Object, default() { @@ -70,7 +71,8 @@ export default defineComponent({ height: fixedHeight, 'text-align': 'left', 'align-items': 'center', - 'margin-left': '15px' + 'margin-left': '15px', + 'font-size' : '15px' } }) return { diff --git a/src/components/home/MainHomeRoom.vue b/src/components/home/MainHomeRoom.vue index 82681f4..93a73ad 100644 --- a/src/components/home/MainHomeRoom.vue +++ b/src/components/home/MainHomeRoom.vue @@ -106,7 +106,7 @@ export default { } ) .then(() => { - this.$router.push({ + this.$router.replace({ path: `/room/${this.roomInfo.roomNo}`, state: { rightAccess: true diff --git a/src/components/rank/RankMatching.vue b/src/components/rank/RankMatching.vue index 53bf118..a09f1bd 100644 --- a/src/components/rank/RankMatching.vue +++ b/src/components/rank/RankMatching.vue @@ -95,7 +95,7 @@ export default { }, setQuiz() { apiClient.get(`${this.backURL}/rankroom/quiz/${this.rankRoom.roomNo}`).then((res) => { - this.$router.push({ + this.$router.replace({ path: '/rank/' + res.data, state: { rightAccess: true @@ -139,7 +139,7 @@ export default { this.rankRoom.quizNo != '' ) { this.stopMatching() - this.$router.push({ + this.$router.replace({ path: '/rank/' + this.rankRoom.rankNo, state: { rightAccess: true diff --git a/src/components/room/AddRoom.vue b/src/components/room/AddRoom.vue index 5519d48..15da949 100644 --- a/src/components/room/AddRoom.vue +++ b/src/components/room/AddRoom.vue @@ -221,7 +221,7 @@ export default { } }) .then(() => { - this.$router.push({ + this.$router.replace({ path: `/room/${res.data}`, state: { rightAccess: true diff --git a/src/views/code/Rank.vue b/src/views/code/Rank.vue index c589669..a298ad9 100644 --- a/src/views/code/Rank.vue +++ b/src/views/code/Rank.vue @@ -98,8 +98,8 @@ export default { quizContent: '', quizTitle: '', timerRunning: true, - minutes: 0, - seconds: 10, + minutes: 60, + seconds: 0, socket: null, buttonValue: '', buttonValuePlayer1: '', @@ -138,6 +138,25 @@ export default { document.body.style.overflow = 'auto' this.disconnect() + //우승한 memberNo, roomMemberList의 size 보내기(exp추가) + var roomMemberSize = 10 + const url = `${this.backURL}/member/exp?memberNo=${this.resultMemberNo}&roomSize=${roomMemberSize}` + console.log(this.resultMemberNo) + console.log(this.memberNo) + console.log(roomMemberSize) + if (this.resultMemberNo == this.memberNo) { + // apiClient 보내기 + apiClient + .put(url, { + headers: { + 'Content-Type': 'application/json' + } + }) + .then((response) => { + console.log(response.data); + }) + } + if (this.memberNo == this.member1No && this.winMemberNo == this.memberNo) { if (this.resultMemberNo == this.memberNo) { // 게임 결과 update @@ -280,6 +299,19 @@ export default { event.returnValue = '' }, exitButtonClickHandler() { + if(this.memberNo == this.member1No){ + this.resultMemberNo = this.member2No + }else{ + this.resultMemberNo = this.member1No + } + // const enterMessage = { + // type: 'CODE_QUIT', + // codeRoomNo: this.rankNo, + // codeSender: this.resultMemberNo + // } + // this.socket.send(JSON.stringify(enterMessage)) + // } + // this.gameEnd = true this.disconnect() this.$router.push({ path: `/` }) }, @@ -342,7 +374,20 @@ export default { } }, created() { - window.addEventListener('beforeunload', this.beforeUnloadHandler) + console.log('history.state: ', history.state.rightAccess) + + if (!history.state.rightAccess) { + SweetAlert.error('잘못된 접근입니다.').then((ok) => { + if (ok.isConfirmed) { + this.$router.replace({path: '/', state: { + rightAccess: false + }}).then(() => { + this.$router.go() + }) + } + }) + } else{ + window.addEventListener('beforeunload', this.beforeUnloadHandler) //타이머 시작 this.updateTimer() this.rankNo = this.$router.currentRoute.value.params.rankNo @@ -370,9 +415,7 @@ export default { this.quizContent = response.data.quizContent this.quizTitle = response.data.quizTitle }) - .catch(() => { - alert('문제 조회에 실패하였습니다') - }) + // testcaseList const url3 = `${this.backURL}/submit/${this.quizNo}` @@ -385,13 +428,9 @@ export default { .then((response) => { this.testcaseList = response.data }) - .catch(() => { - alert('테스트케이스 조회에 실패하였습니다') - }) - }) - .catch(() => { - alert('문제 정보 조회에 실패하였습니다') + }) + //memberNo const url4 = `${this.backURL}/member/memberNo` apiClient @@ -415,9 +454,13 @@ export default { this.memberName = response.data.memberName }) }) + } }, mounted() { - const url = `${this.backURL}/rankgame/${this.rankNo}` + console.log(history.state.rightAccess) + if (!history.state.rightAccess) { + }else{ + const url = `${this.backURL}/rankgame/${this.rankNo}` apiClient .get(url, { headers: { @@ -437,8 +480,8 @@ export default { } }) window.addEventListener('beforeunload', this.unLoadEvent) - this.rankNo = this.$router.currentRoute.value.params.rankNo this.connect() + } }, beforeUnmount() { const outMessage = { diff --git a/src/views/member/Login.vue b/src/views/member/Login.vue index a1ab808..c37d8c5 100644 --- a/src/views/member/Login.vue +++ b/src/views/member/Login.vue @@ -120,7 +120,6 @@ body, html { height: 100%; margin: 0; - overflow: scroll; } .video-background { @@ -129,7 +128,6 @@ html { left: 0; width: 100%; height: 100%; - overflow: scroll; } #myVideo { diff --git a/src/views/quiz/AddQuiz.vue b/src/views/quiz/AddQuiz.vue index 18e8a7a..2f3a094 100644 --- a/src/views/quiz/AddQuiz.vue +++ b/src/views/quiz/AddQuiz.vue @@ -55,8 +55,8 @@ >
diff --git a/src/views/room/WaitingRoom.vue b/src/views/room/WaitingRoom.vue index 9e60670..3da3387 100644 --- a/src/views/room/WaitingRoom.vue +++ b/src/views/room/WaitingRoom.vue @@ -395,11 +395,16 @@ export default { } }, mounted() { + console.log('history.state: ', history.state.rightAccess) + if (!history.state.rightAccess) { - console.log('history.state: ', history.state.rightAccess) SweetAlert.error('잘못된 접근입니다.').then((ok) => { if (ok.isConfirmed) { - this.$router.go(-1) + this.$router.replace({path: '/', state: { + rightAccess: false + }}).then(() => { + this.$router.go() + }) } }) } else { From 63960fd56144390009618346ffcce22c3282fb57 Mon Sep 17 00:00:00 2001 From: KANU <65529758+KANU896@users.noreply.github.com> Date: Thu, 21 Dec 2023 20:06:35 +0900 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8?= =?UTF-8?q?=EC=95=88=ED=95=98=EA=B3=A0=20=EB=A9=94=EC=9D=B8=ED=99=88=20?= =?UTF-8?q?=EA=B0=88=20=EC=8B=9C=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=B0=BD?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/util/axios-interceptor.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/util/axios-interceptor.js b/src/util/axios-interceptor.js index 83f1143..fa60dc6 100644 --- a/src/util/axios-interceptor.js +++ b/src/util/axios-interceptor.js @@ -25,9 +25,12 @@ apiClient.interceptors.response.use( async (error) => { if (error.response?.status === 401) { - sweetAlert.warning('로그인이 필요합니다', '', '로그인창으로 가기').then(() => { - window.location.href = '/login' - }) + sweetAlert.warning('로그인이 필요합니다', '', '로그인창으로 가기') + .then((result) => { + if (result.isConfirmed) { + window.location.href = '/login'; + } + }); } if (error.response?.status === 403) { console.error('403 Forbidden 에러 발생 :', error.response)