Skip to content

Commit 35dae58

Browse files
authored
#574 공지사항 상세 페이지 내 목록 기능 추가 (#576)
* feat: 공지사항 목록 버튼 추가 * feat: 공지사항 상세 페이지 내 목록 기능 추가
1 parent ffa34bf commit 35dae58

3 files changed

Lines changed: 44 additions & 2 deletions

File tree

frontend/src/i18n/oj/en-US.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,7 @@ export const m = {
253253
// announcements.vue
254254
Refresh: "새로고침",
255255
Back: "뒤로가기",
256+
Notice_List: "목록",
256257
No_Announcements: "공지사항이 없습니다",
257258
Next_Announcement: "다음 공지",
258259
Before_Announcement: "이전 공지",

frontend/src/pages/oj/views/notice/AnnouncementDetail.vue

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,11 @@ export default {
118118
params: { noticeID: this.nextAnnouncementId },
119119
})
120120
},
121+
goList() {
122+
this.$router.push({
123+
name: "notice",
124+
})
125+
},
121126
},
122127
computed: {
123128
createDate() {
@@ -207,6 +212,9 @@ export default {
207212
></div>
208213
</div>
209214
</div>
215+
<button class="notice-list-btn" @click="goList">
216+
{{ $t("m.Notice_List") }}
217+
</button>
210218
<!-- <div class="other-announcements">-->
211219
<!-- <div class="other-announcement-wrapper">-->
212220
<!-- <div class="announcement-skeleton" v-if="this.loadingNext">-->
@@ -378,4 +386,30 @@ export default {
378386
opacity: 0.5;
379387
}
380388
}
389+
390+
.notice-list-btn {
391+
padding: 8px 16px;
392+
border: none;
393+
border-radius: 8px;
394+
font-size: 13px;
395+
cursor: pointer;
396+
transition: all 0.3s ease;
397+
font-weight: 500;
398+
display: inline-flex;
399+
align-items: center;
400+
gap: 6px;
401+
margin-top: 8px;
402+
}
403+
404+
.notice-list-btn {
405+
background: rgb(241, 243, 244);
406+
color: black;
407+
}
408+
409+
.notice-list-btn:hover {
410+
background: lightgrey;
411+
color: rgb(50, 50, 50);
412+
transform: translateY(-1px);
413+
box-shadow: 0 4px 8px rgba(52, 152, 219, 0.2);
414+
}
381415
</style>

frontend/src/pages/oj/views/notice/Announcements.vue

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</table>
3232
<Pagination
3333
v-if="!isContest"
34-
key="page"
34+
:current="currentPage"
3535
:total="total"
3636
:page-size="limit"
3737
@on-change="getAnnouncementList"
@@ -67,13 +67,20 @@ export default {
6767
},
6868
methods: {
6969
init() {
70+
const savedPage = Number(sessionStorage.getItem("noticePage")) || 1
71+
this.currentPage = savedPage
72+
7073
if (this.isContest) {
7174
this.getContestAnnouncementList()
7275
} else {
7376
this.getAnnouncementList()
7477
}
7578
},
76-
getAnnouncementList(page = 1) {
79+
getAnnouncementList(page = this.currentPage) {
80+
this.currentPage = page
81+
82+
sessionStorage.setItem("noticePage", page)
83+
7784
this.btnLoading = true
7885
api.getAnnouncementList((page - 1) * this.limit, this.limit).then(
7986
(res) => {

0 commit comments

Comments
 (0)