From 0e2ce0008a37eaea739588a2ae4d237034a517ce Mon Sep 17 00:00:00 2001 From: musteven <1009173794@qq.com> Date: Sun, 20 Apr 2025 14:57:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E7=AB=AF=E7=82=B9=E5=87=BB=E6=8F=90=E4=BA=A4=E5=90=8E=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E7=AE=97=E6=B3=95=EF=BC=8C=E8=AE=BE=E7=BD=AE=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E4=B8=BA=E5=BC=82=E6=AD=A5=E6=93=8D=E4=BD=9C=EF=BC=8C?= =?UTF-8?q?=E5=85=B6=E4=B8=AD=E4=BD=BF=E7=94=A8=E4=BA=86longRequest?= =?UTF-8?q?=E6=9D=A5=E9=81=BF=E5=85=8D=E8=B6=85=E6=97=B6=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=E3=80=82=20=E5=89=A9=E4=BD=99=E4=B8=80=E4=BA=9B=E7=BB=86?= =?UTF-8?q?=E8=8A=82=E8=B0=83=E6=95=B4=EF=BC=8C=E5=A4=A7=E4=BD=93=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E5=85=A8=E9=83=A8=E5=AE=8C=E6=88=90=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/report-actions.vue | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/AES-front/src/views/user/report-submit/components/report-actions.vue b/AES-front/src/views/user/report-submit/components/report-actions.vue index db83e83..ec15f58 100644 --- a/AES-front/src/views/user/report-submit/components/report-actions.vue +++ b/AES-front/src/views/user/report-submit/components/report-actions.vue @@ -11,11 +11,14 @@ import { ref } from 'vue'; import { useRoute } from 'vue-router'; import api from '@/api/user'; import {ElMessage, ElMessageBox} from "element-plus"; +import {longRequest} from "@/utils"; const route = useRoute(); const isClicked = ref(false); const ProblemId = route.params.examId; +const isCheckingPlagiarism = ref(false); // 查重状态 + const props = defineProps({ fileUrls: Array, adminuserId: [String], @@ -89,13 +92,12 @@ const onSaveAndSubmit = async () => {//保存并提交 adminuserId }; const res = await api.submitInfoToProps(submitReport1); - // 提交成功后,调用查重函数 - await checkPlagiarism(); + + // 提交成功后,调用查重函数并后台挂起 + checkPlagiarismInBackground(); emit('clickSaveAndSubmit'); emit('refreshAttachment'); - ElMessage.success('提交成功!'); - - + ElMessage.success('提交成功!正在后台进行查重...'); } catch (error) { } @@ -130,7 +132,8 @@ const onWithdraw = () => { //撤回提交 }; // 查重函数 -const checkPlagiarism = async () => { +const checkPlagiarismInBackground = async () => { + isCheckingPlagiarism.value = true; // 开始查重,更新状态 try{ // 获取文件名 const attachment = props.attachment; @@ -142,16 +145,26 @@ const checkPlagiarism = async () => { attachment }; - // 调用查重接口 - const res = await api.runPlagiarism(submitReport); + // 调用查重接口,使用永不超时longRequest + const res = await longRequest.post('/plagiarism/runPlagiarism', submitReport); console.log('查重结果:', res); - ElMessage.success('查重成功!'); + // 查重完成,更新状态 + isCheckingPlagiarism.value = false; } catch (error) { ElMessage.error('查重过程中发生错误!'); -} + isCheckingPlagiarism.value = false; // 查重失败,也要更新状态 + } }; +// 监听查重状态变化,用于通知用户 + watch(isCheckingPlagiarism, (newValue) => { + if (!newValue) { + // 查重完成,可以在这里通知用户 + ElMessage.success('查重操作已完成!'); + } +}); +