diff --git a/core/core-frontend/src/assets/svg/filter.svg b/core/core-frontend/src/assets/svg/filter.svg new file mode 100644 index 0000000000..d533bd3f2a --- /dev/null +++ b/core/core-frontend/src/assets/svg/filter.svg @@ -0,0 +1 @@ + diff --git a/core/core-frontend/src/components/visualization/OuterParamsSet.vue b/core/core-frontend/src/components/visualization/OuterParamsSet.vue index 534a74187d..828c9d2786 100644 --- a/core/core-frontend/src/components/visualization/OuterParamsSet.vue +++ b/core/core-frontend/src/components/visualization/OuterParamsSet.vue @@ -342,17 +342,18 @@ const getPanelViewList = dvId => { } // 增加过滤组件匹配 componentData.value.forEach(componentItem => { - if (componentItem.type === 'custom') { - state.currentLinkPanelViewArray.push({ - id: componentItem.id, - type: 'filter', - name: componentItem.options.attrs.title - ? componentItem.options.attrs.title - : state.widgetSubjectsTrans[componentItem.serviceName] + if (componentItem.component === 'VQuery') { + componentItem.propValue.forEach(filterItem => { + state.currentLinkPanelViewArray.push({ + id: filterItem.id, + type: 'filter', + name: filterItem.name, + title: filterItem.name + }) + state.viewIdFieldArrayMap[filterItem.id] = [ + { id: 'empty', name: t('visualization.filter_no_select') } + ] }) - state.viewIdFieldArrayMap[componentItem.id] = [ - { id: 'empty', name: t('visualization.filter_no_select') } - ] } }) }) diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 8092ddf420..5b3b54cfa2 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -1762,6 +1762,7 @@ export default { column_name: '字段名称' }, visualization: { + filter_no_select: '过滤组件无需选择', forbidden_copy: '当前组件不允许复制', url_check_error: '跳转错误,URL不合法', view_style: '图表样式', diff --git a/core/core-frontend/src/store/modules/data-visualization/dvMain.ts b/core/core-frontend/src/store/modules/data-visualization/dvMain.ts index 0f5137123c..e7379baa27 100644 --- a/core/core-frontend/src/store/modules/data-visualization/dvMain.ts +++ b/core/core-frontend/src/store/modules/data-visualization/dvMain.ts @@ -820,7 +820,7 @@ export const dvMainStore = defineStore('dataVisualization', { const trackInfo = this.nowPanelOuterParamsInfo for (let index = 0; index < curComponentData.length; index++) { const element = curComponentData[index] - if (element.component !== 'UserView') continue + if (!['UserView', 'VQuery'].includes(element.component)) continue const currentFilters = element.outerParamsFilters || [] // 外部参数信息 // 外部参数 可能会包含多个参数 @@ -869,6 +869,14 @@ export const dvMainStore = defineStore('dataVisualization', { // !filterExist && vValid && currentFilters.push(condition) currentFilters.push(condition) } + if (element.component === 'VQuery') { + element.propValue.forEach(filterItem => { + if (filterItem.id === targetViewId) { + filterItem.selectValue = paramValueStr + filterItem.defaultValue = paramValueStr + } + }) + } }) if (element.component === 'UserView') { element['outerParamsFilters'] = currentFilters