Files
SBrainCO/client/src/components/KnowledgeCard.tsx
T
selfrelease d373fb5f0c feat: 新增智脑决策中心模块(决策中心/AI员工组织/知识资产)
- 新增 DecisionsPage、AgentsPage、KnowledgePage 三个页面
- 新增 DecisionCard、DecisionDrawer、DecisionSummary、KnowledgeCard、LoopHealthBar、AgentCard 组件
- 新增 decision-aggregator 决策聚合逻辑和 agents 数据
- Layout 导航重构:新增智脑决策分组,调整系统配置和经营本体分组
- BossPage 集成决策摘要和闭环健康度,利润机会池支持警告样式
- TasksPage 增强任务展示
- 抽屉式详情统一改为居中弹窗风格
- data.ts 后端调整
- run.md 更新数据库连接说明
- 新增玄谋智脑实际版建设方案文档

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-14 19:34:04 +08:00

51 lines
1.7 KiB
TypeScript

/**
* 知识条目卡片组件
*
* 展示单个标杆实践(知识资产)的模块、标杆门店、关键行动和验证指标。
*/
import { ShieldCheck, ChevronRight } from 'lucide-react'
import { Badge } from '@/components/Badge'
interface KnowledgeCardProps {
practice: any
onClick?: () => void
}
/** 状态颜色映射 */
const STATUS_BADGE: Record<string, 'default' | 'status' | 'review'> = {
'待推广': 'default',
'推广中': 'status',
'已推广': 'review',
}
export function KnowledgeCard({ practice, onClick }: KnowledgeCardProps) {
return (
<div
className="flex cursor-pointer items-center gap-3 rounded-lg border bg-card p-3 transition-shadow hover:shadow-sm"
onClick={onClick}
>
<div className="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-teal-50">
<ShieldCheck className="h-5 w-5 text-teal-600" />
</div>
<div className="min-w-0 flex-1">
<div className="flex items-center gap-2">
<span className="rounded bg-teal-50 px-1.5 py-0.5 text-[10px] font-medium text-teal-700">
{practice.practice_module}
</span>
<Badge type={STATUS_BADGE[practice.status] || 'default'} text={practice.status} />
</div>
<p className="mt-1 truncate text-sm font-medium">
{practice.key_actions?.substring(0, 60) || '未填写关键行动'}
{practice.key_actions?.length > 60 ? '…' : ''}
</p>
<p className="mt-0.5 truncate text-xs text-muted-foreground">
: {practice.benchmark_store_name || '-'}
</p>
</div>
<ChevronRight className="h-4 w-4 shrink-0 text-muted-foreground" />
</div>
)
}