mirror of
https://gitee.com/dromara/go-view.git
synced 2025-04-06 03:58:04 +08:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { toRefs } from 'vue'
|
|
import { CreateComponentType } from '@/packages/index.d'
|
|
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
|
|
|
|
// 获取类型
|
|
type ChartEditStoreType = typeof useChartEditStore
|
|
|
|
// Params 参数修改触发 api 更新图表请求
|
|
export const useChartInteract = (
|
|
chartConfig: CreateComponentType,
|
|
useChartEditStore: ChartEditStoreType,
|
|
param: { [name: string]: string },
|
|
onEvent: string
|
|
) => {
|
|
const chartEditStore = useChartEditStore()
|
|
const { interactEvents } = chartConfig.events
|
|
|
|
const fnOnEvent = interactEvents.filter(item => {
|
|
return item.interactOn === onEvent
|
|
})
|
|
|
|
fnOnEvent.forEach(item => {
|
|
const index = chartEditStore.fetchTargetIndex(item.interactComponents)
|
|
if (index !== -1) return
|
|
const { Params, Header } = toRefs(chartEditStore.componentList[index].request.requestParams)
|
|
Object.keys(item.interactFn).forEach(key => {
|
|
if (Params.value[key]) {
|
|
Params.value[key] = param[item.interactFn[key]]
|
|
}
|
|
if (Header.value[key]) {
|
|
Header.value[key] = param[item.interactFn[key]]
|
|
}
|
|
})
|
|
})
|
|
}
|