feat(platform): close AI expense value loop

Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
This commit is contained in:
caoxiaozhu
2026-07-17 14:14:08 +08:00
parent 242d68c36f
commit 787bc3a481
507 changed files with 82072 additions and 6344 deletions

View File

@@ -9,6 +9,16 @@
/>
</div>
<template v-else>
<CommercialWorkspace
v-if="activeDashboard === 'commercial'"
:current-user="currentUser"
/>
<CfoValueDashboard
v-else-if="activeDashboard === 'value'"
:active-range="activeRange"
:custom-range="customRange"
/>
<template v-else>
<div class="kpi-grid">
<article
v-for="metric in activeKpiMetrics"
@@ -31,6 +41,11 @@
</article>
</div>
<FinancialConnectorHealthPanel
v-if="activeDashboard === 'finance'"
:current-user="currentUser"
/>
<template v-if="activeDashboard === 'finance'">
<div class="content-grid top-grid">
<article class="panel dashboard-card trend-panel">
@@ -323,6 +338,7 @@
</aside>
</div>
</template>
</template>
</template>
</section>
</template>
@@ -339,7 +355,10 @@ import SystemAgentRatioBar from '../components/charts/SystemAgentRatioBar.vue'
import SystemLoginWaveChart from '../components/charts/SystemLoginWaveChart.vue'
import SystemTokenDailyWaveChart from '../components/charts/SystemTokenDailyWaveChart.vue'
import SystemUserTokenPie from '../components/charts/SystemUserTokenPie.vue'
import CommercialWorkspace from '../components/commercial/CommercialWorkspace.vue'
import CfoValueDashboard from '../components/dashboard/CfoValueDashboard.vue'
import DigitalEmployeeDashboard from '../components/dashboard/DigitalEmployeeDashboard.vue'
import FinancialConnectorHealthPanel from '../components/dashboard/FinancialConnectorHealthPanel.vue'
import RiskObservationDashboard from '../components/dashboard/RiskObservationDashboard.vue'
import TableLoadingState from '../components/shared/TableLoadingState.vue'
@@ -348,6 +367,7 @@ import { useOverviewView } from '../composables/useOverviewView.js'
const props = defineProps({
filteredRequests: { type: Array, required: true },
dashboard: { type: String, default: 'finance' },
currentUser: { type: Object, default: () => ({}) },
activeRange: { type: String, default: '近10日' },
customRange: {
type: Object,
@@ -401,18 +421,24 @@ const {
} = useOverviewView(props)
const activeDashboard = computed(() => {
if (props.dashboard === 'commercial') return 'commercial'
if (props.dashboard === 'value') return 'value'
if (props.dashboard === 'system') return 'system'
if (props.dashboard === 'risk') return 'risk'
if (props.dashboard === 'digitalEmployee') return 'digitalEmployee'
return 'finance'
})
const activeKpiMetrics = computed(() => {
if (activeDashboard.value === 'commercial') return []
if (activeDashboard.value === 'value') return []
if (activeDashboard.value === 'system') return systemKpiMetrics.value
if (activeDashboard.value === 'digitalEmployee') return digitalEmployeeKpiMetrics.value
if (activeDashboard.value === 'risk') return riskKpiMetrics.value
return kpiMetrics.value
})
const activeDashboardLoading = computed(() => {
if (activeDashboard.value === 'commercial') return false
if (activeDashboard.value === 'value') return false
if (activeDashboard.value === 'system') {
return systemDashboardLoading.value
}
@@ -425,6 +451,8 @@ const activeDashboardLoading = computed(() => {
return financeDashboardLoading.value
})
const activeDashboardLoadingText = computed(() => {
if (activeDashboard.value === 'commercial') return '正在加载商业化管理与价值证明数据'
if (activeDashboard.value === 'value') return '正在加载经营价值看板数据'
if (activeDashboard.value === 'system') return '正在加载系统看板数据'
if (activeDashboard.value === 'digitalEmployee') return '正在加载数字员工看板数据'
if (activeDashboard.value === 'risk') return '正在加载风险看板数据'