add tag for announcement
This commit is contained in:
@@ -16,10 +16,16 @@ const [ready, toggleReady] = useToggle()
|
||||
const announcement = reactive<AnnouncementEdit>({
|
||||
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)
|
||||
<n-form-item label="标题">
|
||||
<n-input class="contestTitle" v-model:value="announcement.title" />
|
||||
</n-form-item>
|
||||
<n-form-item label="标签">
|
||||
<n-select class="select" v-model:value="announcement.tag" :options="tags" />
|
||||
</n-form-item>
|
||||
<n-form-item label="可见">
|
||||
<n-switch v-model:value="announcement.visible" />
|
||||
</n-form-item>
|
||||
@@ -88,6 +97,10 @@ onMounted(init)
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.select {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.contestTitle {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ const announcements = ref<Announcement[]>([])
|
||||
const columns: DataTableColumn<Announcement>[] = [
|
||||
{ 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,
|
||||
})
|
||||
|
||||
@@ -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<Announcement>[] = [
|
||||
{ key: "title", title: "公告标题", minWidth: 300 },
|
||||
{
|
||||
key: "tag",
|
||||
title: "标签",
|
||||
render: (row) => h(NTag, row.tag || "公告"),
|
||||
},
|
||||
{
|
||||
key: "create_time",
|
||||
title: "发布时间",
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user