三面拆分⑪:收口 —— 走查通过,删掉与蓝图重复的需处置页签,文档对账
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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
@@ -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 面)。
|
||||||
|
|
||||||
## 六、权限
|
## 六、权限
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user