// 模拟数据生成器 const MockData = { // 生成随机数 random: (min, max) => Math.floor(Math.random() * (max - min + 1) + min), // 生成随机小数 randomFloat: (min, max, decimals = 2) => { const str = (Math.random() * (max - min) + min).toFixed(decimals); return parseFloat(str); }, // 生成时间序列数据 generateTimeData: (count = 7) => { const now = new Date(); const dates = []; const values = []; for(let i = count - 1; i >= 0; i--) { const date = new Date(now); date.setDate(date.getDate() - i); dates.push(date.toLocaleDateString('zh-CN', {month: 'numeric', day: 'numeric'})); values.push(MockData.randomFloat(75, 98, 1)); } return {dates, values}; }, // 生成设备状态数据 getEquipmentStatus: () => { const status = ['运行', '停机', '故障', '维护']; const colors = ['#52c41a', '#faad14', '#ff4d4f', '#1890ff']; const equipmentTypes = ['轮胎成型机', '硫化机', '检测设备', '输送设备']; return { status: status[MockData.random(0, 3)], color: colors[MockData.random(0, 3)], temperature: MockData.random(160, 190), pressure: (MockData.random(20, 28) / 10).toFixed(1), speed: MockData.random(1000, 1500) }; }, // 生成工单数据 getOrders: () => { const orders = []; const productTypes = ['A180', 'B220', 'C350', 'D420', 'E550']; const currentDate = new Date(); for(let i = 0; i < 10; i++) { orders.push({ id: `WO-${currentDate.getFullYear()}${String(i+1).padStart(4, '0')}`, model: productTypes[MockData.random(0, productTypes.length - 1)], planned: MockData.random(1000, 5000), completed: MockData.random(0, 1000), status: MockData.random(1, 10) > 8 ? 'delayed' : 'normal' }); } return orders; }, // 生成故障数据 getFaults: () => { const faults = []; const equipment = ['轮胎成型机', '硫化机', '检测设备', '输送设备']; const codes = { 'E001': '温度过高', 'E002': '压力异常', 'E003': '传感器故障', 'E004': '电机过载', 'E005': '通信中断' }; const codesList = Object.keys(codes); for(let i = 0; i < MockData.random(2, 5); i++) { faults.push({ equipment: equipment[MockData.random(0, 3)], code: `${codesList[MockData.random(0, codesList.length - 1)]} - ${codes[codesList[MockData.random(0, codesList.length - 1)]]}`, time: new Date(Date.now() - MockData.random(0, 3600000)).toLocaleTimeString(), status: MockData.random(1, 10) > 5 ? '处理中' : '待处理' }); } return faults; }, // 生成生产效率数据 getEfficiencyData: () => { const timeData = MockData.generateTimeData(7); return { dates: timeData.dates, values: timeData.values }; }, // 生成质量问题数据 getQualityIssues: () => { const issues = [ { name: '表面划痕', category: '外观缺陷' }, { name: '尺寸偏差', category: '规格问题' }, { name: '材质不合格', category: '材料问题' }, { name: '组装错误', category: '装配问题' }, { name: '外观瑕疵', category: '外观缺陷' }, { name: '零件缺失', category: '装配问题' }, { name: '密封不良', category: '功能问题' } ]; return issues.map(issue => ({ name: issue.name, value: MockData.random(10, 100), category: issue.category })); } };