fix: fix BOM parents SQL error and remove unused add children button

Co-authored-by: aider (openai/DeepSeek-V3.2-Thinking) <aider@aider.chat>
This commit is contained in:
dxc
2026-02-09 16:04:12 +08:00
parent 58f0ce48e2
commit eb771ec4f1
2 changed files with 2 additions and 43 deletions

View File

@ -35,19 +35,11 @@
</el-row>
<el-row :gutter="20" style="margin-top:15px">
<el-col :span="12">
<el-col :span="24">
<el-select v-model="selectedParentId" placeholder="选择 BOM 表" filterable style="width:100%" @change="onBomParentChange">
<el-option v-for="item in bomParents" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-col>
<el-col :span="12" style="text-align:right">
<el-tooltip
content="将 BOM 子件对应的库存物料添加到出库选单,用于后续拣货出库"
placement="top"
>
<el-button type="primary" plain @click="addChildrenToSelection">添加子件到出库选单</el-button>
</el-tooltip>
</el-col>
</el-row>
</div>
@ -431,39 +423,6 @@ const onBomParentChange = async (val: number) => {
}
}
/**
* 添加 BOM 子件到出库选单
* 作用:根据当前选定的 BOM 父件,获取其子件列表,然后根据子件的 child_id 在库存中查找匹配的库存项,
* 并将它们添加到出库选单selectedItems添加的数量受子件所需个数dosage的限制。
* 每个子件会尝试添加 dosage 个库存项(每个库存项代表一个实物单位),若库存项不足则按实际数量添加。
*/
const addChildrenToSelection = () => {
if (bomChildren.value.length === 0) {
ElMessage.warning('当前没有可添加的子件')
return
}
let addedCount = 0
for (const child of bomChildren.value) {
// 寻找匹配的库存项 (根据 base_id)
const matchingItems = allStockData.value.filter(item => item.base_id == child.child_id)
if (matchingItems.length > 0) {
const existingIds = selectedItems.value.map(s => s.id)
// 最多添加 dosage 个 (简单起见每个匹配项添加一个)
for (let i = 0; i < Math.min(child.dosage, matchingItems.length); i++) {
const stock = matchingItems[i]
if (!existingIds.includes(stock.id)) {
selectedItems.value.push(stock)
addedCount++
}
}
} else {
ElMessage.warning(`物料 ${child.child_name} 暂无库存`)
}
}
if (addedCount > 0) {
ElMessage.success(`已添加 ${addedCount} 个子件到选单`)
}
}
onMounted(async () => {
fetchData()