feat(ui): 上传页组锁提示 + 作品列表小组编号与单组下载(R190)

- 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 / 小组编号 / 下载本组压缩包 等新文案。
This commit is contained in:
2026-10-21 15:20:47 +08:00
parent ab1c67dbc5
commit 96d16129f7
3 changed files with 216 additions and 7 deletions

View File

@@ -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)
}
/**