chen.lin
1 天以前 953fa1c73524d39663ea3ee2031df1f1a6284fe2
站点信息-可跨库区显示
1个文件已修改
22 ■■■■ 已修改文件
rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/basicInfo/basStation/CrossZoneAreaField.jsx
@@ -20,31 +20,32 @@
    };
    const fetchAreaNames = async () => {
        if (!record?.areas || record.areas.length === 0) return;
        const areasData = record?.areaIds || record?.areas;
        if (!areasData || areasData.length === 0) return;
        setLoading(true);
        try {
            // 提取排序信息和ID
            // Old format: [1, 2, 3] (array of integers)
            // New format: [{id: 1, sort: 1}, {id: 2, sort: 2}] (array of objects)
            const isObjectArray = record.areas.length > 0 &&
                typeof record.areas[0] === 'object' &&
                record.areas[0] !== null &&
                'id' in record.areas[0];
            const isObjectArray = areasData.length > 0 &&
                typeof areasData[0] === 'object' &&
                areasData[0] !== null &&
                'id' in areasData[0];
            
            let areaIds = [];
            let sortMap = new Map(); // 存储 id -> sort 的映射
            
            if (isObjectArray) {
                // 对象数组格式,提取ID和排序信息
                areaIds = record.areas.map(area => {
                areaIds = areasData.map(area => {
                    const id = area.id;
                    sortMap.set(id, area.sort || 0);
                    return id;
                });
            } else {
                // 纯ID数组格式
                areaIds = record.areas.map(id => Number(id));
                areaIds = areasData.map(id => Number(id));
            }
            
            const res = await request.post(`/warehouseAreas/many/${areaIds.join(',')}`);
@@ -70,7 +71,8 @@
    };
    useEffect(() => {
        if (record?.areas && record.areas.length !== 0 && record.areas.length > 0) {
        const areasData = record?.areaIds || record?.areas;
        if (areasData && areasData.length > 0) {
            fetchAreaNames();
        }
    }, [record]);
@@ -101,10 +103,10 @@
                        label={`+${areaNames.length - 1}`}
                    />
                )}
                {areaNames.length === 0 && record.areas && record.areas.length > 0 && (
                {areaNames.length === 0 && (record?.areaIds || record?.areas) && (record?.areaIds || record?.areas).length > 0 && (
                    <Chip
                        size="small"
                        label={`${record.areas.length} 个区域`}
                        label={`${(record?.areaIds || record?.areas).length} 个区域`}
                    />
                )}
            </Stack>