排产BOM挂载

This commit is contained in:
砂糖
2025-07-30 15:21:57 +08:00
parent 5fe25e7d3a
commit b9d82c27a2
5 changed files with 19 additions and 65 deletions

View File

@@ -6,7 +6,7 @@
{{ material.rawMaterialName ? material.rawMaterialName : '--' }}
</slot>
</span>
<el-dialog :visible="showDetail" @close="showDetail = false" :title="material.rawMaterialName" width="400px"
<el-dialog :visible="showDetail" @close="showDetail = false" :title="material.rawMaterialName" width="600px"
append-to-body>
<el-descriptions :column="1" border>
<el-descriptions-item label="ID">{{ material.rawMaterialId }}</el-descriptions-item>

View File

@@ -138,7 +138,7 @@ export default {
}
})
return
}
}
const option = {
tooltip: {
@@ -164,6 +164,9 @@ export default {
yAxis: {
type: 'value'
},
title: {
text: ''
},
series: [
{
name: '销售数量',
@@ -207,6 +210,9 @@ export default {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
title: {
text: ''
},
series: [
{
name: '销售业绩',

View File

@@ -44,36 +44,6 @@
</el-col>
</el-row>
<!-- 原有图表区域保留兼容性 -->
<el-row :gutter="20" class="section-row">
<el-col :span="24">
<div class="section-title">
<h2>原有图表区域</h2>
<p>兼容原有的图表展示</p>
</div>
</el-col>
</el-row>
<!-- 顶部3 张summary卡片 -->
<el-row :gutter="20" class="top-row">
<el-col :span="24">
<OrderSummary :data-info="orderSummaryData" />
</el-col>
</el-row>
<!-- 第一行图表 -->
<el-row :gutter="20" class="chart-row">
<el-col :span="8">
<OrderCompletion :completion-rate="orderSummaryData.completionRate" />
</el-col>
<el-col :span="8">
<ProductSales :product-sales="productSalesData" />
</el-col>
<el-col :span="8">
<CustomerRegion :customer-data="customerClusterData" />
</el-col>
</el-row>
<!-- 定时刷新设置抽屉 -->
<el-drawer
title="定时刷新设置"
@@ -98,10 +68,6 @@
</template>
<script>
import OrderSummary from './components/OrderSummary.vue'
import OrderCompletion from './components/OrderCompletion.vue'
import ProductSales from './components/ProductSales.vue'
import CustomerRegion from './components/CustomerRegion.vue'
import PerformanceArea from './components/PerformanceArea.vue'
import CurrentSituationArea from './components/CurrentSituationArea.vue'
import RecommendationArea from './components/RecommendationArea.vue'
@@ -110,10 +76,6 @@ import { getDashboardData } from '@/api/wms/order'
export default {
name: 'OrderAnalysisDashboard',
components: {
OrderSummary,
OrderCompletion,
ProductSales,
CustomerRegion,
PerformanceArea,
CurrentSituationArea,
RecommendationArea,
@@ -126,14 +88,6 @@ export default {
currentSituationArea: {},
recommendationArea: {}
},
// 原有数据结构(保持兼容性)
orderSummaryData: {
totalOrders: 0,
completedThisMonth: 0,
completionRate: 0
},
productSalesData: [],
customerClusterData: [],
// 新增定时刷新相关数据
drawerVisible: false,
autoRefresh: false,
@@ -164,21 +118,6 @@ export default {
recommendationArea: data.recommendationArea || {}
}
// 保持原有数据结构的兼容性
this.orderSummaryData = {
totalOrders: data.orderSummary?.totalOrderCount || 0,
completedThisMonth: data.orderSummary?.monthFinishedOrderCount || 0,
completionRate: data.orderSummary?.finishedRate || 0,
...data.orderSummary
}
this.productSalesData = data.productRank || []
this.customerClusterData = data.customerRegion || []
this.materialAnalysisData = {
categories: (data.orderMaterial || []).map(item => item.materialName),
usageFrequency: (data.orderMaterial || []).map(item => item.usedCount),
stockQuantity: (data.orderMaterial || []).map(item => item.stockCount),
purchaseCycle: (data.orderMaterial || []).map(item => item.purchaseCycle)
}
} catch (error) {
console.error('获取数据看板数据失败:', error)
this.$message.error('获取数据失败,请稍后重试')

View File

@@ -33,6 +33,9 @@
</template>
</el-table-column>
<el-table-column prop="unit" label="单位" />
<el-table-column prop="onTheWay" label="在途" />
<el-table-column prop="inventory" label="在库" />
<el-table-column prop="demand" label="所需" />
<el-table-column prop="quantity" label="计划采购数">
<template #default="scope">
<el-input-number v-model="scope.row.quantity" :min="0" size="small" />

View File

@@ -20,7 +20,12 @@
<el-table :data="detailList" v-loading="loading" style="width: 100%">
<el-table-column prop="detailId" label="明细ID" align="center" />
<el-table-column prop="lineName" label="产线名称" align="center" />
<el-table-column prop="productName" label="产品名称" align="center" />
<!-- <el-table-column prop="productName" label="产品名称" align="center" /> -->
<el-table-column prop="productCode" label="产品信息" align="center">
<template slot-scope="scope">
<ProductInfo :productId="scope.row.productId" />
</template>
</el-table-column>
<el-table-column prop="quantity" label="排产数量" align="center" />
<el-table-column prop="startDate" label="开始日期" align="center" />
<el-table-column prop="endDate" label="结束日期" align="center" />
@@ -82,10 +87,11 @@ import { listProduct } from '@/api/wms/product';
import { listProductionLine } from '@/api/wms/productionLine';
import GanttChartEcharts from '../productionLine/GanttChartEcharts.vue';
import { ganttProductionLine } from '@/api/wms/productionLine';
import ProductInfo from '@/components/KLPService/Renderer/ProductInfo.vue';
export default {
name: 'SchedulePlanDetail',
components: { GanttChartEcharts },
components: { GanttChartEcharts, ProductInfo },
data() {
return {
planId: null,