From 42a1536471ac03830c57901c6f873c8757b11c03 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Thu, 13 Jun 2024 15:17:37 +0800 Subject: [PATCH] add tag for announcement --- src/admin/announcement/detail.vue | 13 +++++++++++++ src/admin/announcement/list.vue | 2 ++ src/oj/announcement/list.vue | 6 ++++++ src/utils/types.ts | 17 +++++++---------- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/admin/announcement/detail.vue b/src/admin/announcement/detail.vue index 4dc9f16..36e56de 100644 --- a/src/admin/announcement/detail.vue +++ b/src/admin/announcement/detail.vue @@ -16,10 +16,16 @@ const [ready, toggleReady] = useToggle() const announcement = reactive({ id: 0, title: "", + tag: "", content: "", visible: false, }) +const tags: SelectOption[] = [ + { label: "空白", value: "" }, + { label: "更新", value: "更新" }, +] + async function init() { if (!props.announcementID) { toggleReady(true) @@ -69,6 +75,9 @@ onMounted(init) + + + @@ -88,6 +97,10 @@ onMounted(init) margin-top: 0; } +.select { + width: 100px; +} + .contestTitle { width: 400px; } diff --git a/src/admin/announcement/list.vue b/src/admin/announcement/list.vue index ac7bce8..52975cf 100644 --- a/src/admin/announcement/list.vue +++ b/src/admin/announcement/list.vue @@ -16,6 +16,7 @@ const announcements = ref([]) const columns: DataTableColumn[] = [ { title: "ID", key: "id", width: 60 }, { title: "标题", key: "title", minWidth: 300 }, + { title: "标签", key: "tag", width: 120 }, { title: "创建时间", key: "create_time", @@ -59,6 +60,7 @@ async function toggleVisible(announcement: Announcement) { editAnnouncement({ id: announcement.id, title: announcement.title, + tag: announcement.tag, content: announcement.content, visible: announcement.visible, }) diff --git a/src/oj/announcement/list.vue b/src/oj/announcement/list.vue index b021d60..149f260 100644 --- a/src/oj/announcement/list.vue +++ b/src/oj/announcement/list.vue @@ -4,6 +4,7 @@ import Pagination from "~/shared/components/Pagination.vue" import { parseTime } from "~/utils/functions" import { Announcement } from "~/utils/types" import { isDesktop } from "~/shared/composables/breakpoints" +import { NTag } from "naive-ui" const total = ref(0) const content = ref("") @@ -15,6 +16,11 @@ const query = reactive({ }) const columns: DataTableColumn[] = [ { key: "title", title: "公告标题", minWidth: 300 }, + { + key: "tag", + title: "标签", + render: (row) => h(NTag, row.tag || "公告"), + }, { key: "create_time", title: "发布时间", diff --git a/src/utils/types.ts b/src/utils/types.ts index df6e4ee..bc2a9b6 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -331,19 +331,16 @@ export interface Server { is_disabled: boolean } -export interface Announcement { - id: number - created_by: SampleUser - title: string - content: string - create_time: Date - last_update_time: Date - visible: boolean -} - export interface AnnouncementEdit { id: number title: string + tag: string content: string visible: boolean } + +export interface Announcement extends AnnouncementEdit { + created_by: SampleUser + create_time: Date + last_update_time: Date +}