add end_time
Some checks failed
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled

This commit is contained in:
2026-03-16 23:44:41 +08:00
parent 19b2e2a507
commit 8be95b4c85
3 changed files with 26 additions and 0 deletions

View File

@@ -318,6 +318,7 @@ export function createProblemSet(data: {
description: string
difficulty: string
status: string
end_time?: Date | null
}) {
return http.post("admin/problemset", data)
}
@@ -328,6 +329,7 @@ export function editProblemSet(data: {
description?: string
difficulty?: string
status?: string
end_time?: Date | null
visible?: boolean
}) {
return http.put("admin/problemset", data)

View File

@@ -15,6 +15,17 @@ const formData = ref<CreateProblemSetData & Partial<EditProblemSetData>>({
difficulty: "Easy",
status: "draft",
visible: false,
end_time: null,
})
const endTimeTimestamp = computed({
get: () =>
formData.value.end_time
? new Date(formData.value.end_time).getTime()
: null,
set: (val: number | null) => {
formData.value.end_time = val ? new Date(val) : null
},
})
const difficultyOptions = [
@@ -44,6 +55,7 @@ async function loadProblemSetDetail() {
difficulty: data.difficulty,
status: data.status,
visible: data.visible,
end_time: data.end_time ? new Date(data.end_time) : null,
}
} catch (err: any) {
message.error("加载题单详情失败:" + (err.data || "未知错误"))
@@ -120,6 +132,14 @@ onMounted(() => {
placeholder="选择状态"
/>
</n-form-item>
<n-form-item label="截止时间">
<n-date-picker
v-model:value="endTimeTimestamp"
type="datetime"
clearable
placeholder="不设置则无截止时间"
/>
</n-form-item>
<n-form-item v-if="isEdit" label="是否可见">
<n-switch v-model:value="formData.visible" />
</n-form-item>

View File

@@ -193,6 +193,7 @@ export interface ProblemSet {
create_time: Date
difficulty: "Easy" | "Medium" | "Hard"
status: "active" | "archived" | "draft"
end_time: Date | null
visible: boolean
problems_count: number
completed_count: number
@@ -213,6 +214,7 @@ export interface ProblemSetList {
create_time: Date
difficulty: "Easy" | "Medium" | "Hard"
status: "active" | "archived" | "draft"
end_time: Date | null
problems_count: number
visible: boolean
user_progress: {
@@ -277,6 +279,7 @@ export interface CreateProblemSetData {
description: string
difficulty: "Easy" | "Medium" | "Hard"
status: "active" | "archived" | "draft"
end_time?: Date | null
}
export interface EditProblemSetData {
@@ -285,6 +288,7 @@ export interface EditProblemSetData {
description?: string
difficulty?: "Easy" | "Medium" | "Hard"
status?: "active" | "archived" | "draft"
end_time?: Date | null
visible?: boolean
}