diff --git a/frontend/src/lib/terms.ts b/frontend/src/lib/terms.ts index 612fd111..2c479780 100644 --- a/frontend/src/lib/terms.ts +++ b/frontend/src/lib/terms.ts @@ -2495,6 +2495,7 @@ export const CATALOG_DRAFT_TEXT = { redraft: '重新起草这张表', redraftHint: '用模型重新起草这张表(不带补充说明,带上数据源的起草要求);人工确认、驳回过的项不会被改动', redraftBusy: '已有起草任务在进行,结束后再重新起草这张表', + redraftEditing: '正在编辑这张表,保存或取消后再重新起草', } /** 设置页「偏好设置」里「起草模型」一节(服务端 api/settings.py 的 catalog_draft 一组) */ diff --git a/frontend/src/pages/catalog/TableDetail.tsx b/frontend/src/pages/catalog/TableDetail.tsx index fcf8bc51..334bc896 100644 --- a/frontend/src/pages/catalog/TableDetail.tsx +++ b/frontend/src/pages/catalog/TableDetail.tsx @@ -457,20 +457,21 @@ export function TableDetail({ )} {writeError && {writeError}} {lastDraft && (lastDraft.status === 'failed' || lastDraft.status === 'partial') && ( - // 上次起草没写全:写明原因,给「重新起草这张表」(只含这张表、用模型)。有起草任务在进行时等它结束 + // 上次起草没写全:写明原因,给「重新起草这张表」(只含这张表、用模型)。有起草任务在进行、正在编辑这张表时 + // 先不给点:起草会写进这张表,编辑中的保存就会撞上版本冲突

{lastDraft.status === 'failed' ? DT.lastFailed : DT.lastPartial}

{taskReason(lastDraft) &&

{taskReason(lastDraft)}

} {onRedraft && ( <> - -

{draftBusy ? DT.redraftBusy : DT.redraftHint}

+

{edit ? DT.redraftEditing : draftBusy ? DT.redraftBusy : DT.redraftHint}

)}
diff --git a/scripts/check-catalog.mjs b/scripts/check-catalog.mjs index 709e77e2..afdba716 100644 --- a/scripts/check-catalog.mjs +++ b/scripts/check-catalog.mjs @@ -1214,6 +1214,11 @@ await section('数据目录 · 起草:清单上的失败标记与单表重起 await page.locator('[data-catalog-row="order_items"] [data-catalog-open-row]').click() await until(async () => (await page.locator('[data-catalog-last-draft]').count()) === 1) check('部分完成的表:详情里写「上次起草部分完成」', (await page.locator('[data-catalog-last-draft]').innerText()).includes('上次起草部分完成')) + // 正在编辑这张表:起草会写进它,编辑中的保存就会撞上版本冲突,先不给点 + await page.locator('[data-catalog-edit]').click() + check('正在编辑这张表:「重新起草这张表」不能点,写明先保存或取消', await page.locator('[data-catalog-redraft]').isDisabled() + && (await page.locator('[data-catalog-last-draft]').innerText()).includes('保存或取消后再重新起草')) + await page.locator('[data-catalog-cancel]').click() replies.createJob.push(json(MODEL_DOWN, 409)) await page.locator('[data-catalog-redraft]').click() check('模型用不了:提示原因,不打开对话框', await until(async () => (await page.locator('[data-toast]').filter({ hasText: '未配置模型接入' }).count()) > 0)