diff --git a/src/components/feed/GenerateRecipeDialog.vue b/src/components/feed/GenerateRecipeDialog.vue new file mode 100644 index 00000000..644ed85a --- /dev/null +++ b/src/components/feed/GenerateRecipeDialog.vue @@ -0,0 +1,164 @@ + + + + + \ No newline at end of file diff --git a/src/components/feed/RecipeDetailDialog.vue b/src/components/feed/RecipeDetailDialog.vue index fae313d9..f0602491 100644 --- a/src/components/feed/RecipeDetailDialog.vue +++ b/src/components/feed/RecipeDetailDialog.vue @@ -25,7 +25,7 @@ @@ -35,7 +35,7 @@ diff --git a/src/views/feed/RecipeList.vue b/src/views/feed/RecipeList.vue index 58b3840b..1c77ae38 100644 --- a/src/views/feed/RecipeList.vue +++ b/src/views/feed/RecipeList.vue @@ -9,7 +9,10 @@ - 新增配方 +
+ 新增配方 + 一键生成配方 +
@@ -55,6 +58,13 @@ v-model:visible="detailDialogVisible" :recipe="selectedRecipe" /> + + + @@ -65,6 +75,7 @@ import RecipeTable from '../../components/feed/RecipeTable.vue'; import RecipeForm from '../../components/feed/RecipeForm.vue'; import RecipeDetailDialog from '../../components/feed/RecipeDetailDialog.vue'; import { ElMessage, ElMessageBox } from 'element-plus'; +import GenerateRecipeDialog from '../../components/feed/GenerateRecipeDialog.vue'; // 引入新的组件 export default { name: 'RecipeList', @@ -72,7 +83,8 @@ export default { RecipeTable, RecipeForm, RecipeDetailDialog, - Refresh + Refresh, + GenerateRecipeDialog, // 注册新的组件 }, data() { return { @@ -84,6 +96,7 @@ export default { isEdit: false, detailDialogVisible: false, selectedRecipe: null, + generateRecipeDialogVisible: false, // 控制一键生成配方弹窗的显示 }; }, async mounted() { @@ -141,6 +154,17 @@ export default { handleShowDetails(recipe) { this.selectedRecipe = recipe; this.detailDialogVisible = true; + }, + /** + * 打开一键生成配方对话框 + */ + openGenerateRecipeDialog() { + this.generateRecipeDialogVisible = true; + }, + onGenerateRecipeSuccess(recipeName, recipeDescription) { + ElMessage.success(`配方 "${recipeName}" 生成成功: ${recipeDescription}`); + this.generateRecipeDialogVisible = false; + this.loadRecipes(); // 刷新配方列表 } } };