From ecfaef1463832fa1addf28648fabe5ac7f996211 Mon Sep 17 00:00:00 2001 From: 18628386721 <18628386721@163.com> Date: Tue, 28 Jul 2026 20:19:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E9=9D=A2=E6=8B=86=E5=88=86=E2=91=B1:?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E5=8D=A1=E5=8F=B0=E9=9D=A2=E5=8C=96=20?= =?UTF-8?q?=E2=80=94=E2=80=94=20=E5=AE=9A=E9=AB=98=E5=8F=8C=E5=88=97,?= =?UTF-8?q?=E8=BE=B9=E5=B1=9E=E6=80=A7=E6=95=B4=E5=AE=BD=E4=B8=80=E8=A1=8C?= =?UTF-8?q?=E6=8E=92=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 节点属性卡与激活判据卡**同排定高 560px**:行高由属性卡定,判据卡拉伸补齐; 内容超高在卡内滚,不把页面撑长 —— 台面件定形,不随内容乱长 - 节点属性两列小卡(等高 250、内部滚):身份与命名 | 类型与责任、输入 | 输出口 - 边属性整宽单列(g-eprops):条件与映射各占满一行; 映射行 nowrap 一行排开(目标 ← 来源类型 口 路径 删除),输入收缩共分宽度, 不再有换行错位的怪布局 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m --- apps/web/src/app/styles/console.css | 19 ++++++++++++------- .../features/gov-process/internal/panel.tsx | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/apps/web/src/app/styles/console.css b/apps/web/src/app/styles/console.css index fc39907..3e8f4b3 100644 --- a/apps/web/src/app/styles/console.css +++ b/apps/web/src/app/styles/console.css @@ -564,24 +564,29 @@ .g-ex .msg { flex: 1; min-width: 0; font-size: 10.5px; line-height: 1.55; letter-spacing: 0; text-transform: none; color: #3a4452; } .g-exfacet { display: flex; align-items: center; gap: 6px; padding: 6px 2px 2px; font: 600 9.5px/1 var(--mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sh-steel, #46586a); } .g-exfacet.ok { color: #2e7d4f; } -.g-maprow { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; } -.g-maprow .g-input, .g-maprow .g-select { flex: 1 1 90px; min-width: 70px; } +.g-maprow { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; } +.g-maprow .g-input { flex: 1 1 0; min-width: 0; } +.g-maprow .g-select { flex: 0 0 112px; min-width: 0; } +.g-maprow .g-btn { flex: none; padding: 4px 7px; } .g-maparr { color: var(--sh-steel, #46586a); font-weight: 700; } .g-exboard-empty { padding: 16px 18px; font-family: var(--sh-mono); font-size: 10px; line-height: 1.9; color: var(--sh-muted); } -/* 异常板高度随内容走,不被右侧属性卡拉高 —— 三条异常配 900px 空板才是脏 */ -.g-exboard { align-self: start; } +/* 激活判据卡与节点属性卡**同排等高**(560px 定高):行高由属性卡定,看板拉伸补齐; + 清单超高在卡内滚,不把页面撑长 —— 定高卡片才是台面件,不是随内容乱长的段落 */ +.g-exboard { min-height: 0; } /* 节点属性卡:图纸卡(外壳复用 g-vercard),与流程图同宽;题头右侧是状态字 + 保存芯片 */ -.g-nodecard { min-height: 0; } +.g-nodecard { height: 560px; min-height: 0; } .g-nodecard .g-vercard-h { height: auto; padding: 13px 18px 10px; } .g-nodecard .g-vercard-h .n { margin-left: auto; } .g-nodecard .g-vercard-h .g-ver-new { margin-left: 10px; } /* 内部三段(提示/节点条/属性格)统一 12px 呼吸 —— 从前是裸兄弟,三处贴死 */ -.g-nodecard-b { display: flex; flex-direction: column; gap: 12px; padding: 14px 18px 16px; } +.g-nodecard-b { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 14px 18px 16px; } /* 小卡与节点条也入图纸语言:方角细线;等高 250,超高的内容自己滚 */ .g-nodecard .g-pick { border-radius: 0; border-color: var(--sh-line); } -.g-nodecard .g-props { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); align-items: stretch; gap: 12px; } +.g-nodecard .g-props { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 12px; } +/* 边属性:整宽单列 —— 条件与映射各占满一行,映射行才有地方一行排开 */ +.g-nodecard .g-props.g-eprops { grid-template-columns: minmax(0, 1fr); } .g-nodecard .g-prop { height: 250px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--sh-line); border-radius: 0; box-shadow: none; } .g-nodecard .g-prop-h { font-family: var(--sh-mono); font-size: 9.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sh-steel); border-bottom: 1px solid var(--sh-line); } .g-nodecard .g-prop-b { flex: 1; min-height: 0; overflow-y: auto; } diff --git a/apps/web/src/features/gov-process/internal/panel.tsx b/apps/web/src/features/gov-process/internal/panel.tsx index ac31018..9e4a931 100644 --- a/apps/web/src/features/gov-process/internal/panel.tsx +++ b/apps/web/src/features/gov-process/internal/panel.tsx @@ -82,7 +82,7 @@ function EdgeProps({ edge, onPatch }: { edge: FlowEdge; onPatch: (f: (e: FlowEdg const setRows = (next: MapRow[]) => onPatch((e) => ({ ...e, mapping: next })); const patchRow = (i: number, f: (r: MapRow) => MapRow) => setRows(rows.map((r, j) => (j === i ? f(r) : r))); return ( -
+