devperf/frontend/src/components/roi/ConfidenceBadge.vue
zyc 5af612e3fd feat(roi): ROI 动态规则引擎 v1 + 业务体系归属
后端:
- 事件流模型(project_cost_events / project_revenue_events)+ launchedAt 截断
- 3 大业务体系归属(airhubs/airflow/aircore) + 项目类型(hw/sw) + identifier 自动生成
- AI 三件套推荐(category + bizSystem + projectType)
- 营收 mock API + 外部对接规范 + 资产摊销 cron
- 5 个 migration(0003 ROI 引擎 / 0004 driver factors / 0005 biz system)
- 单测 11/11 过

前端:
- 项目级 ROI 看板:4 KPI 卡片 + 折线图(周/月/年)+ 成本/产出事件流并排
- 全公司决策罗盘:3 大 ROI 指标 + 业务线堆叠 + 分类筛选 chip
- 项目列表 + 侧边栏:按产品线分组(可折叠 + localStorage 持久化)
- Admin: ROI 策略配置 + 项目映射 + 未映射收容

数据:
- 23 项目全部 AI 自动分类 + 自动 identifier(airhubs-hw-001 这种)
- launchedAt 按各项目首次 commit 时间设置

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:20:22 +08:00

30 lines
727 B
Vue

<script setup lang="ts">
import { computed } from 'vue';
import { NTag } from 'naive-ui';
type Confidence = 'high' | 'medium' | 'low';
const props = defineProps<{
confidence: Confidence;
showLabel?: boolean;
}>();
const tagType = computed<'success' | 'warning' | 'error'>(() => {
if (props.confidence === 'high') return 'success';
if (props.confidence === 'medium') return 'warning';
return 'error';
});
const label = computed(() => {
if (props.confidence === 'high') return 'High';
if (props.confidence === 'medium') return 'Medium';
return 'Low';
});
</script>
<template>
<NTag :type="tagType" size="small" round>
<span v-if="showLabel !== false">置信度</span> {{ label }}
</NTag>
</template>