diff --git a/src/views/plan/EquipmentStatus.vue b/src/views/plan/EquipmentStatus.vue
index 27d04a5..7cc2235 100644
--- a/src/views/plan/EquipmentStatus.vue
+++ b/src/views/plan/EquipmentStatus.vue
@@ -902,6 +902,28 @@ const updateCharts = () => {
const totalNumberData = historyData.value.map(item => item.total_number);
+ // 准备销量数据,按日期聚合
+ let salesBoxCountData = [];
+ if (salesData.value && salesData.value.length > 0) {
+ // 创建一个映射,键为日期,值为当天总箱数
+ const salesBoxCountMap = {};
+ salesData.value.forEach(item => {
+ const date = new Date(item.date);
+ const dateStr = `${date.getMonth() + 1}/${date.getDate()}`;
+ if (!salesBoxCountMap[dateStr]) {
+ salesBoxCountMap[dateStr] = 0;
+ }
+ salesBoxCountMap[dateStr] += item.box_count;
+ });
+
+ // 将销量数据映射到时间轴上
+ salesBoxCountData = timeData.map(timeStr => {
+ // 从时间字符串中提取日期部分(去掉时间部分)
+ const dateStr = timeStr.split(' ')[0];
+ return salesBoxCountMap[dateStr] || 0;
+ });
+ }
+
const totalNumberOption = {
title: {
text: '总箱数变化趋势',
@@ -911,12 +933,24 @@ const updateCharts = () => {
}
},
tooltip: {
- trigger: 'axis'
+ trigger: 'axis',
+ formatter: function(params) {
+ let result = params[0].name + '
';
+ params.forEach(param => {
+ result += `${param.seriesName}: ${param.value} 箱
`;
+ });
+ return result;
+ }
+ },
+ legend: {
+ data: ['生产箱数', '销量箱数'],
+ top: 30
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
+ top: 60,
containLabel: true
},
xAxis: {
@@ -930,17 +964,29 @@ const updateCharts = () => {
type: 'value',
name: '箱数'
},
- series: [{
- data: totalNumberData,
- type: 'line',
- smooth: true,
- itemStyle: {
- color: '#409EFF'
+ series: [
+ {
+ name: '生产箱数',
+ data: totalNumberData,
+ type: 'line',
+ smooth: true,
+ itemStyle: {
+ color: '#409EFF'
+ },
+ areaStyle: {
+ opacity: 0.3
+ }
},
- areaStyle: {
- opacity: 0.3
+ {
+ name: '销量箱数',
+ data: salesBoxCountData,
+ type: 'line',
+ smooth: true,
+ itemStyle: {
+ color: '#E6A23C'
+ }
}
- }]
+ ]
};
totalNumberChart.setOption(totalNumberOption, true); // true表示不合并选项
}
@@ -954,6 +1000,28 @@ const updateCharts = () => {
const totalNetWeightData = historyData.value.map(item => item.total_net_weight);
+ // 准备销量数据,按日期聚合
+ let salesWeightData = [];
+ if (salesData.value && salesData.value.length > 0) {
+ // 创建一个映射,键为日期,值为当天总重量
+ const salesWeightMap = {};
+ salesData.value.forEach(item => {
+ const date = new Date(item.date);
+ const dateStr = `${date.getMonth() + 1}/${date.getDate()}`;
+ if (!salesWeightMap[dateStr]) {
+ salesWeightMap[dateStr] = 0;
+ }
+ salesWeightMap[dateStr] += item.weight;
+ });
+
+ // 将销量数据映射到时间轴上
+ salesWeightData = timeData.map(timeStr => {
+ // 从时间字符串中提取日期部分(去掉时间部分)
+ const dateStr = timeStr.split(' ')[0];
+ return salesWeightMap[dateStr] || 0;
+ });
+ }
+
const totalNetWeightOption = {
title: {
text: '总净重变化趋势',
@@ -965,14 +1033,22 @@ const updateCharts = () => {
tooltip: {
trigger: 'axis',
formatter: function(params) {
- return params[0].name + '
' +
- params[0].seriesName + ': ' + params[0].value + 'kg';
+ let result = params[0].name + '
';
+ params.forEach(param => {
+ result += `${param.seriesName}: ${param.value} kg
`;
+ });
+ return result;
}
},
+ legend: {
+ data: ['生产净重', '销量净重'],
+ top: 30
+ },
grid: {
left: '3%',
right: '4%',
bottom: '3%',
+ top: 60,
containLabel: true
},
xAxis: {
@@ -986,18 +1062,29 @@ const updateCharts = () => {
type: 'value',
name: '重量(kg)'
},
- series: [{
- name: '总净重',
- data: totalNetWeightData,
- type: 'line',
- smooth: true,
- itemStyle: {
- color: '#67C23A'
+ series: [
+ {
+ name: '生产净重',
+ data: totalNetWeightData,
+ type: 'line',
+ smooth: true,
+ itemStyle: {
+ color: '#67C23A'
+ },
+ areaStyle: {
+ opacity: 0.3
+ }
},
- areaStyle: {
- opacity: 0.3
+ {
+ name: '销量净重',
+ data: salesWeightData,
+ type: 'line',
+ smooth: true,
+ itemStyle: {
+ color: '#F56C6C'
+ }
}
- }]
+ ]
};
totalNetWeightChart.setOption(totalNetWeightOption, true); // true表示不合并选项
}
@@ -1011,6 +1098,28 @@ const updateCharts = () => {
const totalGrossWeightData = historyData.value.map(item => item.total_gross_weight);
+ // 准备销量数据,按日期聚合
+ let salesWeightData = [];
+ if (salesData.value && salesData.value.length > 0) {
+ // 创建一个映射,键为日期,值为当天总重量
+ const salesWeightMap = {};
+ salesData.value.forEach(item => {
+ const date = new Date(item.date);
+ const dateStr = `${date.getMonth() + 1}/${date.getDate()}`;
+ if (!salesWeightMap[dateStr]) {
+ salesWeightMap[dateStr] = 0;
+ }
+ salesWeightMap[dateStr] += item.weight;
+ });
+
+ // 将销量数据映射到时间轴上
+ salesWeightData = timeData.map(timeStr => {
+ // 从时间字符串中提取日期部分(去掉时间部分)
+ const dateStr = timeStr.split(' ')[0];
+ return salesWeightMap[dateStr] || 0;
+ });
+ }
+
const totalGrossWeightOption = {
title: {
text: '总毛重变化趋势',
@@ -1022,14 +1131,22 @@ const updateCharts = () => {
tooltip: {
trigger: 'axis',
formatter: function(params) {
- return params[0].name + '
' +
- params[0].seriesName + ': ' + params[0].value + 'kg';
+ let result = params[0].name + '
';
+ params.forEach(param => {
+ result += `${param.seriesName}: ${param.value} kg
`;
+ });
+ return result;
}
},
+ legend: {
+ data: ['生产毛重', '销量重量'],
+ top: 30
+ },
grid: {
left: '3%',
right: '4%',
bottom: '3%',
+ top: 60,
containLabel: true
},
xAxis: {
@@ -1043,18 +1160,29 @@ const updateCharts = () => {
type: 'value',
name: '重量(kg)'
},
- series: [{
- name: '总毛重',
- data: totalGrossWeightData,
- type: 'line',
- smooth: true,
- itemStyle: {
- color: '#E6A23C'
+ series: [
+ {
+ name: '生产毛重',
+ data: totalGrossWeightData,
+ type: 'line',
+ smooth: true,
+ itemStyle: {
+ color: '#E6A23C'
+ },
+ areaStyle: {
+ opacity: 0.3
+ }
},
- areaStyle: {
- opacity: 0.3
+ {
+ name: '销量重量',
+ data: salesWeightData,
+ type: 'line',
+ smooth: true,
+ itemStyle: {
+ color: '#F56C6C'
+ }
}
- }]
+ ]
};
totalGrossWeightChart.setOption(totalGrossWeightOption, true); // true表示不合并选项
}