feat: 指标卡支持跳转设置,支持携带查询组件的值 (#17161)

This commit is contained in:
王嘉豪
2025-10-13 13:30:10 +08:00
committed by GitHub
parent b7539c6941
commit 26acc7f074
7 changed files with 25 additions and 8 deletions

View File

@@ -211,7 +211,11 @@
<template v-if="state.linkJumpInfo.targetDvId">
<div class="jump-com-list">
<el-tabs size="small" v-model="state.activeCollapse">
<el-tab-pane :label="t('visualization.linkage_view')" name="view">
<el-tab-pane
v-if="!isIndicator"
:label="t('visualization.linkage_view')"
name="view"
>
</el-tab-pane>
<el-tab-pane
:label="t('visualization.with_filter_params')"
@@ -682,6 +686,7 @@ const state = reactive({
tempId: null,
initState: false,
viewId: null,
viewType: null,
name2Auto: [],
searchField: '',
searchFunction: '',
@@ -768,10 +773,13 @@ const initCurFilterFieldArray = componentDataCheck => {
})
}
const isIndicator = computed(() => 'indicator' === state.viewType)
const init = viewItem => {
state.initState = false
state.viewId = viewItem.id
state.activeCollapse = 'view'
state.viewType = viewItem.type
state.activeCollapse = isIndicator.value ? 'filter' : 'view'
const chartDetails = canvasViewInfo.value[state.viewId] as ChartObj
state.curJumpViewInfo = chartDetails
let checkAllAxisStr =
@@ -790,7 +798,9 @@ const init = viewItem => {
JSON.stringify(chartDetails.yAxisExt) +
JSON.stringify(chartDetails.drillFields)
checkJumpStr = checkAllAxisStr
} else if (['table-normal', 'table-info', 'table-pivot'].includes(chartDetails.type)) {
} else if (
['table-normal', 'table-info', 'table-pivot', 'indicator'].includes(chartDetails.type)
) {
checkJumpStr =
checkAllAxisStr + JSON.stringify(chartDetails.yAxis) + JSON.stringify(chartDetails.yAxisExt)
} else {
@@ -975,7 +985,9 @@ const dvNodeClick = data => {
if (data.leaf) {
state.curDataVWeight = data.weight
state.linkJumpInfo.targetViewInfoList = []
addLinkJumpField()
if (!isIndicator.value) {
addLinkJumpField()
}
getPanelViewList(data.id)
}
}

View File

@@ -2957,6 +2957,7 @@ export default {
publish: 'Publish',
freeze_top: 'Position frozen at the top',
indicator_linkage: 'Indicator card linkage only carries chart filtering parameters',
indicator_jump: 'Indicator card jump only carries chart filtering parameters',
gap_size: 'Gap Size',
small: 'Small',
middle: 'Medium',

View File

@@ -2875,6 +2875,7 @@ export default {
publish: '發佈',
freeze_top: '位置凍結在頂部',
indicator_linkage: '指標卡聯動僅攜帶圖表過濾參數',
indicator_jump: '指標卡跳轉僅攜帶圖表過濾參數',
gap_size: '間隙大小',
small: '小',
middle: '中',

View File

@@ -2884,6 +2884,7 @@ export default {
publish: '发布',
freeze_top: '位置冻结在顶部',
indicator_linkage: '指标卡联动仅携带图表过滤参数',
indicator_jump: '指标卡跳转仅携带图表过滤参数',
gap_size: '间隙大小',
small: '小',
middle: '中',

View File

@@ -167,7 +167,7 @@ const linkJumpSetOpen = () => {
}
//跳转设置需要先触发保存
canvasSave(() => {
linkJumpRef.value.dialogInit({ id: chart.value.id })
linkJumpRef.value.dialogInit({ id: chart.value.id, type: chart.value.type })
})
}
const linkageSetOpen = () => {

View File

@@ -16,7 +16,8 @@ export class IndicatorChartView extends AbstractChartView {
'indicator-name-selector',
'threshold',
'function-cfg',
'linkage'
'linkage',
'jump-set'
]
propertyInner: EditorPropertyInner = {
'background-overall-component': ['all'],

View File

@@ -443,8 +443,9 @@ const jumpClick = param => {
let dimension, jumpInfo, sourceInfo
// 如果有名称name 获取和name匹配的dimension 否则倒序取最后一个能匹配的
if (param.name) {
param.dimensionList.forEach(dimensionItem => {
if (dimensionItem.id === param.name || dimensionItem.value === param.name) {
const colList = [...param.dimensionList, ...param.quotaList]
colList.forEach(dimensionItem => {
if (dimensionItem.id === param.name || dimensionItem.name === param.name) {
dimension = dimensionItem
sourceInfo = param.viewId + '#' + dimension.id
jumpInfo = nowPanelJumpInfo.value[sourceInfo]