Commit 051a08bb77687ded7b61cb474e01f3b58729df27

Authored by fengwotao
1 parent 46c57d3f

fix(src/hooks/): 修复自定义日期选择器和图表或其他组件一起分组,联动失效问题

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