Commit 051a08bb77687ded7b61cb474e01f3b58729df27
1 parent
46c57d3f
fix(src/hooks/): 修复自定义日期选择器和图表或其他组件一起分组,联动失效问题
Showing
1 changed file
with
13 additions
and
17 deletions
1 | /** | 1 | /** |
2 | * 重写select下拉框联动 | 2 | * 重写select下拉框联动 |
3 | */ | 3 | */ |
4 | -import {toRaw, toRefs} from 'vue' | ||
5 | -import {CreateComponentType} from '@/packages/index.d' | 4 | +import {toRefs} from 'vue' |
5 | +import {CreateComponentGroupType, CreateComponentType} from '@/packages/index.d' | ||
6 | import {useChartEditStore} from '@/store/modules/chartEditStore/chartEditStore' | 6 | import {useChartEditStore} from '@/store/modules/chartEditStore/chartEditStore' |
7 | -import {customRequest} from "@/api/external/customRequest"; | ||
8 | -import {useFilterFn} from "@/hooks/external/useFilterFn"; | ||
9 | 7 | ||
10 | // 获取类型 | 8 | // 获取类型 |
11 | type ChartEditStoreType = typeof useChartEditStore | 9 | type ChartEditStoreType = typeof useChartEditStore |
@@ -27,26 +25,24 @@ export const useChartInteract = ( | @@ -27,26 +25,24 @@ export const useChartInteract = ( | ||
27 | fnOnEvent.forEach(async (item) => { | 25 | fnOnEvent.forEach(async (item) => { |
28 | const index = chartEditStore.fetchTargetIndex(item.interactComponentId) | 26 | const index = chartEditStore.fetchTargetIndex(item.interactComponentId) |
29 | if (index === -1) return | 27 | if (index === -1) return |
30 | - const {Params, Header} = toRefs(chartEditStore.componentList[index].request.requestParams) | ||
31 | - Object.keys(item.interactFn).forEach(key => { | 28 | + //支持分组 |
29 | + const target = chartEditStore.getComponentList?.reduce((prev: Array<CreateComponentType | CreateComponentGroupType>, acc) => { | ||
30 | + acc?.isGroup ? (prev = [...(acc?.groupList as CreateComponentGroupType[])]) : prev?.push(acc) | ||
31 | + return prev | ||
32 | + }, []) | ||
33 | + target?.forEach((targetItem)=>{ | ||
34 | + if(targetItem.id!==chartConfig.id){ | ||
35 | + const {Params, Header} = toRefs(targetItem.request.requestParams) | ||
36 | + Object.keys(item.interactFn).forEach(key => { | ||
32 | if (Params.value[key]) { | 37 | if (Params.value[key]) { |
33 | Params.value[key] = param[item.interactFn[key]] | 38 | Params.value[key] = param[item.interactFn[key]] |
34 | } | 39 | } |
35 | if (Header.value[key]) { | 40 | if (Header.value[key]) { |
36 | Header.value[key] = param[item.interactFn[key]] | 41 | Header.value[key] = param[item.interactFn[key]] |
37 | } | 42 | } |
38 | - }) | ||
39 | - const res = await customRequest(toRaw(chartEditStore.componentList[index].request)) | ||
40 | - if (res) { | ||
41 | - try { | ||
42 | - const filter = chartEditStore.componentList[index].filter | ||
43 | - const {value} = useFilterFn(filter, res) | ||
44 | - if (!value) return | ||
45 | - chartEditStore.componentList[index].option.dataset = value | ||
46 | - } finally { | ||
47 | - console.log | 43 | + }) |
48 | } | 44 | } |
49 | - } | 45 | + }) |
50 | }) | 46 | }) |
51 | } | 47 | } |
52 | 48 |