diff --git a/src/api/admin.js b/src/api/admin.js index 5014b00..a15efa1 100644 --- a/src/api/admin.js +++ b/src/api/admin.js @@ -341,10 +341,15 @@ export function toggleTestFlag(id, testFlag) { /** * 重置测试数据(仅重置 test_flag=1 的选手及其提交记录) - * @returns {Promise} + * + * returnMessage: true —— 保留后端 message(不再被响应拦截器丢弃)。 + * 后端提示含「已恢复为『未激活 + 默认口令 X』,需先用默认口令完成短信激活即可登录重测」 + * 这一关键指引;前端自拼文案曾写成「可直接用默认口令登录重测」, + * 与后端 activated:false 自相矛盾(用户反馈 Req2)。以后端文案为唯一真相源。 + * @returns {Promise<{code:number,message:string,data:object}>} */ export function resetTestData() { - return request.post('/admin/reset-test-data') + return request.post('/admin/reset-test-data', null, { returnMessage: true }) } // ==================== 综合大题管理(中职/高职) ==================== diff --git a/src/api/request.js b/src/api/request.js index edb4fd9..b6e4b52 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -168,6 +168,13 @@ request.interceptors.response.use( return Promise.reject(new Error(res.message || '请求失败')) } // 正常返回,只暴露 data 部分 + // 例外:调用方显式传 config.returnMessage = true 时返回**整个业务体**(含 message)。 + // 用途:需要原样透传后端提示文案的场景(如「重置测试数据」的结果指引含 + // 「需先用默认口令完成短信激活」等关键信息,前端自拼文案会与后端契约漂移)。 + // ⛔ 默认行为完全不变(不传该开关时仍只返回 data)。 + if (response.config && response.config.returnMessage) { + return res + } return res.data !== undefined ? res.data : res } diff --git a/src/views/Admin.vue b/src/views/Admin.vue index c0094de..30013e9 100644 --- a/src/views/Admin.vue +++ b/src/views/Admin.vue @@ -104,7 +104,7 @@