diff --git a/frontend/src/lib/terms.ts b/frontend/src/lib/terms.ts
index 20e162ad..ff167559 100644
--- a/frontend/src/lib/terms.ts
+++ b/frontend/src/lib/terms.ts
@@ -2051,6 +2051,7 @@ export const CATALOG_TEXT = {
reset: (where: string) => `已恢复${where}`,
},
removed: (where: string) => `已删除${where}`,
+ reviewWhileEditing: '正在编辑这张表,保存或取消后再逐项审阅',
whereTable: (field: string) => `表的${field}`,
whereColumn: (col: string, field: string) => `列 ${col} 的${field}`,
whereRelation: (to: string) => `指向 ${to} 的关联关系`,
diff --git a/frontend/src/pages/catalog/ColumnTable.tsx b/frontend/src/pages/catalog/ColumnTable.tsx
index 36d04258..e5903287 100644
--- a/frontend/src/pages/catalog/ColumnTable.tsx
+++ b/frontend/src/pages/catalog/ColumnTable.tsx
@@ -101,7 +101,7 @@ const ColumnRow = memo(function ColumnRow({ col, editing, draft, initial, proble
{editing ? input : view}
{it && !changed && (
- onReview({ path: columnPath(name, f), where, source: it.source, status: it.status }, a)} />
diff --git a/frontend/src/pages/catalog/TableDetail.tsx b/frontend/src/pages/catalog/TableDetail.tsx
index f0721af6..d9984f7c 100644
--- a/frontend/src/pages/catalog/TableDetail.tsx
+++ b/frontend/src/pages/catalog/TableDetail.tsx
@@ -486,7 +486,7 @@ function TableFieldRow({ field, item, edit, busy, problems, columns, onChange, o
{edit ? input : }
{item && !changed && (
onReview({ path: tablePath(field), where, source: item.source, status: item.status }, a)} />
)}
{changed && {CT.changedMark}}
diff --git a/frontend/src/pages/catalog/parts.tsx b/frontend/src/pages/catalog/parts.tsx
index 95812633..5c90ee69 100644
--- a/frontend/src/pages/catalog/parts.tsx
+++ b/frontend/src/pages/catalog/parts.tsx
@@ -108,11 +108,13 @@ export interface ReviewTarget {
* 不会被表格的横向滚动裁掉;滚动时跟着触发按钮走,滚出视野或改窗口大小时收起。键盘:Enter 打开,焦点落到第一个可点的操作,
* ←→↑↓ 在操作之间移动,Tab 在弹层里循环,Esc 收起并把焦点还给触发按钮
*/
-export function ItemMark({ target, compact = false, disabled = false, onReview }: {
+export function ItemMark({ target, compact = false, disabled = false, disabledHint, onReview }: {
target: ReviewTarget
compact?: boolean
- /** 正在提交别的操作:弹层照常能看,操作按钮禁用 */
+ /** 正在提交别的操作、正在编辑:弹层照常能看,操作按钮禁用 */
disabled?: boolean
+ /** 禁用的原因,写在操作按钮下面 */
+ disabledHint?: string
onReview: (action: CatalogReviewAction) => void
}) {
const [open, setOpen] = useState(false)
@@ -269,7 +271,9 @@ export function ItemMark({ target, compact = false, disabled = false, onReview }
{human ? CT.remove : CT.reset}
- {canReset && {human ? CT.removeHint : CT.resetHint}
}
+ {disabled && disabledHint
+ ? {disabledHint}
+ : canReset && {human ? CT.removeHint : CT.resetHint}
}
,
document.body,
)}