diff --git a/docker-compose.yml b/docker-compose.yml
index 5de6064..627b581 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -8,4 +8,4 @@ services:
container_name: ittoview
ports:
- "11.144.144.9:8035:80"
- restart: unless-stopped
+ restart: always
diff --git a/src/App.tsx b/src/App.tsx
index dcc2627..bbe1b1b 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -11,6 +11,7 @@ import { ToolDetailPage } from './pages/ToolDetailPage'
import { SettingsPage } from './pages/SettingsPage'
import ProcessPracticePage from './pages/ProcessPracticePage'
import PrinciplesPage from './pages/PrinciplesPage'
+import { PerformanceDomainsPage } from './pages/PerformanceDomainsPage'
function App() {
return (
@@ -26,6 +27,7 @@ function App() {
} />
} />
} />
+ } />
} />
} />
} />
diff --git a/src/data/performance-domains.ts b/src/data/performance-domains.ts
new file mode 100644
index 0000000..0cfdb6c
--- /dev/null
+++ b/src/data/performance-domains.ts
@@ -0,0 +1,75 @@
+export interface PerformanceDomainItem {
+ id: string
+ name: string
+ nameEn: string
+ description: string
+ color: string
+ accentClass: string
+}
+
+export const performanceDomains: PerformanceDomainItem[] = [
+ {
+ id: 'PD01',
+ name: '干系人绩效域',
+ nameEn: 'Stakeholders',
+ description: '关注干系人的识别、参与、沟通与期望管理,确保项目价值被关键相关方理解和支持。',
+ color: '#6366F1',
+ accentClass: 'from-indigo-500 to-violet-500',
+ },
+ {
+ id: 'PD02',
+ name: '团队绩效域',
+ nameEn: 'Team',
+ description: '聚焦团队文化、协作方式、领导力与能力建设,提升项目团队的执行效率与凝聚力。',
+ color: '#8B5CF6',
+ accentClass: 'from-violet-500 to-fuchsia-500',
+ },
+ {
+ id: 'PD03',
+ name: '开发/生命周期绩效域',
+ nameEn: 'Development Approach & Life Cycle',
+ description: '围绕开发方法、生命周期模型与交付节奏进行选择和管理,匹配项目环境与目标。',
+ color: '#EC4899',
+ accentClass: 'from-pink-500 to-rose-500',
+ },
+ {
+ id: 'PD04',
+ name: '规划绩效域',
+ nameEn: 'Planning',
+ description: '强调范围、进度、成本、资源等多维规划活动,形成可执行且可持续调整的计划体系。',
+ color: '#F59E0B',
+ accentClass: 'from-amber-500 to-orange-500',
+ },
+ {
+ id: 'PD05',
+ name: '项目工作绩效域',
+ nameEn: 'Project Work',
+ description: '关注项目工作的组织、协调、实施与持续改进,确保工作流顺畅并支撑目标达成。',
+ color: '#10B981',
+ accentClass: 'from-emerald-500 to-teal-500',
+ },
+ {
+ id: 'PD06',
+ name: '交付绩效域',
+ nameEn: 'Delivery',
+ description: '聚焦价值交付、质量达成与成果验收,确保项目输出真正满足业务需求与预期。',
+ color: '#06B6D4',
+ accentClass: 'from-cyan-500 to-sky-500',
+ },
+ {
+ id: 'PD07',
+ name: '测量绩效域',
+ nameEn: 'Measurement',
+ description: '通过度量指标、绩效数据和分析机制,及时掌握项目状态并支持决策与调整。',
+ color: '#3B82F6',
+ accentClass: 'from-blue-500 to-indigo-500',
+ },
+ {
+ id: 'PD08',
+ name: '不确定性绩效域',
+ nameEn: 'Uncertainty',
+ description: '针对风险、复杂性、模糊性和变化进行识别与应对,增强项目的适应性和韧性。',
+ color: '#EF4444',
+ accentClass: 'from-red-500 to-pink-500',
+ },
+]
diff --git a/src/pages/PerformanceDomainsPage.tsx b/src/pages/PerformanceDomainsPage.tsx
new file mode 100644
index 0000000..1634c36
--- /dev/null
+++ b/src/pages/PerformanceDomainsPage.tsx
@@ -0,0 +1,148 @@
+import { motion } from 'framer-motion'
+import {
+ ArrowRight,
+ BadgeCheck,
+ BarChart3,
+ GitBranch,
+ Handshake,
+ Rocket,
+ Target,
+ Users,
+ Workflow,
+ AlertTriangle,
+} from 'lucide-react'
+import { performanceDomains } from '@/data/performance-domains'
+
+const containerVariants = {
+ hidden: { opacity: 0 },
+ visible: {
+ opacity: 1,
+ transition: {
+ staggerChildren: 0.06,
+ },
+ },
+}
+
+const itemVariants = {
+ hidden: { opacity: 0, y: 16 },
+ visible: {
+ opacity: 1,
+ y: 0,
+ transition: {
+ duration: 0.35,
+ },
+ },
+}
+
+const iconMap = {
+ PD01: Handshake,
+ PD02: Users,
+ PD03: GitBranch,
+ PD04: Target,
+ PD05: Workflow,
+ PD06: Rocket,
+ PD07: BarChart3,
+ PD08: AlertTriangle,
+} as const
+
+export function PerformanceDomainsPage() {
+ return (
+
+
+
+
+
+ PMBOK 第七版 · 八大绩效域
+
+
八大绩效域
+
+ 这里先提供目录入口页面,集中展示八大绩效域的学习入口与结构分组,方便你先确认页面风格与信息排布。
+
+
+
+
+
+
+
+
+ {[
+ { label: '绩效域数量', value: 8, color: 'text-indigo-600' },
+ { label: '当前状态', value: '目录页', color: 'text-emerald-600' },
+ { label: '页面阶段', value: '首版', color: 'text-amber-600' },
+ { label: '左侧菜单', value: '未加入', color: 'text-rose-600' },
+ ].map((item) => (
+
+
{item.value}
+
{item.label}
+
+ ))}
+
+
+
+ {performanceDomains.map((domain, index) => {
+ const Icon = iconMap[domain.id as keyof typeof iconMap]
+
+ return (
+
+
+
+
+
+
+
+
+
+ {String(index + 1).padStart(2, '0')}
+
+
+ {domain.name}
+
+
+
+
+ 入口
+
+
+
+
+ {domain.description}
+
+
+
+
英文标识
+
+ {domain.nameEn}
+
+
+
+
+
详情页后续再补
+
+ 查看入口样式
+
+
+
+
+
+ )
+ })}
+
+
+ )
+}
diff --git a/src/pages/index.ts b/src/pages/index.ts
index b46808f..53669b2 100644
--- a/src/pages/index.ts
+++ b/src/pages/index.ts
@@ -8,3 +8,5 @@ export { ProcessGraphPage } from './ProcessGraphPage'
export { ArtifactDetailPage } from './ArtifactDetailPage'
export { ToolDetailPage } from './ToolDetailPage'
export { SettingsPage } from './SettingsPage'
+
+export { PerformanceDomainsPage } from './PerformanceDomainsPage'