| | |
| | | <el-input v-model.number="reportForm.quantity" |
| | | type="number" |
| | | min="0" |
| | | step="0.1" |
| | | step="0.0001" |
| | | style="width: 300px" |
| | | placeholder="请输入生产合格数量" |
| | | @input="handleQuantityInput" /> |
| | |
| | | <el-input v-model.number="reportForm.scrapQty" |
| | | type="number" |
| | | min="0" |
| | | step="0.1" |
| | | step="0.0001" |
| | | style="width: 300px" |
| | | placeholder="请输入报废数量" |
| | | @input="handleScrapQtyInput" /> |
| | |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" |
| | | :loading="reportLoading" |
| | | @click="handleReport">确定</el-button> |
| | | <el-button @click="reportDialogVisible = false">取消</el-button> |
| | | </span> |
| | |
| | | const transferCardQrUrl = ref(""); |
| | | const transferCardRowData = ref(null); |
| | | const reportDialogVisible = ref(false); |
| | | const reportLoading = ref(false); |
| | | const fileDialogVisible = ref(false); |
| | | const currentWorkOrderId = ref(null); |
| | | const reportFormRef = ref(null); |
| | |
| | | const reportForm = reactive({ |
| | | planQuantity: 0, |
| | | quantity: null, |
| | | scrapQty: null, |
| | | scrapQty: 0, |
| | | userName: "", |
| | | workOrderId: "", |
| | | reportWork: "", |
| | |
| | | if (n <= 0) return 0; |
| | | if (n >= 100) return 100; |
| | | return Math.round(n); |
| | | }; |
| | | const subtractQuantity = (minuend, subtrahend, precision = 4) => { |
| | | const factor = 10 ** precision; |
| | | const a = Math.round((Number(minuend) || 0) * factor); |
| | | const b = Math.round((Number(subtrahend) || 0) * factor); |
| | | return Math.max(0, (a - b) / factor); |
| | | }; |
| | | const progressColor = percentage => { |
| | | const p = toProgressPercentage(percentage); |
| | |
| | | } |
| | | } |
| | | currentReportRowData.value = row; |
| | | const planQuantity = Number(row.planQuantity || 0); |
| | | const completeQuantity = Number(row.completeQuantity || 0); |
| | | const remainingQuantity = Math.max(0, planQuantity - completeQuantity); |
| | | reportForm.planQuantity = remainingQuantity; |
| | | reportForm.planQuantity = subtractQuantity( |
| | | row.planQuantity, |
| | | row.completeQuantity |
| | | ); |
| | | reportForm.quantity = |
| | | row.quantity !== undefined && row.quantity !== null ? row.quantity : null; |
| | | reportForm.productProcessRouteItemId = row.productProcessRouteItemId; |
| | | reportForm.workOrderId = row.id; |
| | | reportForm.reportWork = row.reportWork; |
| | | reportForm.productMainId = row.productMainId; |
| | | reportForm.scrapQty = |
| | | row.scrapQty !== undefined && row.scrapQty !== null ? row.scrapQty : null; |
| | | reportForm.productionOrderRoutingOperationId = |
| | | row.productionOrderRoutingOperationId; |
| | | reportForm.scrapQty = 0; |
| | | reportForm.productionOrderRoutingOperationId = row.productionOrderRoutingOperationId; |
| | | reportForm.productionOrderId = row.productionOrderId; |
| | | if (row.type == 0) { |
| | | reportForm.workHour = row.workHour || 0; |
| | |
| | | productionOperationParamList: productionOperationParamList, |
| | | }; |
| | | |
| | | reportLoading.value = true; |
| | | addProductMain(submitParams) |
| | | .then(res => { |
| | | proxy.$modal.msgSuccess("报工成功"); |
| | |
| | | ElMessageBox.alert("报工失败", "提示", { |
| | | confirmButtonText: "确定", |
| | | }); |
| | | }) |
| | | .finally(() => { |
| | | reportLoading.value = false; |
| | | }); |
| | | }); |
| | | }; |