BOM展示

This commit is contained in:
砂糖
2025-07-31 18:07:51 +08:00
parent b1f40f09e9
commit f02967ebbf
23 changed files with 262 additions and 40 deletions

View File

@@ -68,6 +68,11 @@
</ProductInfo>
</template>
</el-table-column>
<el-table-column label="BOM" align="center">
<template slot-scope="scope">
<BomInfoMini item-type="product" :item-id="scope.row.productId" />
</template>
</el-table-column>
<el-table-column label="产品数量" align="center" prop="quantity" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="备注" align="center" prop="remark" />
@@ -132,6 +137,7 @@ import { getOrder } from "@/api/wms/order";
import ProductSelect from '@/components/KLPService/ProductSelect';
import { EOrderStatus } from "@/utils/enums";
import { ProductInfo } from '@/components/KLPService';
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: "OrderDetailPanel",
@@ -144,7 +150,8 @@ export default {
},
components: {
ProductSelect,
ProductInfo
ProductInfo,
BomInfoMini
},
data() {
return {

View File

@@ -17,8 +17,8 @@
<el-form-item label="库位" class="form-item">
<WarehouseSelect v-model="defaultForm.warehouseId" />
</el-form-item>
<el-form-item label="主码" class="form-item">
<el-select v-model="defaultForm.stockIoId" placeholder="请选择主码" clearable class="form-input">
<el-form-item label="挂载单据" class="form-item">
<el-select v-model="defaultForm.stockIoId" placeholder="请选择挂载单据" clearable class="form-input">
<el-option
v-for="item in masterList"
:key="item.stockIoId"
@@ -61,9 +61,9 @@
<WarehouseSelect v-model="scope.row.warehouseId" />
</template>
</el-table-column>
<el-table-column prop="stockIoId" label="主码" align="center">
<el-table-column prop="stockIoId" label="挂载单据" align="center">
<template #default="scope">
<el-select v-model="scope.row.stockIoId" placeholder="请选择主码" clearable class="table-select">
<el-select v-model="scope.row.stockIoId" placeholder="请选择挂载单据" clearable class="table-select">
<el-option
v-for="item in masterList"
:key="item.stockIoId"
@@ -173,7 +173,7 @@ export default {
},
fetchMaster() {
listStockIo({ pageSize: 9999, pageNum: 1 }).then(res => {
console.log(res, '获取主码');
console.log(res, '获取挂载单据');
this.masterList = res.rows;
});
},

View File

@@ -128,6 +128,11 @@
<dict-tag :options="dict.type.common_swicth" :value="scope.row.isEnabled"/>
</template>
</el-table-column>
<el-table-column label="BOM" align="center">
<template slot-scope="scope">
<BomInfoMini :bomId="scope.row.bomId" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@@ -260,6 +265,7 @@ import CategorySelect from '@/components/KLPService/CategorySelect';
import CategoryRenderer from '@/components/KLPService/Renderer/CategoryRenderer.vue';
import UserSelect from '@/components/KLPService/UserSelect';
import BomPanel from '../bom/components/BomPanel.vue';
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: "Product",
@@ -267,7 +273,8 @@ export default {
CategorySelect,
CategoryRenderer,
UserSelect,
BomPanel
BomPanel,
BomInfoMini
},
dicts: ['common_swicth'],
data() {

View File

@@ -32,6 +32,11 @@
<RawMaterialSelect v-model="scope.row.rawMaterialId" placeholder="请选择原材料" />
</template>
</el-table-column>
<el-table-column label="BOM" align="center">
<template #default="scope">
<BomInfoMini item-type="raw_material" :item-id="scope.row.rawMaterialId" />
</template>
</el-table-column>
<el-table-column prop="unit" label="单位" />
<el-table-column prop="onTheWay" label="在途" />
<el-table-column prop="inventory" label="在库" />
@@ -65,10 +70,11 @@ import { createPurchasePlan } from '@/api/wms/purchasePlan'
import { listRawMaterial } from '@/api/wms/rawMaterial'
import UserSelect from '@/components/KLPService/UserSelect'
import RawMaterialSelect from '@/components/KLPService/RawMaterialSelect'
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: 'CreatePurchasePanel',
components: { UserSelect, RawMaterialSelect },
components: { UserSelect, RawMaterialSelect, BomInfoMini },
props: {
orderId: {
type: [String, Number],

View File

@@ -24,6 +24,13 @@ export default {
loading: false
}
},
watch: {
orderId: {
handler(newVal) {
this.handleRecommend()
}
}
},
mounted() {
if (!this.showButton) {
this.handleRecommend();

View File

@@ -15,8 +15,8 @@
<script>
import RecommendPurchasePanel from './RecommendPurchasePanel.vue'
import CreatePurchasePanel from './CreatePurchasePanel.vue'
import { updatePurchasePlan } from '@/api/wms/purchasePlan'
import { EOrderStatus } from '@/api/wms/order'
import { updateOrder } from '@/api/wms/order'
import { EOrderStatus } from '@/utils/enums'
export default {
name: 'PurchasePlanClac',
@@ -32,18 +32,22 @@ export default {
},
data() {
return {
recommendData: {}
recommendData: {},
EOrderStatus: EOrderStatus
}
},
methods: {
onRecommend(data) {
console.log('获取推荐数据', data)
this.recommendData = data
},
onConfirm(submitData) {
updatePurchasePlan({
console.log('calc层', submitData)
updateOrder({
orderId: this.orderId,
orderStatus: EOrderStatus.PRODUCTIONING,
orderStatus: this.EOrderStatus.PRODUCTIONING,
}).then(response => {
console.log("状态变更成功")
this.$emit('confirm', submitData)
})

View File

@@ -65,6 +65,11 @@
</RawMaterialInfo>
</template>
</el-table-column>
<el-table-column label="BOM" align="center">
<template slot-scope="scope">
<BomInfoMini item-type="raw_material" :item-id="scope.row.rawMaterialId" />
</template>
</el-table-column>
<el-table-column label="负责人" align="center" prop="owner" />
<el-table-column label="计划采购数量" align="center" prop="quantity" />
<el-table-column label="单位" align="center" prop="unit" />
@@ -180,6 +185,7 @@ import StockInDialog from "./stockin.vue";
import RawMaterialSelect from '@/components/KLPService/RawMaterialSelect';
import UserSelect from '@/components/KLPService/UserSelect'
import { RawMaterialInfo } from '@/components/KLPService';
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: "PurchasePlanDetail",
@@ -187,7 +193,8 @@ export default {
StockInDialog,
RawMaterialSelect,
UserSelect,
RawMaterialInfo
RawMaterialInfo,
BomInfoMini
},
props: {
planId: {

View File

@@ -64,6 +64,11 @@
style="width: 100%"
>
<el-table-column label="原材料" align="center" prop="rawMaterialName" />
<el-table-column label="BOM" align="center">
<template slot-scope="scope">
<BomInfoMini item-type="raw_material" :item-id="scope.row.rawMaterialId" />
</template>
</el-table-column>
<el-table-column label="计划数量" align="center" prop="planQuantity" />
<el-table-column label="入库数量" align="center" prop="quantity">
<template slot-scope="scope">
@@ -121,11 +126,13 @@ import { updatePurchasePlanDetail } from "@/api/wms/purchasePlanDetail";
import { getRawMaterial } from "@/api/wms/rawMaterial";
import { EPurchaseDetailStatus } from "@/utils/enums";
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: "StockInDialog",
components: {
WarehouseSelect
WarehouseSelect,
BomInfoMini
},
props: {
visible: {

View File

@@ -26,6 +26,11 @@
<RawMaterialInfo :materialId="scope.row.rawMaterialId" />
</template>
</el-table-column>
<el-table-column label="BOM" align="center">
<template #default="scope">
<BomInfoMini item-type="raw_material" :item-id="scope.row.rawMaterialId" />
</template>
</el-table-column>
<el-table-column prop="unit" label="单位" align="center" />
<el-table-column prop="onTheWay" label="在途" align="center" />
<el-table-column prop="inventory" label="在库" align="center" />
@@ -65,6 +70,11 @@
<RawMaterialInfo :materialId="scope.row.rawMaterialId" />
</template>
</el-table-column>
<el-table-column label="BOM" align="center">
<template #default="scope">
<BomInfoMini item-type="raw_material" :item-id="scope.row.rawMaterialId" />
</template>
</el-table-column>
<el-table-column prop="unit" label="单位" />
<el-table-column prop="onTheWay" label="在途" />
<el-table-column prop="inventory" label="在库" />
@@ -100,11 +110,11 @@ import { listRawMaterial, listRawMaterialWithDemand } from '@/api/wms/rawMateria
import UserSelect from '@/components/KLPService/UserSelect'
import RawMaterialSelect from '@/components/KLPService/RawMaterialSelect'
import RawMaterialInfo from '@/components/KLPService/Renderer/RawMaterialInfo.vue'
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: 'CreatePurchasePanel',
components: { UserSelect, RawMaterialSelect, RawMaterialInfo },
components: { UserSelect, RawMaterialSelect, RawMaterialInfo, BomInfoMini },
props: {
orderId: {
type: [String, Number],

View File

@@ -117,7 +117,7 @@
<el-table-column label="原材料名称" align="center" prop="rawMaterialName" />
<el-table-column label="计量单位" align="center" prop="unit" />
<el-table-column label="钢种/牌号" align="center" prop="steelGrade" />
<el-table-column label="目标冷轧牌号" align="center" prop="targetColdGrade" />
<!-- <el-table-column label="目标冷轧牌号" align="center" prop="targetColdGrade" />
<el-table-column label="基础材质分类" align="center">
<template slot-scope="scope">
<CategoryRenderer :category-id="scope.row.baseMaterialId" />
@@ -132,6 +132,11 @@
<template slot-scope="scope">
<dict-tag :options="dict.type.common_swicth" :value="scope.row.isEnabled"/>
</template>
</el-table-column> -->
<el-table-column label="BOM" align="center">
<template slot-scope="scope">
<BomInfoMini :bomId="scope.row.bomId" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -292,13 +297,15 @@ import { listRawMaterial, getRawMaterial, delRawMaterial, addRawMaterial, update
import CategorySelect from "@/components/KLPService/CategorySelect/index.vue";
import CategoryRenderer from '@/components/KLPService/Renderer/CategoryRenderer.vue';
import BomPanel from '@/views/wms/bom/components/BomPanel.vue';
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: "RawMaterial",
components: {
CategorySelect,
CategoryRenderer,
BomPanel
BomPanel,
BomInfoMini
},
dicts: ['common_swicth'],
data() {

View File

@@ -87,6 +87,11 @@
<span v-else>{{ scope.row.itemId }}</span>
</template>
</el-table-column>
<el-table-column label="BOM" align="center">
<template slot-scope="scope">
<BomInfoMini :item-type="scope.row.itemType" :item-id="scope.row.itemId" />
</template>
</el-table-column>
<el-table-column label="数量" align="center" prop="quantity" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="批次号" align="center" prop="batchNo" />
@@ -236,6 +241,7 @@ import RawMaterialSelect from '@/components/KLPService/RawMaterialSelect';
import ProductSelect from '@/components/KLPService/ProductSelect';
import { ITEM_TYPE } from '@/utils/enums';
import {RawMaterialInfo, ProductInfo} from "@/components/KLPService";
import BomInfoMini from '@/components/KLPService/Renderer/BomInfoMini.vue';
export default {
name: "StockIoDetailPanel",
@@ -244,7 +250,8 @@ export default {
RawMaterialSelect,
ProductSelect,
RawMaterialInfo,
ProductInfo
ProductInfo,
BomInfoMini
},
dicts: ['stock_item_type'],
props: {