diff --git a/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx b/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx index 0b2d029..0b25f0a 100644 --- a/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx +++ b/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx @@ -187,9 +187,10 @@ export default function FertilizerEditPage({ planId }: { planId?: number }) { const targetFields = calcNewOnly ? selectedFields.filter((f) => { - const hasAdjusted = adjusted[f.id]?.[setting.fertilizer_id] !== undefined; - const hasCalc = calcMatrix[f.id]?.[setting.fertilizer_id] !== undefined; - return !hasAdjusted && !hasCalc; + const adjVal = adjusted[f.id]?.[setting.fertilizer_id]; + const calcVal = calcMatrix[f.id]?.[setting.fertilizer_id]; + const inputValue = adjVal !== undefined ? adjVal : (calcVal ?? ''); + return inputValue === ''; }) : selectedFields; @@ -214,19 +215,7 @@ export default function FertilizerEditPage({ planId }: { planId?: number }) { return next; }); - // adjusted と丸め状態をリセット(新しい計算結果を再丸めさせる) - setAdjusted((prev) => { - const next = { ...prev }; - results.forEach(({ field_id }) => { - if (next[field_id]) { - const row = { ...next[field_id] }; - delete row[setting.fertilizer_id]; - next[field_id] = row; - } - }); - return next; - }); - setRoundedColumns((prev) => { const next = new Set(prev); next.delete(setting.fertilizer_id); return next; }); + // adjusted は保持する(テキストボックスにDB/確定値を維持し、ラベルに計算結果を表示) } catch (e: unknown) { const err = e as { response?: { data?: { error?: string } } }; alert(err.response?.data?.error ?? '計算に失敗しました');