diff --git a/src/components/feed/PigBreedTable.vue b/src/components/feed/PigBreedTable.vue index 0e17e96d..0c8ac311 100644 --- a/src/components/feed/PigBreedTable.vue +++ b/src/components/feed/PigBreedTable.vue @@ -142,6 +142,8 @@ v-if="showPigTypeDialog" :initialData="currentPigType" :breedId="currentBreedIdForPigType" + :isEditing="isEditingPigType" + :existingAgeStageIds="getExistingAgeStageIds(currentBreedIdForPigType)" @save="handlePigTypeSave" @cancel="handlePigTypeCancel" > @@ -320,11 +322,17 @@ export default { showNutrientDialog.value = false; }; + // 获取当前品种已有的年龄阶段ID列表 + const getExistingAgeStageIds = (breedId) => { + const breed = tableData.value.find(item => item.id === breedId); + return breed && breed.pig_types ? breed.pig_types.map(pt => pt.age_stage_id) : []; + }; + // 处理添加年龄阶段 const handleAddPigType = (breedId) => { isEditingPigType.value = false; currentPigType.value = { // 初始化新年龄阶段的数据 - age_stage_name: '', + age_stage_id: null, // age_stage_id 默认为 null,由下拉框选择 description: '', min_days: 0, max_days: 0, @@ -360,7 +368,7 @@ export default { await FeedApi.deletePigType(pigType.id); ElMessage.success('年龄阶段删除成功'); // 刷新当前展开行的 pig_types 数据 - const expandedRow = tableData.value.find(item => expandRowKeys.value.includes(item.breed_id)); + const expandedRow = tableData.value.find(item => expandRowKeys.value.includes(pigType.breed_id)); if (expandedRow) { await handleExpandChange(expandedRow, [expandedRow]); } @@ -420,6 +428,7 @@ export default { handleAddPigType, handleEditPigType, handleDeletePigType, + getExistingAgeStageIds, // 暴露给模板 handleNutrientRequirementsRefresh, // 暴露给模板 handlePigTypeSave, handlePigTypeCancel, diff --git a/src/components/feed/PigTypeEditor.vue b/src/components/feed/PigTypeEditor.vue index f3fc1b8e..56e7f78f 100644 --- a/src/components/feed/PigTypeEditor.vue +++ b/src/components/feed/PigTypeEditor.vue @@ -1,8 +1,16 @@