| | |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | label="单位" |
| | | prop="unit" |
| | | > |
| | | <el-input v-model="formState.unit" disabled /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | label="车牌号" |
| | | prop="licensePlateNo" |
| | | :rules="[{ required: true, message: '请输入车牌号', trigger: ['blur','change'] }]" |
| | | > |
| | | <el-input v-model="formState.licensePlateNo" /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | label="毛重(吨)" |
| | | label="单位" |
| | | prop="unit" |
| | | > |
| | | <el-select |
| | | v-model="formState.unit" |
| | | placeholder="请选择单位" |
| | | style="width: 100%" |
| | | clearable |
| | | > |
| | | <el-option label="吨" value="吨" /> |
| | | <el-option label="公斤" value="公斤" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="毛重" |
| | | prop="grossWeight" |
| | | :rules="[{ required: true, message: '请输入毛重', trigger: ['blur','change'] }]" |
| | | > |
| | | <el-input-number |
| | | v-model="formState.grossWeight" |
| | |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | label="皮重(吨)" |
| | | label="皮重" |
| | | prop="tareWeight" |
| | | :rules="[{ required: true, message: '请输入皮重', trigger: ['blur','change'] }]" |
| | | > |
| | | <el-input-number |
| | | v-model="formState.tareWeight" |
| | |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | label="净重(吨)" |
| | | label="净重" |
| | | prop="netWeight" |
| | | :rules="[{ required: true, message: '净重由毛重和皮重自动计算', trigger: ['blur','change'] }]" |
| | | > |
| | | <el-input-number |
| | | v-model="formState.netWeight" |
| | |
| | | <el-form-item |
| | | label="过磅日期" |
| | | prop="weighingDate" |
| | | :rules="[{ required: true, message: '请选择过磅日期', trigger: 'change' }]" |
| | | > |
| | | <el-date-picker |
| | | style="width: 100%" |
| | |
| | | <el-form-item |
| | | label="过磅员" |
| | | prop="weighingOperator" |
| | | :rules="[{ required: true, message: '请输入过磅员', trigger: ['blur','change'] }]" |
| | | > |
| | | <el-input v-model="formState.weighingOperator" /> |
| | | </el-form-item> |
| | |
| | | return props.record.parentName === '原材料'; |
| | | }) |
| | | |
| | | const ledgerNetWeight = computed(() => { |
| | | const n = Number(props.record?.netWeight ?? 0); |
| | | return Number.isFinite(n) ? n : 0; |
| | | }); |
| | | |
| | | const initFormData = () => { |
| | | if (props.record) { |
| | | formState.value = { |
| | | ...props.record, |
| | | } |
| | | // 初始化时也触发一次净重计算,避免接口回填后净重为空 |
| | | computeNetWeight() |
| | | } |
| | | } |
| | | |
| | |
| | | if (grossWeight != null && tareWeight != null) { |
| | | const net = Number(grossWeight) - Number(tareWeight); |
| | | const safeNet = Number(net.toFixed(2)); |
| | | formState.value.netWeight = safeNet > 0 ? safeNet : 0; |
| | | const computedNet = safeNet > 0 ? safeNet : 0; |
| | | const maxNet = ledgerNetWeight.value; |
| | | if (Number.isFinite(maxNet) && maxNet > 0 && computedNet > maxNet) { |
| | | const cappedNet = Number(maxNet.toFixed(2)); |
| | | formState.value.netWeight = cappedNet; |
| | | // 同步毛重,保持:净重 = 毛重 - 皮重 |
| | | const tare = Number(tareWeight); |
| | | if (Number.isFinite(tare)) { |
| | | formState.value.grossWeight = Number((tare + cappedNet).toFixed(2)); |
| | | } |
| | | proxy?.$modal?.msgWarning?.(`领用净重不能超过台账净重(${maxNet.toFixed(2)} 吨)`); |
| | | return; |
| | | } |
| | | formState.value.netWeight = computedNet; |
| | | } else { |
| | | formState.value.netWeight = undefined; |
| | | } |
| | |
| | | proxy.$modal.msgError("请选择规格"); |
| | | return; |
| | | } |
| | | const maxNet = ledgerNetWeight.value; |
| | | const usedNet = Number(formState.value.netWeight ?? 0); |
| | | if (Number.isFinite(maxNet) && maxNet > 0 && Number.isFinite(usedNet) && usedNet > maxNet) { |
| | | proxy.$modal.msgError(`领用净重不能超过台账净重(${maxNet.toFixed(2)} 吨)`); |
| | | return; |
| | | } |
| | | if (props.type === 'qualified') { |
| | | subtractStockInventory(formState.value).then(res => { |
| | | // 关闭模态框 |