From 10990a1efa26f001529f6ef042992c4fa1435145 Mon Sep 17 00:00:00 2001 From: 18628386721 <18628386721@163.com> Date: Tue, 28 Jul 2026 02:05:28 +0800 Subject: [PATCH] =?UTF-8?q?MVP=E5=BA=95=E5=BA=A7=E2=91=A7:=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=9F=9F=E5=9B=9B=E5=9F=9F=E5=A4=A7=E5=8D=A1=20?= =?UTF-8?q?=E2=80=94=E2=80=94=20=E9=A1=B9=E7=9B=AE/=E5=AE=A2=E6=88=B7/?= =?UTF-8?q?=E6=83=85=E6=8A=A5/=E4=BE=9B=E5=BA=94=E5=95=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m --- .../src/features/gov-data/internal/panel.tsx | 72 ++++++++----------- 1 file changed, 30 insertions(+), 42 deletions(-) diff --git a/apps/web/src/features/gov-data/internal/panel.tsx b/apps/web/src/features/gov-data/internal/panel.tsx index 09019f4..c63eeee 100644 --- a/apps/web/src/features/gov-data/internal/panel.tsx +++ b/apps/web/src/features/gov-data/internal/panel.tsx @@ -11,8 +11,7 @@ * 自 `~/coding/JCAI_PRD/governance/_components/Governance.tsx` 平移: * DOM 结构、类名(`g-*` + 色调 `t-*`)与文案原样保留,mock 常量换成服务端投影(README 平移规则 1/2/4)。 */ -import { Ico } from '@web-shared/Ico.tsx'; -import { Card, Chip, Clear, NList, NRow, Note, PageHead, QueryGate, Sec } from '@web-shared/gov/primitives.tsx'; +import { Card, Chip, Clear, Entry, NList, NRow, Note, PageHead, QueryGate, Sec } from '@web-shared/gov/primitives.tsx'; import type { Nav } from '@web-shared/gov/gov-route.ts'; import { useGovLedger, useGovObjects } from '@web-shared/gov/gov-api.ts'; import { domainShort, sortDomains } from '@web-shared/gov/domains.ts'; @@ -34,28 +33,37 @@ export function DataHome({ nav }: HomeProps) { <> - 数据不设箱、靠域:域是承载的划分,对象由活动声明物化——最大化合并、只增不破坏。 - 这里改结构;行数据在运营中心 · 台账看。 + 数据按经营对象四分:项目是每一单的流转单据(受理记录 → 比价 → 草案 → 报价单), + 客户 / 情报 / 供应商是跨单沉淀的资产。域是承载的划分,对象由活动声明物化 —— + 最大化合并、只增不破坏。这里改结构;行数据在运营中心 · 台账看。 - {domains.map((d) => ( -
-
- - {domainShort(d)} - - {d} - - {objects.filter((o) => o.domain === d).length} 个对象 · 发布即入运营台账 -
- - {objects - .filter((o) => o.domain === d) - .map((o) => ( - + {domains.map((d) => { + const inDomain = objects.filter((o) => o.domain === d); + return ( + + {d} · {inDomain.length} 对象 + + } + > +
+ {inDomain.map((o) => ( + nav.push({ k: 'obj', id: `${o.domain}.${o.object}` })} + /> ))} - -
- ))} +
+ + ); + })} {objects.length === 0 && ( 还没有物化的对象 —— 活动第一次写入时,系统按它的声明把表建出来,然后出现在这里。 )} @@ -64,26 +72,6 @@ export function DataHome({ nav }: HomeProps) { ); } -/** 一个对象的结构一行:列数 / 主键 —— 点开看完整模式,仍不含行数据 */ -function ObjectSchemaRow({ domain, object, nav }: { domain: string; object: string; nav: Nav }) { - const page = useGovLedger(domain, object); - const columns = page.data?.columns ?? []; - const pk = page.data?.primaryKey ?? []; - return ( - nav.push({ k: 'obj', id: `${domain}.${object}` })} - /> - ); -} - /* ==================== 运营侧:台账(某一个域页签) ==================== */ /**