From 96d16129f71bf927d56be957bb37320eff8aee91 Mon Sep 17 00:00:00 2001 From: qubiaobiao <3294694717@qq.com> Date: Wed, 21 Oct 2026 15:20:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E4=B8=8A=E4=BC=A0=E9=A1=B5?= =?UTF-8?q?=E7=BB=84=E9=94=81=E6=8F=90=E7=A4=BA=20+=20=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=B0=8F=E7=BB=84=E7=BC=96=E5=8F=B7=E4=B8=8E?= =?UTF-8?q?=E5=8D=95=E7=BB=84=E4=B8=8B=E8=BD=BD=EF=BC=88R190=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Competition.vue:新增「组状态」面板(本组是否已有人上传 / 小组编号 / 组内人数); 被组锁时置灰上传框与上传按钮,并显示归属人提示与组内已上传文件清单。 文案一律取后端返回(⛔ 不在前端另拼)。删除本人作品后刷新组状态。 - Admin.vue:作品表新增「小组编号 / 作品目录」列 + 「下载本组压缩包」按钮 (teamUid 优先、回落 aggregationUid,走 /api/admin/team-zip/:group)。 - api/upload.js:getUploadStatus 支持传 axios config(用于 silent 抑制重复弹窗)。 验证:前端 TDZ 扫描 3 文件 PASS;deploy/build-frontend.sh 构建通过, 产物含 team-status-panel / 小组编号 / 下载本组压缩包 等新文案。 --- src/api/upload.js | 7 +- src/views/Admin.vue | 59 ++++++++++++++ src/views/Competition.vue | 157 +++++++++++++++++++++++++++++++++++++- 3 files changed, 216 insertions(+), 7 deletions(-) diff --git a/src/api/upload.js b/src/api/upload.js index b2ec6f3..18c3eb6 100644 --- a/src/api/upload.js +++ b/src/api/upload.js @@ -12,10 +12,11 @@ import request from './request' /** * 获取上传状态 * @param {string} group - 组别标识 - * @returns {Promise} { submitted, deadline, canSubmit } + * @param {Object} [config] - 透传给 axios 的配置(如 { silent: true } 抑制拦截器报错) + * @returns {Promise} { submitted, deadline, canSubmit, canUpload, teamLocked, teamLockMessage, teamFiles, ... } */ -export function getUploadStatus(group) { - return request.get(`/upload/${group}/status`) +export function getUploadStatus(group, config = {}) { + return request.get(`/upload/${group}/status`, config) } /** diff --git a/src/views/Admin.vue b/src/views/Admin.vue index 4a7ea88..29bbf32 100644 --- a/src/views/Admin.vue +++ b/src/views/Admin.vue @@ -740,6 +740,24 @@ + + + +