diff --git a/src/oj/api.ts b/src/oj/api.ts index d0f27af..e0e30d3 100644 --- a/src/oj/api.ts +++ b/src/oj/api.ts @@ -338,25 +338,6 @@ export function joinProblemSet(problemSetId: number) { }) } -export function getProblemSetSubmissions( - problemSetId: number, - params: { - problem_id?: string - result?: string - language?: string - offset?: number - limit?: number - } = {}, -) { - return http.get(`problemset/${problemSetId}/submissions`, { - params, - }) -} - -export function getProblemSetStatistics(problemSetId: number) { - return http.get(`problemset/${problemSetId}/statistics`) -} - export function updateProblemSetProgress( problemSetId: number, problemId: number, diff --git a/src/oj/problem/components/SubmitCode.vue b/src/oj/problem/components/SubmitCode.vue index 85c65c0..51f67e8 100644 --- a/src/oj/problem/components/SubmitCode.vue +++ b/src/oj/problem/components/SubmitCode.vue @@ -24,7 +24,8 @@ const problemStore = useProblemStore() const { problem } = storeToRefs(problemStore) const route = useRoute() const contestID = route.params.contestID ?? "" -const problemSetID = computed(() => route.params.problemSetID as string || "") +const problemSetId = route.params.problemSetId ?? "" +console.log(problemSetId, "problemSetId") const [commentPanel] = useToggle() const { isDesktop } = useBreakpoints() @@ -100,8 +101,8 @@ async function submit() { if (contestID) { data.contest_id = parseInt(contestID) } - if (problemSetID.value) { - data.problemset_id = parseInt(problemSetID.value) + if (problemSetId) { + data.problemset_id = parseInt(problemSetId) } // 2. 提交代码到后端 @@ -123,19 +124,20 @@ watch( problem.value!.my_status = 0 // 2. 更新题单进度 - if (problemSetID.value) { + if (problemSetId) { + console.log(problemSetId, "problemSetId") try { - await updateProblemSetProgress(Number(problemSetID.value), problem.value!.id) + await updateProblemSetProgress(Number(problemSetId), problem.value!.id) } catch (error) { console.error("更新题单进度失败:", error) } } - // 3. 放烟花(随机效果) + // 3. 放烟花 celebrate() - // 4. 显示评价框(非比赛模式) - if (!contestID) { + // 4. 显示评价框 + if (!contestID && !problemSetId) { showCommentPanelDelayed() } }, diff --git a/src/oj/problemset/components/ProblemSetStatistics.vue b/src/oj/problemset/components/ProblemSetStatistics.vue deleted file mode 100644 index 4b729e4..0000000 --- a/src/oj/problemset/components/ProblemSetStatistics.vue +++ /dev/null @@ -1,189 +0,0 @@ - - - - - diff --git a/src/oj/problemset/components/ProblemSetSubmissions.vue b/src/oj/problemset/components/ProblemSetSubmissions.vue deleted file mode 100644 index 5a9ad8e..0000000 --- a/src/oj/problemset/components/ProblemSetSubmissions.vue +++ /dev/null @@ -1,252 +0,0 @@ - - - - - diff --git a/src/oj/problemset/detail.vue b/src/oj/problemset/detail.vue index b62bba3..c64ea52 100644 --- a/src/oj/problemset/detail.vue +++ b/src/oj/problemset/detail.vue @@ -5,11 +5,9 @@ import { getProblemSetProblems, joinProblemSet, } from "../api" -import { parseTime, getTagColor, getACRate } from "utils/functions" +import { getTagColor, getACRate } from "utils/functions" import { ProblemSet, ProblemSetProblem } from "utils/types" import ProblemStatus from "../problem/components/ProblemStatus.vue" -import ProblemSetSubmissions from "./components/ProblemSetSubmissions.vue" -import ProblemSetStatistics from "./components/ProblemSetStatistics.vue" import { DIFFICULTY } from "utils/constants" import { useBreakpoints } from "shared/composables/breakpoints" @@ -39,23 +37,6 @@ async function refreshProblemSetDetail() { } } -// 标签页状态 -const activeTab = ref("problems") -const tabOptions = computed(() => { - const options = [ - { label: "题目列表", value: "problems" } - ] - - if (isJoined.value) { - options.push( - { label: "提交记录", value: "submissions" }, - { label: "统计信息", value: "statistics" } - ) - } - - return options -}) - function getDifficultyTag(difficulty: string) { const difficultyMap: Record< string, @@ -138,10 +119,14 @@ watch( () => route.path, (newPath, oldPath) => { // 如果从题单题目页面返回到题单详情页面,刷新题单详情 - if (oldPath?.includes('/problem/') && newPath === `/problemset/${problemSetId.value}` && isJoined.value) { + if ( + oldPath?.includes("/problem/") && + newPath === `/problemset/${problemSetId.value}` && + isJoined.value + ) { refreshProblemSetDetail() } - } + }, ) @@ -198,76 +183,66 @@ watch( - - - - - - - + + + + + + + #{{ index + 1 }}. + + - #{{ index + 1 }}. - - - - - {{ DIFFICULTY[problemSetProblem.problem.difficulty] }} - - - {{ problemSetProblem.problem.title }} - - - - - - 分数:{{ problemSetProblem.score }} - - (选做) - - 通过率 - {{ - getACRate( - problemSetProblem.problem.accepted_number, - problemSetProblem.problem.submission_number, - ) - }} - - - + + {{ DIFFICULTY[problemSetProblem.problem.difficulty] }} + + + {{ problemSetProblem.problem.title }} + - - - - - + + + 分数:{{ problemSetProblem.score }} + + (选做) + + 通过率 + {{ + getACRate( + problemSetProblem.problem.accepted_number, + problemSetProblem.problem.submission_number, + ) + }} + - - - - + - - - - - - - - + + + + + + + + + + diff --git a/src/utils/types.ts b/src/utils/types.ts index 303b4bf..f524d7f 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -604,41 +604,4 @@ export interface DetailsData { export type Grade = "S" | "A" | "B" | "C" -// 题单提交记录相关类型 -export interface ProblemSetSubmission { - id: number - problem: number - problem_id: number - problem_title: string - submission: string - result: number - result_text: string - score: number - language: string - code_length: number - execution_time: number - memory_usage: number - submit_time: string -} -export interface ProblemSetStatistics { - total_submissions: number - accepted_submissions: number - acceptance_rate: number - problem_stats: { - [problemId: string]: { - problem_title: string - total_submissions: number - accepted_submissions: number - is_completed: boolean - } - } - language_stats: { [language: string]: number } - result_stats: { [result: number]: number } - progress: { - completed_problems_count: number - total_problems_count: number - progress_percentage: number - total_score: number - } -}