From 90f75d41ae63d4bcddd13ac182444e022ad7fad4 Mon Sep 17 00:00:00 2001 From: 3452078359-xuexue <3452078359@qq.com> Date: Wed, 26 Aug 2026 02:26:24 -0700 Subject: [PATCH] fix: bind knowledge maps to explicit regions --- admin-web/src/ProjectLanding.tsx | 52 +++- admin-web/src/api.ts | 4 + admin-web/src/panels/plaza/PlazaOverview.tsx | 58 +++- .../src/panels/plaza/SuperAgentPanel.tsx | 256 +++++++--------- admin-web/src/spatialMapRegions.ts | 43 +++ admin-web/src/styles.css | 15 +- admin-web/tests/knowledgeMapTemplate.test.ts | 42 +++ app/api/plaza.py | 161 +++++++--- app/project_lifecycle.py | 110 ++++++- design-qa.md | 21 ++ scripts/export_city_map_bundle.py | 285 ++++++++++++++++++ scripts/export_graph_snapshot_bundle.py | 8 + .../export_yunyou_libo_full_graph_bundle.py | 226 ++++++++++---- tests/test_plaza_graph_fallback.py | 37 +++ tests/test_project_lifecycle.py | 83 ++++- 15 files changed, 1126 insertions(+), 275 deletions(-) create mode 100644 admin-web/src/spatialMapRegions.ts create mode 100644 admin-web/tests/knowledgeMapTemplate.test.ts create mode 100644 scripts/export_city_map_bundle.py create mode 100644 scripts/export_graph_snapshot_bundle.py diff --git a/admin-web/src/ProjectLanding.tsx b/admin-web/src/ProjectLanding.tsx index 2359c58..f24bb97 100644 --- a/admin-web/src/ProjectLanding.tsx +++ b/admin-web/src/ProjectLanding.tsx @@ -10,6 +10,7 @@ import { Input, List, Modal, + Select, Space, Spin, Steps, @@ -47,6 +48,11 @@ import { type ProjectSummary, type GraphReleaseSummary, } from "./api"; +import { + SPATIAL_MAP_REGIONS, + spatialMapConfigForRegion, + spatialMapRegionByAdcode, +} from "./spatialMapRegions"; import { mergeProjectCatalogItem, notifyProjectCatalogChanged, @@ -59,6 +65,7 @@ type BasicProjectValues = { project_id: string; display_name: string; map_enabled: boolean; + map_region_adcode?: string; }; type GraphImportData = { @@ -659,6 +666,7 @@ export default function ProjectLanding() { const [deleting, setDeleting] = useState(false); const [basicForm] = Form.useForm(); + const mapEnabled = Form.useWatch("map_enabled", basicForm); const [renameForm] = Form.useForm<{ display_name: string }>(); const impactRequest = useRef(0); const navigate = useNavigate(); @@ -747,6 +755,9 @@ export default function ProjectLanding() { project_id: values.project_id.trim(), display_name: values.display_name.trim(), map_enabled: Boolean(values.map_enabled), + map_region_adcode: values.map_enabled + ? String(values.map_region_adcode || "").trim() + : undefined, }; setCheckingBasics(true); try { @@ -855,10 +866,10 @@ export default function ProjectLanding() { const { data } = await provisionGraphProject({ project_id: basicValues.project_id, display_name: basicValues.display_name, - spatial_map: { - enabled: basicValues.map_enabled, - scope: "libo", - }, + spatial_map: spatialMapConfigForRegion( + basicValues.map_enabled, + basicValues.map_region_adcode, + ), schema: schemaResult.value, graph_data: graphResult.value, }); @@ -1116,10 +1127,30 @@ export default function ProjectLanding() {
- 知识地图 - - - +
+ 知识地图 + + + +
+ {mapEnabled && ( + +