Merge remote-tracking branch 'origin/0.8.X' into 0.8.X

This commit is contained in:
2025-11-05 10:17:51 +08:00
7 changed files with 50 additions and 11 deletions

View File

@@ -7,11 +7,12 @@
<div v-else style="padding: 10px;">未搜索到产品</div> <div v-else style="padding: 10px;">未搜索到产品</div>
</template> </template>
<el-option v-for="item in productOptions" :key="item.productId" <el-option v-for="item in productOptions" :key="item.productId"
:label="`${item.productName}${getSku(item)}`" :value="item.productId"> :label="getLabel(item)" :value="item.productId">
<div> <div>
<div class="option-label"> <div class="option-label">
<span class="product-name">{{ item.productName }}</span> {{ getLabel(item) }}
<span class="product-code">{{ getSku(item) }}</span> <!-- <span class="product-name">{{ item.productName }}[{{ item.specification }}]</span>
<span class="product-code">{{ getSku(item) }}</span> -->
</div> </div>
</div> </div>
</el-option> </el-option>
@@ -140,10 +141,17 @@ export default {
}, },
methods: { methods: {
getProductOptions() { getProductOptions() {
listProductWithBom({ pageNum: 1, pageSize: 1000, type: 'product' }).then(res => { listProductWithBom({ pageNum: 1, pageSize: 1000 }).then(res => {
this.productOptions = res.rows || []; this.productOptions = res.rows || [];
}); });
}, },
getLabel(item) {
// 产品名称[规格](SKU),如果有则写,没有则省略
if (!item.specification) {
return `${item.productName}(${this.getSku(item)})`
}
return `${item.productName}[${item.specification}](${this.getSku(item)})`
},
getSku(item) { getSku(item) {
const boms = item.bomItems || []; const boms = item.bomItems || [];
console.log(boms, '产品BOM'); console.log(boms, '产品BOM');

View File

@@ -7,11 +7,12 @@
<div v-else style="padding: 10px;">未搜索到原材料</div> <div v-else style="padding: 10px;">未搜索到原材料</div>
</template> </template>
<el-option v-for="item in rawMaterialList" :key="item.rawMaterialId" <el-option v-for="item in rawMaterialList" :key="item.rawMaterialId"
:label="`${item.rawMaterialName}${getSku(item)}`" :value="item.rawMaterialId"> :label="getLabel(item)" :value="item.rawMaterialId">
<div> <div>
<div class="option-label"> <div class="option-label">
<span class="material-name">{{ item.rawMaterialName }}</span> {{ getLabel(item) }}
<span class="material-code">{{ getSku(item) }}</span> <!-- <span class="material-name">{{ item.rawMaterialName }}[{{ item.specification }}]</span>
<span class="material-code">{{ getSku(item) }}</span> -->
</div> </div>
</div> </div>
</el-option> </el-option>
@@ -148,6 +149,13 @@ export default {
const rawMaterial = this.options.find(p => p.rawMaterialId === val); const rawMaterial = this.options.find(p => p.rawMaterialId === val);
this.$emit('change', rawMaterial); this.$emit('change', rawMaterial);
}, },
getLabel(item) {
// 原材料名称[规格](SKU),如果有则写,没有则省略
if (!item.specification) {
return `${item.rawMaterialName}(${this.getSku(item)})`
}
return `${item.rawMaterialName}[${item.specification}](${this.getSku(item)})`
},
getSku(item) { getSku(item) {
const boms = item.bomItems; const boms = item.bomItems;
if (!boms || boms.length === 0) { if (!boms || boms.length === 0) {

View File

@@ -22,6 +22,9 @@
<el-descriptions-item label="产品编码"> <el-descriptions-item label="产品编码">
{{ product.productCode || '--' }} {{ product.productCode || '--' }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="规格">
{{ product.specification || '--' }}
</el-descriptions-item>
</el-descriptions> </el-descriptions>
<BomInfo :bomId="product.bomId" /> <BomInfo :bomId="product.bomId" />
</el-dialog> </el-dialog>

View File

@@ -12,6 +12,7 @@
<el-descriptions-item label="原材料ID">{{ material.rawMaterialId }}</el-descriptions-item> <el-descriptions-item label="原材料ID">{{ material.rawMaterialId }}</el-descriptions-item>
<el-descriptions-item label="原材料名称">{{ material.rawMaterialName }}</el-descriptions-item> <el-descriptions-item label="原材料名称">{{ material.rawMaterialName }}</el-descriptions-item>
<el-descriptions-item label="原材料编码">{{ material.rawMaterialCode }}</el-descriptions-item> <el-descriptions-item label="原材料编码">{{ material.rawMaterialCode }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ material.specification }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<BomInfo :bomId="material.bomId" /> <BomInfo :bomId="material.bomId" />
</el-dialog> </el-dialog>

View File

@@ -391,7 +391,7 @@ export default {
...row, ...row,
itemName: item?.itemName || '', itemName: item?.itemName || '',
material: material?.attrValue || '', material: material?.attrValue || '',
specification: specification?.attrValue || '', specification: specification?.attrValue || item?.specification || '',
}; };
}, },
/** 下载二维码 */ /** 下载二维码 */

View File

@@ -20,6 +20,9 @@
<el-form-item label="负责人" prop="salesManager"> <el-form-item label="负责人" prop="salesManager">
<el-input v-model="queryParams.owner" :multiple="false" placeholder="请填写负责人" /> <el-input v-model="queryParams.owner" :multiple="false" placeholder="请填写负责人" />
</el-form-item> </el-form-item>
<el-form-item label="规格" prop="specification">
<el-input v-model="queryParams.specification" placeholder="请输入规格" clearable />
</el-form-item>
<!-- <el-form-item label="基础材质" prop="baseMaterialId"> <!-- <el-form-item label="基础材质" prop="baseMaterialId">
<CategorySelect v-model="queryParams.baseMaterialId" categoryType="base_material" placeholder="请选择基础材质分类" clearable /> <CategorySelect v-model="queryParams.baseMaterialId" categoryType="base_material" placeholder="请选择基础材质分类" clearable />
</el-form-item> </el-form-item>
@@ -96,6 +99,7 @@
<el-table-column label="产品类型编号" align="center" prop="productCode" /> <el-table-column label="产品类型编号" align="center" prop="productCode" />
<el-table-column label="产品类型名称" align="center" prop="productName" /> <el-table-column label="产品类型名称" align="center" prop="productName" />
<el-table-column label="负责人" align="center" prop="owner" /> <el-table-column label="负责人" align="center" prop="owner" />
<el-table-column label="规格" align="center" prop="specification" />
<!-- <el-table-column label="基础材质" align="center"> <!-- <el-table-column label="基础材质" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<CategoryRenderer :category-id="scope.row.baseMaterialId" /> <CategoryRenderer :category-id="scope.row.baseMaterialId" />
@@ -192,6 +196,10 @@
<el-form-item label="计量单位" prop="unit"> <el-form-item label="计量单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入计量单位" /> <el-input v-model="form.unit" placeholder="请输入计量单位" />
</el-form-item> </el-form-item>
<el-form-item label="规格" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格" />
</el-form-item>
<!-- </el-col> <!-- </el-col>
</el-row> --> </el-row> -->
@@ -306,7 +314,7 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
type: 'product', type: undefined,
productCode: undefined, productCode: undefined,
productName: undefined, productName: undefined,
owner: undefined, owner: undefined,
@@ -317,6 +325,7 @@ export default {
thickness: undefined, thickness: undefined,
width: undefined, width: undefined,
innerDiameter: undefined, innerDiameter: undefined,
specification: undefined,
isEnabled: undefined, isEnabled: undefined,
}, },
// 表单参数 // 表单参数
@@ -381,7 +390,8 @@ export default {
createBy: undefined, createBy: undefined,
updateTime: undefined, updateTime: undefined,
updateBy: undefined, updateBy: undefined,
type: 'product' type: undefined,
specification: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
}, },

View File

@@ -17,6 +17,9 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="规格" prop="specification">
<el-input v-model="queryParams.specification" placeholder="请输入规格" clearable />
</el-form-item>
<!-- <el-form-item label="钢种/牌号" prop="steelGrade"> <!-- <el-form-item label="钢种/牌号" prop="steelGrade">
<el-input <el-input
v-model="queryParams.steelGrade" v-model="queryParams.steelGrade"
@@ -113,6 +116,7 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="原材料类型编号" align="center" prop="rawMaterialCode" /> <el-table-column label="原材料类型编号" align="center" prop="rawMaterialCode" />
<el-table-column label="原材料类型名称" align="center" prop="rawMaterialName" /> <el-table-column label="原材料类型名称" align="center" prop="rawMaterialName" />
<el-table-column label="规格" align="center" prop="specification" />
<el-table-column label="计量单位" align="center" prop="unit" /> <el-table-column label="计量单位" align="center" prop="unit" />
<!-- <el-table-column label="钢种/牌号" align="center" prop="steelGrade" /> --> <!-- <el-table-column label="钢种/牌号" align="center" prop="steelGrade" /> -->
<!-- <el-table-column label="目标冷轧牌号" align="center" prop="targetColdGrade" /> <!-- <el-table-column label="目标冷轧牌号" align="center" prop="targetColdGrade" />
@@ -180,6 +184,9 @@
<el-form-item label="原材料名称" prop="rawMaterialName"> <el-form-item label="原材料名称" prop="rawMaterialName">
<el-input v-model="form.rawMaterialName" placeholder="请输入原材料名称" /> <el-input v-model="form.rawMaterialName" placeholder="请输入原材料名称" />
</el-form-item> </el-form-item>
<el-form-item label="规格" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格" />
</el-form-item>
<el-form-item label="计量单位" prop="unit"> <el-form-item label="计量单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入计量单位" /> <el-input v-model="form.unit" placeholder="请输入计量单位" />
</el-form-item> </el-form-item>
@@ -361,6 +368,7 @@ export default {
inspectionResult: undefined, inspectionResult: undefined,
isEnabled: undefined, isEnabled: undefined,
unit: undefined, unit: undefined,
specification: undefined,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
@@ -442,6 +450,7 @@ export default {
createBy: undefined, createBy: undefined,
updateTime: undefined, updateTime: undefined,
updateBy: undefined, updateBy: undefined,
specification: undefined,
unit: '卷', unit: '卷',
}; };
this.resetForm("form"); this.resetForm("form");