fix(web): 强制同步运行中禁用按钮——列表/详情统一 sync_status=running 判定
- 列表行与监控详情页:sync_status=running 时按钮显示「同步中…」并禁用, 防止与调度器并发触发导致 409;自有账号详情请求期间 loading 禁用 - conflictMessage:409/503 无 hint 时也透出后端分类 error 文案, 兜住「请求失败」空白提示;回归见 TestCompetitorSyncClaimFailureClassification
This commit is contained in:
@@ -64,7 +64,7 @@ export default function MonitoringAccountList() {
|
||||
load();
|
||||
}, [load]);
|
||||
|
||||
// 强制同步:后端用临时匿名浏览器采集公开作品,无需自有账号身份。
|
||||
// 强制同步:后端用临时匿名浏览器采集公开作品,无需自有账号身份;409/503 直接展示后端分类文案。
|
||||
async function syncCompetitor(competitor: CompetitorRow) {
|
||||
setActionBusy(competitor.id);
|
||||
try {
|
||||
@@ -187,7 +187,9 @@ export default function MonitoringAccountList() {
|
||||
render: (_, account) => (
|
||||
<Space wrap>
|
||||
<Button type="text" size="small" onClick={() => openTags(account)}>编辑标签</Button>
|
||||
<Button type="text" size="small" loading={actionBusy === account.id} disabled={actionBusy === account.id} onClick={() => syncCompetitor(account)}>强制同步</Button>
|
||||
<Button type="text" size="small" loading={actionBusy === account.id} disabled={actionBusy === account.id || account.sync_status === 'running'} onClick={() => syncCompetitor(account)}>
|
||||
{account.sync_status === 'running' ? '同步中…' : '强制同步'}
|
||||
</Button>
|
||||
<Button type="text" size="small" disabled={actionBusy === account.id} onClick={() => toggleCompetitor(account)}>
|
||||
{account.enabled ? '暂停' : '恢复'}
|
||||
</Button>
|
||||
|
||||
Reference in New Issue
Block a user