feat: 更新公共api对组件动态绑定交互

This commit is contained in:
Ming 2023-06-07 15:03:59 +08:00
parent 20fa9e4afe
commit 9485931f5d

View File

@ -1,4 +1,4 @@
import { toRaw } from 'vue' import { toRaw, watch, computed, ComputedRef } from 'vue'
import { customizeHttp } from '@/api/http' import { customizeHttp } from '@/api/http'
import { CreateComponentType } from '@/packages/index.d' import { CreateComponentType } from '@/packages/index.d'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
@ -20,7 +20,7 @@ const mittDataPondMap = new Map<string, DataPondMapType[]>()
// 创建单个数据项轮询接口 // 创建单个数据项轮询接口
const newPondItemInterval = ( const newPondItemInterval = (
requestGlobalConfig: RequestGlobalConfigType, requestGlobalConfig: RequestGlobalConfigType,
requestDataPondItem: RequestDataPondItemType, requestDataPondItem: ComputedRef<RequestDataPondItemType>,
dataPondMapItem?: DataPondMapType[] dataPondMapItem?: DataPondMapType[]
) => { ) => {
if (!dataPondMapItem) return if (!dataPondMapItem) return
@ -31,8 +31,7 @@ const newPondItemInterval = (
// 请求 // 请求
const fetchFn = async () => { const fetchFn = async () => {
try { try {
const res = await customizeHttp(toRaw(requestDataPondItem.dataPondRequestConfig), toRaw(requestGlobalConfig)) const res = await customizeHttp(toRaw(requestDataPondItem.value.dataPondRequestConfig), toRaw(requestGlobalConfig))
if (res) { if (res) {
try { try {
// 遍历更新回调函数 // 遍历更新回调函数
@ -49,11 +48,24 @@ const newPondItemInterval = (
} }
} }
watch(
() => requestDataPondItem.value.dataPondRequestConfig.requestParams.Params,
() => {
fetchFn()
},
{
immediate: false,
deep: true
}
)
// 立即调用 // 立即调用
fetchFn() fetchFn()
const targetInterval = requestDataPondItem.dataPondRequestConfig.requestInterval
const targetUnit = requestDataPondItem.dataPondRequestConfig.requestIntervalUnit const targetInterval = requestDataPondItem.value.dataPondRequestConfig.requestInterval
const targetUnit = requestDataPondItem.value.dataPondRequestConfig.requestIntervalUnit
const globalRequestInterval = requestGlobalConfig.requestInterval const globalRequestInterval = requestGlobalConfig.requestInterval
const globalUnit = requestGlobalConfig.requestIntervalUnit const globalUnit = requestGlobalConfig.requestIntervalUnit
@ -96,13 +108,16 @@ export const useChartDataPondFetch = () => {
} }
// 初始化数据池 // 初始化数据池
const initDataPond = (requestGlobalConfig: RequestGlobalConfigType) => { const initDataPond = (useChartEditStore: ChartEditStoreType) => {
const { requestDataPond } = requestGlobalConfig const { requestGlobalConfig } = useChartEditStore()
const chartEditStore = useChartEditStore()
// 根据 mapId 查找对应的数据池配置 // 根据 mapId 查找对应的数据池配置
for (let pondKey of mittDataPondMap.keys()) { for (let pondKey of mittDataPondMap.keys()) {
const requestDataPondItem = requestDataPond.find(item => item.dataPondId === pondKey) const requestDataPondItem = computed(() => {
return requestGlobalConfig.requestDataPond.find(item => item.dataPondId === pondKey)
}) as ComputedRef<RequestDataPondItemType>
if (requestDataPondItem) { if (requestDataPondItem) {
newPondItemInterval(requestGlobalConfig, requestDataPondItem, mittDataPondMap.get(pondKey)) newPondItemInterval(chartEditStore.requestGlobalConfig, requestDataPondItem, mittDataPondMap.get(pondKey))
} }
} }
} }