🐞 fix: 修复原材料无法创建BOM

This commit is contained in:
砂糖
2025-08-19 16:11:28 +08:00
parent 6eb6a74e45
commit 808d1ca513
3 changed files with 31 additions and 28 deletions

View File

@@ -114,9 +114,12 @@ export default {
try {
this.createLoading = true;
// 添加一个semi类型
const bomName = (this.type == 'product' ? '产品BOM' : (this.type == 'raw_material' ? '原材料BOM' : '半成品BOM')) + new Date().getTime();
const bomCode = (this.type == 'product' ? 'P' : (this.type == 'raw_material' ? 'R' : 'S')) + new Date().getTime();
const bomResponse = await addBom({
bomName: (this.type == 'product' ? '产品BOM' : '原材料BOM') + new Date().getTime(),
bomCode: (this.type == 'product' ? 'P' : 'R') + new Date().getTime()
bomName,
bomCode
});
this.$message.success('创建BOM成功');
@@ -133,6 +136,11 @@ export default {
rawMaterialId: this.itemId,
bomId: bomData.bomId
});
} else if (this.type == 'semi' && this.itemId) {
await updateProduct({
productId: this.itemId,
bomId: bomData.bomId
});
}
this.$store.dispatch('category/getBomMap');

View File

@@ -25,13 +25,13 @@
<el-form ref="form" v-if="activeStep === 0" :model="addForm" :rules="rules" label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="原材料编号" prop="productCode">
<el-input v-model="addForm.productCode" placeholder="请输入原材料编号" />
<el-form-item label="原材料编号" prop="rawMaterialCode">
<el-input v-model="addForm.rawMaterialCode" placeholder="请输入原材料编号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="原材料名称" prop="productName">
<el-input v-model="addForm.productName" placeholder="请输入原材料名称" />
<el-form-item label="原材料名称" prop="rawMaterialName">
<el-input v-model="addForm.rawMaterialName" placeholder="请输入原材料名称" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -60,13 +60,10 @@
<script>
import { mapGetters } from "vuex";
import { addRawMaterial } from '@/api/wms/rawMaterial';
import { BomPanel } from '@/components/KLPService/BomPanel/index.vue';
import BomPanel from '../BomPanel/index.vue';
export default {
name: "RawMaterialSelect",
components: {
BomPanel
},
props: {
value: [String, null],
placeholder: {
@@ -78,24 +75,27 @@ export default {
default: false
}
},
components: {
BomPanel
},
data() {
return {
options: [],
selected: this.value,
loading: false,
addForm: {
productCode: undefined,
productName: undefined,
rawMaterialCode: undefined,
rawMaterialName: undefined,
owner: undefined,
unit: undefined,
type: 'raw'
type: 'raw_material'
},
addDialogVisible: false,
rules: {
productCode: [
rawMaterialCode: [
{ required: true, message: "原材料编号不能为空", trigger: "blur" }
],
productName: [
rawMaterialName: [
{ required: true, message: "原材料名称不能为空", trigger: "blur" }
],
owner: [
@@ -104,7 +104,7 @@ export default {
},
buttonLoading: false,
itemId: undefined,
activeStep: 0,
activeStep: 1,
bomId: undefined,
};
},
@@ -130,11 +130,11 @@ export default {
add() {
this.addDialogVisible = true;
this.addForm = {
productCode: undefined,
productName: undefined,
rawMaterialCode: undefined,
rawMaterialName: undefined,
owner: undefined,
unit: undefined,
type: 'raw'
type: 'raw_material'
};
this.bomId = undefined;
this.itemId = undefined;
@@ -163,11 +163,11 @@ export default {
cancel() {
this.addDialogVisible = false;
this.addForm = {
productCode: undefined,
productName: undefined,
rawMaterialCode: undefined,
rawMaterialName: undefined,
owner: undefined,
unit: undefined,
type: 'raw'
type: 'raw_material'
};
}
}

View File

@@ -1,7 +1,7 @@
<template>
<div style="position: relative;">
<!-- 录入二维码列表 -->
<el-form inline>
<el-form inline style="position: relative;">
<el-form-item label="物料类型">
<el-select v-model="itemType" placeholder="请选择物料类型" clearable>
<el-option v-for="dict in dict.type.stock_item_type" :key="dict.value" :label="dict.label"
@@ -19,7 +19,6 @@
</el-form-item>
</el-form>
<div class="print-container" v-loading="loading">
<BarCode :barcodes="drawerBarcodeData" @delete="handleDelete" />
</div>
@@ -67,8 +66,4 @@ export default {
</script>
<style scoped lang="scss">
.print-container {
margin-top: 20px;
padding: 20px;
}
</style>