From dd4b7e045a35b6ce25e3d8f070cd919fd642e1a7 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 30 May 2026 13:23:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(mes):=20=E8=BF=81=E7=A7=BB=20home=20?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=EF=BC=88=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/mes/home/data.ts | 61 ------------------- .../mes/home/modules/production-trend.vue | 2 +- .../mes/home/modules/work-order-chart.vue | 3 +- apps/web-ele/src/views/mes/home/data.ts | 61 ------------------- .../mes/home/modules/production-trend.vue | 2 +- .../mes/home/modules/work-order-chart.vue | 3 +- 6 files changed, 6 insertions(+), 126 deletions(-) diff --git a/apps/web-antd/src/views/mes/home/data.ts b/apps/web-antd/src/views/mes/home/data.ts index 381016f1c..eaa1f27e7 100644 --- a/apps/web-antd/src/views/mes/home/data.ts +++ b/apps/web-antd/src/views/mes/home/data.ts @@ -26,64 +26,3 @@ export const WORK_ORDER_STATUS_COLOR_MAP: Record = { [MesProWorkOrderStatusEnum.FINISHED]: '#67C23A', // 已完成 [MesProWorkOrderStatusEnum.CANCELED]: '#F56C6C', // 已取消 }; - -/** 生产趋势折线图配置 */ -export function getProductionTrendChartOptions( - dates: string[], - quantities: number[], - qualified: number[], - unqualified: number[], -): any { - return { - grid: { bottom: 40, left: 50, right: 20, top: 20 }, - legend: { bottom: 0, data: ['产量', '合格品', '不良品'] }, - series: [ - { - areaStyle: { color: 'rgba(64,158,255,0.15)' }, - data: quantities, - itemStyle: { color: '#409EFF' }, - name: '产量', - smooth: true, - type: 'line', - }, - { - data: qualified, - itemStyle: { color: '#67C23A' }, - name: '合格品', - smooth: true, - type: 'line', - }, - { - data: unqualified, - itemStyle: { color: '#F56C6C' }, - name: '不良品', - smooth: true, - type: 'line', - }, - ], - tooltip: { axisPointer: { type: 'cross' }, trigger: 'axis' }, - xAxis: { boundaryGap: false, data: dates, type: 'category' }, - yAxis: { minInterval: 1, type: 'value' }, - }; -} - -/** 工单状态分布饼图配置 */ -export function getWorkOrderStatusChartOptions( - data: Array<{ itemStyle: { color: string }; name: string; value: number }>, -): any { - return { - legend: { bottom: 0, type: 'scroll' }, - series: [ - { - avoidLabelOverlap: true, - data, - emphasis: { label: { fontSize: 14, fontWeight: 'bold', show: true } }, - itemStyle: { borderColor: '#fff', borderRadius: 6, borderWidth: 2 }, - label: { formatter: '{b}\n{c}', show: true }, - radius: ['40%', '70%'], - type: 'pie', - }, - ], - tooltip: { formatter: '{b}: {c} ({d}%)', trigger: 'item' }, - }; -} diff --git a/apps/web-antd/src/views/mes/home/modules/production-trend.vue b/apps/web-antd/src/views/mes/home/modules/production-trend.vue index 6890abc1d..4441514c4 100644 --- a/apps/web-antd/src/views/mes/home/modules/production-trend.vue +++ b/apps/web-antd/src/views/mes/home/modules/production-trend.vue @@ -9,7 +9,7 @@ import { Card, RadioButton, RadioGroup } from 'ant-design-vue'; import { getProductionTrend } from '#/api/mes/home'; -import { getProductionTrendChartOptions } from '../data'; +import { getProductionTrendChartOptions } from '../chart-options'; defineOptions({ name: 'MesHomeProductionTrend' }); diff --git a/apps/web-antd/src/views/mes/home/modules/work-order-chart.vue b/apps/web-antd/src/views/mes/home/modules/work-order-chart.vue index 244bda2db..c04f63425 100644 --- a/apps/web-antd/src/views/mes/home/modules/work-order-chart.vue +++ b/apps/web-antd/src/views/mes/home/modules/work-order-chart.vue @@ -9,7 +9,8 @@ import { Card } from 'ant-design-vue'; import { getWorkOrderStatusDistribution } from '#/api/mes/home'; -import { getWorkOrderStatusChartOptions, WORK_ORDER_STATUS_COLOR_MAP } from '../data'; +import { getWorkOrderStatusChartOptions } from '../chart-options'; +import { WORK_ORDER_STATUS_COLOR_MAP } from '../data'; defineOptions({ name: 'MesHomeWorkOrderChart' }); diff --git a/apps/web-ele/src/views/mes/home/data.ts b/apps/web-ele/src/views/mes/home/data.ts index 381016f1c..eaa1f27e7 100644 --- a/apps/web-ele/src/views/mes/home/data.ts +++ b/apps/web-ele/src/views/mes/home/data.ts @@ -26,64 +26,3 @@ export const WORK_ORDER_STATUS_COLOR_MAP: Record = { [MesProWorkOrderStatusEnum.FINISHED]: '#67C23A', // 已完成 [MesProWorkOrderStatusEnum.CANCELED]: '#F56C6C', // 已取消 }; - -/** 生产趋势折线图配置 */ -export function getProductionTrendChartOptions( - dates: string[], - quantities: number[], - qualified: number[], - unqualified: number[], -): any { - return { - grid: { bottom: 40, left: 50, right: 20, top: 20 }, - legend: { bottom: 0, data: ['产量', '合格品', '不良品'] }, - series: [ - { - areaStyle: { color: 'rgba(64,158,255,0.15)' }, - data: quantities, - itemStyle: { color: '#409EFF' }, - name: '产量', - smooth: true, - type: 'line', - }, - { - data: qualified, - itemStyle: { color: '#67C23A' }, - name: '合格品', - smooth: true, - type: 'line', - }, - { - data: unqualified, - itemStyle: { color: '#F56C6C' }, - name: '不良品', - smooth: true, - type: 'line', - }, - ], - tooltip: { axisPointer: { type: 'cross' }, trigger: 'axis' }, - xAxis: { boundaryGap: false, data: dates, type: 'category' }, - yAxis: { minInterval: 1, type: 'value' }, - }; -} - -/** 工单状态分布饼图配置 */ -export function getWorkOrderStatusChartOptions( - data: Array<{ itemStyle: { color: string }; name: string; value: number }>, -): any { - return { - legend: { bottom: 0, type: 'scroll' }, - series: [ - { - avoidLabelOverlap: true, - data, - emphasis: { label: { fontSize: 14, fontWeight: 'bold', show: true } }, - itemStyle: { borderColor: '#fff', borderRadius: 6, borderWidth: 2 }, - label: { formatter: '{b}\n{c}', show: true }, - radius: ['40%', '70%'], - type: 'pie', - }, - ], - tooltip: { formatter: '{b}: {c} ({d}%)', trigger: 'item' }, - }; -} diff --git a/apps/web-ele/src/views/mes/home/modules/production-trend.vue b/apps/web-ele/src/views/mes/home/modules/production-trend.vue index caa128456..840650ec3 100644 --- a/apps/web-ele/src/views/mes/home/modules/production-trend.vue +++ b/apps/web-ele/src/views/mes/home/modules/production-trend.vue @@ -9,7 +9,7 @@ import { ElCard, ElRadioButton, ElRadioGroup } from 'element-plus'; import { getProductionTrend } from '#/api/mes/home'; -import { getProductionTrendChartOptions } from '../data'; +import { getProductionTrendChartOptions } from '../chart-options'; defineOptions({ name: 'MesHomeProductionTrend' }); diff --git a/apps/web-ele/src/views/mes/home/modules/work-order-chart.vue b/apps/web-ele/src/views/mes/home/modules/work-order-chart.vue index 366a3072f..38527bd0b 100644 --- a/apps/web-ele/src/views/mes/home/modules/work-order-chart.vue +++ b/apps/web-ele/src/views/mes/home/modules/work-order-chart.vue @@ -9,7 +9,8 @@ import { ElCard } from 'element-plus'; import { getWorkOrderStatusDistribution } from '#/api/mes/home'; -import { getWorkOrderStatusChartOptions, WORK_ORDER_STATUS_COLOR_MAP } from '../data'; +import { getWorkOrderStatusChartOptions } from '../chart-options'; +import { WORK_ORDER_STATUS_COLOR_MAP } from '../data'; defineOptions({ name: 'MesHomeWorkOrderChart' });