feat(admin): 标签管理与批量打标签的 API 封装
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@ import http from "utils/http"
|
|||||||
import { toProblemListItem } from "admin/transforms"
|
import { toProblemListItem } from "admin/transforms"
|
||||||
import type {
|
import type {
|
||||||
AdminProblem,
|
AdminProblem,
|
||||||
|
AdminTag,
|
||||||
Announcement,
|
Announcement,
|
||||||
AnnouncementEdit,
|
AnnouncementEdit,
|
||||||
BlankContest,
|
BlankContest,
|
||||||
@@ -84,6 +85,35 @@ export function getContestProblem(id: number) {
|
|||||||
return http.get("admin/contest/problem", { params: { id } })
|
return http.get("admin/contest/problem", { params: { id } })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 标签管理
|
||||||
|
export function getTagAdminList(keyword = "") {
|
||||||
|
return http.get<AdminTag[]>("admin/problem/tag", { params: { keyword } })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function renameTag(id: number, name: string) {
|
||||||
|
return http.put<{
|
||||||
|
merged: boolean
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
affected_count: number
|
||||||
|
}>("admin/problem/tag", { id, name })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteTag(id: number) {
|
||||||
|
return http.delete("admin/problem/tag", { params: { id } })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function batchTagProblems(
|
||||||
|
problemIds: number[],
|
||||||
|
tagNames: string[],
|
||||||
|
action: "add" | "remove",
|
||||||
|
) {
|
||||||
|
return http.post<{ problem_count: number; tag_count: number }>(
|
||||||
|
"admin/problem/batch_tag",
|
||||||
|
{ problem_ids: problemIds, tag_names: tagNames, action },
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// 用户列表
|
// 用户列表
|
||||||
export function getUserList(
|
export function getUserList(
|
||||||
offset = 0,
|
offset = 0,
|
||||||
|
|||||||
@@ -104,6 +104,12 @@ export interface Tag {
|
|||||||
name: string
|
name: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface AdminTag {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
problem_count: number
|
||||||
|
}
|
||||||
|
|
||||||
export interface TestcaseUploadedReturns {
|
export interface TestcaseUploadedReturns {
|
||||||
id: string
|
id: string
|
||||||
info: Testcase[]
|
info: Testcase[]
|
||||||
|
|||||||
Reference in New Issue
Block a user