|
|
|
@ -91,7 +91,8 @@ |
|
|
|
autocorrect="off" |
|
|
|
spellcheck="false" /> |
|
|
|
</el-form-item></el-col> |
|
|
|
<el-col :span="12"><el-form-item label="库位"><el-input v-model="recvItem.locationNo" placeholder="请输入库位" @blur="validateLocation" /></el-form-item></el-col> |
|
|
|
<el-col :span="12"><el-form-item label="库位"> |
|
|
|
<el-input v-model="recvItem.locationNo" placeholder="请输入库位" /></el-form-item></el-col> |
|
|
|
<el-col :span="12"><el-form-item label="批号"><el-input v-model="recvItem.batchNo" placeholder="请输入批号" /></el-form-item></el-col> |
|
|
|
<el-col :span="8" style="margin-top: 10px"><el-form-item><el-button type="text" style="font-size: 16px;margin-left: 30px" @click="processFlag = 1">回退</el-button></el-form-item></el-col> |
|
|
|
<el-col :span="8" style="margin-top: 10px"><el-form-item><el-button type="text" style="font-size: 16px;margin-left: 20px" @click="receivePo">保存</el-button></el-form-item></el-col> |
|
|
|
@ -191,7 +192,11 @@ export default { |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
totalQty() { |
|
|
|
const sum = this.handlingUnit.reduce((sum, item) => sum + Number(item.qty), 0); |
|
|
|
// 使用整数运算避免浮点数精度问题 |
|
|
|
const sumInCents = this.handlingUnit.reduce((sum, item) => { |
|
|
|
return sum + Math.round(Number(item.qty) * 100); |
|
|
|
}, 0); |
|
|
|
const sum = sumInCents / 100; |
|
|
|
this.recvItem.transQty = sum; |
|
|
|
return sum; |
|
|
|
}, |
|
|
|
@ -300,10 +305,14 @@ export default { |
|
|
|
let site = this.site; |
|
|
|
let partNo = row.partNo; |
|
|
|
let height = ''; |
|
|
|
let locationNo = ''; |
|
|
|
try { |
|
|
|
const { data } = await getPartAttributeInfo({ site, partNo }); |
|
|
|
if (data.code === 0) { |
|
|
|
height = data.data.height; |
|
|
|
if (data.partDefLoc && data.partDefLoc.length > 0) { |
|
|
|
locationNo = data.partDefLoc[0].warehouse==='INK'?data.partDefLoc[0].locationNo:''; |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('获取物料高度失败:', error); |
|
|
|
@ -321,6 +330,7 @@ export default { |
|
|
|
supplierBatchNo: '', |
|
|
|
wdr:"*", |
|
|
|
height: height, |
|
|
|
locationNo: locationNo |
|
|
|
}; |
|
|
|
this.processFlag = 2; |
|
|
|
}, |
|
|
|
@ -364,8 +374,9 @@ export default { |
|
|
|
|
|
|
|
// 计算需要多少个完整包装 |
|
|
|
const packageQty = Math.floor(qtyToReceive / perQtyValue); |
|
|
|
// 计算余数(最后一个包装的数量) |
|
|
|
const remainder = qtyToReceive - (packageQty * perQtyValue); |
|
|
|
// 计算余数(最后一个包装的数量)- 使用整数运算避免浮点数精度问题 |
|
|
|
const remainderInCents = Math.round(qtyToReceive * 100) - Math.round(perQtyValue * 100) * packageQty; |
|
|
|
const remainder = remainderInCents / 100; |
|
|
|
|
|
|
|
// 清空现有的HU列表 |
|
|
|
this.handlingUnit = []; |
|
|
|
@ -412,7 +423,8 @@ export default { |
|
|
|
if (!perQty || !packageQty || isNaN(perQty) || isNaN(packageQty)) { |
|
|
|
return this.$message.warning("请填写有效的包装信息"); |
|
|
|
} |
|
|
|
const qty = parseFloat(perQty) * parseInt(packageQty); |
|
|
|
// 使用整数运算避免浮点数精度问题 |
|
|
|
const qty = Math.round(parseFloat(perQty) * 100) * parseInt(packageQty) / 100; |
|
|
|
const code = String(this.handlingUnit.length + 1); |
|
|
|
const newItem = { ...this.hanlingItem, qty, code }; |
|
|
|
this.handlingUnit.push(newItem); |
|
|
|
|