fix(web): 强制同步运行中禁用按钮——列表/详情统一 sync_status=running 判定
- 列表行与监控详情页:sync_status=running 时按钮显示「同步中…」并禁用, 防止与调度器并发触发导致 409;自有账号详情请求期间 loading 禁用 - conflictMessage:409/503 无 hint 时也透出后端分类 error 文案, 兜住「请求失败」空白提示;回归见 TestCompetitorSyncClaimFailureClassification
This commit is contained in:
@@ -137,6 +137,7 @@ export default function Page() {
|
||||
<Space>
|
||||
<Button onClick={() => history.push('/accounts')}>返回社媒账号</Button>
|
||||
<Button
|
||||
loading={actionBusy}
|
||||
disabled={actionBusy || !account}
|
||||
onClick={async () => {
|
||||
// 强制同步:后端复用账号自身运行环境采集,需已登录+环境就绪(否则 409/503 提示原因)。
|
||||
|
||||
@@ -65,15 +65,19 @@ export default function Page() {
|
||||
}, [loadCompetitor]);
|
||||
|
||||
const syncMeta = syncStatusMeta[competitor?.sync_status ?? ''] || { label: competitor?.sync_status || '—' };
|
||||
// 同步进行中(调度器采集或手动同步):按钮禁用防止重复触发,后端抢锁失败也会返回 409 分类提示兜底。
|
||||
const syncRunning = competitor?.sync_status === 'running';
|
||||
|
||||
// 页头 actions:返回/同步/暂停恢复,对齐账号详情页形态。
|
||||
usePageActions(
|
||||
<Space>
|
||||
<Button onClick={() => history.push('/accounts/monitoring')}>返回监控账号</Button>
|
||||
<Button
|
||||
disabled={actionBusy || !competitor}
|
||||
loading={actionBusy}
|
||||
disabled={actionBusy || syncRunning || !competitor}
|
||||
onClick={async () => {
|
||||
// 强制同步:后端用临时匿名浏览器采集公开作品,无需自有账号身份。
|
||||
// 强制同步:后端用临时匿名浏览器采集公开作品,无需自有账号身份;
|
||||
// 409/503 直接展示后端分类文案(同步中/已停用/网关不可用)。
|
||||
if (!competitor) return;
|
||||
setActionBusy(true);
|
||||
try {
|
||||
@@ -87,7 +91,7 @@ export default function Page() {
|
||||
}
|
||||
}}
|
||||
>
|
||||
强制同步
|
||||
{syncRunning ? '同步中…' : '强制同步'}
|
||||
</Button>
|
||||
<Button
|
||||
type="primary"
|
||||
@@ -111,7 +115,7 @@ export default function Page() {
|
||||
{competitor ? (competitor.enabled ? '暂停监控' : '恢复监控') : '暂停监控'}
|
||||
</Button>
|
||||
</Space>,
|
||||
[competitor?.id, competitor?.enabled],
|
||||
[competitor?.id, competitor?.enabled, competitor?.sync_status],
|
||||
);
|
||||
|
||||
if (pending) return <Card loading />;
|
||||
|
||||
Reference in New Issue
Block a user