feat: add process purpose practice entry
This commit is contained in:
@@ -1,5 +1,12 @@
|
|||||||
{
|
{
|
||||||
"changelogEntries": [
|
"changelogEntries": [
|
||||||
|
{
|
||||||
|
"id": "2026-05-10-process-purpose-practice",
|
||||||
|
"date": "2026-05-10",
|
||||||
|
"type": "feat",
|
||||||
|
"title": "新增子过程主要作用专项练习,并在知识领域与过程组页面加入入口",
|
||||||
|
"scope": "练习"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "2026-04-28-learning-maps",
|
"id": "2026-04-28-learning-maps",
|
||||||
"date": "2026-04-28",
|
"date": "2026-04-28",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { useEffect, useRef } from 'react'
|
import { useEffect, useRef } from 'react'
|
||||||
import { Link, useParams } from 'react-router-dom'
|
import { Link, useParams } from 'react-router-dom'
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import { ArrowRight, FileText, Wrench, FileOutput, Lightbulb } from 'lucide-react'
|
import { ArrowRight, FileText, Wrench, FileOutput, Lightbulb, Target } from 'lucide-react'
|
||||||
import { knowledgeAreas, processesByKnowledgeArea, knowledgeAreaMap, processGroupMap } from '@/data'
|
import { knowledgeAreas, processesByKnowledgeArea, knowledgeAreaMap, processGroupMap } from '@/data'
|
||||||
|
|
||||||
const containerVariants = {
|
const containerVariants = {
|
||||||
@@ -144,10 +144,19 @@ export function KnowledgeAreasPage() {
|
|||||||
// 显示知识领域列表 - 紧凑版双列
|
// 显示知识领域列表 - 紧凑版双列
|
||||||
return (
|
return (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-xl font-bold text-gray-900 dark:text-white">知识领域</h1>
|
<h1 className="text-xl font-bold text-gray-900 dark:text-white">知识领域</h1>
|
||||||
<p className="text-sm text-gray-500 dark:text-gray-400">10大项目管理知识领域</p>
|
<p className="text-sm text-gray-500 dark:text-gray-400">10大项目管理知识领域</p>
|
||||||
</div>
|
</div>
|
||||||
|
<Link
|
||||||
|
to="/process-purpose-practice"
|
||||||
|
className="inline-flex items-center gap-2 rounded-xl bg-indigo-600 px-4 py-2 text-sm font-medium text-white shadow-sm transition-colors hover:bg-indigo-700"
|
||||||
|
>
|
||||||
|
<Target size={16} />
|
||||||
|
子过程主要作用专项练习
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
|
||||||
<motion.div
|
<motion.div
|
||||||
variants={containerVariants}
|
variants={containerVariants}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Link, useParams } from 'react-router-dom'
|
import { Link, useParams } from 'react-router-dom'
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import { ArrowRight, FileText, Wrench, FileOutput } from 'lucide-react'
|
import { ArrowRight, FileText, Wrench, FileOutput, Target } from 'lucide-react'
|
||||||
import { processGroups, processesByProcessGroup, processGroupMap, knowledgeAreaMap } from '@/data'
|
import { processGroups, processesByProcessGroup, processGroupMap, knowledgeAreaMap } from '@/data'
|
||||||
|
|
||||||
const containerVariants = {
|
const containerVariants = {
|
||||||
@@ -97,10 +97,19 @@ export function ProcessGroupsPage() {
|
|||||||
// 显示过程组列表 - 紧凑版
|
// 显示过程组列表 - 紧凑版
|
||||||
return (
|
return (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
|
<div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-xl font-bold text-gray-900 dark:text-white">过程组</h1>
|
<h1 className="text-xl font-bold text-gray-900 dark:text-white">过程组</h1>
|
||||||
<p className="text-sm text-gray-500 dark:text-gray-400">5大项目管理过程组</p>
|
<p className="text-sm text-gray-500 dark:text-gray-400">5大项目管理过程组</p>
|
||||||
</div>
|
</div>
|
||||||
|
<Link
|
||||||
|
to="/process-purpose-practice"
|
||||||
|
className="inline-flex items-center gap-2 rounded-xl bg-indigo-600 px-4 py-2 text-sm font-medium text-white shadow-sm transition-colors hover:bg-indigo-700"
|
||||||
|
>
|
||||||
|
<Target size={16} />
|
||||||
|
子过程主要作用专项练习
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
|
||||||
<motion.div variants={containerVariants} initial="hidden" animate="visible" className="space-y-2">
|
<motion.div variants={containerVariants} initial="hidden" animate="visible" className="space-y-2">
|
||||||
{processGroups.map((pg) => (
|
{processGroups.map((pg) => (
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ export default function ProcessPurposePracticePage() {
|
|||||||
<div className="mb-3 flex flex-col gap-3 md:flex-row md:items-center md:justify-between">
|
<div className="mb-3 flex flex-col gap-3 md:flex-row md:items-center md:justify-between">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-xl font-bold text-gray-900 dark:text-gray-100">
|
<h1 className="text-xl font-bold text-gray-900 dark:text-gray-100">
|
||||||
子过程主要过程专项练习
|
子过程主要作用专项练习
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-1 text-sm text-gray-500 dark:text-gray-400">
|
<p className="mt-1 text-sm text-gray-500 dark:text-gray-400">
|
||||||
根据主要作用写出对应的过程名称
|
根据主要作用写出对应的过程名称
|
||||||
|
|||||||
Reference in New Issue
Block a user