From c5a8e0525b8083f18199ec6607fcd18f4b41b274 Mon Sep 17 00:00:00 2001 From: ittoview Date: Wed, 18 Feb 2026 13:15:45 +0000 Subject: [PATCH] =?UTF-8?q?feat(=E7=9F=A5=E8=AF=86=E9=A2=86=E5=9F=9F):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=8F=E6=8D=B7=E8=A3=81=E5=89=AA=E5=9B=A0?= =?UTF-8?q?=E7=B4=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 类型定义: - 新增TailoringFactor接口定义敏捷裁剪因素 - 为KnowledgeArea添加可选的tailoringFactors字段 2. 数据更新: - 为KA05(项目质量管理)添加4个敏捷裁剪因素: * 政策合规与审计 * 标准与法规合规性 * 持续改进 * 干系人参与 3. 页面展示: - 在知识领域详情页添加敏捷裁剪因素展示区域 - 使用灯泡图标和编号列表样式 - 支持深色模式 via [HAPI](https://hapi.run) Co-Authored-By: HAPI --- src/data/knowledge-areas.json | 20 +++++++++++++++++++- src/pages/KnowledgeAreasPage.tsx | 30 +++++++++++++++++++++++++++++- src/types/itto.ts | 7 +++++++ 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/data/knowledge-areas.json b/src/data/knowledge-areas.json index 1e9737e..174bebd 100644 --- a/src/data/knowledge-areas.json +++ b/src/data/knowledge-areas.json @@ -48,7 +48,25 @@ "order": 5, "color": "#F59E0B", "description": "把组织的质量政策应用于规划、管理、控制项目和产品质量要求", - "processCount": 3 + "processCount": 3, + "tailoringFactors": [ + { + "title": "政策合规与审计", + "description": "有哪些质量政策和程序?使用哪些质量工具、技术和模板?" + }, + { + "title": "标准与法规合规性", + "description": "是否存在必须遵守的行业质量标准?需要考虑哪些政府、法律或法规方面的制约因素?" + }, + { + "title": "持续改进", + "description": "如何管理项目中的质量改进?在组织层面还是单个项目层面管理?" + }, + { + "title": "干系人参与", + "description": "项目环境是否有利于与干系人及供应商合作?" + } + ] }, { "id": "KA06", diff --git a/src/pages/KnowledgeAreasPage.tsx b/src/pages/KnowledgeAreasPage.tsx index db8c7bb..7a643e0 100644 --- a/src/pages/KnowledgeAreasPage.tsx +++ b/src/pages/KnowledgeAreasPage.tsx @@ -1,7 +1,7 @@ import { useEffect, useRef } from 'react' import { Link, useParams } from 'react-router-dom' import { motion } from 'framer-motion' -import { ArrowRight, FileText, Wrench, FileOutput } from 'lucide-react' +import { ArrowRight, FileText, Wrench, FileOutput, Lightbulb } from 'lucide-react' import { knowledgeAreas, processesByKnowledgeArea, knowledgeAreaMap, processGroupMap } from '@/data' const containerVariants = { @@ -73,6 +73,34 @@ export function KnowledgeAreasPage() {

{selectedKA.description}

+ {/* 敏捷裁剪因素 */} + {selectedKA.tailoringFactors && selectedKA.tailoringFactors.length > 0 && ( + +
+ +

敏捷裁剪因素

+
+
+ {selectedKA.tailoringFactors.map((factor, index) => ( +
+
+ {index + 1} +
+
+

{factor.title}

+

{factor.description}

+
+
+ ))} +
+
+ )} + {/* 过程列表 - 紧凑版 */} {processes.map((process) => { diff --git a/src/types/itto.ts b/src/types/itto.ts index 737c5d7..15eba20 100644 --- a/src/types/itto.ts +++ b/src/types/itto.ts @@ -3,6 +3,12 @@ * PMP项目管理ITTO可视化学习平台 */ +// 敏捷裁剪因素项 +export interface TailoringFactor { + title: string; // 因素标题 + description: string; // 因素描述 +} + // 知识领域 export interface KnowledgeArea { id: string; // 如 "KA01" @@ -13,6 +19,7 @@ export interface KnowledgeArea { color: string; // 主题色 description: string; // 简要描述 processCount: number; // 包含的过程数量 + tailoringFactors?: TailoringFactor[]; // 敏捷裁剪因素(可选) } // 过程组