🐞 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 { try {
this.createLoading = true; 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({ const bomResponse = await addBom({
bomName: (this.type == 'product' ? '产品BOM' : '原材料BOM') + new Date().getTime(), bomName,
bomCode: (this.type == 'product' ? 'P' : 'R') + new Date().getTime() bomCode
}); });
this.$message.success('创建BOM成功'); this.$message.success('创建BOM成功');
@@ -133,6 +136,11 @@ export default {
rawMaterialId: this.itemId, rawMaterialId: this.itemId,
bomId: bomData.bomId bomId: bomData.bomId
}); });
} else if (this.type == 'semi' && this.itemId) {
await updateProduct({
productId: this.itemId,
bomId: bomData.bomId
});
} }
this.$store.dispatch('category/getBomMap'); 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-form ref="form" v-if="activeStep === 0" :model="addForm" :rules="rules" label-width="120px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="原材料编号" prop="productCode"> <el-form-item label="原材料编号" prop="rawMaterialCode">
<el-input v-model="addForm.productCode" placeholder="请输入原材料编号" /> <el-input v-model="addForm.rawMaterialCode" placeholder="请输入原材料编号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="原材料名称" prop="productName"> <el-form-item label="原材料名称" prop="rawMaterialName">
<el-input v-model="addForm.productName" placeholder="请输入原材料名称" /> <el-input v-model="addForm.rawMaterialName" placeholder="请输入原材料名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@@ -60,13 +60,10 @@
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { addRawMaterial } from '@/api/wms/rawMaterial'; import { addRawMaterial } from '@/api/wms/rawMaterial';
import { BomPanel } from '@/components/KLPService/BomPanel/index.vue'; import BomPanel from '../BomPanel/index.vue';
export default { export default {
name: "RawMaterialSelect", name: "RawMaterialSelect",
components: {
BomPanel
},
props: { props: {
value: [String, null], value: [String, null],
placeholder: { placeholder: {
@@ -78,24 +75,27 @@ export default {
default: false default: false
} }
}, },
components: {
BomPanel
},
data() { data() {
return { return {
options: [], options: [],
selected: this.value, selected: this.value,
loading: false, loading: false,
addForm: { addForm: {
productCode: undefined, rawMaterialCode: undefined,
productName: undefined, rawMaterialName: undefined,
owner: undefined, owner: undefined,
unit: undefined, unit: undefined,
type: 'raw' type: 'raw_material'
}, },
addDialogVisible: false, addDialogVisible: false,
rules: { rules: {
productCode: [ rawMaterialCode: [
{ required: true, message: "原材料编号不能为空", trigger: "blur" } { required: true, message: "原材料编号不能为空", trigger: "blur" }
], ],
productName: [ rawMaterialName: [
{ required: true, message: "原材料名称不能为空", trigger: "blur" } { required: true, message: "原材料名称不能为空", trigger: "blur" }
], ],
owner: [ owner: [
@@ -104,7 +104,7 @@ export default {
}, },
buttonLoading: false, buttonLoading: false,
itemId: undefined, itemId: undefined,
activeStep: 0, activeStep: 1,
bomId: undefined, bomId: undefined,
}; };
}, },
@@ -130,11 +130,11 @@ export default {
add() { add() {
this.addDialogVisible = true; this.addDialogVisible = true;
this.addForm = { this.addForm = {
productCode: undefined, rawMaterialCode: undefined,
productName: undefined, rawMaterialName: undefined,
owner: undefined, owner: undefined,
unit: undefined, unit: undefined,
type: 'raw' type: 'raw_material'
}; };
this.bomId = undefined; this.bomId = undefined;
this.itemId = undefined; this.itemId = undefined;
@@ -163,11 +163,11 @@ export default {
cancel() { cancel() {
this.addDialogVisible = false; this.addDialogVisible = false;
this.addForm = { this.addForm = {
productCode: undefined, rawMaterialCode: undefined,
productName: undefined, rawMaterialName: undefined,
owner: undefined, owner: undefined,
unit: undefined, unit: undefined,
type: 'raw' type: 'raw_material'
}; };
} }
} }

View File

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