|
|
|
@ -317,12 +317,12 @@ |
|
|
|
<el-form-item label="余数HU" prop="lastPackageQty" class="form-item-vertical"> |
|
|
|
<el-input |
|
|
|
v-model="createHuForm.lastPackageQty" |
|
|
|
:placeholder="createHuForm.autoCalculate ? '自动计算' : '手动输入'" |
|
|
|
:readonly="createHuForm.autoCalculate" |
|
|
|
:placeholder="createHuForm.autoCalculate ? '自动计算' : '默认为0'" |
|
|
|
readonly |
|
|
|
@input="onLastPackageQtyChange"> |
|
|
|
</el-input> |
|
|
|
<span style="font-size: 12px; color: #999;"> |
|
|
|
{{ createHuForm.autoCalculate ? '自动计算' : '可手动输入' }} |
|
|
|
{{ createHuForm.autoCalculate ? '自动计算' : '默认为0(不创建余数HU)' }} |
|
|
|
</span> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -385,7 +385,7 @@ export default { |
|
|
|
qtyOnHand: 0, |
|
|
|
unPrintQty: 0, |
|
|
|
perPackageQty: '', |
|
|
|
packageCount: 0, |
|
|
|
packageCount: '', |
|
|
|
lastPackageQty: 0, |
|
|
|
height: '', |
|
|
|
autoCalculate: true // 默认自动计算 |
|
|
|
@ -525,10 +525,10 @@ export default { |
|
|
|
unPrintQty: row.unPrintQty, |
|
|
|
umid: row.umid, |
|
|
|
perPackageQty: '', |
|
|
|
packageCount: 0, |
|
|
|
packageCount: '', |
|
|
|
lastPackageQty: 0, |
|
|
|
height: '', |
|
|
|
autoCalculate: true // 默认自动计算 |
|
|
|
autoCalculate: false // 默认自动计算 |
|
|
|
} |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs['createHuForm'].clearValidate() |
|
|
|
@ -555,14 +555,14 @@ export default { |
|
|
|
|
|
|
|
// 如果单包装数量为空或无效,重置包装数 |
|
|
|
if (!perPackageQty || perPackageQty <= 0 || isNaN(perPackageQty)) { |
|
|
|
this.createHuForm.packageCount = 0 |
|
|
|
this.createHuForm.packageCount = '' |
|
|
|
this.createHuForm.lastPackageQty = 0 |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 如果未打印数量无效或为0,重置包装数 |
|
|
|
if (!unPrintQty || unPrintQty <= 0 || isNaN(unPrintQty)) { |
|
|
|
this.createHuForm.packageCount = 0 |
|
|
|
this.createHuForm.packageCount = '' |
|
|
|
this.createHuForm.lastPackageQty = 0 |
|
|
|
this.$message.warning('未打印数量为0,无法创建HU') |
|
|
|
return |
|
|
|
@ -570,7 +570,7 @@ export default { |
|
|
|
|
|
|
|
// 如果单包装数量大于未打印数量,只创建1个余数HU |
|
|
|
if (perPackageQty >= unPrintQty) { |
|
|
|
this.createHuForm.packageCount = 0 |
|
|
|
this.createHuForm.packageCount = '' |
|
|
|
this.createHuForm.lastPackageQty = unPrintQty |
|
|
|
return |
|
|
|
} |
|
|
|
@ -588,14 +588,13 @@ export default { |
|
|
|
/** |
|
|
|
* 包装数手动修改时的处理 |
|
|
|
* 只在手动输入模式下生效 |
|
|
|
* 根据用户输入的包装数重新计算余数HU数量 |
|
|
|
* 验证包装数是否合理(不超过库存),但不计算余数HU(余数固定为0) |
|
|
|
* |
|
|
|
* 场景1:库存44,单包装10,包装数5 -> 余数HU = 44 - 10×5 = -6(提示包装数过大) |
|
|
|
* 场景2:库存44,单包装10,包装数2 -> 余数HU = 44 - 10×2 = 24 |
|
|
|
* 场景3:库存44,单包装10,包装数4 -> 余数HU = 44 - 10×4 = 4 |
|
|
|
* 场景1:库存44,单包装10,包装数5 -> 总数量50超过库存,提示错误 |
|
|
|
* 场景2:库存44,单包装10,包装数4 -> 总数量40,合法,余数固定为0 |
|
|
|
*/ |
|
|
|
onPackageCountChange() { |
|
|
|
// 只在手动输入模式下才进行计算 |
|
|
|
// 只在手动输入模式下才进行验证 |
|
|
|
if (this.createHuForm.autoCalculate) { |
|
|
|
return |
|
|
|
} |
|
|
|
@ -620,17 +619,14 @@ export default { |
|
|
|
// 计算总数量(完整HU的总数量) |
|
|
|
const totalFullPackagesQty = perPackageQty * packageCount |
|
|
|
|
|
|
|
// 计算余数 |
|
|
|
const remainderQty = qtyOnHand - totalFullPackagesQty |
|
|
|
|
|
|
|
// 如果余数为负数,说明包装数过大 |
|
|
|
if (remainderQty < 0) { |
|
|
|
// 如果总数量超过库存,说明包装数过大 |
|
|
|
if (totalFullPackagesQty > qtyOnHand) { |
|
|
|
this.$message.warning(`包装数过大!${packageCount}个完整HU的总数量(${totalFullPackagesQty})超过库存数量(${qtyOnHand})`) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 余数HU数量(可以为0,表示不创建余数HU) |
|
|
|
this.createHuForm.lastPackageQty = parseFloat(remainderQty.toFixed(2)) // 保留2位小数 |
|
|
|
// 手动模式下余数固定为0,不进行计算 |
|
|
|
this.createHuForm.lastPackageQty = 0 |
|
|
|
}, |
|
|
|
|
|
|
|
/** |
|
|
|
@ -670,8 +666,9 @@ export default { |
|
|
|
this.$message.info('已切换到自动计算模式') |
|
|
|
this.onPerPackageQtyChange() |
|
|
|
} else { |
|
|
|
// 切换到手动输入模式 |
|
|
|
// 切换到手动输入模式,将余数HU重置为0 |
|
|
|
this.$message.info('已切换到手动输入模式,您可以自由输入包装数和余数HU') |
|
|
|
this.createHuForm.lastPackageQty = 0 |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
|