这是一个基于Taro框架开发的微信小程序,用于管理家庭菜单。用户可以创建和管理菜品分类、添加和编辑菜品、将菜品添加到菜篮子中,方便家庭日常做饭选择。
- 菜单管理:创建和编辑家庭菜单
- 分类管理:添加、删除、排序菜品分类
- 菜品管理:添加、删除、查看菜品详情
- 菜篮子功能:将菜品添加到菜篮子,方便购买食材
- AI图片生成:支持AI生成菜品图片(预留功能)
项目的业务逻辑已经封装在 src/services/menuService.ts 文件中,包含以下几个主要模块:
getMenuInfo:获取菜单信息saveMenuInfo:保存菜单信息
getCategories:获取所有分类saveCategories:保存分类列表addCategory:添加分类deleteCategory:删除分类updateCategoryOrder:更新分类顺序
getDishes:获取所有菜品getDishesByCategory:根据分类获取菜品getDishDetail:获取菜品详情saveDishes:保存菜品列表addDish:添加菜品deleteDish:删除菜品
getCartItems:获取菜篮子中的菜品saveCartItems:保存菜篮子addToCart:添加菜品到菜篮子removeFromCart:从菜篮子中移除菜品clearCart:清空菜篮子
chooseLocalImage:选择本地图片generateAIImage:生成AI图片
initAppData:初始化应用数据
要完成小程序的所有业务逻辑,需要按照以下步骤进行:
- 在各个页面中引入需要的服务函数:
import { getCategories, addCategory, deleteCategory, showSuccess } from '../../services'
- 在页面的生命周期函数中初始化数据:
useEffect(() => { const categories = getCategories() setCategories(categories) }, [])
- 在事件处理函数中调用相应的服务函数:
const handleAddCategory = () => { const result = validateCategoryName(newCategory) if (!result.valid) { showError(result.message) return } const updatedCategories = addCategory({ name: newCategory }) setCategories(updatedCategories) setNewCategory('') showSuccess('添加成功') }
- 完成每个服务函数中标记的 TODO 逻辑:
所有服务函数中都有 // TODO 逻辑补充 注释,需要根据注释中的说明完成具体的业务逻辑实现。
小程序使用 Taro 的本地存储 API 来保存数据,主要包括以下几个存储键:
categories:分类列表dishes:菜品列表cartItems:菜篮子中的菜品menuInfo:菜单信息
项目还提供了一些辅助工具函数:
showSuccess:显示成功提示showError:显示错误提示showLoading:显示加载提示hideLoading:隐藏加载提示showConfirm:显示确认对话框
isEmpty:验证字符串是否为空isLengthValid:验证字符串长度是否在指定范围内validateDishName:验证菜品名称validateCategoryName:验证分类名称validateMenuName:验证菜单名称
- 先完成
menuService.ts中的所有 TODO 逻辑 - 在各个页面中引入并使用相应的服务函数
- 使用工具函数处理UI交互和数据验证
- 测试各个功能模块,确保功能正常
- 所有数据都保存在本地存储中,没有后端服务
- AI图片生成功能需要接入实际的AI服务才能使用
- 确保在应用启动时调用
initAppData函数初始化数据
-
Clone the repository: `git clone ow to Run
-
Install dependencies:
npm install -
Run the development server:
npm run dev:weapp -
Open the project in the WeChat development tool.