diff --git a/src/views/mes/wipTrackingReport/backup.vue b/src/views/mes/wipTrackingReport/backup.vue new file mode 100644 index 0000000..9bb782a --- /dev/null +++ b/src/views/mes/wipTrackingReport/backup.vue @@ -0,0 +1,675 @@ + + + + + + + + + + + + + + + + + 搜索 + 重置 + + + + + + + + + + + + + 进度状态分布 + + + + + + + + 整体进度分布 + + + + + + + + + + + 工序进度可视化 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ scope.row.progressStatus }} + + + + + + + + + {{ process.processName }} + + + + + + + + + + + + + + + diff --git a/src/views/mes/wipTrackingReport/index.vue b/src/views/mes/wipTrackingReport/index.vue index 9bb782a..31c8a4a 100644 --- a/src/views/mes/wipTrackingReport/index.vue +++ b/src/views/mes/wipTrackingReport/index.vue @@ -125,7 +125,39 @@ - + + + + + + + + + {{ data.label }} + + + + + + + @@ -226,7 +258,7 @@ let processStatsChart: echarts.ECharts | null = null; // 列显隐信息 const columns = ref([ { key: 0, label: '生产订单号', visible: true }, - { key: 1, label: '物料编号', visible: false }, + { key: 1, label: '物料编号', visible: true }, { key: 2, label: '物料名称', visible: true }, { key: 3, label: '规格型号', visible: true }, { key: 4, label: '计划总数量', visible: true }, @@ -237,11 +269,11 @@ const columns = ref([ { key: 9, label: '计划完工时间', visible: true }, { key: 10, label: '当前时间', visible: false }, { key: 11, label: '总工序数', visible: true }, - { key: 12, label: '在制工序', visible: true }, - { key: 13, label: '剩余工序', visible: true }, + { key: 12, label: '在制工序', visible: false }, + { key: 13, label: '剩余工序', visible: false }, { key: 14, label: '整体进度', visible: true }, { key: 15, label: '进度状态', visible: true }, - { key: 16, label: '工序进度', visible: true } + { key: 16, label: '工序进度', visible: false } ]); const queryParams = ref({ @@ -324,6 +356,30 @@ function getProgressColor(percentage: number) { return '#67c23a'; } +/** 树形结构配置 */ +const treeProps = { children: 'children', label: 'label' } as const; + +/** 构建工序树(父:订单;子:工序) */ +function buildProcessTree(row: WipTrackingReportVO) { + const children = (row.processProgressList || []).map(p => ({ + id: p.processId, + label: p.processName, + progress: p.processProgress ?? 0, + planAmount: p.planAmount ?? 0, + completeAmount: p.completeAmount ?? 0, + remainingAmount: p.remainingAmount ?? 0, + status: (p as any).isCompleted === 1 || p.isCompleted ? 'completed' : ((p as any).isInProgress === 1 || p.isInProgress ? 'in_progress' : 'pending') + })); + + return [ + { + id: row.productOrderId || row.orderCode, + label: `${row.orderCode}(在制工序(${children.filter(c => c.status === 'in_progress').length}))`, + children + } + ]; +} + /** 初始化图表 */ function initCharts() { if (statusChartRef.value) { @@ -589,6 +645,32 @@ onBeforeUnmount(() => { }); + +