fix(frontend): 重置测试数据文案对齐后端契约(未激活+需短信激活)并透传后端 message
- Admin.vue 确认弹窗:「已激活 + 默认口令」→「未激活 + 默认口令」 (后端 service/admin.js:1619 实际置 activated:false) - Admin.vue 提示行:「重置后可直接用默认口令登录重测」→「需先用默认口令完成短信激活才能登录重测」 - Admin.vue 成功提示: 改为透传后端 message(后端 :1730 已含正确指引),不再自拼后丢弃 - api/request.js: 新增可选开关 returnMessage(不传时默认行为完全不变) - api/admin.js: resetTestData 启用该开关,后端成为唯一真相源 依据: service/admin.js:1619/:1730 + scripts/verify_testdata_mgmt.py:5-9「Req2 重置须重置账号激活状态」
This commit is contained in:
@@ -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 })
|
||||
}
|
||||
|
||||
// ==================== 综合大题管理(中职/高职) ====================
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user