From 45ed10f64ff3e58b9b90428c72096228c53c1fd6 Mon Sep 17 00:00:00 2001
From: xianrenge <34586161+xianrenge@users.noreply.github.com>
Date: Mon, 17 Aug 2026 00:00:47 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B7=A5=E4=BD=9C=E6=B5=81=E7=94=BB?=
=?UTF-8?q?=E5=B8=83=E5=90=8D=E7=A7=B0=E6=A1=86=E6=8C=89=E5=AE=9E=E9=99=85?=
=?UTF-8?q?=E6=96=87=E6=9C=AC=E5=AE=BD=E5=BA=A6=E6=98=BE=E7=A4=BA=EF=BC=88?=
=?UTF-8?q?=E4=B8=AD=E6=96=872=E5=80=8D=E5=AE=BD=E6=8A=98=E7=AE=97?=
=?UTF-8?q?=EF=BC=89=EF=BC=8C=E7=A9=BA=E9=97=B4=E4=B8=8D=E8=B6=B3=E6=97=B6?=
=?UTF-8?q?=E6=94=B6=E7=BC=A9=E4=B8=94=E4=B8=8D=E9=81=AE=E4=BD=8F=E4=BF=9D?=
=?UTF-8?q?=E5=AD=98/=E8=BF=90=E8=A1=8C=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/FEATURES.md | 4 ++++
ui/src/pages/WorkflowCanvasPage.tsx | 11 +++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/docs/FEATURES.md b/docs/FEATURES.md
index 988ef40..90c71b2 100644
--- a/docs/FEATURES.md
+++ b/docs/FEATURES.md
@@ -191,6 +191,10 @@
> 按时间倒序追加;每次改动功能都要在此登记。
+### 2026-08-17
+
+- 工作流画布顶栏微调:名称输入框宽度改为按文本实际宽度计算(中文按 2 倍字符宽折算,可完整显示名称),空间不足时自动收缩,保证右侧「保存 / 运行」按钮不被遮挡。
+
### 2026-08-16
- 工作流画布顶栏修正:名称输入框改为随内容自适应宽度(不再占大块空白),名称长度限制为英文 ≤150 字符 / 中文 ≤50 字符(混排按中文字符权重折算);顶栏改为可收缩布局,保证「保存 / 运行」按钮始终靠右可见不被挤出。
diff --git a/ui/src/pages/WorkflowCanvasPage.tsx b/ui/src/pages/WorkflowCanvasPage.tsx
index 2718c13..18c9607 100644
--- a/ui/src/pages/WorkflowCanvasPage.tsx
+++ b/ui/src/pages/WorkflowCanvasPage.tsx
@@ -80,6 +80,13 @@ function clampWorkflowName(value: string) {
return out;
}
+/** 名称框宽度:中文字符约 2ch、其余约 1ch,按内容自适应;上限防止过宽,空间不足时由 flex 收缩(不遮住右侧按钮)。 */
+function workflowNameWidth(value: string) {
+ let w = 0;
+ for (const ch of value) w += isCjkChar(ch) ? 2 : 1;
+ return `${Math.min(160, Math.max(8, w + 3))}ch`;
+}
+
export default function WorkflowCanvasPage() {
const { workflowId } = useParams<{ workflowId: string }>();
const workflows = useStore((s) => s.workflows);
@@ -561,12 +568,12 @@ export default function WorkflowCanvasPage() {
返回工作流
setName(clampWorkflowName(e.target.value))}
placeholder="工作流名称"
title="英文不超过 150 个字符,中文不超过 50 个(混排按中文字符权重折算)"
- style={{ width: `${Math.min(44, Math.max(6, [...name].length + 2))}ch` }}
+ style={{ width: workflowNameWidth(name) }}
/>