diff --git a/src/components/feed/RecipeCompareDialog.vue b/src/components/feed/RecipeCompareDialog.vue new file mode 100644 index 00000000..16d40ac6 --- /dev/null +++ b/src/components/feed/RecipeCompareDialog.vue @@ -0,0 +1,331 @@ + + + + + \ No newline at end of file diff --git a/src/components/feed/RecipeComparisonDialog.vue b/src/components/feed/RecipeComparisonDialog.vue new file mode 100644 index 00000000..e69de29b diff --git a/src/components/feed/RecipeDetailDialog.vue b/src/components/feed/RecipeDetailDialog.vue index ec44a7f5..ef54d529 100644 --- a/src/components/feed/RecipeDetailDialog.vue +++ b/src/components/feed/RecipeDetailDialog.vue @@ -65,12 +65,18 @@ + @@ -79,6 +85,7 @@ import { ref, watch, nextTick, computed } from 'vue'; import { getRawMaterialById, getRawMaterials, updateRecipe, getRecipeById } from '../../api/feed'; import { ElMessage } from 'element-plus'; import { Delete } from '@element-plus/icons-vue'; +import RecipeCompareDialog from './RecipeCompareDialog.vue'; // 引入对比组件 export default { name: 'RecipeDetailDialog', @@ -101,11 +108,16 @@ export default { const nutrientTableRef = ref(null); const allRawMaterials = ref([]); // 所有可用原料列表 const newIngredientId = ref(null); // 待添加的新原料ID + const compareDialogVisible = ref(false); // 控制对比对话框的显示 const handleClose = () => { emit('update:visible', false); }; + const openCompareDialog = () => { + compareDialogVisible.value = true; + }; + const calculateNutrientSummary = (ingredients) => { const summary = new Map(); ingredients.forEach(ing => { @@ -285,8 +297,14 @@ export default { newIngredientId, updateNutrientSummary, Delete, // 暴露 Delete 图标组件 + compareDialogVisible, // 暴露对比对话框的可见性 + openCompareDialog, // 暴露打开对比对话框的方法 }; }, + components: { + Delete, + RecipeCompareDialog, // 注册对比组件 + } }; diff --git a/src/components/feed/test.txt b/src/components/feed/test.txt new file mode 100644 index 00000000..e69de29b