| | |
| | | const oneLength = ref(); |
| | | const allChildDataList = ref<any[]>([]); |
| | | const wireDetail = ref<any>(null); |
| | | const isMonofil = ref(); |
| | | const meterWeight = ref(); |
| | | const totalWeight = ref(); |
| | | |
| | | // 新增弹框相关 |
| | | const addDialogVisible = ref(false); |
| | |
| | | const handleAdd = () => { |
| | | const lastChild = childList.value[childList.value.length - 1]; |
| | | |
| | | // 从详情数据中获取米重 |
| | | const meterWeight = |
| | | // 从详情数据中获取米重,优先使用传入的参数 |
| | | const meterWeightValue = |
| | | Number(meterWeight.value) || |
| | | Number(wireDetail.value?.meterWeight) || |
| | | Number(wireDetail.value?.weight) || |
| | | Number(wireDetail.value?.theoryWeight) || |
| | | 0; |
| | | |
| | | // 如果是成品单丝,根据公式自动计算盘长:(totalWeight/meterWeight)*1000 |
| | | let calculatedLength = ""; |
| | | if ( |
| | | isMonofil.value && |
| | | (isMonofil.value === 1 || isMonofil.value === "1" || isMonofil.value === true) |
| | | ) { |
| | | const totalWeightValue = Number(totalWeight.value) || 0; |
| | | if (totalWeightValue > 0 && meterWeightValue > 0) { |
| | | calculatedLength = ((totalWeightValue / meterWeightValue) * 1000).toFixed(2); |
| | | } |
| | | } |
| | | |
| | | // 初始化新数据,如果有最后一条数据,使用其值作为默认值 |
| | | newChildData.value = { |
| | | dishModel: lastChild?.dishModel || "", |
| | | actuallyLength: lastChild?.actuallyLength || "", |
| | | actuallyLength: calculatedLength || lastChild?.actuallyLength || "", |
| | | actuallyWeight: lastChild?.actuallyWeight || "", |
| | | isJoint: lastChild?.isJoint || 0, |
| | | meterWeight: meterWeight, |
| | | meterWeight: meterWeightValue, |
| | | }; |
| | | |
| | | addDialogVisible.value = true; |
| | |
| | | } |
| | | }; |
| | | |
| | | // 自动计算实际重量 |
| | | // 自动计算实际重量(根据长度) |
| | | const handleCalculateWeight = (row: any) => { |
| | | // 从 newChildData 对象中获取米重 |
| | | const meterWeight = Number(row.meterWeight) || 0; |
| | | const meterWeightValue = Number(row.meterWeight) || 0; |
| | | const actuallyLength = Number(row.actuallyLength); |
| | | |
| | | if (meterWeight > 0 && actuallyLength > 0) { |
| | | const calculatedWeight = (meterWeight * actuallyLength) / 1000; |
| | | if (meterWeightValue > 0 && actuallyLength > 0) { |
| | | const calculatedWeight = (meterWeightValue * actuallyLength) / 1000; |
| | | row.actuallyWeight = Number(calculatedWeight.toFixed(3)); |
| | | } |
| | | console.log("row", meterWeight, actuallyLength); |
| | | console.log("row", meterWeightValue, actuallyLength); |
| | | }; |
| | | |
| | | // 监听实际长度变化,自动计算重量 |
| | | // 自动计算实际长度(根据重量,仅成品单丝) |
| | | const handleCalculateLength = (row: any) => { |
| | | // 如果是成品单丝,根据重量计算长度 |
| | | if ( |
| | | isMonofil.value && |
| | | (isMonofil.value === 1 || isMonofil.value === "1" || isMonofil.value === true) |
| | | ) { |
| | | const meterWeightValue = Number(meterWeight.value) || Number(row.meterWeight) || 0; |
| | | const actuallyWeight = Number(row.actuallyWeight); |
| | | |
| | | if (meterWeightValue > 0 && actuallyWeight > 0) { |
| | | const calculatedLength = (actuallyWeight / meterWeightValue) * 1000; |
| | | row.actuallyLength = Number(calculatedLength.toFixed(2)); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | // 监听实际长度变化,自动计算重量(非成品单丝时) |
| | | watch( |
| | | () => newChildData.value.actuallyLength, |
| | | (newValue, oldValue) => { |
| | | console.log("实际长度变化:", { newValue, oldValue, newChildData: newChildData.value }); |
| | | if (newValue && String(newValue).trim() !== "") { |
| | | console.log("实际长度变化:", { newValue, oldValue, isMonofil: isMonofil.value }); |
| | | // 如果不是成品单丝,才根据长度计算重量 |
| | | if ( |
| | | newValue && |
| | | String(newValue).trim() !== "" && |
| | | !( |
| | | isMonofil.value && |
| | | (isMonofil.value === 1 || isMonofil.value === "1" || isMonofil.value === true) |
| | | ) |
| | | ) { |
| | | // 使用 nextTick 确保 v-model 已经更新 |
| | | nextTick(() => { |
| | | handleCalculateWeight(newChildData.value); |
| | | }); |
| | | } |
| | | }, |
| | | { immediate: false, deep: true } |
| | | ); |
| | | |
| | | // 监听实际重量变化,自动计算长度(仅成品单丝) |
| | | watch( |
| | | () => newChildData.value.actuallyWeight, |
| | | (newValue, oldValue) => { |
| | | console.log("实际重量变化:", { newValue, oldValue, isMonofil: isMonofil.value }); |
| | | if (newValue && String(newValue).trim() !== "") { |
| | | // 使用 nextTick 确保 v-model 已经更新 |
| | | nextTick(() => { |
| | | handleCalculateLength(newChildData.value); |
| | | }); |
| | | } |
| | | }, |
| | |
| | | supplier: options.supplier, |
| | | }; |
| | | |
| | | // 接收传递的参数 |
| | | isMonofil.value = options.isMonofil; |
| | | meterWeight.value = options.meterWeight; |
| | | totalWeight.value = options.totalWeight; |
| | | |
| | | await getDetailData(options.wireId); |
| | | await getData(); |
| | | }); |