feat(kb): KnowledgePanel 接线 6 页 + /maps/canvas 错配消除
ci/woodpecker/push/main Pipeline was successful

- /budget /kpis /deviations /predict /maps-review /alerts 六页按 related_page 挂载 KnowledgePanel
- /maps/canvas 页 prop 由 /maps 更正为 /maps/canvas(与表值一致,消除恒取空)
- 匹配口径走 backend/app/utils/route_key.py(origin/main 已有,KBFF-v11c 精确等值)
- 验证:本地产物 CDP 冒烟 18/18(六页 dom=api=1;/maps 命中 0 负对照)
This commit is contained in:
project-bot
2026-10-19 10:23:12 +08:00
parent 0fc2c6109e
commit c92dbab96a
7 changed files with 19 additions and 1 deletions
+3
View File
@@ -360,6 +360,8 @@
<el-button type="primary" @click="savePlan" :loading="savingPlan">保存</el-button>
</template>
</MyDialog>
<!-- KBFF-v1.1: 按 related_page 关联知识接线 · /alerts -->
<KnowledgePanel related-page="/alerts" />
</div>
</template>
@@ -372,6 +374,7 @@ import BotSourceTag from '../components/BotSourceTag.vue'
import RiskCell from '../components/charts/RiskCell.vue'
import { sessionEntityName } from '../utils/entity'
import MyDialog from '../components/MyDialog.vue'
import KnowledgePanel from '../components/KnowledgePanel.vue'
const route = useRoute()
const activeTab = ref((route.meta?.tab as string) || 'alerts')
+3
View File
@@ -769,6 +769,8 @@
</el-form>
<template #footer><el-button @click="showDerivationRuleDialog = false">取消</el-button><el-button type="primary" @click="saveDerivationRule">保存</el-button></template>
</MyDialog>
<!-- KBFF-v1.1: 按 related_page 关联知识接线 · /budget -->
<KnowledgePanel related-page="/budget" />
</div>
</div>
</template>
@@ -778,6 +780,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import { budgetApi, kpiApi, mapApi, actionPlanApi } from '../api/index'
import MyDialog from '../components/MyDialog.vue'
import DriverFactorBudget from '../components/DriverFactorBudget.vue'
import KnowledgePanel from '../components/KnowledgePanel.vue'
const activeTab = ref('input')
const currentYear = new Date().getFullYear()
@@ -184,6 +184,8 @@
<!-- 无数据提示 -->
<el-empty v-if="!loading && hierarchyData.length === 0 && reportData.length === 0" description="暂无差异分析数据,请先在预算管理中录入预算" style="padding:40px 0;" />
<!-- KBFF-v1.1: 按 related_page 关联知识接线 · /deviations -->
<KnowledgePanel related-page="/deviations" />
</div>
</template>
@@ -191,6 +193,7 @@
import { ref, computed, onMounted, watch } from 'vue'
import { ElMessage } from 'element-plus'
import { budgetApi, kpiApi } from '../api/index'
import KnowledgePanel from '../components/KnowledgePanel.vue'
const currentYear = new Date().getFullYear()
const yearOptions = computed(() => {
+3
View File
@@ -398,6 +398,8 @@
<el-button type="primary" :disabled="!selectedTemplate" @click="doInstantiate">从模板创建</el-button>
</template>
</MyDialog>
<!-- KBFF-v1.1: 按 related_page 关联知识接线 · /kpis -->
<KnowledgePanel related-page="/kpis" />
</div>
</template>
@@ -407,6 +409,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import { kpiApi, templateApi, dashboardApi, userApi, orgApi } from '../api/index'
import MyDialog from '../components/MyDialog.vue'
import { useFormGuard, trackDialogForm } from '../composables/useFormGuard'
import KnowledgePanel from '../components/KnowledgePanel.vue'
// ── 数据 ──
const kpis = ref<any[]>([])
+1 -1
View File
@@ -185,7 +185,7 @@
</div>
<!-- P1-3: 关联知识点 -->
<div style="margin-top:12px;">
<KnowledgePanel related-page="/maps" />
<KnowledgePanel related-page="/maps/canvas" />
</div>
</template>
+3
View File
@@ -340,6 +340,8 @@
</el-timeline-item>
</el-timeline>
</MyDialog>
<!-- KBFF-v1.1: 按 related_page 关联知识接线 · /maps-review -->
<KnowledgePanel related-page="/maps-review" />
</div>
</template>
@@ -349,6 +351,7 @@ import { useRoute, useRouter } from "vue-router"
import { ElMessage } from "element-plus"
import api from "../api/index"
import MyDialog from '../components/MyDialog.vue'
import KnowledgePanel from '../components/KnowledgePanel.vue'
const route = useRoute()
const $router = useRouter()
+3
View File
@@ -434,6 +434,8 @@
<CostIntelligence />
</el-tab-pane>
</el-tabs>
<!-- KBFF-v1.1: 按 related_page 关联知识接线 · /predict -->
<KnowledgePanel related-page="/predict" />
</div>
</template>
@@ -442,6 +444,7 @@ import { ref, nextTick } from 'vue'
import { ElMessage } from 'element-plus'
import { predictApi } from '../api/index'
import CostIntelligence from './CostIntelligence.vue'
import KnowledgePanel from '../components/KnowledgePanel.vue'
const activeTab = ref('cvp')