版本栏与节点属性再调:比例 · 四钮同款同排 · 「实现」改成看得出能点的真选择器

· 比例:左栏 196–224 → 228–268(版本行整行排满),右栏 320–1.25fr → 264–1fr(节点属性收窄)。
  · 四枚按键(新建 · 激活/停用 · 改名 · 删除)**同款同排**收进顶部动作条 ——
    新建不再另作一枚蓝芯片挂在头上;白字不换行,右端 v 号去掉(选中行自己亮着)。
    右栏头顺带收掉闲置提示「点节点就地填写」(空态文案已交代),只留脏态。
  · 「实现」下拉从无框文字改成**真控件**:有边、有底、有箭头、焦点有落点 ——
    无框下拉在窄轨里读成一行普通文字,人不知道能点,这是可用性缺陷不是审美偏好。
    实测:7 个选项、换选即入脏态,保存路径原样。

五闸绿。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
2026-07-29 19:05:16 +08:00
co-authored by Claude Opus 5
parent 541b1c816e
commit 4cd14d7849
2 changed files with 19 additions and 14 deletions
@@ -666,14 +666,12 @@ function FlowLab({
* (v几 · 状态 · 点边计数)—— 完整显示,不在行内再展开一排小钮。
*/}
<aside className="g-vercard g-verslim">
<div className="g-vercard-h">
版本
<button className="g-ver-new" onClick={askClone} disabled={cloneVersion.isPending} title="以当前版为底克隆一版">
<Ico name="plus" s={11} /> 新建
</button>
</div>
{/* 动作条:激活/停用 · 改名 · 删除 —— 全部作用于下面列表里选中的那一版 */}
<div className="g-vercard-h">版本</div>
{/* 动作条:四枚同款同排 —— 新建 · 激活/停用 · 改名 · 删除,作用于正看的那一版 */}
<div className="g-veracts">
<button className="g-ver-act" onClick={askClone} disabled={cloneVersion.isPending} title="以当前版为底克隆一版">
<Ico name="plus" s={10} /> 新建
</button>
{pkg.version === activeVersion ? (
<button className="g-ver-act" onClick={() => askRetire(pkg)}>
停用
@@ -700,7 +698,6 @@ function FlowLab({
>
删除
</button>
<span className="who">v{pkg.version}</span>
</div>
{renaming && (
<div className="g-verrename">
@@ -782,7 +779,7 @@ function FlowLab({
<div className="g-vercard g-nodecard">
<div className="g-vercard-h">
节点 · 属性
<span className={'n' + (dirty ? ' dirty' : '')}>{dirty ? '有改动待保存' : '点节点就地填写'}</span>
{dirty && <span className="n dirty">有改动待保存</span>}
<button
className="g-ver-new"
disabled={!dirty || save.isPending}
@@ -905,7 +902,7 @@ function FlowLab({
<em>实现 · 链接自活动库</em>
<span className="v col">
<select
className="g-tbin sel"
className="g-tbsel"
value={refAct?.activityId ?? ''}
onChange={(e) => patch((n) => ({ ...n, act: e.target.value === '' ? undefined : e.target.value }))}
>