feat(dashboard): 经营看板「本量利·保本点」卡片 + 只读BEP概览端点 (cma-bep-kpi Phase2)

- 新增 GET /api/cma/dashboard/bep-card:账面/现金双口径只读数据
  (5001月销113.6/5602管理费26.1/折旧560213 7.51/渠补率84.61%)
  账面: 保本169.9万 覆盖率66.9%(黄) 缺口33.1%; 现金: 保本121.0万 覆盖率93.9%
- 新增 components/BEPBreakEvenCard.vue:主指标覆盖率红黄绿圆点+副指标
  并排+下钻面板(公式/输入KPI/双口径切换/解读),A区只读
- Dashboard.vue CEO/财务视图顶部引入卡片
This commit is contained in:
Hermes CI Fix
2026-09-08 13:58:01 +08:00
parent 1a5356a2d1
commit 9eb38cfa89
3 changed files with 357 additions and 1 deletions
+5
View File
@@ -42,6 +42,8 @@
<!-- ====== CEO视图 ====== -->
<template v-if="userRole === 'ceo'">
<!-- 本量利·保本点卡片(Phase2,A区只读) -->
<BEPBreakEvenCard />
<!-- 摘要卡片行 -->
<div class="summary-row">
<div class="stat-card blue" @click="$router.push('/kpis')" style="cursor:pointer;"><div class="stat-val"><CountUp :value="summary.kpi_total" /></div><div class="stat-label">KPI总数</div><div class="stat-sub click-hint">点击查看详情</div></div>
@@ -157,6 +159,8 @@
<!-- ====== 财务视图 ====== -->
<template v-if="userRole === 'finance'">
<!-- 本量利·保本点卡片(Phase2,A区只读) -->
<BEPBreakEvenCard />
<div class="summary-row">
<div class="stat-card blue" @click="$router.push('/deviations')" style="cursor:pointer;"><div class="stat-val">{{ finSummary.total_sales ? fmtValue(finSummary.total_sales, 'SALES_TOTAL') : '-' }}</div><div class="stat-label">本月销售额</div></div>
<div class="stat-card" :class="(finSummary.gross_profit_rate ?? 0) < 0 ? 'red' : 'green'" @click="$router.push('/deviations')" style="cursor:pointer;">
@@ -271,6 +275,7 @@ import { dashboardApi, alertApi, aiSuggestionApi } from '../api/index'
import axios from 'axios'
import CountUp from '../components/CountUp.vue'
import GrowthQuality from '../components/GrowthQuality.vue'
import BEPBreakEvenCard from '../components/BEPBreakEvenCard.vue'
const router = useRouter()