diff --git a/src/oj/problem/components/SubmitFlowchart.vue b/src/oj/problem/components/SubmitFlowchart.vue index 406a26b..e622825 100644 --- a/src/oj/problem/components/SubmitFlowchart.vue +++ b/src/oj/problem/components/SubmitFlowchart.vue @@ -45,6 +45,7 @@ const { convertToMermaid } = useMermaidConverter() const { renderError, renderFlowchart } = useMermaid() // 状态管理 +const rendering = ref(false) const loading = ref(false) const rating = ref({ score: 0, grade: "" }) const submissionCount = ref(0) @@ -165,9 +166,11 @@ async function getSubmission() { // ==================== 模态框相关函数 ==================== async function openDetailModal() { + rendering.value = true showDetailModal.value = true await getSubmission() - renderFlowchart(mermaidContainer.value, myMermaidCode.value) + await renderFlowchart(mermaidContainer.value, myMermaidCode.value) + rendering.value = false } function closeModal() { @@ -190,10 +193,17 @@ function loadToEditor() { } // ==================== 工具函数 ==================== -const getScoreType = (score: number) => { - if (score >= 90) return "success" - if (score >= 80) return "info" - if (score >= 70) return "warning" +const getGradeType = (grade: string) => { + if (grade === "S") return "primary" + if (grade === "A") return "info" + if (grade === "B") return "warning" + return "error" +} + +const getPercentType = (percent: number) => { + if (percent >= 0.8) return "primary" + else if (percent >= 0.6) return "info" + else if (percent >= 0.4) return "warning" return "error" } @@ -232,9 +242,9 @@ onUnmounted(() => { {{ rating.score }}分 {{ rating.grade }}级 @@ -250,6 +260,7 @@ onUnmounted(() => { +