import React, { useEffect, useState, useMemo } from 'react'; import dynamic from 'next/dynamic'; const Liquid = dynamic(() => import('@ant-design/plots').then(({ Liquid }) => Liquid), { ssr: false } ); const RingProgress = dynamic(() => import('@ant-design/plots').then(({ RingProgress }) => RingProgress), { ssr: false } ); const Progress = dynamic(() => import('@ant-design/plots').then(({ Progress }) => Progress), { ssr: false } ); const Line = dynamic(() => import('@ant-design/plots').then(({ Line }) => Line), { ssr: false } ); import { List, Carousel, Cascader, Skeleton, Spin } from 'antd'; import _ from 'lodash'; import { getTimeRate, getAbnlException, getSevenQualifiedRate, getOpByRouterLine, getOrganization, } from '../../../reportUtils/getHomePageData'; import homecss from '../../../styles/homecss.module.css'; function HomePage() { let [loading, setLoading] = useState(false); // 工厂选择 let [workShops, setWorkShops] = useState([]); // 级联选择框的数据存储 let [workShopValue, setWorkShopValue] = useState([]); // 级联选择工作中心 let [caWorkCenterCode, setCaWorkCenterCode] = useState(''); // 级联选择产线 let [caRouterLineCode, setCaRouterLineCode] = useState(''); // 水波图,柱形图,环形图 let [timeRate, setTimeRate] = useState({}); // 异常消息 let [abnlException, setAbnlException] = useState({ equip: [], quality: [], prodexec: [], }); let [exceptions, setExceptions] = useState([]); let [currentExceptions, setCurrentExceptions] = useState([]); //存储工序消息 let [opData, setOpdata] = useState([]); // 质量合格率 let [qualifiedRate, setQualifiedRate] = useState([]); // 页面初始化加载 useEffect(() => { getOrganization().then(data => { if (data.length > 0) { let defaultOrg = {}; for (let i = 0; i < data.length; i++) { if ( data[i]['children'] && data[i]['children'].length === 0 ) { data[i]['isLeaf'] = false; } if (data[i]['defaultWorkCenter']) { defaultOrg = data[i]; } } let defaultOrgValue = []; if (defaultOrg['defaultWorkCenter']) { defaultOrgValue.push(defaultOrg['value']); let child = defaultOrg['children']; let flag = true; for (let i = 0; i < child.length; i++) { if (child[i]['defaultRoute'] && flag) { flag = false; defaultOrgValue.push(child[i]['value']); } } } setWorkShops(data); setWorkShopValue(defaultOrgValue); } }); }, []); useEffect(() => { let workCenterCode = ''; let routerLineCode = ''; if (workShopValue.length > 0) { workCenterCode = workShopValue[0]; setOpdata([]); getTimeRate(workCenterCode).then(data => { if (data) { for (let key in data) { if (data[key] == 1 || data[key] == 0) { data[key] = parseInt(data[key]); } else { data[key] = parseFloat(data[key].toFixed(3)); } } setTimeRate(data); } }); getAbnlException(workCenterCode).then(data => { if (data) { let exceptions = { equip: [], quality: [], prodexec: [], }; for (let i = 0; i < data.length; i++) { if (data[i].typeException === 'equip') { exceptions['equip'].push(data[i]); } else if (data[i].typeException === 'quality') { exceptions['quality'].push(data[i]); } else { exceptions['prodexec'].push(data[i]); } } setExceptions(data); setCurrentExceptions(data); setAbnlException(exceptions); } }); getSevenQualifiedRate(workCenterCode).then(data => { if (data) { let rates = []; for (let key in data) { rates.push({ month: key, value: data[key], }); } setQualifiedRate(rates); } }); if (workShopValue.length === 2) { setLoading(true); routerLineCode = workShopValue[1]; getOpByRouterLine(routerLineCode).then(data => { setLoading(false); if (data && data.length > 0) { setOpdata(data); } else { setOpdata([]); } }); } } else { setQualifiedRate([]); setOpdata([]); setCurrentExceptions([]); setExceptions([]); setTimeRate({}); setAbnlException({ equip: [], quality: [], prodexec: [], }); } }, [workShopValue]); const clickException = type => { let exceptionData = []; if (type === 'all') { exceptionData = exceptions; } else if (type === 'equip') { exceptionData = abnlException['equip']; } else if (type === 'quality') { exceptionData = abnlException['quality']; } else { exceptionData = abnlException['prodexec']; } setCurrentExceptions(exceptionData); }; const factoryChange = (value, selectedOptions) => { let currentValue = []; if (value) { currentValue = value; } console.log(currentValue); setWorkShopValue(currentValue); }; // 用来进行异步加载 /* const loadData = selectedOptions => { const targetOption = selectedOptions[selectedOptions.length - 1]; const { value = '' } = targetOption; targetOption.loading = true; getRouterLineByFactory(value).then(data => { targetOption.loading = false; let children = []; if (data.length > 0) { for (let i = 0; i < data.length; i++) { children.push({ value: data[i].code, label: data[i].name, }); } } targetOption.children = children; setWorkShops([...workShops]); }); }; */ return (