|
@@ -142,6 +142,34 @@ const useChartInteractions = (props: {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ const addGlobalVariables = (
|
|
|
+ clickFilters,
|
|
|
+ globalFilters
|
|
|
+ ) => {
|
|
|
+ // 根据查询变量(控制器),对点击对象中的字段进行过滤 by zj
|
|
|
+ const queryVars = clickFilters.map(v => v.column);
|
|
|
+ const crossQueryVariables = globalFilters?.filter(f => {
|
|
|
+ if(queryVars.join(',').indexOf(f.column.join(','))<0) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }) || [];
|
|
|
+ // 如果存在没有包含的查询变量,则获取查询(控制器)变量,确保控制器参数可传递 by zj
|
|
|
+ if(crossQueryVariables?.length>0) {
|
|
|
+ const crossQueryVars = crossQueryVariables.map(v => {
|
|
|
+ return {
|
|
|
+ column: v.column?.[0],
|
|
|
+ values: v.values,
|
|
|
+ sqlOperator: v.sqlOperator,
|
|
|
+ isMatchByName: true
|
|
|
+ }
|
|
|
+ });
|
|
|
+ crossQueryVars.forEach(v => {
|
|
|
+ clickFilters.push(v);
|
|
|
+ })
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
const handleDrillThroughEvent = useCallback(
|
|
|
({
|
|
|
drillOption,
|
|
@@ -204,6 +232,10 @@ const useChartInteractions = (props: {
|
|
|
const relId = rule?.[rule.category!]?.relId;
|
|
|
|
|
|
if (rule.category === InteractionCategory.JumpToChart) {
|
|
|
+
|
|
|
+ // 添加全局变量
|
|
|
+ addGlobalVariables(clickFilters, globalFilters);
|
|
|
+
|
|
|
const urlFilters = getJumpOperationFiltersByInteractionRule(
|
|
|
clickFilters,
|
|
|
sourceChartFilters,
|
|
@@ -237,29 +269,9 @@ const useChartInteractions = (props: {
|
|
|
getVariablesByInteractionRule(queryVariables, rule),
|
|
|
);
|
|
|
|
|
|
- // 根据查询变量(控制器),对点击对象中的字段进行过滤 by zj
|
|
|
- const queryVars = clickFilters.map(v => v.column);
|
|
|
- const crossQueryVariables = globalFilters?.filter(f => {
|
|
|
- if(queryVars.join(',').indexOf(f.column.join(','))<0) {
|
|
|
- return true
|
|
|
- }
|
|
|
- return false
|
|
|
- }) || [];
|
|
|
- // 如果存在没有包含的查询变量,则获取查询(控制器)变量,确保控制器参数可传递 by zj
|
|
|
- if(crossQueryVariables?.length>0) {
|
|
|
- const crossQueryVars = crossQueryVariables.map(v => {
|
|
|
- return {
|
|
|
- column: v.column?.[0],
|
|
|
- values: v.values,
|
|
|
- sqlOperator: v.sqlOperator,
|
|
|
- isMatchByName: true
|
|
|
- }
|
|
|
- });
|
|
|
- crossQueryVars.forEach(v => {
|
|
|
- clickFilters.push(v);
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
+ // 添加全局变量
|
|
|
+ addGlobalVariables(clickFilters, globalFilters);
|
|
|
+ debugger
|
|
|
const urlFilters = getJumpFiltersByInteractionRule(
|
|
|
clickFilters,
|
|
|
sourceChartNonAggFilters,
|