From 5414e9977827b68ed539c23407b24fe362798535 Mon Sep 17 00:00:00 2001 From: 18628386721 <18628386721@163.com> Date: Wed, 29 Jul 2026 16:44:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E6=8E=89=E3=80=8C=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=86=B3=E5=AE=9A=E6=95=B0=E6=8D=AE=E5=A5=91=E7=BA=A6=E3=80=8D?= =?UTF-8?q?=E7=9A=84=E4=B8=89=E5=A4=84=E9=81=97=E7=95=99=20=E2=80=94?= =?UTF-8?q?=E2=80=94=20=E7=BC=96=E6=8E=92=E9=9D=A2=E4=BB=8E=E6=AD=A4?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=AD=97=E6=AE=B5=E9=83=BD=E4=B8=8D=E7=A2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 讨论定的界线:节点只决定四件(身份 · 类型 · 链接哪个活动 · 出边条件), 数据契约全归活动自己(它的 manifest,随活动升版),流程包的 callInterface 是 「这条流被调用时的签名」另算。照此清三处化石: ① `ProcessNode.in/out` —— schema 上还留着「这个节点**声明**吃什么、吐什么」, 注释还写着「闭合校验以**边映射**为准」;边映射上一轮已退役,这两行是上个模型的化石。 连同图↔包的两处映射一并撤。 ② 手绘编辑器属性卡的 **进 / 出 / 查 / 执行** 四行 —— 其中「查」(use)与「执行」(owner) 连 ProcessNode 都没有,填了保存就丢:写了不生效的输入框。 同卡里**网关**与**卡点**两支也一并删(两种要素早已从模型里去掉,分支不可达, 而且正是网关那支在写 owner)。 ③ 只读图双击卡的 **执行** 行、`onEditNode` 的 owner 形参、画笔里的**责任人角标** —— 编排不带岗位,图上不该画它。上一轮图例注释说「图上早已不画责任人角标」其实说错了: 画笔一直画着,只是没人写得进 owner;这次真的撤了,注释也改对。 连带:`FlowNode` 的 owner/in/out/use 四个字段退役;岗位选择器 support.tsx 成了孤儿 (depcruise no-orphans 当场逮住)—— 编排不带岗位,它没有归宿,删。 四闸绿;契约快照随本提交入库。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m --- .../contracts/src/api/governance.d.ts | 16 --- .../contracts/src/process-package.d.ts | 4 - apps/web/src/shared/gov/flow/FlowDiagram.tsx | 25 +--- apps/web/src/shared/gov/flow/FlowEditor.tsx | 113 ++---------------- apps/web/src/shared/gov/flow/FlowFigure.tsx | 13 +- apps/web/src/shared/gov/flow/flow-layout.ts | 11 +- .../src/shared/gov/flow/flow-node-paint.ts | 20 +--- apps/web/src/shared/gov/flow/graph-to-pkg.ts | 2 - apps/web/src/shared/gov/flow/pkg-to-graph.ts | 2 - apps/web/src/shared/gov/flow/support.tsx | 50 -------- packages/contracts/src/process-package.ts | 11 +- 11 files changed, 33 insertions(+), 234 deletions(-) delete mode 100644 apps/web/src/shared/gov/flow/support.tsx diff --git a/api-report/packages/contracts/src/api/governance.d.ts b/api-report/packages/contracts/src/api/governance.d.ts index c543df0..69eaff7 100644 --- a/api-report/packages/contracts/src/api/governance.d.ts +++ b/api-report/packages/contracts/src/api/governance.d.ts @@ -495,8 +495,6 @@ export declare const listProcessPackagesRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -624,8 +622,6 @@ export declare const saveProcessRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -737,8 +733,6 @@ export declare const saveProcessRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -883,8 +877,6 @@ export declare const setProcessStateRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -1008,8 +1000,6 @@ export declare const deleteProcessVersionRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -1134,8 +1124,6 @@ export declare const renameProcessRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -1251,8 +1239,6 @@ export declare const validateProcessRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -2380,8 +2366,6 @@ export declare const govWorkflowRoute: { }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; diff --git a/api-report/packages/contracts/src/process-package.d.ts b/api-report/packages/contracts/src/process-package.d.ts index e6e6682..07eaef3 100644 --- a/api-report/packages/contracts/src/process-package.d.ts +++ b/api-report/packages/contracts/src/process-package.d.ts @@ -135,8 +135,6 @@ export declare const processNodeSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; @@ -249,8 +247,6 @@ export declare const processPackageSchema: z.ZodObject<{ }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"activity">; activityId: z.core.$ZodBranded; - in: z.ZodOptional>; - out: z.ZodOptional>; activityVersion: z.ZodOptional; failure: z.ZodDefault; diff --git a/apps/web/src/shared/gov/flow/FlowDiagram.tsx b/apps/web/src/shared/gov/flow/FlowDiagram.tsx index a8832d3..41b9ad8 100644 --- a/apps/web/src/shared/gov/flow/FlowDiagram.tsx +++ b/apps/web/src/shared/gov/flow/FlowDiagram.tsx @@ -17,8 +17,6 @@ import { type ShapeLayout, } from "./flow-layout"; import { arrowHeadPoints, CAPTION_STYLE, FLOW_MONO, paintNode, svgEl as svg, TONE_COLOR } from "./flow-node-paint"; -import { OwnerSelect } from "./support"; -import type { SpPosition } from "./support"; import "diagram-js/assets/diagram-js.css"; /** @@ -145,9 +143,9 @@ export interface FlowDiagramProps { /** 点击连线(选中边,按边号/两端认);不传则边不可点。 */ onEdgeClick?: ((edge: FlowEdge) => void) | undefined; /** 双击活动节点就地改文字(标题/小字/主办);不传则不可改。 */ - onEditNode?: ((nodeId: string, patch: { label: string; owner?: string }) => Promise) | undefined; + /** 双击活动就地改**名字** —— 图上可编辑的只有名字(数据归活动、岗位归运营) */ + onEditNode?: ((nodeId: string, patch: { label: string }) => Promise) | undefined; /** 执行人候选(L1 业务能力)——传了则执行字段只能下拉选缩写,不开自由填。 */ - ownerOptions?: SpPosition[] | undefined; ariaLabel: string; } @@ -157,7 +155,7 @@ interface NodeEdit { top: number; } -export function FlowDiagram({ graph, variant, onNodeClick, onEdgeClick, onEditNode, ownerOptions, ariaLabel }: FlowDiagramProps) { +export function FlowDiagram({ graph, variant, onNodeClick, onEdgeClick, onEditNode, ariaLabel }: FlowDiagramProps) { const containerRef = useRef(null); const editRef = useRef(null); const clickRef = useRef(onNodeClick); @@ -170,7 +168,7 @@ export function FlowDiagram({ graph, variant, onNodeClick, onEdgeClick, onEditNo const drillTimer = useRef(null); // 活动文字就地编辑浮层(双击活动)。 const [nodeEdit, setNodeEdit] = useState(null); - const [editDraft, setEditDraft] = useState({ label: "", owner: "" }); + const [editDraft, setEditDraft] = useState({ label: "" }); const [editBusy, setEditBusy] = useState(false); const [editErr, setEditErr] = useState(null); @@ -254,7 +252,7 @@ export function FlowDiagram({ graph, variant, onNodeClick, onEdgeClick, onEditNo window.clearTimeout(drillTimer.current); drillTimer.current = null; } - setEditDraft({ label: bo.node.label, owner: bo.node.owner ?? "" }); + setEditDraft({ label: bo.node.label }); setEditErr(null); setEditBusy(false); setNodeEdit({ node: bo.node, ...overlayPos(event.originalEvent, 300, 190) }); @@ -317,14 +315,6 @@ export function FlowDiagram({ graph, variant, onNodeClick, onEdgeClick, onEditNo 标题 setEditDraft((d) => ({ ...d, label: e.target.value }))} /> -
- 执行 - {ownerOptions ? ( - setEditDraft((d) => ({ ...d, owner: v }))} /> - ) : ( - setEditDraft((d) => ({ ...d, owner: e.target.value }))} /> - )} -
{editErr &&

{editErr}

}
-
- 执行 - {positions ? ( - - ) : ( - setOwner(e.target.value)} /> - )} -
-
- 进 - setDataIn(e.target.value)} /> -
-
- 出 - setDataOut(e.target.value)} /> -
-
- 查 - setDataUse(e.target.value)} /> -
)} - {node?.kind === "gateway" && ( - <> -
- 类型 - -
- {mode === "x" && ( -
- 判据 -