src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
@@ -21,28 +21,34 @@ prop="batchNo" min-width="150" /> <el-table-column label="需求数量" prop="demandedQuantity" min-width="110" /> min-width="110"> <template #default="{ row }"> {{ stripTrailingZeros(row.demandedQuantity) }} </template> </el-table-column> <el-table-column label="计量单位" prop="unit" width="100" /> <el-table-column label="领用数量" prop="pickQuantity" min-width="110" /> min-width="110"> <template #default="{ row }"> {{ stripTrailingZeros(row.pickQuantity) }} </template> </el-table-column> <el-table-column label="补料数量" min-width="120"> <template #default="{ row }"> <el-button type="primary" link @click="handleViewSupplementRecord(row)"> {{ row.feedingQty ?? 0 }} {{ stripTrailingZeros(row.feedingQty) ?? 0 }} </el-button> </template> </el-table-column> <el-table-column label="退料数量" min-width="110"> <template #default="{ row }"> {{ row.returnQty ?? 0 }} {{ stripTrailingZeros(row.returnQty) ?? 0 }} </template> </el-table-column> <el-table-column label="实际数量" @@ -50,10 +56,11 @@ <template #default="{ row }"> <el-input-number v-model="row.actualQty" :min="0" :precision="3" :step="1" controls-position="right" placeholder="输入实际数量" :formatter="value => stripTrailingZeros(value)" :parser="value => parseFloat(value) || 0" style="width: 100%;" :disabled="row.returned || orderRow?.end" @change="val => handleActualQtyChange(row, val)" /> @@ -115,8 +122,11 @@ prop="unit" min-width="100" /> <el-table-column label="退料汇总数量" prop="returnQtyTotal" min-width="140" /> min-width="140"> <template #default="{ row }"> {{ stripTrailingZeros(row.returnQtyTotal) }} </template> </el-table-column> </el-table> <template #footer> <span class="dialog-footer"> @@ -139,6 +149,14 @@ updateMaterialPickingLedger, } from "@/api/productionManagement/productionOrder.js"; const stripTrailingZeros = val => { const str = String(val ?? ""); if (str.includes(".")) { return parseFloat(str).toString(); } return str; }; const props = defineProps({ modelValue: { type: Boolean, default: false }, orderRow: { type: Object, default: null }, src/views/productionManagement/productionOrder/components/MaterialLedgerDialog.vue
@@ -2,7 +2,7 @@ <div> <el-dialog v-model="dialogVisible" title="领料台账" width="1200px" width="1350px" @close="handleClose"> <div class="material-toolbar"> <el-button type="primary" @@ -13,7 +13,7 @@ border row-key="tempId"> <el-table-column label="工序名称" min-width="140"> min-width="80"> <template #default="{ row }"> <span v-if="row.bom === true">{{ row.operationName || "-" }}</span> <el-select v-else @@ -31,7 +31,7 @@ </template> </el-table-column> <el-table-column label="原料名称" min-width="140"> min-width="120"> <template #default="{ row }"> <span v-if="row.bom === true">{{ row.materialName || "-" }}</span> <el-button v-else @@ -43,7 +43,7 @@ </template> </el-table-column> <el-table-column label="原料型号" min-width="140"> min-width="120"> <template #default="{ row }"> {{ row.materialModel || "-" }} </template> @@ -66,21 +66,22 @@ </template> </el-table-column> <el-table-column label="需求数量" min-width="120"> min-width="100"> <template #default="{ row }"> <span v-if="row.bom === true">{{ row.demandedQuantity ?? "-" }}</span> <span v-if="row.bom === true">{{ stripTrailingZeros(row.demandedQuantity) ?? "-" }}</span> <el-input-number v-else v-model="row.demandedQuantity" :min="0" :precision="3" :step="1" controls-position="right" :formatter="value => stripTrailingZeros(value)" :parser="value => parseFloat(value) || 0" style="width: 100%;" @change="val => handleRequiredQtyChange(row, val)" /> </template> </el-table-column> <el-table-column label="计量单位" width="100"> width="80"> <template #default="{ row }"> {{ row.unit || "-" }} </template> @@ -90,9 +91,10 @@ <template #default="{ row }"> <el-input-number v-model="row.pickQty" :min="0" :precision="3" :step="1" controls-position="right" :formatter="value => stripTrailingZeros(value)" :parser="value => parseFloat(value) || 0" style="width: 100%;" /> </template> </el-table-column> @@ -270,6 +272,14 @@ } ); const stripTrailingZeros = val => { const str = String(val); if (str.includes(".")) { return parseFloat(str).toString(); } return str; }; const handleClose = () => { materialTableData.value = []; currentMaterialSelectRowIndex.value = -1; src/views/productionManagement/productionOrder/components/MaterialSupplementDialog.vue
@@ -20,23 +20,33 @@ prop="unit" width="100" /> <el-table-column label="需求数量" prop="demandedQuantity" width="100" /> min-width="100"> <template #default="{ row }"> {{ stripTrailingZeros(row.demandedQuantity) }} </template> </el-table-column> <el-table-column label="领用数量" prop="pickQuantity" width="100" /> min-width="100"> <template #default="{ row }"> {{ stripTrailingZeros(row.pickQuantity) }} </template> </el-table-column> <el-table-column label="已补数量" prop="feedingQty" width="100" /> min-width="100"> <template #default="{ row }"> {{ stripTrailingZeros(row.feedingQty) }} </template> </el-table-column> <el-table-column label="补料数量" min-width="150"> <template #default="{ row }"> <el-input-number v-model="row.newSupplementQty" :min="0" :precision="3" :step="1" controls-position="right" placeholder="输入补料数量" :formatter="value => stripTrailingZeros(value)" :parser="value => parseFloat(value) || 0" style="width: 100%;" /> </template> </el-table-column> @@ -69,6 +79,14 @@ updateMaterialPickingLedger, } from "@/api/productionManagement/productionOrder.js"; const stripTrailingZeros = val => { const str = String(val ?? ""); if (str.includes(".")) { return parseFloat(str).toString(); } return str; }; const props = defineProps({ modelValue: { type: Boolean, default: false }, orderRow: { type: Object, default: null },