// 管理设备分组和模型映射，处理布局参数
import { ref } from 'vue'
import { getPageConfig } from '@/api/dcs/configurePage'

export function useEquipmentLayout(pageCode) {
    const deviceConfigGroup = ref({})// 设备配置分组
    const pipeConfig= ref({})// 管道配置
    const modelMap = ref({})
    const pageParams = ref({})

    // 从 deviceConfigGroup 生成 pageParams
    const generatePageParams = (group) => {
        const result = {}
        for (const groupKey in group) {
            const devices = group[groupKey]
            const codes = devices
                .map(item => item.code)
                .filter(code => code) // 过滤 null/空值
            if (codes.length) {
                result[groupKey] = codes
            }
        }
        return result
    }

    // 获取页面配置
    async function fetchPageConfig(pageCode) {
        try {
            const res = await getPageConfig(pageCode)
            console.log('获取页面配置成功:', res)
            deviceConfigGroup.value = res.data.deviceConfigGroup// 设备分组
            modelMap.value = res.data.modelMap// 模型映射
            pipeConfig.value = res.data.pipeConfig// 管道配置
            pageParams.value = generatePageParams(res.data.deviceConfigGroup)// 页面参数
            // console.log('pipeConfig:', pipeConfig.value)
        } catch (error) {
            console.error('获取页面配置失败:', error)
        }
    }

    return {
        pipeConfig,// 管道配置
        deviceConfigGroup,// 设备配置分组
        modelMap,// 模型映射
        pageParams,// 页面参数
        fetchPageConfig,
        generatePageParams,
    }
}
