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:
@@ -104,7 +104,7 @@
|
||||
<!-- 测试数据重置 -->
|
||||
<div class="reset-section">
|
||||
<el-popconfirm
|
||||
title="⚠️ 此操作将重置所有标记为「测试」的选手数据(恢复为「已激活 + 默认口令」,并清空提交记录),确定继续?"
|
||||
title="⚠️ 此操作将重置所有标记为「测试」的选手数据(账号恢复为「未激活 + 默认口令」,并清空提交记录与已上传的作品文件),确定继续?"
|
||||
confirm-button-text="确认重置"
|
||||
cancel-button-text="取消"
|
||||
confirm-button-type="danger"
|
||||
@@ -116,7 +116,7 @@
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
<span class="reset-hint">仅重置标记为"测试"的选手数据,生产数据不受影响。重置后可直接用默认口令「{{ testDefaultPasswordHint }}」登录重测</span>
|
||||
<span class="reset-hint">仅重置标记为"测试"的选手数据,生产数据不受影响。⚠️ 重置后账号回到「未激活」,需先用默认口令「{{ testDefaultPasswordHint }}」完成短信激活才能登录重测</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1687,11 +1687,19 @@ async function handleToggleTestFlag(row, val) {
|
||||
async function handleResetTestData() {
|
||||
resetLoading.value = true
|
||||
try {
|
||||
const data = await adminApi.resetTestData()
|
||||
// returnMessage 模式:拿到完整业务体,以便透传后端 message。
|
||||
// 后端提示含「已恢复为『未激活 + 默认口令 X』,需先用默认口令完成短信激活即可登录重测」
|
||||
// —— 这才是唯一真相源;此前前端自拼成「可直接用默认口令登录重测」,
|
||||
// 与后端 activated:false 自相矛盾(用户反馈 Req2),已弃用自拼文案。
|
||||
const res = await adminApi.resetTestData()
|
||||
const data = (res && res.data) || res || {}
|
||||
if (data.testContestantsFound === 0) {
|
||||
ElMessage.warning('没有找到测试数据,请先在选手管理中将选手标记为"测试"')
|
||||
} else {
|
||||
ElMessage.success(`测试数据已重置:${data.contestantsReset} 名选手,${data.examSubmissionsDeleted + data.workSubmissionsDeleted} 条提交记录`)
|
||||
ElMessage.success((res && res.message)
|
||||
|| `测试数据已重置:${data.contestantsReset} 名选手,`
|
||||
+ `${(data.examSubmissionsDeleted || 0) + (data.workSubmissionsDeleted || 0)} 条提交记录。`
|
||||
+ '账号已回到「未激活」,需先用默认口令完成短信激活才能登录重测')
|
||||
}
|
||||
// 刷新统计数据
|
||||
await fetchStats()
|
||||
|
||||
Reference in New Issue
Block a user