为比赛添加标签
This commit is contained in:
@@ -18,6 +18,7 @@ const query = reactive({
|
||||
limit: parseInt(<string>route.query.limit) || 10,
|
||||
keyword: <string>route.query.keyword ?? "",
|
||||
status: <string>route.query.status ?? "",
|
||||
tag: <string>route.query.tag ?? "",
|
||||
})
|
||||
const data = ref<Contest[]>([])
|
||||
const total = ref(0)
|
||||
@@ -29,6 +30,13 @@ const options: SelectOption[] = [
|
||||
{ label: "已结束", value: "-1" },
|
||||
]
|
||||
|
||||
const tags: SelectOption[] = [
|
||||
{ label: "全部", value: "" },
|
||||
{ label: "练习", value: "练习" },
|
||||
{ label: "期中", value: "期中" },
|
||||
{ label: "期末", value: "期末" },
|
||||
]
|
||||
|
||||
const columns: DataTableColumn<Contest>[] = [
|
||||
{
|
||||
title: renderTableTitle("状态", "streamline-emojis:collision"),
|
||||
@@ -47,6 +55,12 @@ const columns: DataTableColumn<Contest>[] = [
|
||||
minWidth: 360,
|
||||
render: (row) => h(ContestTitle, { contest: row }),
|
||||
},
|
||||
{
|
||||
title: renderTableTitle("标签", "fluent-emoji-flat:keycap-hashtag"),
|
||||
key: "tag",
|
||||
width: 100,
|
||||
render: (row) => h(NTag, () => row.tag),
|
||||
},
|
||||
{
|
||||
title: renderTableTitle("开始时间", "fluent-emoji-flat:eleven-thirty"),
|
||||
key: "start_time",
|
||||
@@ -68,6 +82,7 @@ async function listContests() {
|
||||
limit: query.limit,
|
||||
keyword: query.keyword,
|
||||
status: query.status,
|
||||
tag: query.tag,
|
||||
})
|
||||
data.value = res.data.results
|
||||
total.value = res.data.total
|
||||
@@ -87,12 +102,13 @@ function search(value: string) {
|
||||
function clear() {
|
||||
query.keyword = ""
|
||||
query.status = ""
|
||||
query.tag = ""
|
||||
}
|
||||
|
||||
onMounted(listContests)
|
||||
watch(() => query.page, routerPush)
|
||||
watch(
|
||||
() => [query.limit, query.status],
|
||||
() => [query.limit, query.status, query.tag],
|
||||
() => {
|
||||
query.page = 1
|
||||
routerPush()
|
||||
@@ -137,6 +153,9 @@ function rowProps(row: Contest) {
|
||||
v-model:value="query.status"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item label="标签">
|
||||
<n-select class="select" :options="tags" v-model:value="query.tag" />
|
||||
</n-form-item>
|
||||
<n-form-item>
|
||||
<n-input
|
||||
clearable
|
||||
|
||||
Reference in New Issue
Block a user