feat: 添加产品与原材料BOM信息展示功能
- 新增listProductWithBom和listRawMaterialWithBom接口 - 在ProductSelect和RawMaterialSelect组件中展示BOM属性信息 - 优化物料状态显示条件及仓库过滤逻辑 - 更新统计组件查询参数
This commit is contained in:
@@ -8,9 +8,14 @@
|
||||
</template>
|
||||
<el-option v-for="item in productOptions" :key="item.productId"
|
||||
:label="`${item.productName}(${item.productCode})`" :value="item.productId">
|
||||
<div class="option-label">
|
||||
<span class="product-name">{{ item.productName }}</span>
|
||||
<div>
|
||||
<div class="option-label">
|
||||
<span class="product-name">{{ item.productName }}</span>
|
||||
<span class="product-code">{{ item.productCode }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="product-sku">{{ getSku(item) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-option>
|
||||
</el-select>
|
||||
@@ -124,6 +129,33 @@ export default {
|
||||
this.productOptions = res.rows || [];
|
||||
});
|
||||
},
|
||||
getSku(item) {
|
||||
const boms = item.bomItems || [];
|
||||
if (!boms.length) {
|
||||
return '暂无BOM信息';
|
||||
}
|
||||
// 查找attrKey为'规格'的attrvalue
|
||||
const specification = boms.find(p => p.attrKey === '规格');
|
||||
|
||||
// 查找attrKey为'表面处理'的attrvalue
|
||||
const factory = boms.find(p => p.attrKey === '表面处理');
|
||||
|
||||
// 查找attrKey为'材质'的attrvalue
|
||||
const material = boms.find(p => p.attrKey === '材质');
|
||||
|
||||
// 组合sku:
|
||||
let sku = '';
|
||||
if (specification) {
|
||||
sku += '规格:' + specification.attrValue + ';';
|
||||
}
|
||||
if (factory) {
|
||||
sku += '表面处理:' + factory.attrValue + ';';
|
||||
}
|
||||
if (material) {
|
||||
sku += '材质:' + material.attrValue + ';';
|
||||
}
|
||||
return sku;
|
||||
},
|
||||
onChange(val) {
|
||||
// 通过val找到item
|
||||
const product = this.productOptions.find(p => p.productId === val);
|
||||
|
||||
Reference in New Issue
Block a user