三面拆分⑪:收口 —— 走查通过,删掉与蓝图重复的需处置页签,文档对账

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
2026-07-27 21:32:38 +08:00
co-authored by Claude Fable 5
parent 6f36f8340a
commit 4a19690389
4 changed files with 25 additions and 45 deletions
@@ -109,6 +109,14 @@ export function BlueprintHome({ nav }: HomeProps) {
} }
acts={[ acts={[
{ label: '去编排', ico: 'route', onClick: () => nav.push({ k: 'pkg', id: `${p.id}@${p.version}` }) }, { label: '去编排', ico: 'route', onClick: () => nav.push({ k: 'pkg', id: `${p.id}@${p.version}` }) },
{
label: '看边映射',
ico: 'git-merge',
onClick: () => {
nav.push({ k: 'pkg', id: `${p.id}@${p.version}` });
nav.push({ k: 'edges', id: `${p.id}@${p.version}` });
},
},
]} ]}
/> />
))} ))}
@@ -18,7 +18,6 @@ import {
Acts, Acts,
Card, Card,
Chip, Chip,
Clear,
Entry, Entry,
Field, Field,
Kpi, Kpi,
@@ -32,7 +31,6 @@ import {
Sec, Sec,
Seg, Seg,
St, St,
Todo,
} from '@web-shared/gov/primitives.tsx'; } from '@web-shared/gov/primitives.tsx';
import type { Nav } from '@web-shared/gov/gov-route.ts'; import type { Nav } from '@web-shared/gov/gov-route.ts';
import { useGovActivities, useGovPackages, useGovPkgReports, useGovStaff, useGovTriggers } from '@web-shared/gov/gov-api.ts'; import { useGovActivities, useGovPackages, useGovPkgReports, useGovStaff, useGovTriggers } from '@web-shared/gov/gov-api.ts';
@@ -133,40 +131,6 @@ function PackagesHome({ tab, nav }: HomeProps) {
); );
} }
if (tab === 'todo') {
const drafts = packages.filter((p) => p.state !== 'published' && reportOf(p)?.publishable === false);
return (
<QueryGate query={q}>
<div className="g-todo">
{drafts.map((p) => {
const ec = edgeCheckOf(p, reportOf(p));
return (
<Todo
key={`${p.id}@${p.version}`}
tone="warn"
ico="git-merge"
title={`${p.name} v${p.version} · 未闭合(边 ${ec.closed}/${ec.total})`}
desc={ec.issue ?? '存在未通过闭合校验的声明'}
acts={[
{ label: '去编排', ico: 'route', onClick: () => nav.push({ k: 'pkg', id: `${p.id}@${p.version}` }) },
{
label: '看边映射',
ico: 'git-merge',
onClick: () => {
nav.push({ k: 'pkg', id: `${p.id}@${p.version}` });
nav.push({ k: 'edges', id: `${p.id}@${p.version}` });
},
},
]}
/>
);
})}
{drafts.length === 0 && <Clear>无待处置 —— 全部流程包闭合校验通过。</Clear>}
</div>
</QueryGate>
);
}
const published = packages.filter((p) => p.state === 'published').length; const published = packages.filter((p) => p.state === 'published').length;
const totalEdges = packages.reduce((a, p) => a + p.edges.length, 0); const totalEdges = packages.reduce((a, p) => a + p.edges.length, 0);
const closedEdges = packages.reduce((a, p) => a + edgeCheckOf(p, reportOf(p)).closed, 0); const closedEdges = packages.reduce((a, p) => a + edgeCheckOf(p, reportOf(p)).closed, 0);
-1
View File
@@ -140,7 +140,6 @@ export const TABS: Readonly<Record<GovZone, ReadonlyArray<{ key: string; label:
{ key: 'overview', label: '总览', ico: 'gauge' }, { key: 'overview', label: '总览', ico: 'gauge' },
{ key: 'pkgs', label: '流程包', ico: 'boxes' }, { key: 'pkgs', label: '流程包', ico: 'boxes' },
{ key: 'rules', label: '调起规则', ico: 'zap' }, { key: 'rules', label: '调起规则', ico: 'zap' },
{ key: 'todo', label: '需处置', ico: 'flag' },
], ],
library: [{ key: 'shelf', label: '活动货架', ico: 'boxes' }], library: [{ key: 'shelf', label: '活动货架', ico: 'boxes' }],
tools: [{ key: 'catalog', label: '能力目录', ico: 'wrench' }], tools: [{ key: 'catalog', label: '能力目录', ico: 'wrench' }],
+17 -8
View File
@@ -47,8 +47,9 @@
``` ```
- 每库一张卡:总数、健康度、最近变更;点卡即入库。 - 每库一张卡:总数、健康度、最近变更;点卡即入库。
- 下方是**待补清单**:闭合校验未过、契约缺口、名称未匹配的活动引用 —— 全部聚在这里, - 下方是**待补清单**:闭合校验未过、编排引用了未安装的活动、没有任何调起规则的流程包 ——
点进即改。设计者的"需处置"不散落在四库里。 全部聚在这里,点进即改。设计者的"需处置"不散落在四库里
(为此流程包区原有的「需处置」页签已删除:同一件事两处显示,就是散落)。
### 四库 ### 四库
@@ -75,21 +76,29 @@
任务 任务
员工 员工
── 台账(动态,随数据域长) ── ── 台账(动态,随数据域长) ──
报价域 quote_intake
共享域 quote_pricing
… …
shared
── 固定 ── ── 固定 ──
知识库 知识库
系统 系统
``` ```
> 落地实测:域的实际粒度是**活动域**(`quote_intake` / `quote_pricing` / `quote_sourcing` /
> `quote_negotiate` / `quote_alternative`)+ `shared`,不是本文起初设想的「报价域 / 共享域」。
> 决策不变(域 = 导航项),只是数量比示意图多。域名是复合键,左轨按下划线断行呈现。
### 驾驶舱(首页) ### 驾驶舱(首页)
经营第一屏,从现"记忆 · 度量仪表"升格而来: 经营第一屏,从现"记忆 · 度量仪表"升格而来:
- **度量八指标**(OS 8.3,零埋点):自主率 / 纠正率 / 有效自主率 / 打扰率 / 断点率 / - **度量八指标**(OS 8.3,零埋点):自主率 / 纠正率 / 有效自主率 / 打扰率 / 断点率 /
DMN 覆盖率 / 单位成本 / 终态分布; DMN 覆盖率 / 单位成本 / 终态分布 —— 走 report 模块,**与工作台汇报同源同口径**;
- **异常面**:异常工作流、死信、需处置件数 —— 点数字直达处置页。 - **异常面**:异常工作流、未闭合草稿、在途任务 —— 点数字直达处置页。
> 落地偏差:**死信卡不做**。死信目前只以治理者消息要素送出,没有按 kind 计数的查询面 ——
> 与其摆一个查不出数的卡位,不如记进 `docs/debt.md` 等查询面补上再加。
### 固定位 ### 固定位
@@ -143,8 +152,8 @@
2. 网页标签:`tab-identity` 从两章扩为三章; 2. 网页标签:`tab-identity` 从两章扩为三章;
3. 新页两张:企业蓝图(设计首页)、驾驶舱(运营首页)—— 数据全部来自既有接口的再聚合; 3. 新页两张:企业蓝图(设计首页)、驾驶舱(运营首页)—— 数据全部来自既有接口的再聚合;
4. 新界面一处:工作组管理(员工位内;`org.saveWorkGroup` 已在出口,缺的只是界面); 4. 新界面一处:工作组管理(员工位内;`org.saveWorkGroup` 已在出口,缺的只是界面);
5. 触发器编辑面:从独立区改为流程包详情内的可编辑段(启停路由已有;规则与装配的 5. 触发器编辑面:从独立区改为**流程包区的「调起规则」页签**(包详情内只留一枚「改规则」入口,
编辑需补一条 upsert 路由 —— `trigger.upsert` 用例已在模块出口,只缺 HTTP 面)。 不重复摆表单);已补 `PUT /api/gov/triggers`(`trigger.upsert` 用例本就在模块出口,只缺 HTTP 面)。
## 六、权限 ## 六、权限