|
|
@@ -473,12 +473,16 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { ref, reactive, Teleport, Transition, onMounted, onUnmounted } from 'vue'
|
|
|
+import { useI18n } from 'vue-i18n'
|
|
|
import type { Recipe } from '@/types'
|
|
|
import RecipeCard from '@/components/RecipeCard.vue'
|
|
|
import GlobalNavigation from '@/components/GlobalNavigation.vue'
|
|
|
import GlobalFooter from '@/components/GlobalFooter.vue'
|
|
|
import { generateTableMenu, generateDishRecipe } from '@/services/aiService'
|
|
|
|
|
|
+// i18n
|
|
|
+const { t } = useI18n()
|
|
|
+
|
|
|
// 配置选项
|
|
|
interface TableConfig {
|
|
|
dishCount: number
|
|
|
@@ -528,36 +532,36 @@ const currentCustomDish = ref('')
|
|
|
|
|
|
// 配置选项数据
|
|
|
const tasteOptions = [
|
|
|
- { id: 'spicy', name: '麻辣', icon: '🌶️' },
|
|
|
- { id: 'sweet', name: '甜味', icon: '🍯' },
|
|
|
- { id: 'sour', name: '酸味', icon: '🍋' },
|
|
|
- { id: 'salty', name: '咸鲜', icon: '🧂' },
|
|
|
- { id: 'light', name: '清淡', icon: '🌿' },
|
|
|
- { id: 'rich', name: '浓郁', icon: '🍖' }
|
|
|
+ { id: 'spicy', name: t('tableDesign.tasteOptions.spicy'), icon: '🌶️' },
|
|
|
+ { id: 'sweet', name: t('tableDesign.tasteOptions.sweet'), icon: '🍯' },
|
|
|
+ { id: 'sour', name: t('tableDesign.tasteOptions.sour'), icon: '🍋' },
|
|
|
+ { id: 'salty', name: t('tableDesign.tasteOptions.salty'), icon: '🧂' },
|
|
|
+ { id: 'light', name: t('tableDesign.tasteOptions.light'), icon: '🌿' },
|
|
|
+ { id: 'rich', name: t('tableDesign.tasteOptions.rich'), icon: '🍖' }
|
|
|
]
|
|
|
|
|
|
const cuisineStyles = [
|
|
|
- { id: 'mixed', name: '混合菜系', icon: '🌍' },
|
|
|
- { id: 'chinese', name: '中式为主', icon: '🥢' },
|
|
|
- { id: 'western', name: '西式为主', icon: '🍽️' },
|
|
|
- { id: 'japanese', name: '日式为主', icon: '🍱' }
|
|
|
+ { id: 'mixed', name: t('tableDesign.cuisineStyles.mixed'), icon: '🌍' },
|
|
|
+ { id: 'chinese', name: t('tableDesign.cuisineStyles.chinese'), icon: '🥢' },
|
|
|
+ { id: 'western', name: t('tableDesign.cuisineStyles.western'), icon: '🍽️' },
|
|
|
+ { id: 'japanese', name: t('tableDesign.cuisineStyles.japanese'), icon: '🍱' }
|
|
|
]
|
|
|
|
|
|
const diningScenes = [
|
|
|
- { id: 'family', name: '家庭聚餐', icon: '👨👩👧👦' },
|
|
|
- { id: 'friends', name: '朋友聚会', icon: '🎉' },
|
|
|
- { id: 'romantic', name: '浪漫晚餐', icon: '💕' },
|
|
|
- { id: 'business', name: '商务宴请', icon: '💼' },
|
|
|
- { id: 'festival', name: '节日庆祝', icon: '🎊' },
|
|
|
- { id: 'casual', name: '日常用餐', icon: '🍚' }
|
|
|
+ { id: 'family', name: t('tableDesign.diningScenes.family'), icon: '👨👩👧👦' },
|
|
|
+ { id: 'friends', name: t('tableDesign.diningScenes.friends'), icon: '🎉' },
|
|
|
+ { id: 'romantic', name: t('tableDesign.diningScenes.romantic'), icon: '💕' },
|
|
|
+ { id: 'business', name: t('tableDesign.diningScenes.business'), icon: '💼' },
|
|
|
+ { id: 'festival', name: t('tableDesign.diningScenes.festival'), icon: '🎊' },
|
|
|
+ { id: 'casual', name: t('tableDesign.diningScenes.casual'), icon: '🍚' }
|
|
|
]
|
|
|
|
|
|
const nutritionOptions = [
|
|
|
- { id: 'balanced', name: '营养均衡', icon: '⚖️' },
|
|
|
- { id: 'protein', name: '高蛋白', icon: '💪' },
|
|
|
- { id: 'vegetarian', name: '素食为主', icon: '🥬' },
|
|
|
- { id: 'low_fat', name: '低脂健康', icon: '🏃♀️' },
|
|
|
- { id: 'comfort', name: '滋补养生', icon: '🍲' }
|
|
|
+ { id: 'balanced', name: t('tableDesign.nutritionOptions.balanced'), icon: '⚖️' },
|
|
|
+ { id: 'protein', name: t('tableDesign.nutritionOptions.protein'), icon: '💪' },
|
|
|
+ { id: 'vegetarian', name: t('tableDesign.nutritionOptions.vegetarian'), icon: '🥬' },
|
|
|
+ { id: 'low_fat', name: t('tableDesign.nutritionOptions.low_fat'), icon: '🏃♀️' },
|
|
|
+ { id: 'comfort', name: t('tableDesign.nutritionOptions.comfort'), icon: '🍲' }
|
|
|
]
|
|
|
|
|
|
// 切换口味选择
|