From b921c65ed508c0dcf16f69ef2f2f7dbbd40cee67 Mon Sep 17 00:00:00 2001
From: yuetsh <517252939@qq.com>
Date: Fri, 22 Dec 2023 13:11:09 +0800
Subject: [PATCH] add announcement.
---
src/oj/announcement/list.vue | 76 ++++++++++++++++++++++++++++++++
src/oj/api.ts | 4 ++
src/routes.ts | 4 ++
src/shared/components/Header.vue | 4 ++
4 files changed, 88 insertions(+)
create mode 100644 src/oj/announcement/list.vue
diff --git a/src/oj/announcement/list.vue b/src/oj/announcement/list.vue
new file mode 100644
index 0000000..22bb094
--- /dev/null
+++ b/src/oj/announcement/list.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
diff --git a/src/oj/api.ts b/src/oj/api.ts
index 6d83a2c..d5cec7d 100644
--- a/src/oj/api.ts
+++ b/src/oj/api.ts
@@ -150,3 +150,7 @@ export function uploadAvatar(file: File) {
export function updateProfile(data: { real_name: string; mood: string }) {
return http.put("profile", data)
}
+
+export function getAnnouncementList(offset = 10, limit = 10) {
+ return http.get("announcement", { params: { limit, offset } })
+}
diff --git a/src/routes.ts b/src/routes.ts
index 7894612..2c2c8ef 100644
--- a/src/routes.ts
+++ b/src/routes.ts
@@ -70,6 +70,10 @@ export const ojs: RouteRecordRaw = {
component: () => import("oj/rank/list.vue"),
beforeEnter: loadChart,
},
+ {
+ path: "announcement",
+ component: () => import("oj/announcement/list.vue"),
+ },
{
path: "user",
component: () => import("oj/user/index.vue"),
diff --git a/src/shared/components/Header.vue b/src/shared/components/Header.vue
index d29c9d6..e886a96 100644
--- a/src/shared/components/Header.vue
+++ b/src/shared/components/Header.vue
@@ -51,6 +51,10 @@ const menus = computed(() => [
label: () => h(RouterLink, { to: "/rank" }, { default: () => "排名" }),
key: "rank",
},
+ {
+ label: () => h(RouterLink, { to: "/announcement" }, { default: () => "公告" }),
+ key: "announcement",
+ },
{
label: () => h(RouterLink, { to: "/admin" }, { default: () => "后台" }),
show: userStore.isAdminRole,